Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]Nietypowo działający skrypt
jacusek
post
Post #1





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Witam.
Mam taki skrypt wysyłający dane z formularza do bazy
  1. <?php
  2. include('connect2.php');
  3. include('cookie.php');
  4. if(empty($_GET['nazwisko'])||empty($_GET['imie'])||empty($_GET['id_lek'])||empty($_GET['miasto'])
  5. ||empty($_GET['termin'])){
  6. die(
  7. "<center><b>!!!!SPRAWDŹ CZY WYPEŁNIŁEŚ WSZYSTKIE OBOWIĄZKOWE POLA!!!!</b></center>
  8. <center><h2><a href=\"pacjent.php\">WRÓC DO FORMULARZA</a></h2></center>");
  9. }
  10. if(!empty($_GET['PESEL'])){
  11. if((is_numeric($_GET['PESEL'])==false)||(strlen($_GET['PESEL'])<11)){
  12. die("PESEL MA NIEPRAWIDŁOWY FORMAT LUB JEST ZA KRÓTKI<br/>");
  13. }
  14. }
  15. if(!empty($_GET['tel'])){
  16. if((is_numeric($_GET['tel'])==false)||(strlen($_GET['tel'])<9)){
  17. die("NUMER TELEFONU MA NIEPRAWIDŁOWY FORMAT LUB JEST ZA KRÓTKI<br/>");
  18. }
  19. }
  20. if(!empty($_GET['tel_kom'])){
  21. if((is_numeric($_GET['tel_kom'])==false)||(strlen($_GET['tel_kom'])<9)){
  22. die("NUMER TELEFONU KOMÓRKOWEGO MA NIEPRAWIDŁOWY FORMAT LUB JEST ZA KRÓTKI<br/>");
  23. }
  24. }
  25.  
  26. else{
  27. //pacjent bez PESEL
  28. if (empty($_GET['PESEL'])){
  29. $query = 'insert into pacjenci (PESEL,nazwisko, imie, miasto, adres, tel, tel_kom, rok_ur,wizyta,id_lek) values
  30. (NULL,"'.$_GET['nazwisko'].'","'.$_GET['imie'].'",
  31. "'.$_GET['miasto'].'",
  32. "'.$_GET['adres'].'","'.$_GET['tel'].'","'.$_GET['tel_kom'].'","'.$_GET['rok_ur'].'","'.$_GET['termin'].'",
  33. "'.$_GET['id_lek'].'")';
  34. $result=mysqli_query($mysqli,$query)
  35. or die(mysqli_error($mysqli));
  36. }
  37. //pacjenct z PESEL
  38. if(!empty($_GET['PESEL']))
  39. {
  40. $query2 = 'insert into pacjenci (PESEL, nazwisko, imie, miasto, adres, tel, tel_kom, rok_ur,wizyta,id_lek) values
  41. ("'.$_GET['PESEL'].'","'.$_GET['nazwisko'].'","'.$_GET['imie'].'",
  42. "'.$_GET['miasto'].'",
  43. "'.$_GET['adres'].'","'.$_GET['tel'].'","'.$_GET['tel_kom'].'","'.$_GET['rok_ur'].'","'.$_GET['termin'].'",
  44. "'.$_GET['id_lek'].'")';
  45. $result=mysqli_query($mysqli,$query2)
  46. or die(mysqli_error($mysqli));
  47. }
  48. }
  49. $query3='call pac()';
  50. $result3=mysqli_query($mysqli,$query3);
  51. $query4='call plec()';
  52. $result4=mysqli_query($mysqli,$query4);
  53. echo "<center><h2><a href=\"menu.php\">Wróć do MENU</a></h2></center>";
  54. echo "<center><h2><a href=\"pacjent.php\">Wpisz Kolejnego Pacjenta</a></h2></center>";
  55. ?>

No właśnie. Jak loguje się i korzystam z formularza to wpisuje mi rekord do bazy, natomiast już następnego już nie i kompletnie nie wiem dlaczego. Kombinowałem coś z cookies, ale też to nie to. Procedury też wyłączałem, ale to również nie to. Obsługa błędów włączona jak widać, ale po wypełnieniu formularza też nie pokazuje żadnych błędów.
Co mogę jeszcze przejrzeć i gdzie mogę mieć błąd.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Pilsener
post
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Musisz podzielić kod na sekcje:
  1. //odbieranie i walidacja danych - sekcja 1
  2. if(!empty($_POST)){ //jeśli formularz został wysłany, odbieramy dane
  3. if(poprawny_pesel($_POST['pesel'])){ //sprawdzamy poprawność danych i je walidujemy
  4. $pesel = '';
  5. }else{
  6. $error = 'zły pesel';
  7. }
  8. }
  9.  
  10. //dodawanie danych do bazy, sekcja 2
  11. if(!empty($_POST) && empty($error)){ //jeśli formularz został wysłany i nie ma błędów
  12. if(!mysqli_query($query)){$error = mysqli_error();}
  13. }
  14.  
  15. //wyświetlanie formularzy, komunikatów itp. - sekcja 3
  16. //tu wyświetlisz formularz i komunikat błędu lub komunikat o sukcesie operacji
- poczytaj o walidacji danych (standardowych i takich jak PESEL), było wiele razy na forum
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 2.10.2025 - 16:38