2011-10-01 133 views
0

我想知道是否有人能够帮助我。将PHP合并到HTML表格中

我试图把功能,它允许管理员使用电子邮件地址作为搜索条件在mySQL数据库中搜索用户的详细信息。一旦搜索结果发生,我希望我的表单中的“第一”和“姓氏”字段在检索到的记录中完成。

我认为搜索工作的形式刷新,但它不检索任何可见的信息。

我只是想知道是否有人可能会看看我的代码,并让我知道我哪里出了问题。

非常感谢

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
    <head> 
     <?php 
     require("phpfile.php"); 

     // Opens a connection to a MySQL server 

     $connection=mysql_connect ("hostname", $username, $password); 
     if (!$connection) { die('Not connected : ' . mysql_error());} 

     // Set the active MySQL database 

     $db_selected = mysql_select_db($database, $connection); 
     if (!$db_selected) { 
     die ('Can\'t use db : ' . mysql_error()); 
     } 


     $email = $_POST['email']; 
     $result = mysql_query("SELECT * FROM userdetails WHERE emailaddress like '%$email%'"); 

     ?> 
     <title>Map!</title> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     <script src="js/gen_validatorv4.js" type="text/javascript"></script> 
    </head> 
    <h1>&nbsp;</h1> 
    <form name="userpasswordreset" id="userpasswordreset" method="post"> 
     <div class="container"> 
      <p align="justify">&nbsp;</p> 
      <div class="title1"> 
       <h2>User Details </h2> 
      </div> 
      <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
       <tr> 
        <td width="26%" height="25"><strong>Email Address</strong></td> 
        <td width="4%">&nbsp;</td> 
        <td width="70%"><input name="email" type="email" id="email" size="50" /></td> 
       </tr> 
       <tr> 
        <td height="25"><strong>Confirm Email Address </strong></td> 
        <td>&nbsp;</td> 
        <td><input name="conf_email" type="email" id="conf_email" size="50" /></td> 
       </tr> 

       <tr> 
        <td height="25"><label> 
         <input type="submit" name="Submit" value="Search" /> 
         </label></td> 
        <td>&nbsp;</td> 
        <td>&nbsp;</td> 
       </tr> 
       <tr> 
        <td height="25">&nbsp;</td> 
        <td>&nbsp;</td> 
        <td>&nbsp;</td> 
       </tr> 
       <tr> 
        <td height="25"><strong>First Name </strong></td> 
        <td>&nbsp;</td> 
        <td><input name="fname" type="text" id="fname" size="30" value="<?php echo $row['forename']; ?>" /> </td> 
       </tr> 
       <tr> 
        <td height="25"><strong>Last Name </strong></td> 
        <td>&nbsp;</td> 
        <td><input name="lname" type="text" id="lname" size="30" value="<?php echo $row['surname']; ?>" /></td> 
       </tr> 
       <tr> 
        <td height="25">&nbsp;</td> 
        <td>&nbsp;</td> 
        <td>&nbsp;</td> 
       </tr> 

       <tr> 
        <td height="25"><strong>Password</strong></td> 
        <td>&nbsp;</td> 
        <td><input name="pass" type="password" id="pass" size="30" /></td> 
       </tr> 
       <tr> 
        <td height="25"><strong>Confirm Password </strong></td> 
        <td>&nbsp;</td> 
        <td><input name="conf_pass" type="password" id="conf_pass" size="30" /></td> 
       </tr> 
       <tr> 
        <td height="25">&nbsp;</td> 
        <td>&nbsp;</td> 
        <td>&nbsp;</td> 
       </tr> 
       <tr> 
        <td height="25"><strong>Password Hint </strong></td> 
        <td>&nbsp;</td> 
        <td><input name="hint" type="text" id="hint" size="30" /></td> 
       </tr> 
       <tr> 
        <td height="25">&nbsp;</td> 
        <td>&nbsp;</td> 
        <td>&nbsp;</td> 
       </tr> 
       <tr> 
        <td height="25">&nbsp;</td> 
        <td>&nbsp;</td> 
        <td>&nbsp;</td> 
       </tr> 
      </table> 

     </div> 
    </form> 
    <script language="JavaScript" type="text/javascript"> 
     // Code for validating the form 
     var frmvalidator = new Validator("userpasswordreset"); 
     frmvalidator.addValidation("email","req","Please provide your email address"); 
     frmvalidator.addValidation("email","email","Please enter a valid email address"); 
     frmvalidator.addValidation("conf_email","eqelmnt=email", "The confirmed email address is not the same as the email address"); 
    </script> 

