2011-03-02 63 views
-1

那麼,我需要檢查如果一些領域是空的提交時得到一個回聲「失敗」;如果一些陣列是空的

現在我有這樣的:

$campos = array('nome', 'email'); 
    foreach ($campos as $a) { 
     $$a = $_REQUEST[$a]; 
     if(isset($$a) && $$a != ""){ 

$post_vars = array('iphone3g1', 'iphone3g2', 'nome', 'iphone41', 'postal'); 
$post_values = array(); 
foreach($post_vars as $var) { 
    $post_values[$var] = "'" . mysql_real_escape_string($_POST[$var]). "'"; 
} 

$sql = "INSERT INTO clientes (" . implode(',', array_keys($post_values)) . ") VALUES (" . implode(',', array_values($post_values)) . ")"; 
$query = mysql_query($sql); 

if($query==TRUE){ 

    $to=$apelido; 
    $subject="iRepairApple"; 
    $header="from: iRepairApple <[email protected]> "; 
    $message="Caro $nome , obrigado por preferir a iRepairApple! \r\n\n"; 
    $message.="O seu pedido de reparação foi registado. \r\n"; 
    $message.="Modelo p/ Reparação: $modelo; \r\n \n\n Deverá proceder à entrega do equipamento numa das nossas lojas (Ver Moradas) \r\n"; 
    $message.="O seu código de reparação é o : \n $codigounico; \n\n Ao contactar a iRepairApple faça sempre referência a este código."; 
    $message.="\n Com os melhores cumprimentos, \n A equipa iRepairApple."; 

    $enviado = mail($to,$subject,$message,$header); 

    header('Location: ../index.php?mensagem=2');} 


    }else{ 
     echo ("error"); 
     } 
} 

?> 

(!會是一樣空)

它的工作原理,如果沒有一個字段充滿它將檢索錯誤,但如果只有一個它會告訴它是好的:(我會稍後把一個標題,我有回聲(「錯誤」);

+0

你在做什麼後'if(isset($$ a)&& $$ ​​a!=「」){'顯示更多代碼 – 2011-03-02 16:48:17

+1

添加的代碼不足以回答你的問題 – 2011-03-02 16:50:48

+0

我不認爲這是相關的,但我已編輯帖子。先謝謝你。 – Souza 2011-03-02 17:00:35

回答

0

所以你想要做的是檢查$_REQUEST數組包含所有在$campos表示的字段?代碼的相關部分缺失,但它看起來像if子句應該執行檢查。

假設我正確認識你,這裏是做到這一點的一種方法:

foreach ($campos as $a) { 
    if (!isset($_REQUEST[$a]) || 
     ($$a = $_REQUEST[$a]) == "") { 
     die("Field {$a} not set."); 
    } 
} 
echo "Ok."; 

請注意,您必須將$_REQUEST陣列上,而不是在$aa變量使用isset()。也許你還想使用$_GET$_POST而不是超全球的$_REQUEST

+1

這也適用,iluwatar的代碼也能正常工作。但我會用你的小號來保持它。非常感謝你svens;) – Souza 2011-03-02 17:16:14

0

所以你只是扭轉條件來檢查是否有一個或多個字段是空的和回聲在這種情況下失敗

$campos = array('nome', 'email'); 
foreach ($campos as $a) 
{ 
    $$a = $_REQUEST[$a]; 
    if(!isset($$a) || $$a == "") 
    { 
    echo "fail"; 
    exit; 
    } 
} 
+1

嘿,這是一個非常聰明的解決方案;)。先生,幹得好。我會試一下! (Upvoting)編輯:不能,有人低估了我的帖子,現在我沒有15個必要的分數:/ – Souza 2011-03-02 17:01:08