2013-04-09 57 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. 
} 
?>