Не может повторить POST, но может повторить запрос - PullRequest
0 голосов
/ 11 января 2012

РЕДАКТИРОВАТЬ: понял, как упомянуто в моем комментарии.Сделал глупость и использовал одиночный = вместо двойного в операторе if.Из моего поста мы узнаем, что вы не должны пытаться писать код после 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'] ничего не делает.Переменные есть, если я изменяю содержимое POST var_dump.

Должно быть, я упускаю что-то простое, потому что оно работает на всех других моих страницах.
Это похоже на мой предыдущий вопрос, но я неповторяя эту ошибку.

Вот что она выводит:

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>

Ответы [ 2 ]

0 голосов
/ 11 января 2012

Раньше у меня была проблема, когда ошибка в некоторых браузерах (в моем примере Chrome) отправляла форму дважды (даже если кнопка «Отправить» была нажата один раз, и она выглядела только как страница, обновленная один раз).Таким образом, браузер отправит один раз содержимое, предоставленное в форме, а другой - через доли секунды после - с пустой формой.

Возможно, это то, что вы испытываете.Я решил это с помощью

if (!empty($_POST)){ ... }

Надеюсь, это поможет.

0 голосов
/ 11 января 2012

Я не нахожу никаких ошибок, я попробовал вашу форму на отдельной странице, и она работала хорошо. Посмотрите на этот код:

<code><?php

echo "<pre>";print_r($_POST);echo "
"; ?>

Поместите этот код в отдельный файл и протестируйте его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...