我正在测试我的页面,其形式非常简单:
<form action="script/check.php" method = "post">
<input type = "text" name = "email">
<input type = "submit">
</form>
当我的check.php
文件具有以下代码时,它可以正常工作:
<?
var_dump($_POST);
?>
输出为array(1) { ["email"]=> string(5) "hello" }
,正如所料。
当check.php
包含session_start()
时,$_POST
变为空。
<?
session_start();
var_dump($_POST);
?>
输出现在为array(0) { }
。
很难搜索到这个问题,遗憾的是,我在网上找到的这些搜索字词的大部分结果都是关于空$_SESSION
个变量,这对我来说不是问题。问题是$_POST
为空。
当我从存储服务器的网络上的本地计算机测试页面时,有一个问题:$_POST
正确。对于其他地方而言,情况并非如此,该网站不可行。这是非常奇怪的,因为我已经使用这种类型的脚本几个月没有任何问题,外部用户已经能够连接没有问题。我认为这是一个目录权限问题,但如果没有更多信息,我无法确定。
答案 0 :(得分:1)
..也有同样的问题。空$ _SESSION-vars的原因是/ var / lib / php / session目录中的错误权限:755 owner + group运行http的用户(apache,www-data或cherokee)
答案 1 :(得分:0)
发生的事情是由于会话,你需要检查已经开始的会话。
<?
if(!isset($_COOKIE["PHPSESSID"]))
{
session_start();
var_dump($_POST);
}else{
var_dump($_POST);
} ?>
答案 2 :(得分:0)
您是否检查了php.ini文件中的短标签,因为您使用的是不支持php的短标签。如果您想使用短标签<? ?>
,请检查您的php.ini文件并启用--enable-short-tags选项。我强烈建议您使用<?php ?>
标记。使用正确的PHP标签,您的代码工作正常。
http://php.net/manual/en/language.basic-syntax.phptags.php