浏览器无法识别会话

时间:2015-04-26 17:20:20

标签: php session

我的giris.php,名为ajax并获取url:giris_script.php。如果用户名和密码正确,则启动会话。我的代码如下:

<?php 
require "config.php";
require "Cgiris.php";
require "security.php";


$username = security($_POST["username"]);
$password = security($_POST["password"]);
$password = md5($password);

$obj = new Giris;
$result = $obj->control($username, $password);
if($result){
    @session_start();
    $_SESSION["admin"]= $username;  
}
echo json_encode($result);
?>

其他页面控制会话,但找不到任何会话:

if (session_status() == PHP_SESSION_NONE) {
    session_start();
}
if(!isset($_SERVER['HTTP_REFERER'])) header("refresh:0;url=404.php");

require "config.php";
require "Cayarlar.php"; 

$obj = new Ayarlar;
$admin = $obj->getAllInfo();
$user = $admin["username"];

if(!isset($_SESSION['admin']) || $_SESSION['admin'] != $user) header("refresh:0;url=404.php");

我打印$ _SESSION [“admin”]到屏幕,但没有显示。

我该如何解决?

2 个答案:

答案 0 :(得分:0)

是个好主意
 session_start();

在你的PHP代码的顶部。不要把它放在条件语句中。换句话说,始终在执行任何其他操作之前启动会话。您可以从(例如)

中删除它
if($result){

    $_SESSION["admin"]= $username;
}

答案 1 :(得分:0)

因为session_start();不是页面的顶部。所以,它没有设置会话

$obj = new Giris;
$result = $obj->control($username, $password);
if($result){
    @session_start();// This part must be top of the page !!!
    $_SESSION["admin"]= $username;  
}

session_start应该是页面的顶部 例如在index.php;

<?php 
session_start();

// and you can set your session if there was not any problem you will see your session
?>