未存储PHP会话变量(我正在调用Session_Start())
我可以一辈子弄清楚为什么我会失去所有会话变量 以下是我的php代码:未存储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
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的值。我会在以后发布的,嗯,似乎任何会话变量都不起作用。但它仍然没有回应那句话:它只是声明了起作用,不知道我做了什么更改或出了什么问题。