2014-11-16 4 views
0

Я новичок в php, и я хотел реализовать некоторую проверку формы php на веб-сайте, над которым я работал. Раньше я использовал javascript для проверки содержимого формы, но я слышал, что php - лучший способ сделать это.Проверка формы PHP и сообщение об ошибках

Я попытался внедрить некоторые php на свой сайт, чтобы поля были проверены, однако я думаю, что я должен делать что-то неправильно, поскольку в настоящее время ничего не функционирует так, как должно.

Вот PHP код я работаю с:

<?php 
if ($_SERVER["REQUEST_METHOD"] == "POST") { 
    if (empty($_POST["name"])) { 
     $nameErr = "Missing"; 
    } 
    else { 
     $name = $_POST["name"]; 
    } 

    if (empty($_POST["tele"])) { 
     $teleErr = "Missing"; 
    } 
    else { 
     $tele = $_POST["tele"]; 
    } 

    if (empty($_POST["email"])) { 
     $emailErr = "Missing"; 
    } 
    else { 
     $email = $_POST["email"]; 
    } 

    if (empty($_POST["party"])) { 
     $partyErr = "You must select 1"; 
    } 
    else { 
     $party = $_POST["party"]; 
    } 

    if (!isset($_POST["hand"])) { 
     $handErr = "You must select 1 option"; 
    } 
    else { 
     $hand = $_POST["hand"]; 
    } 

    if (empty($_POST["reservation"])) { 
     $reservationErr = "Missing"; 
    } 
    else { 
     $reservation = $_POST["reservation"]; 
    } 

    if (empty($_POST["time"])) { 
     $timeErr = "You must select a time"; 
    } 
    else { 
     $time = $_POST["time"]; 
    } 
} 
?> 

Вот HTML-формы Я работаю с:

<form method= "POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 

<p class="ex"><strong>Full Name:</strong> 
<br> 
<input type="text" name="name" value="<?php echo htmlspecialchars($name);?>"> 
<span class="error"><?php echo $nameErr;?></span> 
<br><br> 

<strong>Contact Telephone:</strong> 
<br> 
<input type="text" name="tele" placeholder="Telephone Number" id="tele""/> 
<br><br> 

<strong>Contact Email:</strong> 
<br> 
<input type="text" name="email" placeholder="[email protected]" id="email""/> 
<!-- Party requirments --> 

<br><br> 
<strong>Select Party Size:</strong> 
<br> 
<select name="party" id="party"> 
<option value="">Please Select</option> 
<option value="5">1 Person (£5)</option> 
<option value="10">2 People (£10)</option> 
<option value="15">3 People (£15)</option> 
<option value="20">4 People (£20)</option> 
<option value="25">5 People (£25)</option> 
<option value="30">6 People (£30)</option> 
<option value="35">7 People (£35)</option> 
<option value="40">8 People (£40)</option> 
<option value="45">9 People (£45)</option> 
<option value="50">10+ People (£50)</option> 
</select> 
<br><br> 
<strong>Dietary Requirements:</strong> 
<br> 
Vegetarian <input type="checkbox" name="diet[]" value="Vegetarian"> 
Vegan <input type="checkbox" name="diet[]" value="Vegan"> 
Peanut Allergy <input type="checkbox" name="diet[]" value="Peanut Allergy"> 
Gluten Allergy <input type="checkbox" name="diet[]" value="Gluten Allergy"> 
<br><br> 

<strong> VIP Area? </strong> 
<br> 
Yes (+£5) <input name="hand" id="left" value="5" type="radio"> 
No <input name="hand" id="right" value="0" checked="" type="radio"> 
<br><br> 

<strong> Reservation Date: </strong> 
<br> 
<input type="text" name="reservation" placeholder="DD/MM/YYYY" id="reservation"> 
<br><br> 

<strong> Reservation Time </strong> 
<br> 
<select name="time" id="time" onblur="validateTime(name)"> 
<option value="">Please Select</option> 
<option value="17:00">17:00</option> 
<option value="17:30">17:30</option> 
<option value="18:00">18:00</option> 
<option value="18:30">18:30</option> 
<option value="19:00">19:00</option> 
<option value="19:30">19:30</option> 
<option value="20:00">20:00</option> 
<option value="20:30">20:30</option> 
<option value="21:00">21:00</option> 
<option value="21:30">21:30</option> 
<option value="22:00">22:00</option> 
</select> 
<span id="timeError" class="timeError" style="display: none;">You must select a time for your reservation.</span> 
<br><br> 
<strong> Any Additional Information: </strong> 
<br> 
<textarea name="comments" placeholder="Birthday celebration arrangements, etc." rows="10" cols="50"></textarea> 
<br><br><br> 
<strong> Total booking cost based on party size & VIP selection: £<span id="price">0</span></strong> 
<br><br><br> 
<input type="submit" id="submit" name="submit" value="Submit"> 
<input type="reset" value="Reset form"> 

В идеале я хотел бы эту форму, чтобы подтвердить, что пользователь ввел и отобразил сообщение об ошибке, если они ввели неверную информацию в поле или оставили поле пустым. Любой, кто имеет какие-либо предложения, которые помогут мне достичь этого, пожалуйста, помогите мне, я много работал над этой задачей, но havent повезло :(

ответ

0

Я бы посоветовал использовать ассоциативные массивы для ошибок, прямо сейчас вы создаете много новых . переменные и это очень много времени, чтобы написать код, который через него проходит эффективно

Таким образом, вместо $tele = $_POST["tele"]; использовать именно: $f_err['tele'] = $_POST["tele"]; таким образом, вы можете пройти через ошибку легко подсчитать их и отображать их в соответствующем поле формы откровенно говоря, ваш код. прямолинейно и не видит никаких проблем с этим.

Можете ли вы уточнить, что не работает должным образом?

+0

Спасибо за ваш ответ, в основном, когда я пытаюсь открыть веб-страницу и нажимаю кнопку «Отправить», я попадаю на пустую страницу вместо ошибок для пустых полей. Кроме того, вместо пустого поля для поля имени он имеет «», Напечатанный на нем, как только я открою веб-страницу :( – 05K3

+0

Возможно, у вас пустая страница, так как отчет об ошибках отключен Проверьте свои журналы apache или error.log, чтобы узнать, что не так, а затем вернитесь к нам с возникшими ошибками. – LukasS

0

Я согласен с LukasS. Единственное, что я могу добавить, это инициализировать переменные за пределами операторов if. Это обеспечит правильную настройку области.

+0

Спасибо за ваш ответ, можно ли связать меня с pastebin с этими изменениями, чтобы я мог лучше что вы имеете в виду? – 05K3

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