2013-04-09 52 views
2
<form action="http:\\127.0.0.1\rechecking.php" method="post" enctype="multipart/form-  data"><pre> 
Enter your first Name: <input type="text" name="fname" size="15"></input> 
Enter your Last Name: <input type="text" name="lname" size="15"></input> 
Your Email Id:   <input type="text" name="email" size="15"></input> 
Your age:    <input type="text" name="age" size="1"></input> 
Upload your Image:  <input type="file" name="file"></input> 
<input type="Submit" value="Submit"></input></pre> 
</form> 


<?php 
if(!empty($_POST["fname"])&&!empty($_POST["lname"])&&!empty($_POST["email"])&&!empty($_POST["age"])) 
{ 
if($_FILES["file"]["error"]>0) 
{ 
echo $_FILES['file']['error'] ."error is there in uploading files"; 
} 
} 
else 
{   $emt=array($_POST['fname']=>"Firstname",$_POST['lname']=>"LastName",$_POST['email']=>"Email",$_POST['age']=>"Age"); 
foreach($emt as $value=>$variable) 
{ 
if(empty($value)) 
{ 
echo $variable." cannot be left blank<br />"; 
} 
} 
} 
?> 

问题是,在所有的空格留在我的formIts只显示关联数组的最后ement。 对于例如: - 名字,姓氏,电子邮件,年龄然后它会显示'年龄提交不能留空' 类似地,如果年龄已填写在我的输入字段,那么它只会显示'电子邮件字段不能留空“ 嗯,我希望它显示是空的所有字段的名称卡住空和foreach

+0

'http:\\ ...'应该有正斜杠:'http:// ...' – Blender 2013-04-09 19:35:28

+0

请参阅下面的答案。 Alsn交换变量和值在边foreach。我的意思是'foreach($ emt as $ variable => $ value)' – 2013-04-09 19:45:04

回答

2

你必须改变$键和$变量:

$emt=array("Firstname"=>$_POST['fname'],"LastName"=>$_POST['lname'],"Email"=>$_POST['email'],"Age"=>$_POST['age']); 
+0

问题不在于此。检查契约的foreach循环。如果他们改变它,它必须打破该代码 – 2013-04-09 19:39:25

+0

@silentboy问题是关于它。因为它是空白的数组索引重叠:只有最后一个相同的索引仍然... – bwoebi 2013-04-09 19:41:57

+0

然后,我必须交换$值和$变量,以保持代码好吗? – 2013-04-09 19:46:48

0

更改它作为

$emt=array("Firstname"=>$_POST['fname'],"LastName"=>$_POST['lname'],"Email"=>$_POST['email'],"Age"=>$_POST['age']); 
+0

然后,我必须交换$价值和$变量,以保持代码好吗? – 2013-04-09 19:46:07

+0

是的,你可以交换一个变量 – 2013-04-09 19:48:02

0

我想你令人困惑:

foreach($emt as $value=>$variable) 
{ 

foreach($emt as $variable=>$value) 

(我会说出变量$变量$键代替,但只是一个品味的问题)

,同样的事情也适用于哪些其他的答案中有数组所示。

$emt = array(key => value, key => value, ....); 
0

为了检查某个特定键是空的,你必须确保它的第一个设置(用户可以编辑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. 
} 
?>