在与数据库链接的表单中添加验证

时间:2013-10-05 15:53:09

标签: php validation

已经过了几个小时,我正在尝试添加类似电子邮件的验证,区域不能为空,但没有一个对我有效。这是我正在处理的文件

这是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();



?>

表单已连接到数据库,因此如果我添加验证,则会更难获取数据库中的数据?任何人都可以为我提供添加验证的解决方案吗?

由于

2 个答案:

答案 0 :(得分:1)

您实际上面临许多挑战,其中包括:

电子邮件表单元素是否已填写?

isset()

表单元素中的电子邮件是否与电子邮件的模式匹配?

filter_var()

如何保护数据库免受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>

See this demo