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