0

一个 php die 函数问题。当我使用 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>
4

1 回答 1

3

您应该从上到下阅读您的脚本,包括<?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>

另请注意,我使用“==”进行比较,而不是“=”。

于 2012-12-06T02:40:20.437 回答