会话未在下一页保留原始值

Session not retaining original value on next page

提问人:Lori 提问时间:11/18/2014 最后编辑:Lori 更新时间:11/18/2014 访问量:74

问:

此页面显示多个聊天室的状态。用户可以单击一个按钮,让他们进入他们选择的人的房间。他们选择的人的昵称会话应通过表单发送到房间。此页面上的会话是正确的,但是当值提交到房间时,昵称将更改为数据库中的第一个昵称,而不是我传递给页面的昵称。如何让会话使用最初收集的数据?(接收值的页面只回显会话,所以我没有发布它)

<?php
session_start();
require_once('connect.php');


$con = mysqli_connect(DBHOST, DBUSER, DBPASS, DBNAME) or die('Connection failed: ' . mysqli_connect_error());

$sql = mysqli_query($con, "SELECT UserType, NickName, Online, InChat FROM main_member WHERE UserType = 2 ORDER BY Online DESC");


    while($row = mysqli_fetch_array($sql)){

        $UserType = $row['UserType'];
        $NickName = $row['NickName'];
        $Online = $row['Online'];
        $InChat = $row['InChat'];

    $_SESSION['NickName_Session'] = $NickName;

        echo '<table width="353" border="0">';
        echo '<tbody>';
        echo '<tr>';
        echo '<td width="248" height="51">';
        echo Status($Online,$InChat,$NickName); 
        echo '</td>';
        echo '</tr>';
        echo '</tbody>';
        echo '</table>';

     }

function Status($Online,$InChat,$NickName){ 

    if ($Online == 0) {
        echo 'I am not online.';
    }

    elseif($Online == 1 && $InChat == 0){
        echo 'I am online and I will be in my chatroom shortly.';
    }

    elseif($Online == 1 && $InChat == 1){
        echo 'I am online.';
        echo '<form name="get_nickname" id="get_nickname" action="script.php" method="POST">';
        echo '<input type="hidden" name="nickname" id="nickname" value="' . $_SESSION['NickName_Session'] . '">';
        echo '<input type="submit" name="submit" id="submit" value="Start Chat" />';
        echo '</form>';

    }
}

mysqli_close($con);
?> 

这是脚本页面:

session_start();


if(!isset($_SESSION['file'])) {
    $_SESSION['file'] = (rand(1000000, 9999999)) . round(10*microtime(TRUE));
}

if(isset($_POST['create'])) {
    $_SESSION['file'] =  (rand(1000000, 9999999)) . round(10*microtime(TRUE));
}
$url='chat_container.php';
Header("Location: $url");
exit();

这是我需要昵称的聊天容器:

session_start();
require_once('connect.php');

echo   $_SESSION['NickName_Session'];
PHP 会话

评论

0赞 Funk Forty Niner 11/18/2014
不保留在下一页;你发布的内容是“下一页”吗?
0赞 Lori 11/18/2014
下一页只是回显会话。在这一点上仅此而已。
0赞 TiiJ7 11/18/2014
没有你需要的东西?$_POST['nickname']
0赞 DarkBee 11/18/2014
我非常确定您有多个用户,并且您正在尝试将字符串数组存储到一个字符串中UserType = 2
0赞 Funk Forty Niner 11/18/2014
最好将用户的行分配给会话变量;我就是这样做的。

答: 暂无答案