PHP 5.4升级到5.6:GET变量问题

时间:2017-01-12 14:00:22

标签: php php-5.6 php-5.4

我使用Mysql数据库,PHP会话等在我的本地WAMP上用PHP 5.4创建了一个小网站。

当将网站文件上传到我的在线主机 - 运行PHP 5.6时 - 我遇到了所有GET变量的问题,它似乎不是函数式的。

在我的本地计算机上:

// Requested URL : index.php?title=Hello
<?php

echo $_GET["title"]; // works

?>

在服务器上:

// Requested URL : index.php?title=Hello
<?php

echo $_GET["title"]; // empty. 

?>
疯狂!我不明白会发生什么......我读了#34;从PHP 5.4.x迁移到PHP 5.6.x&#34; &#34;从PHP 5.5.x迁移到PHP 5.6.x&#34;但我没有设法找到不起作用的东西。

你有什么想法吗?

编辑01/13:我创建了一个非常简单的表单页面:

<?php
echo $_POST["texttest"]."<hr />";
?>

<form action="?" method="POST">
<input type="text" name="texttest" class="texttest" id="texttest" />
<input type="submit" value="test">
</form>

..永远不会显示POST var。当我在提交表单后查看Chrome控制台时,我会收到一条消息:

  

显示临时标题

2 个答案:

答案 0 :(得分:2)

使用phpinfo设置测试脚本,以查看主机上的ini变量。

<?php
phpinfo();
?>

http://php.net/manual/en/ini.core.php#ini.variables-order 如果以某种方式设置变量顺序 - $ _GET可能不可用......

我的设置为:

; This directive determines which super global arrays are registered when PHP
; starts up. G,P,C,E & S are abbreviations for the following respective super
; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty
; paid for the registration of these arrays and because ENV is not as commonly
; used as the others, ENV is not recommended on productions servers. You
; can still get access to the environment variables through getenv() should you
; need to.
; Default Value: "EGPCS"
; Development Value: "GPCS"
; Production Value: "GPCS";
; http://php.net/variables-order
variables_order = "GPCS"

如果您有权访问php.ini - 您只需更改它即可。

修改 确定 - 确认variables_order =&#34; GPCS&#34;。
如果将源测试代码编辑为此 - 结果是什么?

<?php 
echo 'This is my page'; // should always print- just to make sure you are on the correct page 
echo '$_REQUEST:'.print_r($_REQUEST,true); 
echo '$_GET: '.print_r($_GET,true); 
echo '$_POST: '.print_r($_POST,true); 
echo $_GET["title"]; // empty. 
?>

答案 1 :(得分:0)

; PHP是否将读取POST数据。 ;默认情况下启用此选项。 ;您很可能不想在全局禁用此选项。它导致$ _POST ; $ _FILES始终为空;您将能够阅读的唯一方法 ; POST数据将通过php:// input流包装器。这很有用 ;代理请求或以内存有效方式处理POST数据。 ; http://php.net/enable-post-data-reading enable_post_data_reading =关闭

删除;从第一行开始; enable_post_data_reading =关闭