PHP逐步验证用户输入数据

PHP逐步验证用户输入数据,php,if-statement,Php,If Statement,我对PHP相当陌生,因为现在我不得不用PHP编写小程序,而我的公司会找到一个合适的程序员 我编写了一个程序,它使用表单数据(姓名、电子邮件、手机号码等),然后检查输入的数据是否有效。我的代码工作正常,但它们不遵循任何过程(即,它检查所有验证)。我希望它首先检查一个条件(如电子邮件)是否有效,然后只检查下一个条件(电话号码)。若它无效,那个么返回一些错误消息&停止检查代码的其余部分 我尝试了很多方法,但都没有成功,下面是示例代码 <?php include("includes/funct

我对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(!is_email($email))
{
    echo 'Invalid email!!';
    exit();
}
elseif(!is_phone($phone)) 
{
    echo 'Invalid Phone!!';
    exit();
}
else {
   //success code
}
然后创建一个名为
is_email()
的函数,并在那里写入验证代码,如果它是电子邮件格式,则返回
true
,否则返回
false

 is_email($email)
 {
     //validation code
 }

使用
if(){…}elseif(){…}else{..final..}
“我尝试了很多东西”我们不知道这些东西是什么,因此无法提供帮助。此外,您试图做的事情也会导致非常糟糕的用户体验,因为用户只知道1个字段填写不正确,而onyl submit发现其他字段无效。您可以使用PHP和Javascript验证。请检查此[Php/javascript电子邮件表单和验证][1][1]:您是明星!它成功了,非常感谢,你不知道我明天能享受多少假期@ys1458如果此答案对您的问题有帮助,请将其标记为答案:-)