【问题标题】:PHP SESSION not working without cookies enabledPHP SESSION 在没有启用 cookie 的情况下无法工作
【发布时间】:2015-01-03 04:45:14
【问题描述】:

Ok,那么下面两个脚本的思路很简单。首先,在login.php中,我们赋值$_SESSION['username']=$username,然后将页面重定向到index.php,其中脚本检查if $_SESSION['username']是否设置。如果是选中,然后显示 Edit ProfileLog Out 选项,如果未设置,则显示登录和注册等选项。但即使表格填写正确,它也会显示登录和注册选项。它适用于启用的 cookie。但如果它们被禁用则不能。这里是代码


Login.php

session_start();
.
.
.
if(mysqli_num_rows($result)==1){
$row=mysqli_fetch_array($result);
$_SESSION['username']=$username;
$_SESSION['password']=$password;
$location="http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/index.php";
header("Location:".$location."?".htmlspecialchars(SID));
}

Index.php

session_start();
if(isset($_SESSION[SID.'username'])){
echo '&#10084;<a href="viewprofile.php">View Profile</a>'."<br>";
echo '&#10084;<a href="editprofile.php">Edit Profile</a>'."<br>";
echo '&#10084;<a href="logout.php">Logout</a>'."<br>";
}
else{
echo '&#10084;<a href="login.php">Login</a>';
echo '&#10084;<a href="signup.php">Signup</a>';

现在,当我的所有php.ini 设置正确且use_cookie=0trans_sid = 1 时,如果我向login.php 提供正确的信息,index.php 会显示 else 代码块。有什么问题?

【问题讨论】:

    标签: php session cookies


    【解决方案1】:

    除非您使用的是未提及的框架,否则我会说您的参考书有严重的拼写错误。我看不到任何名为trans_sidPHP directive。存在的最接近的是 session.use_trans_sid:

    session.use_trans_sid boolean session.use_trans_sid 是否启用透明 sid 支持。默认为 0(禁用)

    use_cookie 也不存在。

    【讨论】:

    • 能否请您发布支持您声明的官方 PHP 文档的链接?
    • 我只是为了方便而使用,因为我真的很沮丧。
    • 但是 PHP 可能不够聪明,无法弄清楚您的真正意思。我建议您逐字使用记录在案的确切名称。
    • hmm...顺便说一句,你能帮我找出问题所在
    猜你喜欢
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-21
    • 2012-09-10
    相关资源
    最近更新 更多