会话不能在一个PHP页面上工作
这个登录脚本有什么问题?我有一个模态风格的iframe登录框,它是会话不能在一个PHP页面上工作,php,session,Php,Session,这个登录脚本有什么问题?我有一个模态风格的iframe登录框,它是/login.php,我有一个/index.php 登录后,login.php重定向到index.php,但我看不到用户名。只要你好,客人。当我尝试登录时,它会显示您,用户名,已经登录了 login.php: <?php session_start(); require_once('connections/Main.php'); if(isset($_SESSION['username'])) { echo '&
/login.php
,我有一个/index.php
登录后,login.php重定向到index.php,但我看不到用户名。只要你好,客人
。当我尝试登录时,它会显示您,用户名,已经登录了
login.php:
<?php session_start(); require_once('connections/Main.php');
if(isset($_SESSION['username'])) {
echo '<div class="error_message">Attention! You, '.$_SESSION['username'].' are already logged in.</div>';
echo "<br />";
echo "Go <a href='javascript:history.go(-1)'>back</a> to the page you were viewing before this.</li>";
exit();
}
?>
index.php:
<?php session_start();
require_once('connections/Main.php');
?>
<div> Hello <?php if(isset($_SESSION['username'])) {
echo $_SESSION['username']; }
else{ echo 'Guest'; } ?></div>
你好
用这个开始你的会话。
$_SESSION["im_going_in"]=true;
$_SESSION["username"]=$username;//get data from db.
index.php
<?php
if($_SESSION["im_going_in"]) {
?>
<?=strtoupper($_SESSION["username"])?>// welcome dear bla bla...
<?
}
?>
//欢迎亲爱的布拉布拉。。。
您正在调用两次会话\u start()
,这是不必要的。登录后,将会话变量登录
设置为true
。然后使用
if($_SESSION['logged_in']){
//Do what you want for the logged in user
}
诚然,您可以在一个login.php中完成所有这一切。有这样的东西:
//if reached from login form
if ($_POST['email']){
//validate the user
// if validates, log him in by:
$_SESSION['logged_in'] = true;
$_SESSION['email']= $_POST['email'];
//do other fancy database save stuff
}
//else show him login form
else{
<form>
//<input />.. etc
</form>
}
//如果从登录表单到达
如果($_POST['email']){
//验证用户
//如果验证,请通过以下方式让他登录:
$\u会话['logged\u in']=true;
$_SESSION['email']=$_POST['email'];
//其他花哨的数据库保存东西吗
}
//否则给他看登录表
否则{
//等等
}
它没有重定向回,它说“回到历史”。许多浏览器缓存DOM,返回不会在服务器上产生新的请求。如果你链接到/index.php
而不是javascript thingamayig,你会得到想要的行为吗?是的,它会将iframe重定向到index.php并显示正确的用户名,但是如果你在框架(brrr)中,设置target=“top”
,或者可能是onclick,我如何使主页重定向=“window.top.location.reload(true)”
。