2017-02-03 103 views
1

我相信这是非常简单的事情,但我无法弄清楚什么是错的。

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

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

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

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

我在这里错过了一些非常简单的东西吗?我的php文件显示SESSION已设置。请让我知道什么可能是错的。

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

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

如果我拿出SESSION [“测试”]在html线,PHP文件简单地说,可变测试是不确定的,并显示应该休息。

因此,这告诉我这是错误的HTML以某种方式..但为什么?

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

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

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

+3

*“我失去了一些东西在这里真的很简单吗?” *可能'session_start();' –

+0

错误报告;永远是你的朋友 –

+0

你在哪里尝试使用会话?您只向我们展示了您设置的位置。 –

回答

2

“” FXN1是在我的HTML文件中像这样: “ - 定义如.html文件 - 弗雷德-ii-”

“@弗雷德-II-,是的,它是在我的主要.html文件,定义为这样 - Gredenko”

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

PHP不会用.html作为默认值解析指令。

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

+0

好吧,我认为这是问题所在。我刚才读到在html中不起作用,这肯定是它为什么会崩溃的原因。我将它改为.php文件,它工作。但是我应该总是使用.php扩展名,那么如果我要包含任何php代码?还是有更多'正确'的解决方案?谢谢弗雷德。 – Gredenko

+0

@Gredenko不客气。如果你想继续使用'.html'作为扩展名,你可以指示你的系统(如果它支持)将它们当作php。这里有一些你可以看看http://stackoverflow.com/questions/4687208/using-htaccess-to-make-all-html-pages-to-run-as-php-files –

1

首先使用

session_start(); 

那么只有你可以与会议工作启动会议。

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

欲了解更多请参看使用手册PHP Sessions

+0

缺少session_start()方法。 –

+0

请检查我的编辑和关于session.php的部分,我已经确保将它包含在php和html文件中。 – Gredenko

+0

如何在html中包含php文件?将其保存为'main.php' –

0

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

PHP manual(强调):

在session_start()创建一个会话或恢复基于经由通过cookie GET或POST请求,或通过传递会话标识符的当前一个。

另外,如果你想在一个HTML文件中运行PHP,你需要这个文件夹中添加到.htaccess文件

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