</div> 
    </body> 
    </html> 

更新的代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
     <head> 
      <?php 
      require("phpfile.php"); 

      // Opens a connection to a MySQL server 

      $connection=mysql_connect ("hostname", $username, $password); 
      if (!$connection) { die('Not connected : ' . mysql_error());} 

      // Set the active MySQL database 

      $db_selected = mysql_select_db($database, $connection); 
      if (!$db_selected) { 
      die ('Can\'t use db : ' . mysql_error()); 
      } 
      $email = mysql_real_escape_string($_POST['email']); // make the value safe for in the query 
      $result = mysql_query("SELECT * FROM userdetails WHERE emailaddress like '%$email%'"); 
      $rows = array(); 

      while ($row = mysql_fetch_assoc($result)) { 
      $rows[] = $row; 
      } 

      // $rows is now a multi dimensional array with values found by the query 

      ?> 
<title>Map</title> 
<script src="js/gen_validatorv4.js" type="text/javascript"></script> 
<h1>&nbsp;</h1> 
<form name="userpasswordreset" id="userpasswordreset" method="post"> 
    <p align="justify">&nbsp;</p> 
    <div class="title1"> 
     <h2>Your Details </h2> 
    </div> 
    <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
     <tr> 
      <td width="26%" height="25"><strong>Email Address </strong></td> 
      <td width="4%">&nbsp;</td> 
      <td width="70%"><input name="email" type="email" id="email" size="50" /></td> 
     </tr> 
     <tr> 
      <td height="25"><strong> Confirm Email Address </strong></td> 
      <td>&nbsp;</td> 
      <td><input name="conf_email" type="email" id="conf_email" size="50" /></td> 
     </tr> 

     <tr> 
      <td height="25"><label> 
       <input type="submit" name="Submit" value="Search" /> 
       </label></td> 
      <td>&nbsp;</td> 
      <td>&nbsp;</td> 
     </tr> 
     <tr> 
      <td height="25"><strong>First Name </strong></td> 
      <td>&nbsp;</td> 
      <td><input name="fname" type="text" id="fname" size="30" /></td> 
     </tr> 
     <tr> 
      <td height="25"><strong>Last Name</strong></td> 
      <td>&nbsp;</td> 
      <td><input name="lname" type="text" id="lname" size="30" /></td> 
     </tr> 
     <tr> 
      <td height="25">&nbsp;</td> 
      <td>&nbsp;</td> 
      <td>&nbsp;</td> 
     </tr> 
     <tr> 
      <td height="25">&nbsp;</td> 
      <td>&nbsp;</td> 
      <td>&nbsp;</td> 
     </tr> 
     <tr> 
      <td height="25"><strong>Password</strong></td> 
      <td>&nbsp;</td> 
      <td><input name="pass" type="password" id="pass" size="30" /></td> 
     </tr> 
     <tr> 
      <td height="25"><strong>Confirm Password </strong></td> 
      <td>&nbsp;</td> 
      <td><input name="conf_pass" type="password" id="conf_pass" size="30" /></td> 
     </tr> 
     <tr> 
      <td height="25">&nbsp;</td> 
      <td>&nbsp;</td> 
      <td>&nbsp;</td> 
     </tr> 
     <tr> 
      <td height="25"><strong>Password Hint </strong></td> 
      <td>&nbsp;</td> 
      <td><input name="hint" type="text" id="hint" size="30" /></td> 
     </tr> 
     <tr> 
      <td height="25">&nbsp;</td> 
      <td>&nbsp;</td> 
      <td>&nbsp;</td> 
     </tr> 
     <tr> 
      <td height="25">&nbsp;</td> 
      <td>&nbsp;</td> 
      <td>&nbsp;</td> 
     </tr> 
    </table> 

