运行并指向另一个文件的php文件

运行并指向另一个文件的php文件,php,redirect,Php,Redirect,我正在尝试创建一个主页。一旦用户来到站点并输入用户名和密码,数据将被发布到checklogin.php文件中,并在其中验证用户输入的数据。是否有一种方法,在它检查了数据并且一切正常后,它会将用户重定向到另一个页面,即主页?我想这样做,以便我的整个checklogin脚本不在主页上。然后,如果用户位于站点的不同部分,并且他们单击home,则检查登录脚本将再次运行,并且将失败。我知道我可以使用会话变量来查看他们是否已经登录,如果他们已经登录,我可以绕过主页上的checklogin脚本,但这是正确的方

我正在尝试创建一个主页。一旦用户来到站点并输入用户名和密码,数据将被发布到checklogin.php文件中,并在其中验证用户输入的数据。是否有一种方法,在它检查了数据并且一切正常后,它会将用户重定向到另一个页面,即主页?我想这样做,以便我的整个checklogin脚本不在主页上。然后,如果用户位于站点的不同部分,并且他们单击home,则检查登录脚本将再次运行,并且将失败。我知道我可以使用会话变量来查看他们是否已经登录,如果他们已经登录,我可以绕过主页上的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();

一旦用户成功通过用户名和密码字段的身份验证,您需要使用会话来存储与用户相关的信息

  • 一旦用户通过身份验证,您就可以重定向到成功页面,我的意思是允许他们访问页面
  • 若用户未通过身份验证,请重新将其重定向到登录页面
  • 若会话过期,请重新将其重定向到登录页面
谢谢 阿米特

是的

一旦用户成功通过用户名和密码字段的身份验证,您需要使用会话来存储与用户相关的信息

  • 一旦用户通过身份验证,您就可以重定向到成功页面,我的意思是允许他们访问页面
  • 若用户未通过身份验证,请重新将其重定向到登录页面
  • 若会话过期,请重新将其重定向到登录页面
谢谢 阿米特

只要根据需要更改url即可

只要根据需要更改url。

是的,这听起来很正确。 因此,您的主页上会有一个带有login&passw的脚本,将信息发布到checklogin.php

在那里,您检查数据是否正确,如果正确,您可以使用会话将他设置为已登录。 之后,使用header()函数将他重定向到主页

请注意,如果在html内容之后设置header()函数,则该函数将不起作用,但在您的示例中,checklogin.php中没有html,对吗?;)

是的,听起来不错。 因此,您的主页上会有一个带有login&passw的脚本,将信息发布到checklogin.php

在那里,您检查数据是否正确,如果正确,您可以使用会话将他设置为已登录。 之后,使用header()函数将他重定向到主页


请注意,如果在html内容之后设置header()函数,则该函数将不起作用,但在您的示例中,checklogin.php中没有html,对吗?;)

看看这个,我想它会帮助你理解这里的逻辑,这是用户可以放置登录信息的第一个登录页面


电子邮件
密码

看看这个,我想它会帮助您理解逻辑,这里是用户可以放置登录信息的第一个登录页面


电子邮件
密码


与其重新发明轮子,不如研究类似laravel的框架。如果你选择自己做这件事,首先要了解其他主要框架是如何做到这一点的。您可以使用header()重定向请求。请看@Raphael我不是在试图重新发明轮子,我只是还不熟悉任何框架。我看到了header函数,并考虑使用它。同意拉斐尔的观点。使用此基本卫生功能的框架。它可能比99.9%的php开发者在laravel的SOlooking中实现的登录函数更好更快。看起来它可能只是使用raphael描述的header函数。我是php新手,希望在开始使用框架之前对php有更多的了解。与其重新发明轮子,不如研究一下类似laravel的框架。如果你选择自己做这件事,首先要了解其他主要框架是如何做到这一点的。您可以使用header()重定向请求。请看@Raphael我不是在试图重新发明轮子,我只是还不熟悉任何框架。我看到了header函数,并考虑使用它。同意拉斐尔的观点。使用此基本卫生功能的框架。它可能比99.9%的php开发者在laravel的SOlooking中实现的登录函数更好更快。看起来它可能只是使用raphael描述的header函数。我是php新手,希望在开始使用框架之前对php有更多的了解。@ratrace123这将为您提供更多信息,@ratrace123这将为您提供更多信息,我在尝试将其重定向到主页时遇到问题。我认为这是因为如果登录信息不正确,那么它将回显“不正确的登录”。这会停止重定向,即使登录信息是正确的,没有输出?我不这么认为。但是我建议,除了在空白页面上输出“不正确的登录”之外,您也可以在这里使用重定向,但是使用像header(“homepage.php?bad_login”)这样的_GET变量,您可以发布一些代码,以便我们查看出了什么问题吗?好的,我添加了我的代码,如果这被认为是输出,我可以去掉所有的echo命令,并重定向到主页。我在试图让它重定向到主页时遇到了问题。我认为这是因为如果登录信息不正确,那么它将回显“不正确的登录”。这会停止重定向,即使登录信息是正确的,没有输出?我不这么认为。但是我建议,除了在空白页面上输出“不正确的登录”之外,您还可以在这里使用重定向,但是使用一个_GET变量,比如header
header("Location:http://localhost/form2.php");
exit();