Cookie az PHP oturumları oturum değişkeni erişilemiyor

1 Cevap php

Ben kurabiye kullanmadan PHP oturumu kullanmaya çalışıyorum. Benim php.ini dosyasında session.use_trans_sid ve engelli session.use_cookies sağlamıştır. Ben de firefox tarayıcınızda çerezleri devre dışı bıraktık. Ben sayfaları arasında gezinmek Şimdi, ben bir önceki sayfada set oturum nesne değişkeni erişemiyor. BTW, URL parçası olarak oturum kimliklerini kullanarak önerilen bir yaklaşım değildir farkındayım.

Sayfa1.php ve sayfa2.php - Ben iki sayfa için aşağıdaki örnek kod pasajını sağladı. Sayfa1.php doğru ve sayfa2.php kontrolleri oturum nesnesi, bu değişkenin değerini bir değişken ayarlar ve buna göre harekete geçer.

Page1.php

<?php
session_start();
if (isset($_REQUEST["user"]))
{
    $_SESSION["name"] = true;
    $host = $_SERVER["HTTP_HOST"];
    $path = dirname($_SERVER["PHP_SELF"]);
    header("Location: http://$host$path/page2.php");
    exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Page1</title>
</head>
<body>
<form method="get" action="/page1.php">
Name:<input type="text" name="user"/><br/>
<input type="submit" value="Login"/><br/>
</form>
</body>
</html>

page2.php

<?php
session_start();
if ($_SESSION["name"])
{
    echo("<h1>Name set.</h1>");
}
else
{
     echo("<h1>Name NOT set.</h1>");
} 
?>

1 Cevap

Ben sorun giderilmiştir. Yeniden doğrudan aynı web sitesi içinde bir sayfa bile php yeniden yön URL parçası olarak yeniden yönlendirir sırasında oturum kimliği geçmek olmaz gibi görünüyor. Oturum değişken yukarıdaki sayfa2.php içinde mevcut değildi ve çıkış daima "Ad set DEĞİL" neden budur. Yani ben ve bir parçası olarak oturum kimliği için sayfa1.php benim yeniden doğrudan URL değişti Bu hile yaptı.

$sid = session_name() . "=" . session_id();
header("Location: http://$host$path/page2.php?$sid");