我有一个register.php,login.php和main.php。如何在注册后提交登录页面然后登录页面提交至主页面后重定向用户。将PHP页面重定向到另一个PHP页面
4
A
回答
3
header("Location: /login.php");
7
header("Location: /login.php");
exit;
见exit
。不要有史以来忘记这样做。如果您之后有敏感数据,任何不遵守位置标题的人都可以看到(such as some bots)。
要忘记阻止你,你可以建立一个包装类型的函数
function redirect($url) {
header('Location: ' . $url);
exit;
}
-1
`Header("Location:login.php");`
或: echo "<meta http-equiv=refresh content='0; url=login.php'>";
或:
echo "<script language='javascript'>";
echo "location='login.php';";
echo "</script>";
+2
永远不要指望Javascript执行关键任务重定向。 – 2010-04-30 03:50:53
0
你可以这样做:
func.php
<?php
function EmptyStr($value){
$str = strval($value);
$str = str_replace(" ", "", $str);
return (trim($str) == "");
}
function redirect($url) {
header('Location: ' . $url);
exit;
}
?>
register.php
<?php
include("func.php");
$username = $_POST["username];
$password = $_POST["password"];
$email = $_POST["email"];
if(!EmptyStr($username) && !EmptyStr($password) && !EmptyStr($email)){
sql = WRITE YOUR SQL SYNTAX HERE TO INSERT THE INPUT TO DB
redirect("/login.php");
}else{
$_SESSION["ErrMsg"] = "Error! All fields are required.";
}
echo $_SESSION["ErrMsg"];
$_SESSION["ErrMsg"] = "";
?>
Put your html regsitration form here
的login.php
<?php
include("func.php");
$username = $_POST["username];
$password = $_POST["password"];
if(!EmptyStr($username) && !EmptyStr($password)){
sql = WRITE YOUR SQL SYNTAX HERE TO QUERY THE USERNAME AND PASSWORD TO DB
if ($rs && !$rs->EOF) { //user found and pass match
$_SESSION["username"] = $username;
redirect("/main.php");
}else{
$_SESSION["ErrMsg"] = "Invalid username or passsword!";
}
}else{
$_SESSION["ErrMsg"] = "Error! All fields are required.";
}
echo $_SESSION["ErrMsg"];
$_SESSION["ErrMsg"] = "";
?>
Put your html login form here
main.php
<?php
include("func.php");
if(EmptyStr($_SESSION["username"])){ //check if user has session (logged in)
$_SESSION["ErrMsg"] = "You need to logged in first to view this page!";
redirect("/login.php");
}
?>
我通常在头后添加'die(“Redirecting ...”);'以确保没有其他输出。 – 2010-04-30 02:09:03
@webdestroya - 考虑到用户是否可以看到重定向失败,这是否有点让人误解? – 2010-04-30 03:52:10
用户很少看到它,如果他们这样做,只意味着他们的浏览器速度很慢,而不是重定向失败。 – 2010-04-30 03:53:44