我担心用户通过我的注册页面将代码存储在我的用户表中。我输入的内容存储了用户的名字,姓氏,用户名,电子邮件,密码和重复的密码。
在某一时刻,我的代码似乎删除了诸如;:'“()之类的字符,但我想我可能已经更改了一些东西,使一切混乱。
长话短说,我想清理用户输入。我已经阅读和观看了有关清理代码主题的视频,这已经有几个小时了,但我只是不明白。我看到的所有内容并没有真正尝试做我正在做的事情,然后我很快就迷路了。
这些是我从表单中获得的变量。
$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);
我只想在注册过程中使用这些变量消除有害的标签和密钥。任何帮助/批评都将不胜感激。