从db获取数据并与用户输入进行比较

时间:2015-02-13 11:08:52

标签: php html mysql email

我正在为电子邮件确认链接创建代码。用户在db中插入了电子邮件ID,n个存储。下次当用户将id插入表单时,首先它将检查db中是否已经存在电子邮件ID。如果y然后说已经存在' &安培;如果n然后将其插入db。最初我将数据插入db。那么我想比较用户输入电子邮件与db电子邮件ID。所以我不知道我如何检索pg上的数据然后比较它。这是我的代码

<html>
<body>
<form name="form" method="post">
<table>
  <tr>
    <td>First Name</td>
    <td><input type="text" name="fname" required pattern="[a-zA-Z]+" /></td>
  </tr>
  <tr>
    <td>Last Name</td>
    <td><input type="text" name="lname" required pattern="[a-zA-Z]+" /></td>
  </tr>
  <tr>
    <td>Email Id</td>
    <td><input type="email" name="mail" required  /></td>
  </tr>
  <tr>
    <td></td>
    <td><input type="submit" name="submit" value="submit" /></td>
  </tr>
</table>
</form>
<?php
include 'connection.php';
if(isset($_POST["submit"]))
{
    $fname="'".trim(addslashes($_POST["fname"]))."'";
    $lname="'".trim(addslashes($_POST["lname"]))."'";
    $email="'".trim(addslashes($_POST["mail"]))."'";
    $key="'".MD5(microtime())."'"; 
    $to=$email;
    $subject="Confirm your email id";
    $message="Hello $fname
Click on below link to confirm your id.
www.vs.com/abcdefghojklmnopqrstuvwxyz.php?code=$key
";
    $header="From :sneha@valencynetworks.com";
    // echo $fname."<br />".$email."<br />".$to."<br />".$subject."<br />".$message."<br />".$header;   
    if(mail($to,$subject,$message,$header))
     {
        $sql="insert into confirm_emailid values($email,$fname,$lname,$key,'1')";
        if(mysqli_query($con,$sql))
        {
          die("Check your id for confirmation".mysqli_error($con));
        }
    }


/*$sql1=mysqli_query($con,"select * from random_key where eid=$email");
 while($row=mysqli_fetch_assoc($sql1))
 {
    echo $row['eid'];
 }*/ 
$result="SELECT count(eid) as number_of_occurences FROM confirm_emailid WHERE eid = $_POST['mail']";
if ($row['number_of_occurences'] == 0) {
  echo "this adresse isn't in the database, so add it !";
}
else {
  echo "already in the database :(";
}
mysqli_close($con);
}

?>
</body>
</html>

3 个答案:

答案 0 :(得分:1)

最好的方法是使用Ajax将此电子邮件字段与数据库电子邮件进行比较。 步骤:

  1. 列表项
  2. 关注电子邮件领域的焦点调用ajax请求
  3. 此ajax请求字段包含用户输入的电子邮件
  4. 在php页面上检查是否存在电子邮件o如果存在则不存在错误标志,如果不存在则给出真正的标志。 4.通过此方法,您可以检查电子邮件而无需加载页面。

答案 1 :(得分:0)

当您的表单被提交时,您有一个数组$ _POST。 因此,您只需从数据库中选择相同的值:例如:

SELECT count(id)as number_of_occurences FROM member WHERE mail_adresse = $ _POST ['e-mail'];

您像其他时间一样获取数据,只需将$ row ['number_of_occurences']与0进行比较。

if ($row['number_of_occurences'] == 0) {
this adresse isn't in the database, so add it !
}
else {
 already in the database :(
}

答案 2 :(得分:0)

的index.php

<html>
<body>
    <form name="form" method="post" action="process.php">
        <table>
            <tr>
                <td>First Name</td>
                <td><input type="text" name="fname" required pattern="[a-zA-Z]+" /></td>
            </tr>
            <tr>
                <td>Last Name</td>
                <td><input type="text" name="lname" required pattern="[a-zA-Z]+" /></td>
            </tr>
            <tr>
                <td>Email Id</td>
                <td><input type="email" name="mail" required  /></td>
            </tr>
            <tr>
                <td></td>
                <td><input type="submit" name="submit" value="submit" /></td>
            </tr>
        </table>
    </form>



</body>

process.php

  <?php


    $host = "localhost";
    $user = "root";
    $password = "yourpass";
    $database = "your database name";



   // Establish server connection and select database
    $dbh = mysqli_connect($host, $user, $password, $database);

  if (mysqli_connect_errno()) {
      die('Unable to connect to database ' . mysqli_connect_error());
   } else {

  // run query to fetch records
    // $result = mysqli_query($dbh, "SELECT  email_address FROM users ");
   /* fetch associative array */


  $email = $_POST['mail'];

  $query = "SELECT `eid` FROM `confirm_emailid` WHERE `eid` = '$email'";
  $result = mysqli_query($dbh, $query); //$link is the connection



  if (mysqli_num_rows($result) > 0) {


      die('email already exists');
  } else {

      $query = mysqli_query($dbh, "insert into users(email_address)   values('$email')");

     echo 'data inserted succesfully';
         }
       }
相关问题