如果没有启用cookie,PHP SESSION无法正常工作

时间:2014-11-06 15:44:52

标签: php session cookies

好的,所以下面两个脚本的想法非常简单。首先,在login.php中,我们分配$_SESSION['username']=$username然后将页面重定向到index.php脚本检查if $_SESSION['username'] Login.php如果选中,则会显示编辑配置文件注销选项,如果未设置,则会显示登录和注册等选项。但即使表单填写正确,它也会显示LogIn和注册选项。它可以启用cookie。但如果它们被禁用则不行。这是代码


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=0设置都正确且trans_sid = 1login.php时,如果我向index.php提供正确的信息,{{1}}会显示其他信息代码块。问题是什么?

1 个答案:

答案 0 :(得分:0)

除非您使用的框架尚未提及,否则我说您的参考书有错误的拼写错误。我看不到任何名为trans_sid的{​​{3}}。最接近的是session.use_trans_sid:

  

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

use_cookie也不存在。