未存储PHP会话变量(我正在调用Session_Start())

未存储PHP会话变量(我正在调用Session_Start()),php,session,Php,Session,我可以一辈子弄清楚为什么我会失去所有会话变量 以下是我的php代码: <?php if($_POST['loginButton']){ session_destroy(); session_start(); $con = mysql_connect("localhost", $_POST["userNameTextBox"], $_POST["passwordTextBox"]); if (!$con)

我可以一辈子弄清楚为什么我会失去所有会话变量

以下是我的php代码:

<?php
    if($_POST['loginButton']){
        session_destroy();
        session_start();

        $con = mysql_connect("localhost", $_POST["userNameTextBox"], $_POST["passwordTextBox"]);

        if (!$con)
        {
            echo 'Could not connect: ' . mysql_error() ;
            header( 'Location: index_error.html' ) ;
            die();
        }
        //else

        $_SESSION['IP']="localhost";
        $_SESSION['username']=$_POST["userNameTextBox"];
        $_SESSION['password']=$_POST["passwordTextBox"];
        $_SESSION['database']="Chuckles_DB";
        $_SESSION['Result'] ="Hi";
    }
    ?>
但是当我运行下一个php脚本时

<?php

                    $res=session_start();
                    echo "Session Started with ".$res." <br>";
                    echo "Test::>".$_SESSION['IP']." ".$_SESSION['username']." ".$_SESSION['password']." ".$_SESSION['database']."<:::<br>";

                    $con = mysql_connect( $_SESSION['IP'],$_SESSION['username'],$_SESSION['password']);
                    if (!$con)
                    {
                        echo 'Could not connect: ' . mysql_error() . "  <br><br>";
                        echo '<a href="index.html" target="">Please re-login to the web site</a> ';
                    }
                    else{
                       echo $con;
                    }
               ?>
设置的值在第一次发布此页面时不存在,但如果再次发布,这些值将消失


谢谢你的帮助

您的代码应该是

<?php
 if(!session_start()){
   echo "Session Failed!";
   exit();
 }

 if(isset($_POST['commit_sale'])) {
    echo 'Test7';
    commit_sale($_SESSION['ticker']);
    unset($_SESSION['ticker']);
 }

?>

也许这不是一个合适的答案,但我发现PHP会话相当痛苦。有时,它们会引起麻烦,并且很容易被一个简单的数据库表替换。您只需要创建一个会话ID并将其存储在数据库表和cookie中。如果您仍然需要连接数据库,它可能会工作得更快。然而,如果在你的情况下是不可能的,你也可以考虑做PHP所做的事情。使用文件系统存储会话数据。如果您可以使用特定的数据库和表作为登录信息,请使用它。如果你没有其他选择考虑使用文件。< /P>
PS:如果您使用手动方法数据库或文件系统,请创建长会话ID。

您的添加项功能是什么样子的?虽然很难看,但您发布的代码看起来并不是垃圾会话值,所以很可能是在这个函数中发生的。它接受ticker的值,并在其上附加信息。它不会改变会话ticker的值。我会在以后发布的,嗯,似乎任何会话变量都不起作用。但它仍然没有回应那句话:它只是声明了起作用,不知道我做了什么更改或出了什么问题。