2017-01-13 4 views
1

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

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

die ("<h2> Welcome</h2>Login to get started..."); 

Просьба также предоставить альтернативу для этого. любая помощь определенно будет оценена.

if ($reg) { 
     if ($em==$em2) { 
     $e_check = mysql_query("SELECT email FROM users WHERE email='$em'"); 
     $checke = mysql_num_rows($e_check); 
     $u_check = mysql_query("SELECT username FROM users WHERE username='$un'"); 
     $check = mysql_num_rows($u_check); 
     if ($check == 0 && $checke == 0) { 
         if ($fn&&$ln&&$un&&$em&&$em2&&$pswd&&$pswd2) { 

      if ($pswd==$pswd2) { 
           if (strlen($un)>25||strlen($fn)>25||strlen($ln)>25) { 
       echo "Username/ First Name/ Last Name cannot exceeds 25 characters!"; 
       } 
       if (strpos($un, " ") !== false){ 
        echo "Your username cannot have a space character."; 
       } 
       if (strpos($em, "@") == false){ 
        echo "Invalid Email"; 
       } 
       else { 
       if(strlen($pswd)>30||strlen($pswd)<5) { 
      echo "Your password must be between 5 and 30 characters long!"; 
       } 
       else{ 
        $pswd = md5($pswd); 
        $pswd2 = md5($pswd2); 
        $query = mysql_query("INSERT INTO users VALUES ('', '$un','$fn','$ln','$em','$pswd','$d','0','Write something about yourself.','','')"); 
        die ("<h2> Welcome</h2>Login to get started..."); 
       } 
       } 
      } 
      else{ 
       echo "Your passwords doesn't match!"; 
      } 
      } 
      else{ 
      echo "Please fill in all the fields"; 
      } 
     } 
     else{ 
     echo Username already taken or Email already registered 
     } 
    } 
    else{ 
     echo "Your E-mails doesn't match"; 
    } 
    } 

HTML:

<form action="#" method="POST"> 
    <input type="text" name="fname" size="25" placeholder="First Name" /> 
    <input type="text" name="lname" size="25" placeholder="Last Name" /><br><br> 
    <div data-tip="Make Sure you remember your username. You'll need it at the time of login. Your username should not have space in between."> 

    <input type="text" name="username" size="56" placeholder="User Name" /></div><br><br> 
    <input type="text" name="email" size="56" placeholder="Email Address" /> 
    <input type="text" name="email2" size="56" placeholder="Please re-enter your Email Address" /><br><br> 
    <input type="password" name="password" size="47" height="30" padding="30" placeholder="Password" /><br><br> 
    <input type="password" name="password2" size="47" height="30" placeholder="Please re-enter your Password" /><br><br> 
    <input type="submit" name="reg" value="Sign Up and learn!" /> 
</form> 
+0

Ajax будет лучшим вариантом. – Deep

+0

Я не дружу с AJAX. –

+0

Вы должны получить много * новых друзей * s, как вы должны потерять 'mysql_ *', поскольку это устарело, а 'md5()' небезопасно для хэширования паролей. Начните использовать 'password_hash()' и 'PDO' или' mysqli_ * 'вместо этого. Вы можете начать дружить с AJAX, тем временем :) – Nytrix

ответ

0

Если вы хотите настроить сообщение об ошибке, Say придавая ему красный цвет или что-нибудь. вы можете добавить класс во все блоки span. и вы можете указать атрибуты этого класса. как показано ниже

<style> 
.help-block 
{ 
    color: red; 
} 
</style> 

Вы можете добавить несколько пролетных блоков ниже каждого входа него каждый Дайте взгляд уникальный идентификатор, и сделать его Скрытый По умолчанию. Как Ниже

<input type="text" name="fname" size="25" placeholder="First Name" /> 
<span class="help-block" id="fname_block" style="display:none;"></span><br> 

<input type="text" name="lname" size="25" placeholder="Last Name" /> 
<span class="help-block" id="lname_block" style="display:none;"></span><br> 

В PHP:

если ошибка в первом входе. т.е., fname

echo"<script>document.getElementById('fname_block').innerHTML = 'error in first name'; 
document.getElementById('fname_block').style.display = 'inline'; </script>"; 

или если ошибка является вторым вводом (например, lname). затем укажите идентификатор блока диапазона этого ввода в части кода getelementById кода

не забудьте скрыть блок блока, если нет ошибки.

document.getElementById('fname_block').style.display = 'none'; 

Если вы используете JQuery (вам просто нужно добавить библиотеку Jquery), то кодировки будут очень просто.

JQuery код для того же JS код выше

$('#fname_block').html('error in first name').show(); 

вы можете скрыть элемент в JQuery, как показано ниже.

$('#fname_block').hide(); 
+0

сообщение об ошибке не отображается, когда я пробовал этот код. –

+0

это не сработало –

+0

не могли бы вы предоставить мне рабочий пример –

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