我正在尝试创建主页。一旦用户访问该站点并输入用户名和密码,数据将被发布到checklogin.php文件,在该文件中,它将验证用户输入的数据。有没有一种方法,它检查数据后,它是好的,然后它将用户重定向到另一个主页页面?我想这样做,以便我的整个checklogin脚本不在主页上。然后,如果用户位于站点的不同部分,并且他们单击了主页,则检查登录脚本将再次运行,并且将失败。我知道我可以使用会话变量来查看他们是否已经登录,然后以某种方式绕过主页上的checklogin脚本(如果他们已经登录),但这是正确的方法吗?
<?php
include'vive_fns.php';
$v_username = trim($_POST['viveuser']);
$v_password = trim($_POST['vivepass']);
if(!isset($_POST['viveuser'])|| empty($v_username)){
echo"Please enter a username"; //should change to redirect
die();
}
elseif(!isset ($v_username) || empty($v_username)) {
echo "Please enter a password"; //should change to redirect
die();
}
//if all data is entered we want to check the password
$mysqli = connect_db();
//set database query
$sql1 = "SELECT password FROM vive_user WHERE username = "."'$v_username'";
//check to make sure a result is returned
if(!$result1 = $mysqli->query($sql1)){
echo 'Could not query database. Please try again later.';//should change to redirect
die();
}
else {
$data = $result1->fetch_array(MYSQLI_NUM);
$db_pass = $data[0];
}
if($db_pass !== $v_password){
$title = 'Incorrect Login Info';
//do_html_header($title); this sets the page title
echo"Incorrect Password";//should change to redirect
die();
}
//if everything checks out need to establish user info
$title = 'Home';
do_html_header($title);
//echo"Logged In";
session_start();
$_SESSION['valid_user']=$v_username;
// at this point i want to redirect
header("Location: home.php");
exit();
答案 0 :(得分:1)
header("Location:http://localhost/form2.php");
exit();
只需根据需要更改网址即可。
答案 1 :(得分:1)
检查这个我觉得它会帮助你站在这里的逻辑是第一个登录页面,用户可以放置登录信息
<form action="reg_auth.php" method="post" accept-charset="utf-8">
<div id="inrlog" style="display:none;">
<div class="form-group required">
<label for="UserFirstname">Email</label>
<input name="firstname" class="form-control" maxlength="255" type="text" id="UserFirstname" required="required"/>
</div>
<div class="form-group required">
<label for="UserLastname">Password</label>
<input name="lastname" class="form-control" maxlength="255" type="password" id="UserLastname" required="required"/>
</div>
</div>
</div>
<div class="modal-footer">
<p style="text-align:left;"></p><div class="submit"><input class="btn btn-primary" title="Login" name="login" type="submit" value="Login"/></div><div style="display:none;"></div></form>
这里是验证用户信息验证的页面代码
<?php
if($_POST['login']){
$email = $_POST['email'];
$pwd = $_POST['pwd'];
$m = mysql_fetch_assoc(mysql_query("select * from `register` where `email`='$email' and `pwd`='$pwd'"));
if(!empty($m['email'])){
if($m['status'] == 1){
$_SESSION['login'] = $m['id'];
$_SESSION['displayaname'] = $m['fname'].' '.$m['lname'];
header("Location: myaccount.php");
}else{
header("Location: reg_auth.php?msg=4");
}
exit();
}else{
unset($_SESSION['login']);
unset($_SESSION['displayaname']);
header("Location: reg_auth.php?msg=3");
exit();
}
}
if($_GET['msg'] == 2){
$msg = "Email Already Exists! Please Try Some Different Email.";
}
if($_GET['msg'] == 3){
$msg = "Invalid Username or Password! Please Try Again.";
}
?>
答案 2 :(得分:0)
是的,
使用用户名和密码字段成功验证用户后,您需要使用会话存储与用户相关的信息。
由于 阿米特
答案 3 :(得分:0)
是的,这听起来不错。 所以你的主页上会有一个带有login&amp; passw的脚本,将信息发布到你的checklogin.php。
在那里,您检查数据是否正确,如果它们是正确的,您使用会话将其设置为已登录。 之后,您使用header()函数将其重定向到主页。
请注意,如果在html内容之后设置header()函数将无效,但在您的情况下,checklogin.php中没有html对吗? ;)