我对PHP相当陌生,现在我不得不用PHP编写小程序,而我的公司找到合适的程序员。PHP验证用户输入数据的步骤
我写了一个程序,使用表格数据(姓名,电子邮件,手机号码等),然后检查输入的数据是否有效。我的代码工作得很好,但他们没有遵循任何程序(即它检查所有的验证)。我希望它首先检查一个条件(如电子邮件)是否有效,然后只检查下一个条件(电话号码)。如果其无效,则返回一些错误信息&停止执行其余的代码。
我试着一堆东西,但没有工作过,这里的示例代码
<?php include("includes/functions.php"); ?>
<?php include("includes/dbconnection.php"); ?>
\t
<?php
\t //I've done this in main.php page but also had to do it in functions.php page too...
\t $First_Name = $_POST['first_name'];
\t $Last_Name = $_POST['last_name'];
\t $Phone_Number = $_POST['phone_number'];
\t $E_Mail = $_POST['email'];
\t $User_ID = $_POST['user_id'];
?> \t
\t
<?php $user_id_validation = validate_user_id($User_ID); ?>
<?php $phone_number_validation = validate_phone_number(); ?>
<?php $all_fields_validation = validate_all_fields(); ?>
<?php
\t //This is dbconnection.php page
\t define("DB_SERVER", "localhost");
\t define("DB_USER", "root");
\t define("DB_PASS", "some_password");
\t define("DB_NAME", "some_db");
\t
\t $connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME); //This $connection has been used as global in function.php
\t
\t if(mysqli_connect_errno()) {
\t \t die("Database connection failed: " .
\t \t \t mysqli_connect_error() .
\t \t \t " (" . mysqli_connect_errno() . ")"
\t \t);
\t }
?>
<?php
\t //This is functions.php
\t function validate_user_id($User_ID) {
\t \t global $connection;
\t \t
\t \t $sql = "SELECT * FROM users WHERE user_id = '$User_ID'";
\t \t $result = mysqli_query($connection,$sql);
\t \t $num_row = mysqli_num_rows($result);
\t \t if ($num_row == 1) {
\t \t $User_ID = $num_row['user_id'];
\t \t echo "user verification passed! ";
\t \t } else {
\t \t \t echo "You are not authorized to perform this action! ";
\t \t }
\t \t return false;
\t }
\t
\t function validate_phone_number() {
\t \t $Phone_Number = $_POST['phone_number'];
\t \t $check_phone_number = substr($phone_number, 0, -7); //Take first 3 digits of phone number to validate if its standard phone number
\t \t \t \t
\t \t if (strlen($Phone_Number) != 10) {
\t \t \t echo "Invalid Phone Number";
\t \t } elseif ($check_phone_number === "740") {
\t \t \t echo "Phone Number is valid ";
\t \t } else {
\t \t \t echo "Invalid Phone Number, please check again! ";
\t \t }
\t }
\t \t
\t function validate_all_fields() {
\t \t $First_Name = $_POST['first_name'];
\t \t $Last_Name = $_POST['last_name'];
\t \t $Phone_Number = $_POST['phone_number'];
\t \t $E_Mail = $_POST['email'];
\t \t $User_ID = $_POST['user_id'];
\t \t
\t \t if (!empty($E_Mail)
\t \t && !empty($Phone_Number)
\t \t && !empty($First_Name)
\t \t && !empty($Last_Name))
\t \t
\t \t) {
\t \t \t echo "All fields entered, you can proceed. ";
\t \t } else { \t
\t \t \t echo "E_Mail, Phone Number, First Name and Last Name must be entered!";
\t \t }
\t }
\t // Database Insertion
\t function Insert_Into_Table() {
\t \t global $connection;
\t \t $First_Name = $_POST['first_name'];
\t \t $Last_Name = $_POST['last_name'];
\t \t $Phone_Number = $_POST['phone_number'];
\t \t $E_Mail = $_POST['email'];
\t \t $User_ID = $_POST['user_id'];
\t \t
\t \t $sql = "INSERT INTO some_tbl(User_ID, First_Name, Last_Name, Phone_Number, E_Mail)
\t \t \t \t VALUES ('$User_ID', '$First_Name', '$Last_Name', '$Phone_Number', '$E_Mail')";
\t \t
\t \t $result = mysqli_query($connection, $sql);
\t \t \t
\t }
\t
?>
使用if(){.....} elseif(){...} else {.. final ..}' – 2014-09-24 08:36:46
“我试过一堆东西”我们不知道这些东西是什么,因此它是不可能提供帮助。此外,恕我直言,你正在尝试做的事情将导致一个相当不好的用户体验,因为用户只会知道1个字段未被正确填写,并且onyl提交他发现其他字段无效。 – PeeHaa 2014-09-24 08:39:09
您可以同时使用PHP和Javascript验证。请检查此,[PHP/JavaScript的电子邮件的形式和验证] [1] [1]:http://stackoverflow.com/questions/19680406/php-javascript-email-form-and-validation – user1149244 2014-09-24 08:58:02