Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用嵌套的if语句检查Php中多个条件的$\u POST表单数据值?_Php_Html_Css_Validation_Multiple Conditions - Fatal编程技术网

如何使用嵌套的if语句检查Php中多个条件的$\u POST表单数据值?

如何使用嵌套的if语句检查Php中多个条件的$\u POST表单数据值?,php,html,css,validation,multiple-conditions,Php,Html,Css,Validation,Multiple Conditions,我正在构建一个html程序,它接受“姓、名、用户ID和一个值数组”字段(值将用于计算和显示给定数据集的平均值、最小值和最大值)。现在,我只需要允许有效输入在文本文件的表中显示这些内容。我使用的是html所需的模式标记,但这对这个项目不起作用。我需要先检查php语句中的$\u POST变量,然后再将它们写入文本输出。有没有人能给我一些指导,告诉我如何在php中为我给定的条件设置这些验证检查器 条件如下: •任何字段都不允许为空。 •名字和姓氏的最大长度为20个字符。 •名字和姓氏只能由字母组成。(

我正在构建一个html程序,它接受“姓、名、用户ID和一个值数组”字段(值将用于计算和显示给定数据集的平均值、最小值和最大值)。现在,我只需要允许有效输入在文本文件的表中显示这些内容。我使用的是html所需的模式标记,但这对这个项目不起作用。我需要先检查php语句中的$\u POST变量,然后再将它们写入文本输出。有没有人能给我一些指导,告诉我如何在php中为我给定的条件设置这些验证检查器

条件如下:

•任何字段都不允许为空。 •名字和姓氏的最大长度为20个字符。 •名字和姓氏只能由字母组成。(无数字或符号)。只有a-z和a-z。任何小写/大写字母的顺序都是可以接受的。 •用户ID必须为3个小写字母,后跟3个数字。示例:abc123 •值的最大长度为50个字符。它是一个以逗号分隔的值列表,每个值的范围在0.0到100.0之间。 •每个值的小数点后必须有1位数字。 •每个值在小数点前必须有1、2或3位数字(即,在我们的系统中,7不是有效值,但0.7是有效值)

我输入的Html代码是:

/head>
<body>
<form name="myForm" action="UpdateInfo.php" method="post">
<table>
<tr>
<td colspan="2" style="text-align: center;font-weight: bold"> User Info</td>
</tr>

<tr>
<td>First Name: </td><td><input type="text" name="fname" pattern="[A-Za-z]+" title="Max 20 Characters, only A-Z or a-z"  maxlength = 20 /> </td>
</tr>

<tr>
<td>Last Name: </td><td><input type="text" name="lname" pattern="[A-Za-z]+" title="Max 20 Characters, only A-Z or a-z"  maxlength = 20  /></td>
</tr>

<tr>
<td>ID Number:</td><td><input type="text" name="id" required pattern=[a-z]{3}[1-9]{3} title="Must be abc123 format!" maxlength="6" /></td>
</tr>

<tr>
<td>List of values: </td><td><input type="text" name="listOfValues"  maxlength="50" />
</tr>
/head>
用户信息
名字:
姓氏:
身份证号码:
值列表:
到目前为止,我的php代码如下:

<?php
if($_SERVER["REQUEST_METHOD"]=="POST") //post request w/o post data
{
$fname = $_POST['fname']; //sets new variables = to our post data inputs
$lname = $_POST['lname'];
$userID=$_POST['id'];
$valuesList=explode(',', $_POST['listOfValues']);

if(empty($fname) || empty($lname) || empty($userID) || empty($valuesList) ) //condition to check if any of these variables are empty
{
echo '<p style="color:red"> Please, Fill the text box before submitting data!</p>';
}
else{
$path="UserInfo.txt";
$fo= fopen($path,'a') or die('Cannot open file'); //fo = the open version of the UserInfo.txt file
$maxOfList = max($valuesList);
$minOfList = min($valuesList);

fwrite($fo, "| Last Name: ".$lname. "| "); //so if these variables are filled correctly then the machine will print them into the UserInfo.txt file
fwrite($fo, "| First Name: ".$fname. "| ");
fwrite($fo, "| UserID: ".$userID. "| ");
fwrite($fo, "| Minimum: " . $minOfList. "| ");
fwrite($fo, "| Maximum: " . $maxOfList. "| ". "\n");
//fwrite($fo, "Values: ".$valuesList. " " ."\n");
fclose($fo);

$fo = fopen($path, 'r') or die('Cannot open file');
while(!feof($fo))
{
echo fgets($fo)."<br>";
}

fclose($fo);
}

}
?>


我希望这一切都有意义;我只是试图满足我在上面的html代码中设置的条件,但是让我的php代码检查有效性。我不知道检查这些条件所需的语法或顺序。分配此任务的人不允许我仅使用html模式来停止无效数据。如果有人能帮我,或者至少能给我指出正确的方向,我们将不胜感激。干杯

验证绝对属于服务器端,也属于用户端。因为您知道所期望的变量,所以创建一个期望变量数组。该数组可以使用var名称作为键,该值可以是一条规则或一组规则来进行验证。迭代此数组,并与匹配的
%\u POST
键进行比较/验证。如果验证失败,您可以构建一个失败消息数组。看看这是否能让您朝正确的方向运行。验证绝对属于服务器端,也属于用户端。因为您知道所期望的变量,所以创建一个期望变量数组。该数组可以使用var名称作为键,该值可以是一条规则或一组规则来进行验证。迭代此数组,并与匹配的
%\u POST
键进行比较/验证。如果验证失败,您可以构建一个失败消息数组。看看这是否能让你朝正确的方向跑。