使用用户已经在其注册中提供的信息(当前位于SQL数据库中),当用户登录并单击以转到表单时,我想要一些的表单已被预先填充。所述登录表格是这样:使用Cookie预填充PHP表格
<?php
session_start();
// check for required fields from the form
if ((!isset($_POST['email'])) || (!isset($_POST['password']))) {
header("Location: userlogin.html");
exit;
}
//connect to server and select database
$mysqli = mysqli_connect("localhost", "user", "password", "database")
or die(mysqli_error());
// use mysqli_real_escape_string to clean the input
$email = mysqli_real_escape_string($mysqli, $_POST['email']);
$password = mysqli_real_escape_string($mysqli, $_POST['password']);
// Create and issue the query
$sql = "SELECT username FROM frmak_form_1 WHERE
email = '".$email."' AND
password = '".$password."'";
$result = mysqli_query($mysqli, $sql) or die(mysqli_error($mysqli));
//get the number of rows in the result set; should be 1 if a match.
if (mysqli_num_rows($result) == 1) {
// if authorized, get value of username
while ($info = mysqli_fetch_array($result)) {
$username = stripslashes($info['username']);
}
$_SESSION['user']= $info['username'];
$_SESSION['login_until'] = time() + 60 * 60; // login expires in 1 hour
$display_block = "<p>Welcome, ".$username."!</p>
<br /> <br />
<a href='submitReview.php'>Click Here to Submit a Review!</a>";
}
else {
header("Location: userlogin.html");
exit;
}
mysqli_close($mysqli);
?>
<!DOCTYPE html>
<html>
<head>
<title>User Login REDIRECT!!!</title>
</head>
<body>
<?php echo $display_block; ?>
</body>
</html>
那么“submitReview.php”文件是:
<?php
session_start();
$s = &$_SESSION; // Login status is ON and has NOT yet expired
$isLoggedIn = isset($s['login_until']) && $s['login_until'] > time();
if($isLoggedIn):
$username = $s['user'];
$s['login_until'] = time() + 60 * 60; // extend login expiration to an hour from now.
else
unset($s['login_until'], $['user']);
$username = null;
endif;
exit;
}
?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>
<label>username</label>
<br />
<input name="usrnm" id="usrnm" type="text" value="<?php echo $username; ?>"/>
<br />
</p>
</form>
</body>
</html>
在上面的例子中,我只试图显示在用户名形式,因为这是我希望预填充为文本字段的唯一部分。其他人是一个单选按钮和一个复选框字段,我知道这些将需要更复杂的论证,所以我只是试图让最简单的一个首先工作。
如果我所做的甚至不是远程应该做什么,有人请指导我为这样的事情做一个好的教程吗?我试图教自己PHP和MySQL,所以有时候它有点令人难以置信。谢谢!
如果你错过了它,你没有在第一个代码块中修改你网站的名字。 – 2017-07-29 23:54:37
我更新了代码以反映下面答案中的建议......仍然无法正常工作。我很确定我有一些语法错误,{}; ():等等......正如我所说的,我试图自己学习这一切,所以请耐心等待...... –