Php Can';是否读取$\u会话变量?
我不确定出了什么问题——我尝试通过会话全局变量将一个变量从一个php页面传递到另一个php页面,但它似乎不起作用。以下是我所做的: Flow:表单提交-->login.php,如果成功,则重定向到-->chat.php 基本上,我不能将会话变量从login.php传递到chat.php 代码如下: login.phpPhp Can';是否读取$\u会话变量?,php,session,Php,Session,我不确定出了什么问题——我尝试通过会话全局变量将一个变量从一个php页面传递到另一个php页面,但它似乎不起作用。以下是我所做的: Flow:表单提交-->login.php,如果成功,则重定向到-->chat.php 基本上,我不能将会话变量从login.php传递到chat.php 代码如下: login.php <?php session_start(); // pass on variables // Pass on variables $_SESSION['username']
<?php
session_start(); // pass on variables
// Pass on variables
$_SESSION['username'] = $_POST['username'];
// some code here
if ( mysqli_num_rows($result) == 0 ) {
// some code here
} else {
// some code here
$url = "./chat.php";
$js = "<script>window.location = '{$url}'</script>";
echo $js;
}
<?php
session_start();
$username = $_SESSION['username'];
echo $username;
?>
以下是一些假设:
$\u POST['username]
正确无误李>
echo“工作!”代码>在chat.php中工作,当我在echo行之后添加它时,所以我很确定它只是变量出错李>
除了
标记之外,没有其他html代码
如果你有什么想法,我将不胜感激
谢谢 在系统上运行的apache无法创建存储会话变量所需的文件的情况下,会话变量无法工作。
向其所在的相应文件夹授予权限,并将组所有者设置为www数据。
在php代码的末尾添加这个session_commit();
或会话写入关闭() 试试这段代码。我认为这将在chat.php中起作用
<?php
$username = $_SESSION['username'];
echo $username;
?>
您可以通过print\r($\u session)检查会话代码>“这里有一些假设:“不要假设。检查!$\u POST['username']
真的有值吗?您是否以任何方式调试过它?@GolezTrol-是的,我检查过,它可以工作。@blazonix是否在两个页面上都转储了会话数组?我试图指出问题在于缺少调试/变量内容信息。另外,当我说debug时,我指的是xdebug或类似的东西。如果xdebug太多,则从使用var_dump($varToInspect)开始;死亡检查变量,而不是echo。@RonniSkansing我可能忽略了一些东西,无论如何,感谢你接受了这样一个初学者的问题和一些实用的想法。:)对不起,你说的“apache”是什么意思?你在用什么系统?这只是事情失败的众多原因之一。如果从服务器拔出电源插头,会话变量也会失败。我应该指出,问题现在已经解决,但我使用的是hostgator,因此Linux CentOSi高度怀疑他在重定向之前拔出了插头。