运行的php文件,然后指向另一个文件

时间:2016-01-29 04:11:57

标签: php redirect

我正在尝试创建主页。一旦用户访问该站点并输入用户名和密码,数据将被发布到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();

4 个答案:

答案 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对吗? ;)