Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 设置$会话变量,但某些内容不可用';行不通_Php_Html_Session_Variables - Fatal编程技术网

Php 设置$会话变量,但某些内容不可用';行不通

Php 设置$会话变量,但某些内容不可用';行不通,php,html,session,variables,Php,Html,Session,Variables,我相信这很简单,但我不知道怎么回事 我已经将html、php和js文件设置为可以一起工作,但是在设置自己的会话变量和跨文件检查它时遇到了问题 我已经确保HTML和PHP文件都包含include for my session.PHP文件(如果尚未设置,该文件只处理session_start) 总而言之,我的HTML文件有一个函数(userSelection又名fxn1)。此函数将值传递给另一个函数(showGameInfo又名fxn2),my.js文件处理fxn2。然后,fxn2将其发送到php文

我相信这很简单,但我不知道怎么回事

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

我已经确保HTML和PHP文件都包含include for my session.PHP文件(如果尚未设置,该文件只处理session_start)

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

<?php $_SESSION['test'] = 1 ?>;
我是不是错过了一些很简单的东西?我的php文件显示会话已设置。请告诉我可能出了什么问题

FXN1在我的HTML文件中如下所示:

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

函数用户选择(val){
showGameInfo(val);
}
如果我在html中去掉SESSION['test']行,php文件只会说变量test未定义,并显示其余部分

所以这告诉我HTML中的错误是怎么回事…但是为什么呢

Edit1:我已经在html和php文件中包含了session.php。session.php包含以下内容:

<?php 
if (!isset($_SESSION))
    session_start();
?>


这不对吗?它位于html的顶部。这也是它如何包含在php文件中的,我的php文件显示isset($\u SESSION)为true,因此我假设它是正确的。

首先使用

session_start();
然后,只有您可以使用会话

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

函数用户选择(val){
showGameInfo(val);
}
有关更多信息,请参阅手册

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


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

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

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

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

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

从(增加强调)开始:

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

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

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

“我错过了一些非常简单的东西吗?”可能是
session_start()错误报告;总是你的朋友吗?你想在哪里使用会话?您只向我们展示了设置它的位置。“FXN1在我的HTML文件中是这样的:”-定义它。正如在
.html
文件中一样?@Fred ii-,是的,它在我的主.html文件中,定义为so.session\u start()方法丢失。请检查我的编辑和关于session.php的部分,我已确保将其包含在php和html文件中。如何将php文件包含在html中?将其另存为
main.php
好的,我认为这就是问题所在。我刚才读到,html不能正常工作,这一定是它崩溃的原因。我把它改成了一个.php文件,它成功了。但是如果我要包含任何php代码,我是否应该始终使用.php扩展名呢?还是有更“正确”的解决方案?谢谢弗雷德。@Gredenko,不客气。如果您想继续使用
.html
作为扩展,您可以指示您的系统(如果它支持的话)将其视为php。这里有一些东西你可以看看