如何从数据库中检查字段值


How to check field value from database

我从用户那里得到三个输入:用户名、名字、电子邮件。

我想检查一下,如果数据库中存在用户名,那么它应该检查相应的名字和电子邮件。如果这三个都是正确的,那么打印消息。

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);
       }

首先请将html中的表单标记与方法post一起使用。然后使用这个

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>";
              }
        }

您缺少表单标记和一个(命名的)提交按钮来配合条件语句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'";

同时将CCD_ 2和CCD_ 3添加到POST变量中。

即:(并为所有POST变量执行此操作)

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

然而,最好使用事先准备好的陈述;请参阅下文。


错误报告添加到可能发出错误信号的文件顶部。

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

旁注:错误报告只能在临时阶段进行,而不能在生产阶段进行。

包括or die(mysql_error())mysql_query()。你没有做的事。


  • 您当前的代码对SQL注入是开放的
    mysqli与准备好的语句一起使用,或将PDO准备好的报表一起使用/li>