Как воспроизвести сообщение об ошибке в нужном мне месте

#php #html #css

Вопрос:

У меня есть инструкция if else ниже, где она будет просматривать базу данных и отображать ошибку, если сообщения электронной почты нет в базе данных. Я хочу повторить сообщение об ошибке рядом с кнопкой «Отправить». В настоящее время мое сообщение об ошибке всегда будет отображаться в верхней части страницы.

 if (mysql_num_rows($search_user_email) gt; 0) {  echo "lt;p style="color:red"gt;lt;bgt;Email found!lt;/bgt;lt;/pgt;"; } else { echo "lt;p style="color:red"gt;lt;bgt;Email not found!lt;/bgt;lt;/pgt;"; }   lt;tr style="background-color: #FFFFFF; height: 18px"gt; lt;tdgt; lt;span style="font-size:10pt;"gt;Search by email:lt;/spangt; lt;/tdgt; lt;tdgt; lt;form action="" method="post" name="search_email_form"gt; lt;input type="text" style="height:15px; font-size:10pt;" name="search_email_input"gt;lt;/inputgt; lt;/tdgt; lt;tdgt; lt;input type="submit" style="height:22px; font-size:10pt;" name="search_email_submit" value="Search"gt;lt;/inputgt; lt;/formgt;  

Комментарии:

1. Это так просто, что я задаюсь вопросом, перестали ли вы на самом деле думать об этом.

Ответ №1:

Просто сохраните сообщение об ошибке в переменную и отобразите его по мере необходимости:

 $errMsg=""; if (mysql_num_rows($search_user_email) gt; 0) {  $errMsg= "lt;p style="color:red"gt;lt;bgt;Email found!lt;/bgt;lt;/pgt;"; } else { $errMsg= "lt;p style="color:red"gt;lt;bgt;Email not found!lt;/bgt;lt;/pgt;"; }   lt;tr style="background-color: #FFFFFF; height: 18px"gt; lt;tdgt; lt;span style="font-size:10pt;"gt;Search by email:lt;/spangt; lt;/tdgt; lt;tdgt; lt;form action="" method="post" name="search_email_form"gt; lt;input type="text" style="height:15px; font-size:10pt;" name="search_email_input"gt;lt;/inputgt; lt;/tdgt; lt;tdgt; lt;input type="submit" style="height:22px; font-size:10pt;" name="search_email_submit" value="Search"gt;lt;/inputgt; lt;/formgt;lt;?php echo $errMsg; ?gt;  

Комментарии:

1. Я думаю, тебе следует это сделать if (isset($errMsg))

2. @blo Я на самом деле еще раз просмотрел свой код и сохранил входные данные как при успешном, так и при неудачном выполнении запроса, так что в любом случае будет лучше отобразить его.

3. Да, теперь это не нужно 🙂

Ответ №2:

установите флаг, если есть ошибка

 if (mysql_num_rows($search_user_email) gt; 0) {  $emailError = true; } else { echo "lt;p style="color:red"gt;lt;bgt;Email not found!lt;/bgt;lt;/pgt;"; }   lt;tr style="background-color: #FFFFFF; height: 18px"gt; lt;tdgt; lt;span style="font-size:10pt;"gt;Search by email:lt;/spangt; lt;/tdgt; lt;tdgt; lt;form action="" method="post" name="search_email_form"gt; lt;input type="text" style="height:15px; font-size:10pt;" name="search_email_input"gt;lt;/inputgt; lt;/tdgt; lt;tdgt; lt;input type="submit" style="height:22px; font-size:10pt;" name="search_email_submit" value="Search"gt;lt;/inputgt; lt;?php if($emailError)  echo "lt;p style="color:red"gt;lt;bgt;Email found!lt;/bgt;lt;/pgt;";  $emailError = false; ?gt; lt;/formgt;  

Ответ №3:

Вот как бы я это сделал:

 lt;?php if(mysql_num_rows($search_user_email) gt; 0) {  $message = 'lt;p style="color:red"gt;lt;bgt;Email found!lt;/bgt;lt;/pgt;'; } else {  $message = 'lt;p style="color:red"gt;lt;bgt;Email not found!lt;/bgt;lt;/pgt;'; } ?gt;  lt;tr style="background-color: #FFFFFF; height: 18px"gt; lt;tdgt; lt;span style="font-size:10pt;"gt;Search by email:lt;/spangt; lt;/tdgt; lt;tdgt; lt;form action="" method="post" name="search_email_form"gt; lt;input type="text" style="height:15px; font-size:10pt;" name="search_email_input" /gt; lt;/tdgt; lt;tdgt; lt;input type="submit" style="height:22px; font-size:10pt;" name="search_email_submit" value="Search" /gt; lt;/formgt;  lt;?php if(isset($message)) {  echo $message; } ?gt;  

Кстати, PHP больше не поддерживает функции mysql_, и рано или поздно они будут удалены.*

Редактировать:
Вам не нужно ставить lt;/inputgt; , вы можете просто сделать это:

 lt;input ... /gt;