Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] poprawne zapisanie if i else
pijanyadmin
post
Post #1





Grupa: Zarejestrowani
Postów: 128
Pomógł: 1
Dołączył: 24.10.2007

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


odbieram z formularza dane które sa wykonywane poprzez plik:

  1. <?php 
  2. // odbieramy dane z formularza 
  3. $dologowania = $_POST["user"]; // loginnazwa
  4. $loginpass = $_POST['pass'];
  5.  
  6.  
  7. //połączenie z bazą 
  8.  include("connect.php");
  9.  
  10.  /sprawdzanie loginu w bazie
  11. $waliduser = mysql_query("SELECT * FROM userdata WHERE loginkod = '$loginnazwa'");
  12. $waliduserkom = mysql_num_rows($waliduser);
  13.  
  14. if (!$waliduserkom == 1) {
  15.  }
  16.  
  17. else {
  18. echo 'Nazwa użytkownika <b>'.$dologowania.'</b> już istnieje.<BR>Wybierz inna nazwe';
  19.  
  20.  
  21. }
  22.  
  23. //sprawdzamy pole dologowania
  24. if (strlen($dologowania)<3 or strlen($dologowania)>50 or !eregi("^[a-zA-Z0-9_.]+$",$dologowania)) { 
  25.  
  26. }
  27.  
  28.  else {
  29. echo 'Login zawiera niepoprawne znaki lub jest ich za mała ilośc.<br>';
  30. } 
  31.  
  32. //sprawdzamy pole haslo
  33. if (strlen($loginpass)<6 or strlen($loginpass)>50) { 
  34.  
  35. }
  36.  
  37.  else {
  38. echo 'Hasło zawiera niepoprawne znaki lub jest ich za mała ilośc.<br>';
  39. } 
  40.  
  41.  
  42. //sprawdzanie czy pola zostały wypełnione
  43. if(empty($_POST['user'])) {
  44.  
  45. }
  46.  
  47.  else {
  48. echo 'Polę Login niezostało wypełnione';
  49. }
  50.  
  51. if(empty($_POST['pass'])) {
  52.  
  53. }
  54.  
  55.  else {
  56. echo 'Polę Hasło niezostało wypełnione';
  57. }
  58.  
  59. //dodanie do bazy
  60.  
  61.  
  62. $loinid = mysql_query("SELECT * FROM userdata");
  63. $loginids = mysql_num_rows($loinid);
  64.  
  65. $loginnr = $loginids + 1;
  66.  
  67. mysql_query("INSERT INTO userdata VALUES ('$loginnr','$dologowania','$loginnazwa','$loginpass','$data','$adresip')");
  68.  
  69. echo "Użytkownik <b>". $dologowania ."</b> został zarejestrowany.<BR>Data rejestracji: ".$data.".";
  70.  
  71.  
  72. ?>


Niestety coś jest nie tak, jeśli jeden if niezostanie spełniony skrypt wykonuje sie dalej, ale jesli np login bedzie juz w bazie, to i tak jest dodawany nawet nie zostanie sprawdzone pole hasło. Jak zapisać to poprawnie aby były sprawdzane wszytkie if'y jeśli jakiś jest wpełniony niepoprawnie, wyświetlaja sie komunikaty gdzie a skrypt doda wynik dopiero gdy wszytko bedzie spełnione?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Regyam
post
Post #2





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 8.04.2007

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


Podam tylko kawalek:
  1. <?php
  2. if(empty($_POST['user'])) {
  3.  
  4. }
  5.  
  6.  else {
  7. echo 'Polę Login niezostało wypełnione';
  8. }
  9. ?>

zamiast tego np to:
  1. <?php
  2. if(empty($_POST['user'])) {
  3.  
  4. }
  5.  
  6.  else {
  7. echo 'Polę Login niezostało wypełnione';
  8. $blad = '1';
  9. }
  10. ?>


A przy wpisie do bazy:
  1. <?php
  2. if($blad != 1){
  3. WYKONAJ ZAPYTANIE DO BAZY
  4. }else{
  5. echo 'blad';
  6. }
  7. ?>



Apropo twojego kodu to nie rozumiem kompletnie tego:
  1. <?php
  2. $loinid = mysql_query("SELECT * FROM userdata");
  3. $loginids = mysql_num_rows($loinid);
  4. $loginnr = $loginids + 1;
  5. ?>

Przeciez wystarczylo by w tabeli w bazie dac loginid jako klucz i samo by sie ustawialo na nastepne a nie tak manualnie bo jak dwoch userow siadzie na stronie i bedzie chcialo sie zarejestrowac i jeden wejdzie a drugie bedzie wlasnie wpisywal dane to bedziesz mial takie same id userow. Tzn w przypadku twojego kodu jak tam zastosujesz ifa jak ci podalem i wezmiesz to w klamre to tak sie nie powinno przydazyc ale lepiej zrob jak powiedzialem.
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: 5.10.2025 - 19:16