2010-08-16 4 views
5

Я бы хотел показать сообщение спасибо после добавления комментария только для загрузки первой страницы ... Форма комментария обрабатывается с использованием внешнего php-файла и перенаправляется обратно на страницу. Я хотел бы отобразить сообщение только после перенаправления ... Какой был бы лучший способ сделать это с помощью php?Показать сообщение только для загрузки первой страницы

ответ

5

Если у вас есть доступ к внешнему файлу PHP, который обрабатывает файл, который вы могли бы сделать что-то подобное следующему на файл обработки:

$_SESSION['flashMessage'] = 'Thank you for posting.'; 
header("Location: your-page.php'); 

, а затем добавьте следующий код в перенаправлении ра ge:

if ($_SESSION['flashMessage']) { 
    echo $_SESSION['flashMessage']; 
    $_SESSION['flashMessage'] = NULL; 
} 
+0

не должна быть последней строкой be '$ _SESSION [' flashMessage '] = NULL;' ? – oezi

+0

@oezi - вы действительно правы, правильно отреагировали на ответ. – simnom

3

Сохраните мессу в сеанс. Отобразите его и просто отключите переменную сеанса.

0

При перенаправлении отправить через $ _GET массив переменной что-то вроде этого:

header("LOCATION: index.php?msg=1"); 

На проверке индекса, если $ _GET [ 'сбщ'] == 1 затем отображать сообщение

0

Возможно, вы захотите применить шаблон PRG. В основном вы публикуете комментарий, а сервер отвечает клиенту, чтобы выполнить перенаправление на вашу страницу с дополнительной информацией в строке запроса, как утверждал Вадим.

«Элегантный», бессеточный и функциональный.

1

На странице, где обрабатывается комментарий:

if($success) 
{ 
    $_SESSION['userMsg'] = "<p>Your comment has been added. Thank you.</p>"; 
} 

В любой/все страницы (но в основном один вы перенаправлении):

if($_SESSION['userMsg'] != '') 
{ 
    print $_SESSION['userMsg']; 
    unset($_SESSION['userMsg']; 
} 

Это предполагает, что вы будете используя Сеансы и поэтому ранее называл функцию session_start()

Смежные вопросы