Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP会话在未启用Cookie的情况下无法工作_Php_Session_Cookies - Fatal编程技术网

PHP会话在未启用Cookie的情况下无法工作

PHP会话在未启用Cookie的情况下无法工作,php,session,cookies,Php,Session,Cookies,好的,下面两个脚本的想法非常简单。首先,在login.php中,我们分配$\u SESSION['username']=$username,然后将页面重定向到index.php,脚本检查是否设置了$\u SESSION['username']。如果选中,然后显示编辑配置文件和注销选项,如果未设置,则显示登录和注册等选项。但即使表单填写正确,也会显示登录和注册选项。它在启用cookie的情况下工作。但如果禁用cookie,则不能工作。以下是代码 Login.php session_start()

好的,下面两个脚本的想法非常简单。首先,在
login.php
中,我们分配
$\u SESSION['username']=$username
,然后将页面重定向到
index.php
,脚本检查
是否设置了$\u SESSION['username']
。如果选中,然后显示编辑配置文件和注销选项,如果未设置,则显示登录和注册等选项。但即使表单填写正确,也会显示登录和注册选项。它在启用cookie的情况下工作。但如果禁用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));
}
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>';

Index.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));
}
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>';
session_start();
如果(isset($\会话[SID.'username'])){
回声“❤;”;
回声“❤;”;
回声“❤;”;
}
否则{
回音❤;
回音❤;


现在,当我所有的
php.ini
设置都正确并且
使用cookie=0
trans\u sid=1
时,如果我向
login.php
提供正确的信息,
index.php
会显示else代码块。有什么问题吗?

除非你使用的是你没有提到的框架,否则我会说你的参考书有可怕的类型操作系统。我看不到任何调用的
trans\u sid
。存在的最近的是会话。使用trans\u sid:

会话。使用\u trans\u sid
boolean
session.use_trans_sid是否启用透明sid支持。默认值为0(已禁用)


use_cookie
也不存在。

能否请您发布一个支持您声明的官方PHP文档的链接?我只是为了方便起见才使用它,因为我非常沮丧。但可能PHP不够聪明,无法理解您真正的意思。我建议您一字不差地使用确切的文档名称嗯…顺便说一句,你能帮我找出问题所在吗