在提交表单后,在输入字段中保留一个变量


Keep a variable in input field after submitting form

我试图保持一个用户的电子邮件在提交表单后的输入字段,并有这个工作以前,但改变了很多代码从mysql mysqli后,电子邮件不留在提交后的输入框。

PhP代码

<?php
session_start();
include ('connection.php');
$email = isset ($_POST['email'])&& isset ($_POST['email']) ? $_POST['email'] : false;
if ($email){
    $sql = "SELECT * FROM users WHERE email = '$email'";
    $sql2 = mysqli_query($db, $sql);
}
?>

<form class ="form"  method ="POST" enctype="application/x-www-form-urlencoded">
Email:<input type="email" name="email" maxlength="30" value="<?php $email ?>" placeholder ="Enter Your Email"/>
<input id="button"type="submit" value="Get Security Question" name ="submit"/>

有谁知道为什么这个不再工作了吗?

您的代码中缺少echo。就像这样修改一下。

<input type="email" name="email" maxlength="30" value="<?php echo $email ?>" placeholder ="Enter Your Email"/>

或echo

的缩写形式
<input type="email" name="email" maxlength="30" value="<?= $email ?>" placeholder ="Enter Your Email"/>

更改您的代码到,您在哪里缺少echo功能。

Email:<input type="email" name="email" maxlength="30" value="<?php echo $email ?>"

我还想建议修改

$email = isset ($_POST['email'])&& isset ($_POST['email']) ? $_POST['email'] : false;

$email = !empty($_POST['email']) ? $_POST['email'] : false;

效果是一样的,但它的方式更干净,第二个&& isset ($_POST['email'])是不必要的。