HTML表单正在出现,即使PHP“;如果“;语句不满足


HTML Form is showing up even though PHP "if" statement is not met

我对编程(尤其是PHP)很陌生。无论如何,我已经尝试创建一个同时使用PHP和HTML的登录页面一段时间了。

主要的想法是,如果这是用户第一次进入登录页面,那么他们必须首先单击"提交"按钮;然后它将重新加载页面,但现在将有一个用户将在其中输入信息以调用另一个PHP脚本。

我尝试了以下代码来实现这一点:

          <form method = "post"
                action = "Sign-In2.html">

          <p>
          <br />
            <input type = "submit"
                   name = "returnUser"
                   value = "Click To Log In">
          </P>
          </form>
          <?php
          if (isset($_POST['returnUser'])) {
          ?>    
          <form method = "post"
                action = "Login2.php">
            <p>
            <br />
            In Honor Of:
            <input type = "text"
                   name = "userName"
                   value = "">
            <br />
            EDGE Code:
            <input type = "password"
                   name = "edgeCode"
                   value = "">
            <br /><br />
            <input type = "checkbox"
                   name = "rememberUser"
                   value = "remembered">Remember Me
            <br />
            <input type = "submit"
                   value = "Log Me In">
            </p>
            </form>
          <?php
          } else {
          } //end if
          ?>

从我在网上(从这个网站和其他网站)读到的所有内容来看,我觉得我的代码包括两个表单和一个PHP"if"语句。

FIRST表单只提供了一个名为"returnUser"的"提交"按钮,并重新加载页面(名为Sign-In2.html)

然后PHP跳转并运行一个条件检查。如果第一个表单中的"提交"按钮实际上已被单击,则第二个表单将运行。如果它没有被点击,那么什么也不会发生。

所以我的问题是,当我从localhost WAMPserver运行这段代码时,两个表单都会出现!我无法理解或找出为什么当我加载页面时,不仅第一个表单,而且两个表单都出现了!我只想显示第一个提交按钮,这样我就可以点击它并用第二个表单中的输入字段刷新页面:(如有任何帮助,我们将不胜感激!

注意:第二个表单和它的phpscript都运行得没有问题。

您想要显示一个或另一个表单,因此使用if语句来选择要显示的表单。您的代码目前所做的是显示第一个表单,然后如果您发送了$_POST值,则显示第二个。

将代码更改为以下内容将显示一种或另一种形式,具体取决于是否设置了$_POST

<?php
if (isset($_POST['returnUser']))
{
?>    
    <form method = "post"
    action = "">
    <p>
    <br />
    In Honor Of:
    <input type = "text"
       name = "userName"
       value = "">
    <br />
    EDGE Code:
    <input type = "password"
       name = "edgeCode"
       value = "">
    <br /><br />
    <input type = "checkbox"
       name = "rememberUser"
       value = "remembered">Remember Me
    <br />
    <input type = "submit"
       value = "Log Me In">
    </p>
    </form>
<?php
} 
else 
{
?>
    <form method = "post"
    action = "">

    <p>
    <br />
    <input type = "submit"
       name = "returnUser"
       value = "Click To Log In">
    </P>
    </form>
    <?php
} //end if
?>

将文件名Sign-In2.html更改为Sign-In2.php,并执行相同的表单操作。

这是一个普通的.html页面吗?

默认情况下,PHP不在这些标签上运行,所以<?php ?>标签被解释为普通的HTML标签。

将文件的扩展名更改为PHP以解决此问题。