我有2个php页面。 1,用于登录表单,第2个php页面是信息。
我希望第二个php页面只有在用户从第一页重定向重定向时才能访问,并阻止用户直接访问它。
让我们说第一个php文件名为" form.php"和我希望阻止直接访问的第二个php文件名为" info.php"。
有什么建议吗?
到目前为止,请参阅下面的代码(我的代码无效)我得到了白色的空白页
form.php的
if(isset($_POST['submit'])){
if((isset($_POST['username']) && $_POST['username'] != '') && (isset($_POST['email']) && $_POST['email'] != '')){
$_SESSION["username"] = $_POST['username'];
$_SESSION["email"] = $_POST['email'];
$loginform = (strlen($_SESSION["username"])>0 && strlen($_SESSION["email"])>0);
if($loginform){
$_SESSION['login'] = 1;
echo("<script>location.href = '/info/';</script>");
}
}
}
info.php的
if(!isset($_SESSION['login']){
echo("<script>location.href = '/login/';</script>");
}
答案 0 :(得分:1)
如果session
成功,请在login.php
页面上login
开始,并session
variable
设置为header
login.php
login.php
<?php
session_start();// at top of page
..... after login means all your query running
if(querysuccess){
$_SESSION['loggedIn'] = 1;
header('location:info.php');
}
info.php// here check if session variable not 1 then redirect again to login.php
<?php
session_start();
if(!SESSION['loggedIn']){
header('location:login.php');
}
else{
// just do whatever you want
}
?>
start
更新回答
表单页面顶部的 session
<?php
session_start();// should be at top
if(isset($_POST['submit'])){
if((isset($_POST['username']) && $_POST['username'] != '') && (isset($_POST['email']) && $_POST['email'] != '')){
$_SESSION["username"] = $_POST['username'];
$_SESSION["email"] = $_POST['email'];
$loginform = (strlen($_SESSION["username"])>0 && strlen($_SESSION["email"])>0);
if($loginform){
$_SESSION['login'] = 1;
echo("<script>location.href = '/info/';</script>");
}
}
}
info.php
你忘记关闭<?php
session_start();
if(!isset($_SESSION['login'])){
echo("<script>location.href = '/login/';</script>");
}
中的isset。也可以在这里开始会议
<script type="text/babel" src="../Assets/js/react/Dashboard_components.js"></script>
//Here in Dashboard_components.js
var Dashboard_comp=React.createClass(
{
componentDidMount:function()
{
$('.ui.modal').modal();
},
render:function()
{
return(
<div>
//Header exists in Base component js
<Header/>
<div className="ui two columns grid">
<div className="three column wide">
<SideNav/>
</div>
<div className="thirteen column wide">
<Stats/>
<Class_boxes/>
</div>
</div>
</div>
)
}
})
答案 1 :(得分:0)
你可以在php中使用header()方法。
header('location:info.php');
答案 2 :(得分:0)
尝试在form.php页面上的会话中存储一个标志,然后在第一件事情中检查info.php中是否存在会话中的标志,如果是,则继续执行info.php。如果没有重定向回form.php或死你想要的任何东西。