Вопрос функции матрицы φp. когда я использую die (), он очищает все элементы страницы. Есть ли способ эхо-сообщения об ошибке и не очищать всю страницу. Похоже на переход на другую страницу, когда я использую die (), чтобы остановить код и вызвать сообщение.
Вот мой код
<?PHP $message=""; if(isset($_POST['submit'])){ $name=$_POST['name']; $password=$_POST['password']; //Field check if($name && $password){$message=$name . $password;} else{die($message="please enter name and password");} //Check name if($name=="alex" && $password==123){$message="Welcome ". $name;} else{$message="wrong user or password";} } ?> <html> <p>SIGN UP</p> <form action="testing.php" method="POST"> <input type="text" name="name" placeholder="Enter Name" /> <input type="password" name="password" placeholder="Enter Password"/> <input type="submit" name="submit" value="Sign up"/> </form> <div><?PHP echo $message?></div> </html>
Вы должны прочитать свой сценарий сверху вниз, включая что-либо за пределами <?php ?>
. При использовании die()
ваш скрипт останавливается тогда и там.
<?php $a = "something"; ?> <html> <p><?php echo $a?></p> <?php die(); ?> <p>Never here</p> </html>
Выпустит
<html> <p>something</p>
В вашем случае делайте
<?php if(isset($_POST['submit'])){ $name=$_POST['name']; $password=$_POST['password']; //Field check if(!$name || !$password) { $message="please enter name and password"); //Check name and password } elseif ($name=="alex" && $password=="alex1") { $message="Welcome ". $name; } else { $message="Username or password incorrect" } ?> <html> <p>SIGN UP</p> <form action="testing.php" method="POST"> <input type="text" name="name" placeholder="Enter Name" /> <input type="password" name="password" placeholder="Enter Password"/> <input type="submit" name="submit" value="Sign up"/> </form> <div><?php echo $message?></div> </html>
Также обратите внимание, что я использую '==' для сравнения, а не '='.