我正在尝试向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
。
答案 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服务器。