Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][php] Oceńcie moją pierwszą księge gości =)
Forum PHP.pl > Inne > Oceny
dawhol
  1. <?php
  2. $ip = $REMOTE_ADDR;
  3. $data = date('Y-m-d H:i:s');
  4. $zapytanie = "INSERT INTO cms_gbook SET data='$data',nick='$nick',email='$email',www='$www',wpis='$wpis',ip='$ip'";
  5.  
  6. if ($nick==''||$email==''||$wpis=='') {
  7. echo ("Nie wypełniles wszystkich pól");
  8. echo ('<form action="dodaj.php" method="post">');
  9. if ($nick=='') {echo ('Imie/Nick:<br>
  10. <input type="text" size="20" name="nick"><br>');} else echo ('Imie/Nick:<br>
  11. <input type="text" size="20" name="nick" value="'.$nick.'"><br>');
  12. if ($email=='') {echo ('Adres e-mail:<br>
  13. <input type="text" size="20" name="email"><br>');} else echo ('Adres e-mail:<br>
  14. <input type="text" size="20" name="email" value="'.$email.'"><br>');
  15. if ($wpis=='') {echo ('Twój wpis:<br><textarea cols="40" rows="10" name="wpis" ENCTYPE="text/plain" wrap="virtual"></textarea><br>');} else echo ('Twój wpis:<br><textarea cols="40" rows="10" name="wpis" ENCTYPE="text/plain" wrap="virtual">'.$wpis.'</textarea><br>');
  16. echo ('<input type="submit" name="send" value="Wyslij"><input type="reset" value="Wyczysc">
  17. </form>');
  18. } else if (mysql_query ($zapytanie)) {echo ("Dane zostały dodane");} else echo mysql_error();
  19. ?>


Bazy danych nie bede dodawał i formularza jest to plik wykonawczy dodaj.php smile.gif wyswietlania tez nie daje bo moim zdaniem on jest nie wazny smile.gif to jest moj pierwszy skrypcik wiec prosze szczere oceny smile.gif php ucze sie od 2 dni smile.gif wiec chyba niezle jak na poczatek smile.gif acha na poczatku niema mysql_connect bo to mam w innym pliku includowane na poczatku ale mysle ze i to wam nie jest potrzbne winksmiley.jpg.

PS. W kodzie na forum sa slashe a ja ich nei dawałem wiec nie zwracac na nie uwagi smile.gif
wolguy
Jak na dwa dni nauki, to nieźle, że zabrałeś się za MySQL. Ja go ruszyłem chyba po miesiącu tongue.gif Zacznij formatować kod, jest trochę nieczytelny, mimo, że tak go mało.
dawhol
tzn na jakiej zasadzie mam go formatowac bo nie czaje smile.gif ?
TomASS
1.
Co to jest:
  1. <?php
  2. $ip = $REMOTE_ADDR;
  3. ?>

lepiej dać:
  1. <?php
  2. $ip = $_SERVER['REMOTE_ADDR'];
  3. ?>

2.
Przerobiłem troszkę zapytanie:
  1. <?php
  2. $zapytanie = "INSERT INTO cms_gbook SET data='$data', nick='$nick', email='$email', www='$www',wpis='$wpis',ip='$ip'";
  3. ?>

na:
  1. <?php
  2. $zapytanie = "INSERT INTO cms_gbook (data, nick, email, www, wpis, ip) VALUES ('$data', '$nick', '$email', '$www', '$wpis', '$ip')";
  3. ?>

INSERT INTO syntax
zamiast date pobierać z php możesz użyć MySQL NOW();
czyli:
  1. <?php
  2. $zapytanie = "INSERT INTO cms_gbook (data, nick, email, www, wpis, ip) VALUES (NOW(), '$nick', '$email', '$www', '$wpis', '$ip')";
  3. ?>

pod warunkiem, że pole data jest typu date lub datetime.
3.
zamiast sprawdzać $email=='' lepiej użyć empty();

  1. <?php
  2. $ip = $_SERVER['REMOTE_ADDR'];
  3. $data = date('Y-m-d H:i:s');
  4. $zapytanie = "INSERT INTO cms_gbook (data, nick, email, www, wpis, ip) VALUES (NOW(), '$nick', '$email', '$www', '$wpis', '$ip')";
  5.  
  6. if (empty($nick) OR empty($email) OR empty($wpis)){
  7. echo 'Nie wypełniles wszystkich pól';
  8. echo '<form action="dodaj.php" method="post">';
  9. if (empty($nick)) echo 'Imie/Nick:<br><input type="text" size="20" name="nick"><br>';
  10. else echo 'Imie/Nick:<br><input type="text" size="20" name="nick" value="'.$nick.'"><br>';
  11.  
  12. if (empty($email)) echo 'Adres e-mail:<br><input type="text" size="20" name="email"><br>';
  13. else echo 'Adres e-mail:<br><input type="text" size="20" name="email" value="'.$email.'"><br>';
  14.  
  15. if (empty($wpis)) echo 'Twój wpis:<br><textarea cols="40" rows="10" name="wpis" ENCTYPE="text/plain" wrap="virtual"></textarea><br>';
  16. else echo 'Twój wpis:<br><textarea cols="40" rows="10" name="wpis" ENCTYPE="text/plain" wrap="virtual">'.$wpis.'</textarea><br><input type="submit" name="send" value="Wyslij"><input type="reset" value="Wyczysc"></form>';
  17. } 
  18. else if (mysql_query ($zapytanie)) echo ("Dane zostały dodane");
  19. else echo $zapytanie.'<br/>'.mysql_error();
  20. ?>


Jak na pierwszy raz jest dobrze smile.gif Tak rzymaj guitar.gif
dawhol
TomASS dzieki za poprawe i rade będe pamietał przy nastpnych skryptach winksmiley.jpg smile.gif i poprawie obecna ksiege smile.gif .

A tobie Null dzieki juz kapuje o co chodzi z tym formatowaniem smile.gif
mike
Cytat
Oceńcie moją pierwszą (...)

Przenoszę z Przedszkola na Oceny
Turgon
  1. <?php
  2. $zapytanie = "INSERT INTO cms_gbook (data, nick, email, www, wpis, ip) VALUES (NOW(), '$nick', '$email', '$www', '$wpis', '$ip')";
  3. ?>

TomASS : używamy INTO, a nie INOT.
dawhol : nieźle jak na pierwszy skrypt, ja po dwóch dniach nauki. Głowiłem się dlaczego te skrypty na plikach mi nie działają. Jednakże dzięki pomocy manuala udało mi się to naprawić. I co do sprawdzania możesz też użyć:
  1. <?php
  2. if($nick == null or $email == null or $wpis == null)
  3. ?>

I pisz też nieco czytelniej.
Np. zamiast tak :
  1. <?php
  2. else if (mysql_query ($zapytanie)) {echo ("Dane zostały dodane");} else echo mysql_error();
  3. ?>

Napisz to tak :
  1. <?php
  2. else
  3. {
  4. if(mysql_query($zapytanie))
  5. {
  6. echo 'Dane zostały dodane';
  7. }
  8. else
  9. {
  10. }
  11. }
  12. ?>

Wygląda to teraz dużo czytelniej i łatwiej nam się w tym połapać.
Jeszcze po za tym łącz ciągi, gdyż php nie przetworzy tekstu o długości np. 500 linijek. Zdażyło mi się taki ogromny formularz wpisywać w php. Wogóle też używaj apostrofów(' ') zamiast znaków cytatu(" "), jeśli nie masz parsowania zmiennych, a to parsowanie sprawdza się tylko na bardzo małą skalę.
dawhol
DZIEKI ZA OCENY smile.gif powprowadzałem porawki wykorzystałem funkcje empty() =) no i poprawiłem estetyke kodu smile.gif
Jescze raz dzieki za oceny, rady i nauki smile.gif
Seth
Poczytaj jeszcze to:
Temat: Bezpieczenstwo skryptow php
Temat: SQL Injection Insertion
dawhol
Dzieki Set =) juz co nieco poczytałem smile.gif choc wiele tetgo jest winksmiley.jpg ale bede pamiętał smile.gif
tiraeth
A no i najważniejsze:

nie $nick a $_POST['nick'] jeżeli wysyłasz formularzem - metoda post smile.gif
dawhol
Cytat(tiraeth @ 24.07.2006, 22:25 ) *
A no i najważniejsze:

nie $nick a $_POST['nick'] jeżeli wysyłasz formularzem - metoda post smile.gif



u siebie mam juz to poprawione winksmiley.jpg ale dzieki za troske winksmiley.jpg
nazihipi
Cytat(tiraeth @ 24.07.2006, 22:25 ) *
A no i najważniejsze:

nie $nick a $_POST['nick'] jeżeli wysyłasz formularzem - metoda post smile.gif

gdy register_globals = on może w taki sposób uzyskać bezpośredni dostęp do $_POST['nick'], ale naturalnie najlepiej robić zawsze tak: $nick = $_POST['nick']
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.