Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Walidacja formularza
Forum PHP.pl > Forum > Przedszkole
boro11
Witam!
Robię sobie walidację formularza w php, ale mam pewien problem, otóz komunikaty mi się wyświetlają niepoprawnie.

Mój kod:

  1.  
  2. if (isset($captcha) && !empty($captcha))
  3. {
  4. if($captcha==$_SESSION['code'] && !empty($captcha))
  5. {
  6. if(isset($nick) && !empty($nick))
  7. {
  8. if(isset($country) && !empty($country))
  9. {
  10. if($pmail or $ppmail)
  11. {
  12. if(isset($nick) && !empty($nick))
  13. {
  14. if(isset($pass) && !empty($pass))
  15. {
  16. if($repass==$pass && !empty($captcha))
  17. {
  18. if(isset($mail) && !empty($mail))
  19. {
  20. $zap=array(1 => 'SELECT',2 => '*',3 => 'FROM',4 => $pref.'users',5 => 'WHERE',6 => "nick='$nick'");
  21. $logs=$db->zap($zap);
  22. $row = mysql_fetch_array($logs);
  23. if($row['nick']==$nick)
  24. echo "<h2>This username is already in use, please use another.</h2></br>";
  25. else
  26. {
  27. $zap=array(1 => 'SELECT',2 => 'nick',3 => 'FROM',4 => $pref.'users',5 => 'WHERE',6 => "ip='$ip'");
  28. $log=$db->zap($zap);
  29. $row = mysql_fetch_array($log);
  30. $pass1=sha1($pass);
  31. $cod=$nick.mt_rand(1,5000);
  32. $zap=array(1 =>'INSERT INTO',2 => $pref.'users',3 => "(id,nick,pass,mail,ip,lastvisit,session,money,payemail,method,member,advice,
    register,country,buyprem,name,cod,ppmail,regforum,lr,signature)"
    ,4 => 'VALUES',5 => "('' , '$nick', '$pass1', '$mail', '$ip', '0000-00-00', '', '0.2', '$pmail', '$pay', 'standard', '$ref', '".Date("Y-m-d")."', '$country', '', '$name', '$cod', '$ppmail','0', '$lr', '')");
  33. $db->zap($zap);
  34. $zap=array(1 =>'INSERT INTO',2 => $pref.'cheaters',3 => "(id,nick,ip,much)",4 => 'VALUES',5 => "('' , '$nick', '$ip', '0')");
  35. $db->zap($zap);
  36. echo "<h2>Your account is created. You can now login.</h2></br>";
  37. $update_t = "UPDATE stats SET user=user+1";
  38. mysql_query($update_t) or die(mysql_error());
  39. }
  40. }
  41. else
  42. echo "<div class='alert alert-warning text-center'><strong>Warning!</strong> All fields are requied.</div>";
  43. }
  44. else
  45. echo "<div class='alert alert-warning text-center'><strong>Warning!</strong> Password doesn't match. Please try again.</div>";
  46. }
  47. else
  48. echo "<div class='alert alert-warning text-center'><strong>Warning!</strong> All fields are requied.</div>";
  49. }
  50. else
  51. echo "<div class='alert alert-warning text-center'><strong>Warning!</strong> All fields are requied.</div>";
  52. }
  53. else
  54. echo "<div class='alert alert-warning text-center'><strong>Warning!</strong> All fields are requied.</div>";
  55. }
  56. else
  57. echo "<div class='alert alert-warning text-center'><strong>Warning!</strong> All fields are requied.</div>";
  58. }
  59. else
  60. echo "<div class='alert alert-warning text-center'><strong>Warning!</strong> All fields are requied.</div>";
  61. }
  62. else
  63. echo "<div class='alert alert-warning text-center'><strong>Warning!</strong> Wrong captcha code. Please try again.</div>";
  64. }
  65. else
  66. echo "<div class='alert alert-warning text-center'><strong>Warning!</strong> All fields are requied.</div>";


