在HTML中调用PHP变量

时间:2016-06-21 15:49:20

标签: javascript php html post

我正在尝试向HTML页面显示密码或移动无效语句的输出。这是我的代码:

<?php
  session_start();
  if(isset($_POST['register'])) {
    $phone = ($_POST['tphone']);
    $upass = ($_POST['tpassword']);     
    if (!@preg_match('/^(?=.*\d{3,})(?=.*[A-Za-z]{5,})[0-9A-Za-z!@#$%]{8,32}$/', $upass)) {
      $upass = 'You have enter an invalid password';
    } 
    else if ( !@ereg( "^[0-9]{3}-[0-9]{7}$", $phone)) {
      $mobile = 'Invalid mobile'
    }
  }
?>
<html>
  <body>
    <p><?php echo $upass ?>.</p>
    <form method="post">
      <input type="text" name="tphone" placeholder="First Name" class="form-name"  required>
      <input type="password" name="tpassword" placeholder="Last Name" class="form-name2" required>
      <button type="submit" name = "register" class="btn-register">Register</button>  
    </form>
  </body>
</html>

这里的问题是我应该如何使用PHP中的HTML变量,就像我在$upass标记中定义p一样。我还想在单击注册按钮时设置此变量。

现在当我echo $upass时,如果我没有选择注册按钮,它会显示Undefined variable

2 个答案:

答案 0 :(得分:0)

只需将错误消息分配给变量,然后检查该变量是否不为空。如果其中包含字符串值,则显示<p>并在其中显示错误消息。

<?php
session_start();
$errorMessage = null;

if (isset($_POST['register'])) {
    $phone = $_POST['tphone'];
    $upass = $_POST['tpassword'];     

    if (!@preg_match('/^(?=.*\d{3,})(?=.*[A-Za-z]{5,})[0-9A-Za-z!@#$%]{8,32}$/', $upass)) {
        $errorMessage = 'You have enter an invalid password';
    } elseif (!@ereg( "^[0-9]{3}-[0-9]{7}$", $phone))  {
        $errorMessage = 'Invalid mobile'
    }
}
?>
<html>
<body>
     <?php if ($errorMessage) { ?>
       <p><?php echo $errorMessage; ?></p>
     <?php } ?>
     <form method="post">
        <input type="text" name="tphone" placeholder="First Name" class="form-name"  required>
        <input type="password" name="tpassword" placeholder="Last Name" class="form-name2" required>
        <button type="submit" name = "register" class="btn-register">Register</button>  
      </form>
</body>
</html>

答案 1 :(得分:0)

您需要了解PHP是在Web服务器上运行的,以生成发送到浏览器的HTML页面。

这意味着当PHP完成运行时是用户收到其输出。如果您在用户操作后需要执行某些操作,则必须在前端(浏览器)中执行某些操作以触发它,通常使用JavaScript。

如果您希望前端然后发送数据或在Web服务器上查询某些内容,您需要使用AJAX(或其变体)或WebSockets来允许来自浏览器的JavaScript直接将请求传递给没有重新加载页面的Web服务器。