php - 注册页面上的 mysql_real_escape_string

标签 php mysql validation sanitization

我希望有人能帮我写一个小脚本,我的主要目标是让注册页面尽可能安全,我认为最好的开始是使用 mysql_real_escape_string 但它不会保留我只是保留在第 1 行出现错误,所以这是我的代码:

<?php
if(isset($_POST['submit'])){
    if($_POST['username'] == "" || $_POST['password'] == ""){
        header("Location: tryagain.php");
        exit; 
    }else{
        mysql_connect("localhost", "root", "Root") or die(mysql_error());
        mysql_select_db("test") or die(mysql_error());
        $username = $_POST['username'];
        $password  = $_POST['password'];
        $sql = sprintf("INSERT into login(id,username,password) values('','%s','%s'", mysql_real_escape_string($username), mysql_real_escape_string($password));
        $result = mysql_query($sql) or die(mysql_error()) ;
        echo "Congratulations it worked woooo";
    }
}
?>

这是 html

<form method="post" action="sql.php">
    <table>
        <tr>
            <td>
                <input type="text" name="username"/>
            </td>
            <td>
                <input type="text" name="password"/>
            </td>
            <td>
                <input type="submit" name="submit" value="submit">
            </td>
        </tr>
    </table>
</form>

如果我将 $sql 语句更改为此,代码可以正常工作

$sql = "INSERT into login(id,username,password) values('','$username','$password')";

谁能看出我做错了什么:当我调整它以使用真正的转义登录时,它工作得很好。

我还可以使用哪些其他方法来验证数据?我计划让 if 语句只检查数字和字母,并防止任何特殊字符一起出现。谢谢。

附带说明,是的,我知道应该使用 mysqli 和 pdo 而不是 mysql,遗憾的是他们不使用它们。

最佳答案

您的 SQL 语句已损坏:

INSERT into login(id,username,password) values('','%s','%s'

应该是

INSERT into login(id,username,password) values('','%s','%s')

关于php - 注册页面上的 mysql_real_escape_string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20640212/

相关文章:

validation - 证书异常 Websphere 应用程序

validation - Keras 验证损失和指标不一致

php - CActiveForm 及其行为没有名为 "getErrors"的方法或闭包。

php - 一个 MySQL 查询中基于不同日期范围的平均值选择语句

php - 如果值存在于另一个字段数组中,Laravel 验证规则

mysql - 在 Ruby 字符串中转义 ',不转义\插入到 MySQL

php - 将存储为 TEXT 的时间转换为 MySql 中的 TIME

php - 将购物车数据插入数据库

php - Laravel 5.4 - 查询生成器问题

Symfony - CollectionType 字段中的唯一实体?