Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z IF i linkiem
Forum PHP.pl > Forum > Przedszkole
invx
mam taki kod
  1. <?php
  2.  
  3. if ( isset($_GET[m]) )
  4.     {
  5.          if( empty($_POST[login]) )
  6.         {
  7.             $login=1;
  8.         }
  9.         if( empty($_POST[pass]) )
  10.         {
  11.             $pass=1;
  12.         }
  13.         if( empty($_POST[pass2]) )
  14.         {
  15.             $pass2=1;
  16.         }
  17.         if( empty($_POST[pytanie]) )
  18.         {
  19.             $pytanie=1;
  20.         }
  21.         if( empty($_POST[odpowiedz]) )
  22.         {
  23.             $odpowiedz=1;
  24.         }
  25.         if( empty($_POST[kolor]) || $_POST[kolor] == wybierz )
  26.         {
  27.             $kolor=1;
  28.         }
  29.     }
  30. if ( $login !== 1 && $pass !== 1 && $pass2 !== 1 && $pytanie !== 1 && odpowiedz !== 1 && kolor !==) 
  31.     {
  32.         $action=&#092;"loguj.php?mode=add_user_save\";           //link1
  33.     }
  34.     else
  35.     {
  36.         $action=&#092;"loguj.php?mode=add_user&m=spr\";        //link2
  37.     }
  38.  
  39.  
  40.     echo&#092;"
  41.     <center>
  42.     <p align='center' class='title'>REJESTRACJA</p>
  43.     <form method='POST' action='$action'>
  44.     <table>
  45.     &#092;";
  46. #********************************************
  47. #Sprawdzanie loginu
  48. #********************************************
  49.     if ( isset($_GET[m]) )
  50.     {
  51.         if ( $login == 1 )
  52.         {
  53.             $clas=&#092;"formularz_error\";
  54.         }
  55.         else
  56.         {
  57.             $clas=&#092;"formularz\";
  58.         }
  59.     }
  60.     else
  61.     {
  62.         $clas=&#092;"formularz\";
  63.     }
  64.  
  65.     echo&#092;"
  66.     <tr class=$clas>
  67.     <td  align='right'><b>Login:</b>
  68.     </td>
  69.     <td class='formularz'><input type='text' value='$_POST[login]' name='login' size='20'><br>
  70.     </td>
  71.     </tr>
  72.     &#092;";
  73.  
  74. // reszta pul do sprawdzania
  75.  
  76. ?>

chodzi o to, ze jak by nie bylo zwsze jest spelniany pierwszy warunek, i zawsze $action, przyjmuje wartosc loguj.php?mode=add_user_save,a chce zeby dopier jesli wszystkie pola nie sa puste to przeszlo do pliku z mode=add_user_aave
Kinool
$pass !== 1 co to za twor?? jesli to ma byc negacja to tak: $pass!=1
Ludvik
Cytat
$a !== $b - Nie identyczny - TRUE jeśli $a nie jest równy $b, lub nie są tego samego typu. (tylko w php 4) 

Więc to chyba nie jest błąd.

W tym if-ie pierwszym masz w dwóch ostatnich zmiennych błąd.

  1. <?php
  2. if($login !== 1 && $pass !== 1 && $pass2 !== 1 && $pytanie !== 1 && odpowiedz !== 1 && kolor !==1)
  3. ?>

Powinno być:
  1. <?php
  2. if($login !== 1 && $pass !== 1 && $pass2 !== 1 && $pytanie !== 1 && $odpowiedz !== 1 && $kolor !==1)
  3. ?>

Chyba, że ci chodziło o stałe winksmiley.jpg Poza tym masz to troszkę niewygodnie. Jak chcesz sprawdzić błąd to musisz sprawdzać 6 zmiennych... Nie lepiej na początku zainicjować zmienną $blad z wartością 0, a potem w razie błędu przypisać jej 1? Potem wystarczy sprawdzić tylko tą zmienną.
invx
nie moge uzyc jednej zmiennej, bo potem wykorzystuje je do okreslania, co jest zle, poprawilem te zmienne, ale nic to nie zmienilo dalej zle.
stoprocent
A jakbys poprostu zamiast tego :
  1. <?php
  2.  
  3. if ( isset($_GET[m]) )
  4.     {
  5.          if( empty($_POST[login]) )
  6.         {
  7.             $login=1;
  8.         }
  9.         if( empty($_POST[pass]) )
  10.         {
  11.             $pass=1;
  12.         }
  13.         if( empty($_POST[pass2]) )
  14.         {
  15.             $pass2=1;
  16.         }
  17.         if( empty($_POST[pytanie]) )
  18.         {
  19.             $pytanie=1;
  20.         }
  21.         if( empty($_POST[odpowiedz]) )
  22.         {
  23.             $odpowiedz=1;
  24.         }
  25.         if( empty($_POST[kolor]) || $_POST[kolor] == wybierz )
  26.         {
  27.             $kolor=1;
  28.         }
  29.     }
  30.  
  31. ?>

dal :
  1. <?php
  2.  
  3. if ( isset($_GET['m']) )
  4.     {
  5.          if( empty($_POST['login']) )
  6.         {
  7.             $error=1;
  8.         }
  9.         if( empty($_POST['pass']) )
  10.         {
  11.             $error=1;
  12.         }
  13.         if( empty($_POST['pass2']) )
  14.         {
  15.             $error=1;
  16.         }
  17.         if( empty($_POST['pytanie']) )
  18.         {
  19.             $error=1;
  20.         }
  21.         if( empty($_POST['odpowiedz']) )
  22.         {
  23.             $error=1;
  24.         }
  25.         if( empty($_POST['kolor']) || $_POST['kolor'] == 'wybierz' )
  26.         {
  27.             $error=1;
  28.         }
  29.     }
  30.  
  31. //A pozniej tyklo
  32. if($error!=1){}
  33.  
  34. ?>

Bo tak czy tak nawet jak jedno pole nie bedzie wypelnione to ci wroci , a jak zadne nie bedzie puste to sie zapisze . biggrin.gif
invx
dalej to samo sad.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.