编辑:想出来,正如我的评论中提到的那样。在if语句中做了一个愚蠢的并使用了一个=而不是double。我们从帖子中学到的是,你不应该在8小时轮班和很少睡觉后尝试编码。
似乎有一个奇怪的问题,我似乎无法回显任何我的$ _POST变量,但如果我用$ _REQUEST访问它们就可以了。
error_reporting(E_ALL); ini_set('display_errors', true);
//Session start
session_start();
//Adding a story
var_dump($_POST);
echo $_REQUEST['title'];
//Get, check & clean variables
if ($_SESSION['login'] != 1) {
echo 'Not logged in';
} else {
$user = $_SESSION['UID'];
$title = mysql_real_escape_string($_POST["title"]);
$desc = mysql_real_escape_string($_POST['description']);
$date = time();
//Add story to DB
echo "<br />User: $user Title: $title Desc: $desc Date: $date";
$sql = "INSERT INTO `cl-stories` (title,user,date,description) VALUES ('$title', '$user', '$date', '$desc')";
}
因此顶部的echo $_REQUEST['title'];
工作正常,但使用$_POST['title']
却无效。如果我var_dump POST内容,变量就在那里。
它必须是一件简单的事情,因为它正在我所有的其他页面上工作 它似乎与我之前的问题非常相似,但我不会再犯这个错误了。
这是它输出的内容:
array(3) { ["title"]=> string(6) "Blergh" ["description"]=> string(17) "Story description" ["submit"]=> string(6) "Submit" } Blergh
User: 1 Title: Desc: Date: 1326260553
注意Title:和Desc之后缺少任何东西:
表格如果有帮助:
<form method="post" action="cl-addStory.php">
<input type="text" name="title" size="22" value="Title">
<textarea name="description" value="Description" rows="6">Story description</textarea>
<input type="submit" name="submit"/>
</form>
答案 0 :(得分:0)
我没有发现任何错误,我已经在单独的页面中尝试过您的表单并且效果很好。看看这段代码:
<?php
echo "<pre>";print_r($_POST);echo "</pre>";
?>
<form method="post" action="">
<input type="text" name="title" size="22" value="Title">
<textarea name="description" value="Description" rows="6">Story description</textarea>
<input type="submit" name="submit"/>
</form>
将此代码放在单独的文件中并进行测试。
答案 1 :(得分:0)
我曾经遇到过这样的问题:某些浏览器中的错误(我的示例中为Chrome)会提交两次表单(即使单击了提交按钮一次,但只看到页面刷新一次)。因此,浏览器将提交一次与表单中提供的内容,另一次 - 一瞬间 - 用空表单提交。
你可能正在经历这种情况。我用
解决了这个问题if (!empty($_POST)){ ... }
希望它有所帮助。