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.
}
?>