解决php和html混写,form表单未提交,php就执行的问题

本文探讨了PHP与HTML混写时的执行顺序问题,详细解释了为何PHP代码会被优先执行,并提供了两种解决方案:一是使用if条件判断进行表单提交控制;二是将PHP与HTML代码分离到不同文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题: php和html混写,文件存储为php文件,无论php是写在html之前,还是之后,此时在浏览器中打开,展现的是php先执行的结果,如图

1356228-20181106115744914-1091200938.png
代码如下

<?php
    $username = '';
    $userpwd = '';
    session_start();
    if(isset($_POST['username'])){
        $username = $_POST['username'];
    }
    if(isset($_POST['userpwd'])){
        $userpwd = $_POST['userpwd'];
    }
    //简单校验用户名和密码不为空
       if(empty($username)){
          eixt('<script>alert("错误:用户名不能为空")</script>');
      }
      if(empty($userpwd)){
          eixt('<script>alert("错误:密码不能为空")</script>');
      }
    
?>
<!DOCTYPE html>
<html>
<head>
    <title>newLife</title>
</head>
<body>
    <div class="login">
        <h1>欢迎来到newLife</h1>
        <div>
            <form method="post" action="login.php">
                <ul>
                    <li>
                        <label for="loginName">用户名</label>
                        <input type="text" name="username" id="loginName" placeholder="请输入登录名" />
                    </li>
                    <li>
                        <label for="loginPwd">密&nbsp;&nbsp;&nbsp;码</label>
                        <input type="password" name="userpwd" id="loginPwd" placeholder="请输入密码"/>
                    </li>
                    <li>
                        <input type="submit"  name="submit"value="登录"  />
                    </li>
                </ul>
            </form>
        </div>
    </div>
</body>
</html>

问题原因

首先文件为php文件,在php文件中php代码的优先级高于html,因此会先执行php代码

解决方案

1.在php文件中最开始的位置用if做一个判断,判断表单提交了,再执行php代码

if(isset($_POST['submit'])){
 提交后需要执行的代码
}

2.php和html分开写,写在不同的文件中

如果你有其他更换好的方法,欢迎分享

转载于:https://www.cnblogs.com/MrBear/p/9914615.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值