0

我使用 HTML 创建了两个文本字段,我想将该文本处理到我的数据库中。

使用 PHP 我想验证该数据并将其发送到数据库中;但我的问题是我在字段中输入的数据没有处理到数据库中。

我的代码如下:

<form action="index.php" method="post">
<b>username:</b><input type="text" name="textbox1"/>
<b>password:</b><input type="password" name="textbox2"/>
<input type="submit" value="submit">
<?php
    if(isset($_POST['textbox1'])&&isset($_POST['textbox2']))
{
    $conn_error = 'couldnot connected';
    $mysql_user = 'root';
    $mysql_pass = '';
    $mysql_host = 'localhost';
    $mysql_db   = 'yep_recharge';
    $textbox1    = $_POST['textbox1'];
    $textbox2    = $_POST['textbox2'];
    if(empty($textbox1)&&empty($textbox2))
    {
      echo 'required field';
    }
    if(!empty($textbox1)&&!empty($textbox2))
    {
      $query = "SELECT `ID` FROM `yep_registration` WHERE `USERNAME`='$textbox1' AND `PASSWORD`='$textbox2'";//"SELECT `ID` from `yep_registration` WHERE `USER-NAME`='$textbox1' and `PASSWORD` = '$textbox2'";
      if($query_run = mysql_query($query))
      {
        $query_num_rows = mysql_num_rows($query_run);
        if($query_num_rows==0)
        {
          echo 'Invalid User Name And Password:';
        }
        else  if($query_num_rows==1)
        {
        echo 'ok';
        }
      }
    }
    }

    </form>
4

3 回答 3

3

你连接到数据库了吗?您可以将资源句柄与您的一些 mysql 函数一起使用:

$db = mysql_connect($mysql_host, $mysql_user, $mysql_pass);

这样您就可以:

$query = mysql_query('query',$db);

(您实际上不需要在查询调用中使用资源句柄。PHP 将假定使用最近打开的数据库连接)

于 2013-06-01T03:34:45.910 回答
0

您应该首先转义字符串以避免 SQL 注入

$textbox1 = mysql_real_escape_string($textbox1);
$textbox2 = mysql_real_escape_string($textbox2);
$query = "SELECT ID FROM `yep_registration` WHERE USERNAME='$textbox1' AND PASSWORD='$textbox2'";

用于$query_run = mysql_query($query) or die(mysql_error())查看发生了什么

于 2013-06-01T03:31:06.913 回答
0

正如@Nikola 指出的那样,除了对SQL 注入开放之外,您永远不应该明文存储密码。

您也不应该使用像 MD5 这样的简单哈希函数来存储您的密码(甚至不能使用盐渍 MD5、SHA1、SHA256 或 SHA512)。使用像 BCrypt 或 Crypt/SHA512 这样的好东西。更多细节在这里

于 2013-06-01T03:43:56.340 回答