关于php注册的安全帮助
可能重复:关于php注册的安全帮助,php,mysql,sql,Php,Mysql,Sql,可能重复: 这是我用PHP做的一个简单注册。 我只是想知道如何使它真正安全,因为我是PHP新手,所以示例也会有所帮助。总而言之,任何资源或指导都是非常好的 <?php $email = $_POST["email"]; $password = $_POST["password"]; $fname = $_POST["first_name"]; $lname = $_POST["last_name"]; $db = "mydatabase"; $connect = mysql_conn
这是我用PHP做的一个简单注册。 我只是想知道如何使它真正安全,因为我是PHP新手,所以示例也会有所帮助。总而言之,任何资源或指导都是非常好的
<?php
$email = $_POST["email"];
$password = $_POST["password"];
$fname = $_POST["first_name"];
$lname = $_POST["last_name"];
$db = "mydatabase";
$connect = mysql_connect("localhost","root","");
if(!$connect){
die('Could not connect.');
}
$query = "INSERT INTO users (id, email, password, first_name, last_name) VALUES (DEFAULT, '".$email."', '".$password."', '".$fname."', '".$lname."')";
mysql_select_db($db, $connect);
if(!mysql_query($query)){
echo 'Failed: '.mysql_error();
}
else{
echo 'You have registered.';
}
mysql_close($connect);
?>
这是登记表
<html>
<head>
</html>
<body>
<form action="new_user_db.php" method="POST">
<input type="text" name="first_name" placeholder="First Name" required><br>
<input type="text" name="last_name" placeholder="Last Name" required><br>
<input type="email" name="email" placeholder="E-mail" required><br>
<input type="password" name="password" placeholder="Password" required><br>
<input type="submit" value="Register">
</form>
</body>
</html>
谢谢你的反馈 使用事先准备好的语句
$db = mysqli_connect($dbserver, $dbuser, $dbpass,$dbname);
$sql = "insert into mytable (mycol1, mycol2) values (?,?)";
$statement = $db->prepare($sql);
$statement -> bindparam("ss",$myval1, $myval2)'
mysqli_stmt_execute(#statement);
安全问题:
将您的凭证保存在使用它的每个PHP文件中是不好的做法。只要你想建立连接,就把它放在一个单独的PHP和/it中。这可以防止您在更改数据库服务器/用户/密码时进行多次更改。您可以做的第一件事是停止使用
mysql.*
函数,它们不再被维护,社区已经开始运行。相反,你应该学习并使用或。如果你不能决定,将帮助你做出选择。如果您想学习,请将您的代码从webroot中删除。电子邮件:someone@someplace.com
。密码:密码
。名字:First
。姓氏:Last');删除表用户--代码>。在那里,users
表不见了。请不要使用mysql.*
函数来编写新代码。它们不再得到维护,社区已经开始。看到了吗?相反,你应该学习并使用或。如果你不能决定哪一个,我会帮你的。如果您选择PDO。另请参见@vascowhite:您使用的是此评论的旧版本:)请参见我上面的版本以获取新版本^