2011-02-04 2 views
0

У меня есть форма, которая позволяет пользователям прокомментировать страницу, однако они должны войти в систему/зарегистрироваться, прежде чем они смогут публиковать сообщения.Website flow in php

Если они ошибаются (например, ответ слишком короткий), им сообщают после того, как они вошли в систему («С вами была ошибка с ответом» ...).

Однако тогда содержимое их ответа утеряно, как я могу сохранить его так, чтобы оно отображалось в форме?

Формы страница довольно прост:

<?php if (isset($errors['reply_header'])) echo $errors['reply_header']; ?> 

<form method="post" action="http://localhost/LOGIN/user/?action=reply"> 
    <input type="hidden" name="auth_token" value="<?php echo $auth_token; ?>"> 
    <input type="hidden" name="thread_id" value="<?php echo $id; ?>"> 
<!--rest of the form goes here, thread_id shows us which thread/page they are replying to--> 

Это представляет на эту страницу:

# get the register/login controller: 
require_once FORUM_ROOT . 'register/index.php'; // if session is not set, then ask for login 

if (isset($_GET['action'])) 
{ 
    switch ($_GET['action']) 
    { 
     case 'new':  # create a new thread... 
      require_once USER_ROOT . 'new_thread.php';  
     break; 

     case 'reply': 
       $_POST['action'] == 'Reply'; 
       require_once USER_ROOT . 'thread_reply.php'; 
       die(); 
     break; 

     default:   # show user page... 
      require_once USER_ROOT . 'main.html.php'; 
     break; 
    }  
} 

Я знаю, что может сохранить содержимое формы в сессии, но где бы я поставил это?

ответ

2

Вы делаете $_GET , но ваш метод форма пост

Так вместо $_GET вы должны использовать $_POST

ПРИМЕЧАНИЕ изменить свои действия и сделать этот ответ $ _GET переменной также

<input type="hidden" name="action" value="reply" /> 

Смотрите, если это работает

+0

arrrr, .. извините, это была старая версия, я также добавил метод POST –

0

Вы должны сохранить его в сеансе var be перед этой линией (я предполагаю, что если пользователь не зарегистрирован в этом скрипте, он не позволит остальной части кода выполнить).

require_once FORUM_ROOT . 'register/index.php'; 
0

Предполагая, что комментарий вводится в текстовое поле, вы можете сделать это:

 
<textarea> 
<?php echo htmlspecialchars ($_POST['text']); ?> 
</textarea> 

Конечно, вам нужно заменить $ _POST [ «текст»] с реальным именем текстовое поле.