Autor Zpráva
technik
Profil
Mám tento kód:

<?php
if (isset($_POST['submit'])){
	if (isset($_POST['old_pass'])){
		$old=$_POST['old_pass'];
	}	
	else{
		echo "Nezadal jste staré heslo";
		echo "<br>";
	}
	
	if (isset($_POST['new_pass'])){
		$new=$_POST['new_pass'];
	}	
	else{
		echo "Nezadal jste nové heslo";
		echo "<br>";
	}
	
	if (isset($_POST['new_pass1'])){
		$new1=$_POST['new_pass1'];
	}	
	else{
		echo "Nezadal jste kontrolní heslo";
		echo "<br>";
	}
	if ($new == $new1){
		$pass=$new;
	}
	else{
		echo "Hesla se neschodují";
		echo "<br>";
	}
}
else{
echo"<form method='post' action='#' name='edit_pass'>";	
echo"<table>";
echo"<tr><td>Staré heslo:</td><td><input type='text' name='old_pass' size='44'></td></tr>";
echo"<tr><td>Nevé heslo:</td><td><input type='text' name='new_pass' size='44'></td></tr>";
echo"<tr><td>Znovu:</td><td><input type='text' name='new_pass1' size='44'></td></tr>";
echo"<tr><td><input type='submit' name='submit' value='Změnit'></td></tr>";
echo"</table>";
echo"</form>";
} 
?>


Čistě teoreticky by to při nezadání některé z položek měl zahlásit chybu. To se ovšem neděje. Nevíte prosím někdo proč?

Díky T
Taps
Profil
technik:
zkus menší úpravu
<?php
if (isset($_POST['submit'])){
    if (!empty($_POST['old_pass'])){
        $old=$_POST['old_pass'];
    }    
    else{
        echo "Nezadal jste staré heslo";
        echo "<br>";
    }
    
    if (!empty($_POST['new_pass'])){
        $new=$_POST['new_pass'];
    }    
    else{
        echo "Nezadal jste nové heslo";
        echo "<br>";
    }
    
    if (!empty($_POST['new_pass1'])){
        $new1=$_POST['new_pass1'];
    }    
    else{
        echo "Nezadal jste kontrolní heslo";
        echo "<br>";
    }
    if ($new == $new1){
        $pass=$new;
    }
    else{
        echo "Hesla se neschodují";
        echo "<br>";
    }
}
else{
echo"<form method='post' action='#' name='edit_pass'>";    
echo"<table>";
echo"<tr><td>Staré heslo:</td><td><input type='text' name='old_pass' size='44'></td></tr>";
echo"<tr><td>Nevé heslo:</td><td><input type='text' name='new_pass' size='44'></td></tr>";
echo"<tr><td>Znovu:</td><td><input type='text' name='new_pass1' size='44'></td></tr>";
echo"<tr><td><input type='submit' name='submit' value='Změnit'></td></tr>";
echo"</table>";
echo"</form>";
} 
?>
technik
Profil
Taps:
Díky. Ještě dotaz. Je
 if (empty($_POST['new_pass'])){
stejné jako
if (!isset($_POST['new_pass'])){

nebo je v tom nějaký rozdíl

T.
Keeehi
Profil
technik:
Rozdíl v tom je. Přesně si to zjistíš, když klepneš na odkazy, které z nich vytvořil zdejší zvýrazňovač.
laicky: empty kontroluje "prázdnost" proměnné, isset kontroluje, zda proměnná "je už použitá".
Taps
Profil
technik:
IsSet - Testuje jestli proměnná existuje
empty - Testuje zda je testovaná proměnná prázdná

Vykřičník před funkcí znamená její negaci
technik
Profil
Děkuji za vysvětlení.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0