我的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”]到屏幕,但没有显示。
我该如何解决?
答案 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
?>