PHP会话变量未保留
所以,我有一个RPG游戏,我一直在努力使用PHP的地狱。我一直在尝试让一些会话工作相当长的一段时间,以便在不同的页面上保存我的变量,这显然是它们的目的。以下是与我的问题相关的代码: 第1行:PHP会话变量未保留,php,session,save,Php,Session,Save,所以,我有一个RPG游戏,我一直在努力使用PHP的地狱。我一直在尝试让一些会话工作相当长的一段时间,以便在不同的页面上保存我的变量,这显然是它们的目的。以下是与我的问题相关的代码: 第1行: 这部分只是根据用户填写的“创建他们的角色”表单确定结果 对班级来说呢 if ($_GET["career"]=="Knight"){ $_SESSION["career"] = "Knight"; $_SESSION['classstrengthbonus'] = 10; $_SESSION['classe
这部分只是根据用户填写的“创建他们的角色”表单确定结果
对班级来说呢
if ($_GET["career"]=="Knight"){
$_SESSION["career"] = "Knight";
$_SESSION['classstrengthbonus'] = 10;
$_SESSION['classendurancebonus'] = 10;
$_SESSION['classintellectbonus'] = 0;
$_SESSION['classwillpowerbonus'] = 0;
$_SESSION['classluckbonus'] = 0;
$_SESSION['RightHand'] = "Iron Sword";
$_SESSION['LeftHand'] = "Wooden Shield";
$_SESSION['Armor'] = "Iron Armor";
现在,这里是所有这些都被使用的代码
<?PHP
echo "<div class=\"playerstats\" align=\"center\"><span class=\"playername\">".$_GET["name"]."</span><br><span class=\"redtext\">".$_SESSION["race"]." - ".$_SESSION['career']." - ".$_SESSION["health"]." HP - ".$_SESSION["gold"]." Gold</div>
<div style=\"float:left\"><span class=\"redtext\">Strength: </span>".$_SESSION["strength"]."<br>
<span class=\"redtext\">Endurance: </span>".$_SESSION["endurance"]."<br>
<span class=\"redtext\">Intellect: </span>".$_SESSION["intellect"]."<br>
<span class=\"redtext\">Willpower: </span>".$_SESSION["willpower"]."<br>
<span class=\"redtext\">Luck: </span>".$_SESSION["luck"]."<br></div>";
echo "<div class=\"equipment\"><span class=\"hover right\">".$_SESSION["RightHand"]."</span><span class=\"redtext\"> - Right Hand</span><br>
<span class=\"hover left\">".$_SESSION['LeftHand']."</span><span class=\"redtext\"> - Left Hand</span><br>
<span class=\"hover\">".$_SESSION['Armor']."</span><span class=\"redtext\"> - Armor</span><br></div>"; ?>
当我第一次加载此页面时,所有内容都正确显示。名称、种族等都显示用户在其表单中输入的内容,但如果用户使用页面上的任何操作(这些操作只是在同一页面上显示结果的表单),则它不会保存变量,直接转到种族和类的“else”结果,而不保存名称。我不确定我做错了什么。有什么帮助吗?提交表单后,您确定在$\u GET中有“race”和“career”吗?确保您在开始时和每个页面中都有
会话启动
。如果您忘记在开始时声明session\u start,那么该会话将被遗忘
编辑:
page1.php
<?php session_start(); $_SESSION['bar'] = "SAVED SESSION"; ?>
page2.php
<?php session_start(); echo $_SESSION['bar']; ?> // outputs 'SAVED SESSION'
//输出“保存的会话”
page3.php
<?php echo $_SESSION['bar']; ?> // outputs ''; session is forgotten
//输出“”;会议被遗忘了
编辑:我在这里重新创建了测试游戏的一部分:会话确实有效,但您只能错误地处理它,因此它们要么被意外删除,要么被意外设置为null。可能是因为form method=POST,所以$\u GET[var]将找不到变量。虽然您说的是第一个视图,但它显示正确,因此似乎检索到了值 我怀疑您需要在php.ini文件中配置会话存储并重新启动web服务器 session.save_路径
- 见:
确保它是web服务器的可写目录。不确定你的意思,哈哈。这个RPG游戏是用来教我PHP的。在原始页面上,我有以下内容开始表单:
,所以我不知道我是否在那里做错了什么?好吧,我现在只处理一个页面。此页面上正在处理会话的表单将发送到此同一页面,以处理发送到该页面的信息。发送信息后,所有会话似乎都未设置。您的表单似乎未正确设置/处理。让我看看你表格中的代码。@Zenox我在这里重新创建了你的测试游戏:。。。那么,告诉我这似乎有什么问题?如果会话工作正常,您可以进行调试,创建两个测试页面,一个会话_start()$_会话['test']=“test”;然后是第二页,session_start();变量转储($\会话);在运行第一个页面后,查看是否有测试,然后运行第二个页面。如果显示,则可能是表单有问题,或者您忘记在任何输入之前添加session\u start。
<?php echo $_SESSION['bar']; ?> // outputs ''; session is forgotten