2015-08-04 2 views
0

В настоящее время я создаю скрипт регистрации/проверки подлинности для веб-сайта и наткнулся на вопрос.Проверка формы PHP, сохранение значений полей после обновления

Я использую весь PHP для проверки и использования операторов if для эхо-массива ошибок.

Мой вопрос: Как я могу сохранить входные значения пользователя в форме после обновления? Должен ли я изучать AJAX?

  • Примечание: Файл я об это register.php, который отправляет данные на той же странице (action = ""). И form_handle.php фактический сценарий проверки включены в самый верх/начале register.php

form_handle.php КОД:

$errors = array(); 

if(empty($safe_fname) || 
    empty($safe_lname) || 
    empty($safe_email) || 
    empty($safe_email_again) || 
    empty($safe_password)) 
     { 
     $errors = '<p>One or more fields left empty'; 
     } 
elseif(strlen($safe_password) < 6) 
    { 
    $errors = '<p>Password must be atleast 6 charcters long.</p>'; 
    } 

elseif($safe_email != $safe_email_again) 
    { 
    $errors = '<p>E-mails do not match.</p>'; 
    } 

The form КОД:

 <h2>Sign up Today!</h2> 
      <form method="post" action=""> 
        <span class="p" id="p1"></span><br/> 
      <input name="first_name" id="first" class="register_form cap" type="text" placeholder="First Name" /> 
       <br/><span class="p" id="p2"></span><br/> 
     <input name="last_name" id="second" class="register_form cap" type="text" placeholder="Last Name" /> 
      <br/><span class="p" id="p3"></span><br/> 
     <input name="email" id="third" class="register_form" type="text" placeholder="E-mail" /> 
      <br/><span class="p" id="p4"></span><br/> 
     <input name="email_again" id="fourth" class="register_form" type="text" placeholder="Re-enter E-mail" /> 
      <br/><span class="p" id="p5"></span><br/> 
     <input name="password" type="password" class="register_form" placeholder="Password" /> 
      <br/><span class="p" id="p1"></span><br/> 
     <input name="submit" id="fifth" class="register_form" type="submit" value="Create!" /> 

     </form> 
</div> 
+3

Просто используйте 'значение =" «' в вашем HTML? – kero

+0

Не забудьте использовать isset, иначе вы получите неопределенный индекс, если форма не отправлена. – Epodax

+0

Встречалась с этой ошибкой. –

ответ

1

Быстрый способ сделать это и избежать много кода и ошибки, как, например:

<input type='text' name='first_name' value='<?php echo isset($_POST['first_name']) ? $_POST['first_name'] : ''; ?>' /> 
+0

Не возвращает значение после обновления –

+0

Я прошу прощения , У меня была моя эхо, как HEREDOC. Как только я взял форму из HEREDOC, код работал нормально. –

2

Ваш код должен быть как

<input type='text' name='first_name' value='<?php echo $_POST['first_name']; ?>' /> 
+2

Можете добавить 'isset()', чтобы он избегал неопределенной ошибки индекса – Epodax

+0

'@ $ _ POST ['first_name']' должно быть лучше, чем 'isset()' в приведенном выше случае. – Hassaan

+0

Этот код просто перекликается с разделителями PHP и всем кодом PHP –

0

Вы можете попробовать, как следующим образом-

<input name="first_name" id="first" class="register_form cap" type="text" 
    <?php 
    if(isset($_POST['first_name'])) { 
     echo "value='".$_POST['first_name']."'"; 
    } else { 
     echo "placeholder='First Name'"; 
    } 
    ?> 

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