2010-08-30 2 views
0

Когда пользователь создает свою собственную учетную запись, если есть ошибка, я хочу перенаправить ее на ту же страницу, но отобразите ошибки наверху.Отправка сообщений об ошибках на другую страницу?

Каков наилучший способ для этого?

+1

Почему перенаправление? Почему бы вам просто не напечатать ошибку? Используйте шаблон, если хотите отделить обработку данных от вывода данных. – Gumbo

+0

Поскольку, если пользователь заполняет поля ввода и вводит неверную информацию, когда они нажимают «register», я хочу, чтобы они были перенаправлены на страницу регистрации и рассказали об ошибке. –

+0

Просто отправьте данные формы на одну страницу и выполните проверку там до вывода формы. Затем вы можете распечатать ошибку и заполнить форму. – Gumbo

ответ

3

Структура вашей страницы следующим образом (в грубом псевдокоде)

if (doing a post) { 
    process input 
    if (post is ok) { 
     redirect to success page 
    } else { 
     build error messages 
    } 
} 

if (error messages available) { 
    display errors 
} 

display form(filled in with previously submitted values) 
+0

Вот что я делаю, но есть ли способ сделать это, не комбинируя PHP и HTMl на одной странице –

+0

, конечно, используйте систему шаблонов. но независимо от того, какую систему шаблонов вы используете, в НЕКОТОРЫХ точках код/​​html должны смешиваться. –

0

откладываю ошибку в сессии и удалить ее, когда она была оказана. Поскольку вы, вероятно, прекратите выполнение страниц при перенаправлении, он никогда не достигнет кода, ответственного за рендеринг, тем самым оставив его в сеансе.

1

Мне нравится создавать функцию с именем set_feedback(), которая устанавливает ошибку в переменной сеанса. то у меня есть эта другая функция get_feedback(), которая извлекает информацию и отменяет переменную.