设置$ _SESSION变量但是某些东西不起作用

时间:2017-02-03 16:15:19

标签: php html session variables

我确信这很简单,但我无法弄清楚错误。

我已经将我的html,php和js文件设置为一起工作但是在设置我自己的会话变量并在文件中检查它时遇到了问题。

我确保HTML和PHP文件都包含我的session.php文件的include(如果尚未设置,文件只处理session_start)。

总结一下,我的HTML文件有一个函数(userSelection又名fxn1)。此函数将值传递给另一个函数(showGameInfo aka fxn2),我的.js文件处理fxn2。然后,fxn2将它发送到php文件,该文件吐出要显示的信息。一切正常,直到我尝试定义自己的变量。我在html文件中的fxn1中做了这个。然后,我试图在php文件中回显$ _SESSION [' test']值。这是我添加到fxn1的行:

  runMessageVectorTrigger = 'CREATE TRIGGER run_message_vector AFTER INSERT OR UPDATE ON knowledgebase_messages ' +
    'FOR EACH ROW EXECUTE PROCEDURE run_message_vector()';

我在这里错过了一些非常简单的东西吗?我的php文件显示已设置SESSION。请告诉我可能出现的问题。

FXN1在我的HTML文件中是这样的:

<?php $_SESSION['test'] = 1 ?>;

如果我在html中取出SESSION [&#39; test&#39;]行,那么php文件只是说变量test是未定义的,并显示其余部分。

所以这告诉我HTML在某种程度上是错的......但为什么呢?

Edit1:我在我的html和php文件中包含了session.php。 session.php包含:

<script>
function userSelection(val) {
    <?php $_SESSION['test'] = 1; ?>
    showGameInfo(val);
}
</script>

这是不正确的?它位于html的顶部。这就是它如何被包含在php文件中,并且我的php文件显示isset($ _ SESSION)是真的,所以我认为它是正确的。

3 个答案:

答案 0 :(得分:2)

  

“”FXN1在我的HTML文件中是这样的:“ - 定义。在.html文件中? - Fred -ii - ”

     

“@ Fred-ii-,是的,它在我的主.html文件中,定义如此。 - Gredenko”

首先,您需要启动会话和.html文件,将其更改为.php或指示您的系统将其视为php。

PHP不会解析默认为.html的指令。

您还应该检查会话数组是否设置了isset()

答案 1 :(得分:1)

首先使用

开始您的会话
session_start();

然后只有你可以使用会话。

<script>
function userSelection(val) {
    <?php 
     session_start();//starts your session
      $_SESSION['test'] = 1;//sets session variable ?>
    showGameInfo(val);
}
</script>

有关详情,请参阅手册PHP Sessions

答案 2 :(得分:0)

session_start();必须位于需要定义或调用会话变量的任何页面上,并且必须在定义或调用变量之前。

PHP manual(强调添加):

  

session_start()根据通过GET或POST请求传递的会话标识符创建会话或恢复,或通过cookie传递。

此外,如果您想在HTML文件中运行PHP,则需要将其添加到文件夹中的.htaccess文件

AddType application/x-httpd-php .htm .html