</form> 
<script language="JavaScript" type="text/javascript"> 
    // Code for validating the form 
    // Visit http://www.javascript-coder.com/html-form/javascript-form-validation.phtml 
    // for details 
    var frmvalidator = new Validator("userpasswordreset"); 
    frmvalidator.addValidation("email","req","Please provide your email address"); 
    frmvalidator.addValidation("email","email","Please enter a valid email address"); 
    frmvalidator.addValidation("conf_email","eqelmnt=email", "The confirmed email address is not the same as the email address"); 
</script> 
</body> 
</html> 
+0

您应经常检查或将其连接到查询之前santize你输入什么?如果有人要输入''; DROP TABLE userdetails; - 作为电子邮件? –

+0

@KileyNaro如果你正在尝试注册某些东西,我会说这相当适得其反:V – sg3s

+0

严肃的一面,你没有告诉我们这个代码出了什么问题。你也可以用'$ email = mysql_real_escape_string($ _ POST ['email'],$ connection)';'来代替当前的'$ email'声明来清理你的电子邮件。 – sg3s

回答

-2

只是在看你的代码breifly,我不认为你的电子邮件的价值正确地传递到您的SQL查询。

尝试使用此。

$result = mysql_query("SELECT * FROM userdetails WHERE emailaddress like '%" . $email . "%'");

+0

PHP允许你在字符串中间使用变量,所以我不认为这是问题。 –

+0

嗯,不知道,你的代码是用PHP做的,我来自C#背景,所以对我来说看起来像是一个重大的错误。我应该保留我的答案还是删除它? – alykhalid

+0

嗨,我敢肯定,问题不在于电子邮件的价值不被传递,因为我已经尝试了这个作为一个单独的代码片,它工作正常。我发现一个挣扎是将表单和php结合在一起。非常感谢。 – IRHM

1

你不缺少的步骤,其中在实际运行针对您的查询mysql_fetch_assoc功能?只需将mysql_query的结果分配给变量$result是不够的!

您的来电后,加入这样的事情mysql_query

if($result) 
{ 
    $row = mysql_fetch_assoc($result)); 
} 

编辑:mysql_fetch_assoc PHP documentation

1

要获得所有的行导致与查询你需要使用MySQL取功能(有是几个)。

的优先停留方法是definitly mysql_fetch_assoc

你的代码的相关部分将是这个样子:

$email = mysql_real_escape_string($_POST['email']); // make the value safe for in the query 
$result = mysql_query("SELECT * FROM userdetails WHERE emailaddress like '%$email%'"); 
$rows = array(); 

while ($row = mysql_fetch_assoc($result)) { 
    $rows[] = $row; 
} 

// $rows is now a multi dimensional array with values found by the query 
+0

嗨,非常感谢您花时间帮助我解决这个问题。我对此很新,所以请原谅我对此采取的缓慢行动。我修改了我的代码以包含您的文本。表单呈现,我键入搜索条件,但唯一发生的是页面刷新。我已将更新的代码添加到我的原始帖子中。你能告诉我哪里出错了吗?问候 – IRHM

+0

将结果放入数组后,您仍然必须使用'$ rows'做些事情。尝试'print_r($ rows,true);'查看从数据库获得的结果。如果它没有产生任何结果,那可能是因为没有任何结果。要重新检查一下,只需尝试在phpmyadmin中用您的输入电子邮件地址执行该查询并查看会发生什么。基本的PHP调试真的。阅读一些教程:) – sg3s