Я действительно потерялся здесь, пытаясь отправить сеанс с моим почтовым вызовом jquery ajax, вот упрощенный пример моего кода.jquery post ajax call session does not work
ФОМФайл, который посылается запрос: запрос
<?php
session_start();
$token = md5(rand(1000,9999));
$_SESSION['contactToken'] = $token;
?>
<script type="text/javascript">
$.post(ContactUrl,{req:"contact_sub",tok:"<?php echo $token; ?>"},function(contactAns){
alert(contactAns); return false;
});
</script>
Файл отправлен:
<?php
if(@isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER']=="url"){
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')){
session_start();
$token = $_POST['tok'];
$sess_token = $_SESSION['contactToken'];
if($token == $sess_token){
echo "sessions match"; exit();
}
else{
echo "sessions does not match"; exit();
}
}
else{echo "error"; exit();}
}
else{echo "error"; exit();}
?>
На первый сеанс не получает признания, я сделал все проверки - убедитесь, что оно было в первую очередь, убедитесь, что оно было опубликовано, объявлено начало сеанса на обеих страницах, тем не менее, если я попытался сделать это во втором файле:
<?php
session_start();
$token = $_POST['tok'];
$sess_token = $_SESSION['contactToken'];
print_r($_SESSION['contactToken']); exit();
?>
Я бы получил пустое предупреждение. Затем я перенес начало сеанса в начало моего скрипта на второй странице и начал получать значение для сессии:
<?php
session_start();
$sess_token = $_SESSION['contactToken'];
if(@isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER']=="url"){
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')){
$token = $_POST['tok'];
echo "$token, $sess_token"; exit();
}
else{echo "error"; exit();}
}
else{echo "error"; exit();}
?>
И что я получаю сейчас, что посланные переменный изменяется каждый раз, когда я освежить но значение $ sess_token всегда дает мне то же значение: 0589dd536fd043ff3865f8223fef3030
Я действительно не понимаю это странное поведение, может кто-нибудь, пожалуйста, помогите мне в этом?
Вы смешиваете PHP и jQuery в своем первом коде? o.0 session_start(); $ .post (ContactUrl, {req: "contact_sub", ~ ~ – hanshenrik
Нет, я просто привел пример кода без его обертывания –
@AlbertKuzmin Пожалуйста, перенесите код PHP между '' and '?>'. –