2
我正在編寫一個應通過AJAX工作的登錄函數。如果用戶能夠登錄,則應該有兩個新的Cookie。如果它不起作用(錯誤的電子郵件或密碼),cookie不會被設置。將Cookie設置爲AJAX請求後無法使用
我的問題是這樣的。我登錄後,cookie被設置,但是當它到達cookie被檢查的代碼時,它是空的。當我重新加載我的頁面時,cookie就在那裏,一切正常。爲什麼在AJAX請求後cookie不可用?
的Javascript:login.php中的
$.ajax({
type: "POST",
url: "php/login.php",
data: dataString,
async: false
});
var email = '<?php echo $_COOKIE['email']; ?>';
var login = '<?php echo $_COOKIE['login']; ?>';
if(email != null && email != "" && login != null && login != "") {
var html = '<h3>You are logged in as <b>' + email + '</b></h3><br><br><button id="logoutbtn" class="submitButton">Ausloggen</button>';
$("#registInfos").empty();
$(html).appendTo($('#registInfos'));
} else {
console.log('login not successful');
$('<p>Login failed, wrong email or password?</p>').appendTo($('#registInfos'));
}
內容:
<?php include('../../admin/php/connection.inc.php'); ?>
<?php header('Access-Control-Allow-Origin: *'); ?>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$email = $_POST['email'];
$password = $_POST['password'];
$abfrage = "SELECT email, password FROM ios_user WHERE email = '$email' LIMIT 1";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);
if($row->password == $password) {
session_start();
setcookie("login", "true", time()+3600*24*30*12, "/");
setcookie("email", $email, time()+3600*24*30*12, "/");
session_commit();
}
}
?>
您必須在登錄到其他頁面後重定向。您無法在一個動作中設置和讀取同一個cookie。 – Eugen