Php 空空如也 输入您的名字: 输入您的姓氏: 您的电子邮件Id: 您的年龄: 上载您的图像:
问题是,在我的表单中将所有空格留空时,只显示关联数组的最后一个元素。 例如:-保留名字、姓氏、电子邮件、年龄,然后只显示“年龄字段不能留空” 类似地,如果我的输入字段中已经填写了年龄,则只会显示“电子邮件字段不能为空”Php 空空如也 输入您的名字: 输入您的姓氏: 您的电子邮件Id: 您的年龄: 上载您的图像:,php,forms,foreach,associative-array,string,Php,Forms,Foreach,Associative Array,String,问题是,在我的表单中将所有空格留空时,只显示关联数组的最后一个元素。 例如:-保留名字、姓氏、电子邮件、年龄,然后只显示“年龄字段不能留空” 类似地,如果我的输入字段中已经填写了年龄,则只会显示“电子邮件字段不能为空” 我希望它显示所有留空字段的名称您必须更改$key和$variable: $emt=array("Firstname"=>$_POST['fname'],"LastName"=>$_POST['lname'],"Email"=>$_POST['email'],"A
我希望它显示所有留空字段的名称您必须更改$key和$variable:
$emt=array("Firstname"=>$_POST['fname'],"LastName"=>$_POST['lname'],"Email"=>$_POST['email'],"Age"=>$_POST['age']);
改成
$emt=array("Firstname"=>$_POST['fname'],"LastName"=>$_POST['lname'],"Email"=>$_POST['email'],"Age"=>$_POST['age']);
我觉得你很困惑:
foreach($emt as $value=>$variable)
{
与
(我会将变量命名为$variable$key,但这只是口味的问题)
其他答案显示的数组也是一样
$emt = array(key => value, key => value, ....);
为了检查某个特定的键是否为空,您必须确保首先设置了该键(用户可以编辑其HTML源,而不发送某些字段,从而在您的站点中触发一些警告)。 除此之外,我发现您的代码有点凌乱,所以过一会儿您会发现调试或阅读起来很困难 在这里,我重写PHP部分以检查字段是否已输入且不为空
<?php
$required = array(
'fname' => 'First name',
'lname' => 'Last name',
'email' => 'Email address',
'age' => 'Age',
);
$errors = array(); // Here, we store all the error messages. If it's empty, we are good to go.
foreach ($required as $key => $label) {
if (isset($_POST[$key]) || empty($_POST[$key])) {
$errors[] = "$label field is required.";
}
}
if (!isset($_FILES["file"])) {
$errors[] = 'Please upload an image';
}
elseif (isset($_FILES['file']['error']) && $_FILES['file']['error']) {
$errors[] = 'An error occurd while uploading your photo';
}
if ($errors) {
print '<ul>';
foreach ($errors as $error) {
print "<li>$error</li>";
}
print '</ul>'
}
else {
// All fields are filled and not empty, file is uploaded successfully. Process your form.
}
?>
http:\\…
应该有正斜杠:http://...
请参见下面的答案。Alsn交换侧面foreach中的变量和值。我的意思是foreach($emt as$variable=>$value)
问题不在于它。检查foreach循环。如果他们改变它,它必须打破它code@silentboy问题在于它。当它为空时,数组索引重叠:只剩下最后一个相同的索引…那么我必须交换$value和$variable以保持代码正常吗?多亏Tamil Selvan和bwoebi提供了宝贵的建议,问题才得以解决。:)那么我是否必须交换$value和$variable以保持代码正常??
$emt = array(key => value, key => value, ....);
<?php
$required = array(
'fname' => 'First name',
'lname' => 'Last name',
'email' => 'Email address',
'age' => 'Age',
);
$errors = array(); // Here, we store all the error messages. If it's empty, we are good to go.
foreach ($required as $key => $label) {
if (isset($_POST[$key]) || empty($_POST[$key])) {
$errors[] = "$label field is required.";
}
}
if (!isset($_FILES["file"])) {
$errors[] = 'Please upload an image';
}
elseif (isset($_FILES['file']['error']) && $_FILES['file']['error']) {
$errors[] = 'An error occurd while uploading your photo';
}
if ($errors) {
print '<ul>';
foreach ($errors as $error) {
print "<li>$error</li>";
}
print '</ul>'
}
else {
// All fields are filled and not empty, file is uploaded successfully. Process your form.
}
?>