PHP 选择不工作

标签 php mysql

我正在尝试进行用户通行证验证。更新代码:

$username="------";
$password="------";
$database="------";
$host = "------";


mysql_connect($host,$username,$password);
mysql_select_db($database) or die( "Unable to select database");

$username = $_POST['username'];
$password = $_POST['password'];

echo 'username: ' . $username . '<br>';  //myname
echo 'password: ' . $password . '<br>';  //mypass

function checkpass()
{
    //$result = mysql_query("SELECT * FROM REG_USERS where USERNAME='$_POST[username]' and PASSWORD='$_POST[password]' ") or die(mysql_error());  
    $result = mysql_query("SELECT * FROM REG_USERS where USERNAME='" . $username . "' and PASSWORD='" . $password . "'") or die(mysql_error());  
    return  mysql_num_rows($result);
}

checkpass();
echo 'checkpass:'. checkpass();

在第一个查询中,checkpass 返回 1。在第二个查询中,它返回 0。为什么?

最佳答案

好的,现在我们有了完整的代码,很明显。

$username$password 不是全局的。该函数不知道它们的设置是什么。

$username = $_POST['username'];
$password = $_POST['password'];

echo 'username: ' . $username . '<br>';  //myname
echo 'password: ' . $password . '<br>';  //mypass

function checkpass()
{
    $username = mysql_real_escape_string($_POST['username']);
    $password = mysql_real_escape_string($_POST['password']);

    //$result = mysql_query("SELECT * FROM REG_USERS where USERNAME='$_POST[username]' and PASSWORD='$_POST[password]' ") or die(mysql_error());  
    $result = mysql_query("SELECT * FROM REG_USERS where USERNAME='" . $username . "' and PASSWORD='" . $password . "'") or die(mysql_error());  
    return  mysql_num_rows($result);
}

注意,我了解 mysqli。 OP 没有询问它,我也没有对此着迷,但我添加了 mysql_real_escape_string 以达到良好的效果。

关于PHP 选择不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14244602/

相关文章:

php - 如何从 mysql 数据库中获取项目并将其添加到页面,每个项目都有一个复选框?

mysql - 根据时间差从mysql表中选择行

sql - 我如何在一条语句中的 SQL 中执行此操作?

php - Laravel Blade Comment 导致 CONNECTION_RESET

php - Jquery Multiselect 下拉列表默认保持打开状态

mysql - phpMyAdmin:用 CSV 文件替换表格内容

php - 使用单个查询计算重复项并更新表

javascript - 如何将字符串放入 JavaScript 变量中并在其中放入 "echo"变量

PHP 如何调用 parent::__call() 并传入参数

php - &lt;/script&gt; 在 PHP heredoc 中