使用 mysqli 准备语句后页面未重定向
page is not redirecting after using mysqli prepare statement
$stmt = $con->prepare("SELECT * FROM admin WHERE email = ? AND password = ? ");
$stmt->bind_param('ss', $_POST['username'], $_POST['password']);
$result = $stmt->execute();
$stmt->store_result();
if ($result->num_rows > 0) {
while ($member = $result->fetch_assoc()) {
$_SESSION['SESS_MEMBER_ID'] = $member['id'];
$_SESSION['SESS_LAST_NAME'] = $member['email'];
$_SESSION['SESS_FIRST_NAME'] = $member['password'];
session_write_close();
header("location:home.php");
}
} else {
$errmsg_arr[] = 'Wrong Username or Password';
$errflag = true;
if ($errflag) {
$_SESSION['ERRMSG_ARR'] = $errmsg_arr;
session_write_close();
header("location: index.php");
}
}
html 形式 :
<form role="form" action="action.php" method="post" enctype="multipart/form-data">
<fieldset>
<div class="form-group">
<input class="form-control" placeholder="User Name" name="username" type="text" autofocus>
</div>
<div class="form-group">
<input class="form-control" placeholder="Password" name="password" type="password" value="">
</div>
<input type="submit" value="Log In" name="submit" class="btn btn-lg btn-success btn-block">
</fieldset>
</form>
这段代码没有重定向到 home.php.. 它显示了错误的用户名或密码.. mysqli 的新手准备 statement.So 这里有任何帮助
我正在阅读http://php.net/manual/en/mysqli.quickstart.prepared-statements.php
看来这是正确的方法:
$stmt = $con->prepare("SELECT * FROM admin WHERE email = ? AND password = ? ");
$stmt->bind_param('ss', $_POST['username'], $_POST['password']);
$stmt->execute();
$result = $stmt->get_result();
另外,This page说:
Execute: Returns TRUE on success or FALSE on failure.
Execute 不是 return 您的结果,而是一个布尔值。
$stmt = $con->prepare("SELECT * FROM admin WHERE email = ? AND password = ? ");
$stmt->bind_param('ss', $_POST['username'], $_POST['password']);
$result = $stmt->execute();
$stmt->store_result();
if ($result->num_rows > 0) {
while ($member = $result->fetch_assoc()) {
$_SESSION['SESS_MEMBER_ID'] = $member['id'];
$_SESSION['SESS_LAST_NAME'] = $member['email'];
$_SESSION['SESS_FIRST_NAME'] = $member['password'];
session_write_close();
header("location:home.php");
}
} else {
$errmsg_arr[] = 'Wrong Username or Password';
$errflag = true;
if ($errflag) {
$_SESSION['ERRMSG_ARR'] = $errmsg_arr;
session_write_close();
header("location: index.php");
}
}
html 形式 :
<form role="form" action="action.php" method="post" enctype="multipart/form-data">
<fieldset>
<div class="form-group">
<input class="form-control" placeholder="User Name" name="username" type="text" autofocus>
</div>
<div class="form-group">
<input class="form-control" placeholder="Password" name="password" type="password" value="">
</div>
<input type="submit" value="Log In" name="submit" class="btn btn-lg btn-success btn-block">
</fieldset>
</form>
这段代码没有重定向到 home.php.. 它显示了错误的用户名或密码.. mysqli 的新手准备 statement.So 这里有任何帮助
我正在阅读http://php.net/manual/en/mysqli.quickstart.prepared-statements.php
看来这是正确的方法:
$stmt = $con->prepare("SELECT * FROM admin WHERE email = ? AND password = ? ");
$stmt->bind_param('ss', $_POST['username'], $_POST['password']);
$stmt->execute();
$result = $stmt->get_result();
另外,This page说:
Execute: Returns TRUE on success or FALSE on failure.
Execute 不是 return 您的结果,而是一个布尔值。