Ничего не нажималось - php - PullRequest
1 голос
/ 08 января 2011

У меня есть такая форма:

<form method="post" action="user/?action=reply">
    <!--blah -->
    <input type="submit" name="action" value="Reply">

</form>

В файле user / index.php у меня есть:

switch ($_GET['action'])
{

    case 'reply':
        if (isset($_POST['action']) && $_POST['action'] == 'Reply' )
        {
            require_once USER_ROOT . 'thread_reply.php';
        }
        else
        {
            echo "Nothing was clicked";
        }
...

На выходе ничего не нажималось.

error_reporting (E_ALL);ничего не возвращает.

Редактировать:

print_r ($ _ GET) возвращает: Array ([action] => reply)

print_r ($ _POST) возвращает пустой массив

Ответы [ 2 ]

2 голосов
/ 08 января 2011

Вы проверяете $_GET в своем заявлении switch, но ваша форма установлена ​​на post. Измените его на method="get" или используйте $_POST.

Поскольку сервер HTTP может отправлять только один тип запроса (GET или POST), ваша форма отправит запрос POST. Напомню, что в зависимости от браузера и вашей конфигурации PHP, переменные GET могут игнорироваться при использовании запросов POST.

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

И помните, запрос GET должен использоваться для получения, а запрос POST должен использоваться для создания. В вашем случае кажется, что POST более уместен (ответ).

1 голос
/ 08 января 2011

Понятия не имею, почему вы используете два значения, но .. :)

Вы должны удалить параметр из действия формы и преобразовать его в скрытое поле внутри формы. Я не уверен, что вы можете получить оба параметра post при выполнении запроса.

Как это:

<form method="post" action="user">
    <!--blah -->
    <input type="hidden" name="target_action" value="reply" />
    <input type="submit" name="action" value="Reply" />
</form>

И измените php-файл следующим образом:

switch ($_POST['target_action'])
{

    case 'reply':
        if (isset($_POST['action']) && $_POST['action'] == 'Reply' )
        {
            require_once USER_ROOT . 'thread_reply.php';
        }
        else
        {
            echo "Nothing was clicked";
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...