上周我开始使用php和MySQL,所以如果我缺乏基本的理解而感到沮丧,我会道歉。
我的网站上有一个简单的html表单,记录了姓名,电子邮件地址和短信。
<form action="insert.php" method="post">
Your full name:<input type="text" name="name">
Email address:<input type="text" name="email">
Short message:<textarea cols="30" rows="3" name="message"></textarea>
insert.php看起来像这样...
<?php
$con=mysqli_connect();
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$name = mysqli_real_escape_string($con, $_POST['name']);
$email = mysqli_real_escape_string($con, $_POST['email']);
$message = mysqli_real_escape_string($con, $_POST['message']);
$sql="INSERT INTO Donators (name, email, message, date)
VALUES ('$name', '$email', '$message', NOW())";
if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
header('Location: thankyou.php');
exit;
mysqli_close($con);
?>
然后将其发送到我用php管理员管理的mysql数据库。
我的问题是......
非常感谢你的帮助!
詹姆斯
答案 0 :(得分:1)
1)它永远不会100%安全。代码似乎找不到,但你应该知道新的补丁和版本来更新你的MySQL实例以及PHP和HTTP服务。
2)再次......是的,不是......确保它是你的角色。因此,只要您不在任何网页上显示它们,我们就可以认为它是“安全的”
3)最好的方法是制作自己的模块,这样你就不会受到“泛型”机器人的影响。通用我指的是那些反对通用验证码模块。例如,您可以向用户提出一个简单的问题。这应该足以避免最大的垃圾邮件机器人。
最好的问候,希望这会有所帮助。