如果某些数组是空的

时间:2011-03-02 16:44:05

标签: php arrays

好吧,我需要检查一些字段在提交时是否为空“获取回显”失败“;

现在我有了这个:

   $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 <geral@iRepairApple.com> ";
    $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");
        }
}

?>

(将与!空相同)

它有效,如果没有任何字段被填充,它将检索错误,但如果只有一个被完成它将告诉它是好的:(。我稍后会把一个标题放在我有回声(“错误”);

2 个答案:

答案 0 :(得分:0)

所以你只需要反转条件来检查一个或多个字段是否为空并且在这种情况下回显失败。

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

答案 1 :(得分:0)

那么你想要做的是检查$_REQUEST数组是否包含$campos中表示的所有字段?您的代码的相关部分缺失,但看起来if子句应该进行检查。

假设我正确理解你,这是一种方法:

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

请注意,您必须在isset()数组上使用$_REQUEST,而不是$aa变量。也许您还想使用$_GET$_POST代替$_REQUEST超全局。