我使用jQuery $ .post AJAX請求登錄用戶,並在ajax.php中設置$ _SESSION ['login']變量(session_start()在index.php中調用)以及其他登錄的東西,但是當我嘗試在其他頁面上引用$ _SESSION ['login']變量時,它不會被設置...爲什麼PHP變量在jQuery AJAX請求中分配值時保持不變設置
這是我的POST代碼
$.post('/assets/ajax/ajaxLogin.php',{username: $('[name=username]').val()
,password: $('[name=password]').val()},function(data){
if(data.success)
{
location.href=data.redirect;
}
else
{
$('#errorConsole').html(data.message).slideDown();
}
},'json');
和ajaxLogin.php我設置$ _SESSION [ '登錄'] = 「1」。所以ajax腳本記錄用戶,如果他們有正確的信息,但是當他們重定向到dashboard.php,我嘗試echo $ _SESSION ['登錄'],我得到一個錯誤,
我沒有設置$ _SESSION正確,否則ajax請求不會在全局設置變量?
這是ajaxLogin.php
<?php
if(!include('../../config.php')){
echo 'include failure';
}
if($_POST){
$myusername=$_POST['username'];
$mypassword=$_POST['password'];
// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM users WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
if($count==1)
{
$_SESSION['login'] = 1;
$data['success'] = true;
$data['redirect'] = '/dashboard.php';
}
else
{
$data['success'] = false;
$data['message'] = "Your info is wrong....";
}
echo json_encode($data);
}
?>
而且這裏是dashboard.php
<?php
include('includes.php');
?>
<?php
if(!isLoggedIn())
{
echo 'You are not logged in';
}
else
{
echo 'You are logged in';
}
?>
和isLoggedIn()是:
function isLoggedIn(){
if (isset($_SESSION['login'])){
return 1;
}
else
{
return 0;
}
}
你能告訴我們ajaxLogin.php嗎? – MichaelRushton 2012-03-25 13:33:32
...和dashboard.php – MichaelRushton 2012-03-25 13:45:20
@MichaelRushton已添加他們 – 2012-03-25 13:51:02