2014-10-22 8 views
-1

Я беру три входа от пользователя: UserName, FirstName, Email.Как проверить значение поля из базы данных

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

код HTML:

<html> 
<body> 
    Username: <input type="text" name="username"/> 
    FirstName: <input type="text" name="name"/> 
    Email: <input type="text" name="email"/> 
</body> 
</html> 

PHP код:

 if(isset($_POST['submit'])) 
     { 
      $usrnm=$_POST['username']; 
      $name=$_POST['name']; 
      $email=$_POST['email']; 


      $user_name = "root"; 
      $password = ""; 
      $database = "show_your_talent"; 
      $server = "127.0.0.1"; 
      $db_handle = mysql_connect($server, $user_name, $password); 
      $db_found = mysql_select_db($database, $db_handle); 

      if ($db_found) 
      { 
       $res="SELECT UserName,Fname,Email FROM reg WHERE UserName='$usrnm'"; 
       $result = mysql_query($res); 

       $count=mysql_num_rows($result); 
       if($count==1) 
       {    
        echo "<script type='text/javascript'> alert('Password has been sent to your email id..')</script>"; 
       } 
       else 
       { 
        echo "<script type='text/javascript'> alert('Wrong')</script>"; 
       } 
      } 
      mysql_close($db_handle); 
     } 
+1

бланк формы отсутствует –

ответ

2

Первый Пожалуйста, используйте форму тег в HTML с помощью метода post.Then использовать этот

if ($db_found) 
     { 
       $name=$_POST['name']; 
       $email=$_POST['email']; 
       $res="SELECT * FROM reg WHERE UserName='".$usrnm."'"; 
       $res1="SELECT * FROM reg WHERE UserName='".$usrnm."' and Fname ='".$name."'"; 
       $res2="SELECT * FROM reg WHERE UserName='".$usrnm."' and Fname ='".$name."' and Email='".$email."'"; 
       $result = mysql_query($res); 
       $result1= mysql_query($res1); 
       $result2 = mysql_query($res2); 
       $count=mysql_num_rows($result); 
       $count1=mysql_num_rows($result1); 
       $count2=mysql_num_rows($result2); 
       if(($count==1) && ($count1==1) && ($count2==1)) 
       { 
        echo "<script type='text/javascript'> alert('Password has been sent to your email id..')</script>"; 
       } 
       else 
       { 
        echo "<script type='text/javascript'> alert('Wrong')</script>"; 
       } 
     } 
+0

Thank You! это сработало. – Disha

+0

Почему вы используете это дважды, если (($ count == 1) && ($ count2 == 1) && ($ count2 == 1)) –

+1

Извините Его if (($ count == 1) && ($ count1 == 1) && ($ count2 == 1)) вот так .. Я отредактировал свой ответ – Choco

2

Вы недостающую формы и кнопку с именем (named) submit, чтобы перейти к вашему условному заявлению if(isset($_POST['submit'])){...}

Ваш код не будет выполнен без него.

<html> 
<body> 

<form action="handler.php" method="post"> 
    Username: <input type="text" name="username"/> 
    FirstName: <input type="text" name="name"/> 
    Email: <input type="text" name="email"/> 

<input type="submit" name="submit" value="Submit"> 

</form> 
</body> 
</html> 

Затем нужно изменить ваш запрос:

$res="SELECT * FROM reg WHERE UserName='$usrnm' 
      AND Email='$email' AND Fname='$name'"; 

при добавлении stripslashes() и mysql_real_escape_string() к вашим переменным POST.

т.е .: (и делать это для всех переменных POST)

$usrnm = stripslashes($_POST['username']); 
$usrnm = mysql_real_escape_string($_POST['username']); 

Тем не менее, это лучше использовать подготовленные заявления; см. ниже.


Добавить error reporting в верхней части файла (ов), который бы сигнализировал ошибку.

error_reporting(E_ALL); 
ini_set('display_errors', 1); 

Sidenote: Сообщения об ошибках не должно быть сделано только в постановке, и никогда производства.

Включая or die(mysql_error()) в mysql_query(). То, что вы не делаете.


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