如何删除;:'“()之类的字符来清理字符串?

时间:2019-07-10 07:44:21

标签: php

我担心用户通过我的注册页面将代码存储在我的用户表中。我输入的内容存储了用户的名字,姓氏,用户名,电子邮件,密码和重复的密码。

在某一时刻,我的代码似乎删除了诸如;:'“()之类的字符,但我想我可能已经更改了一些东西,使一切混乱。

长话短说,我想清理用户输入。我已经阅读和观看了有关清理代码主题的视频,这已经有几个小时了,但我只是不明白。我看到的所有内容并没有真正尝试做我正在做的事情,然后我很快就迷路了。

这些是我从表单中获得的变量。

$firstName = mysqli_real_escape_string($conn, $_POST['firstName']);
    $lastName = mysqli_real_escape_string($conn, $_POST['lastName']);
    $userName = mysqli_real_escape_string($conn, $_POST['userName']);
    $email = mysqli_real_escape_string($conn, $_POST['email']);
    $email = filter_var($email, FILTER_SANITIZE_EMAIL);
    $password = mysqli_real_escape_string($conn, $_POST['password']);
    $passwordRepeat = mysqli_real_escape_string($conn, $_POST['pwd-repeat']);
    $joined = mysqli_real_escape_string($conn, $_POST['date']);

这是将数据输入数据库的代码

$sql = "INSERT INTO users (firstName, lastName, userName, email, password, joined, profileimg, profilebanner) VALUES (?, ?, ?, ?, ?, ?, 0, 0)";
            $stmt = mysqli_stmt_init($conn);
            if (!mysqli_stmt_prepare($stmt, $sql)) {
                header("Location: ../signup.php?error");
                exit();
            }
else {
                $hashedPassword = password_hash($password, PASSWORD_DEFAULT);
                mysqli_stmt_bind_param($stmt, "ssssss", $firstName, $lastName, $userName, $email, $hashedPassword, $joined);
                mysqli_stmt_execute($stmt);

我还尝试根据我正在观看的youtube视频对变量进行此操作,但这对我不起作用。

$userName = mysqli_real_escape_string($conn, $_POST['userName']);
$userName = filter_var($userName, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);

我只想在注册过程中使用这些变量消除有害的标签和密钥。任何帮助/批评都将不胜感激。

0 个答案:

没有答案