Komunikat o tym, że należy uzupełnić wszystkie pola pojawia się ciągle, ma ktoś pomysł czemu?
com
pewnie któryś z warunków zamykasz nie tam gdzie trzeba, masz tak porobione wcięcia i długie linie że kod jest na tyle nie czytelny, że nie da się zlokalizować w nim nic... pamiętaj o zasadzie max 120 znaków na linie optymalne 80.. wink.gif
boro11
W edytorze (notepad++) to wygląda lepiej bo wcięcia są równo, forum trochę pomieszało, generalnie warunek jest dobry na sprawdzanie?
com
Ok wkleiłem w n++, jest trochę lepiej ale nadal ciężko się wgl w tym odnaleźć, generalnie to co widzę, że sprawdzasz kilkukrotnie to samo wystarczy raz wtedy parę ifów zniknie i pewnie ten problem też wink.gif
boro11
Czyli po prostu do jednego if'a "dodać" inne if'y za pomocą && ? Oczywiście chodzi mi o same warunki.

Trochę go ukróciłem według Twojej rady, ale nadal to samo:

  1. if (isset($captcha) && !empty($captcha))
  2. {
  3. if($captcha==$_SESSION['code'] && !empty($captcha))
  4. {
  5. if(isset($nick) && !empty($nick) && isset($country) && !empty($country) && $pmail or $ppmail && isset($nick) && !empty($nick) && isset($pass) && !empty($pass))
  6. {
  7. if($repass==$pass && !empty($captcha))
  8. {
  9. if(isset($mail) && !empty($mail))
  10. {
  11. $zap=array(1 => 'SELECT',2 => '*',3 => 'FROM',4 => $pref.'users',5 => 'WHERE',6 => "nick='$nick'");
  12. $logs=$db->zap($zap);
  13. $row = mysql_fetch_array($logs);
  14. if($row['nick']==$nick)
  15. {
  16. echo "<h2>This username is already in use, please use another.</h2></br>";
  17. }
  18. else
  19. {
  20. $zap=array(1 => 'SELECT',2 => 'nick',3 => 'FROM',4 => $pref.'users',5 => 'WHERE',6 => "ip='$ip'");
  21. $log=$db->zap($zap);
  22. $row = mysql_fetch_array($log);
  23. $pass1=sha1($pass);
  24. $cod=$nick.mt_rand(1,5000);
  25. $zap=array(1 =>'INSERT INTO',2 => $pref.'users',3 => "(id,nick,pass,mail,ip,lastvisit,session,money,payemail,method,member,advice,
    register,country,buyprem,name,cod,ppmail,regforum,lr,signature)"
    ,4 => 'VALUES',5 => "('' , '$nick', '$pass1', '$mail', '$ip', '0000-00-00', '', '0.2', '$pmail', '$pay', 'standard', '$ref', '".Date("Y-m-d")."', '$country', '', '$name', '$cod', '$ppmail','0', '$lr', '')");
  26. $db->zap($zap);
  27. $zap=array(1 =>'INSERT INTO',2 => $pref.'cheaters',3 => "(id,nick,ip,much)",4 => 'VALUES',5 => "('' , '$nick', '$ip', '0')");
  28. $db->zap($zap);
  29. echo "<h2>Your account is created. You can now login.</h2></br>";
  30. $update_t = "UPDATE stats SET user=user+1";
  31. mysql_query($update_t) or die(mysql_error());
  32. }
  33. }
  34. else
  35. {
  36. echo "<div class='alert alert-warning text-center'><strong>Warning!</strong> All fields are requied.</div>";
  37. }
  38. }
  39. else
  40. {
  41. echo "<div class='alert alert-warning text-center'><strong>Warning!</strong> Password doesn't match. Please try again.</div>";
  42. }
  43. }
  44. else
  45. {
  46. echo "<div class='alert alert-warning text-center'><strong>Warning!</strong> All fields are requied.</div>";
  47. }
  48. }
  49. else
  50. {
  51. echo "<div class='alert alert-warning text-center'><strong>Warning!</strong> Wrong captcha code. Please try again.</div>";
  52. }
  53. }
  54. else
  55. {
  56. echo "<div class='alert alert-warning text-center'><strong>Warning!</strong> All fields are requied.</div>";
  57. }


Nawiasy są dobrze prawie na 100%, notepad dobrze je podświetla jak sprawdzałem parokrotnie :/

Edit: Okej ostatnie else nie było potrzebne smile.gif
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-2025 Invision Power Services, Inc.