已经过了几个小时,我正在尝试添加类似电子邮件的验证,区域不能为空,但没有一个对我有效。这是我正在处理的文件
这是Register.php文件
<form action="finish.php" method="post"/>
<p>First & Last Name: <input type="text" name="Name"/></p>
<p>Country: <input type="text" name="Country"/></p>
<p>Email Adress <div class="comment">a confirmation email will be sent<br> to you at this address</div><input type="text" name="Email"/></p>
<p>How You Hear About us? <select name="How" id="how" class="how">
<option value="From a Friend">From a Friend</option>
<option value="From Google">From Google</option>
<option value="Advertisements">Advertisments</option>
<option value="Other">Other</option>
</select>
</p>
<input id="submit" type="submit" value="Mail It!" />
</form>
Finish.php文件
<?php
define('DB_NAME', 'temp');
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define ('DB_HOST', 'localhost');
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if (!$link) {
die('Could not Connect: ' . mysql_error());
}
$db_selected = mysql_select_db(DB_NAME, $link);
if (!$db_selected) {
die('Can\'t use ' .DB_NAME . '; ' .mysql_error());
}
$value = $_POST['Name'];
$value2 = $_POST['Country'];
$value3 = $_POST['Email'];
$value4 = $_POST['How'];
$sql ="INSERT INTO tempr (Name, Country, Email, How) VALUES ('$value', '$value2', '$value3', '$value4')";
if (!mysql_query($sql)) {
die('Error: ' .mysql_error());
}
mysql_close();
?>
表单已连接到数据库,因此如果我添加验证,则会更难获取数据库中的数据?任何人都可以为我提供添加验证的解决方案吗?
由于
答案 0 :(得分:1)
您实际上面临许多挑战,其中包括:
电子邮件表单元素是否已填写?
表单元素中的电子邮件是否与电子邮件的模式匹配?
如何保护数据库免受SQL注入攻击?
escaping for mysql(阅读大警告并点击链接)
你最好让自己准备好保护你的服务器和你的客户免受各种攻击,所以谷歌用术语 FIEO 来更好地理解何时过滤输入和转义输出< /强>
答案 1 :(得分:0)
我意识到您已经要求提供PHP解决方案,但老实说,您应该验证客户端(javascript / jQuery)上的数据,以便您可以在必要时将控制权返回给用户,而无需刷新页面并强制它们重新启动 - 输入数据。
你熟悉这个jQuery插件吗?
http://jqueryvalidation.org/documentation/
要使用它,您需要在文档的head标签中加载jQuery库和jQueryValidation插件:
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
</head>