2014-03-25 42 views
0

我在PHP中的牛逼,我試圖找出我怎麼能添加的preg_match給我的腳本 需要一些幫助如何添加驗證is_array」

這是我想補充的是什麼:我有幾個他們

if (!preg_match("/^[a-zA-Z ]*$/",$name)) 
{ 
    $nameErr = "Only letters and white space allowed"; 
} 

。這是我的腳本:

foreach ($_POST as $name => $wert) { 
    if (is_array($wert)) { 
    foreach ($wert as $einzelwert) { 
     $mailtext .= $name.$trenner.$einzelwert."\n"; 
    } 
    } 
    else { 
    $mailtext .= $name.$trenner.$wert."\n"; 
    } 
} 

我不得不略低於添加它和每個「$ WERT」 seperatly

非常感謝

+0

OT:使用你的代碼的德語不是一個好主意。例如,它使得StackOverflow上的非德語用戶很難理解。 BitteÄndern;-) –

+1

好的,將改爲英文。 – user3450822

回答

0

您可能想要做的是編寫一個驗證輸入的函數/方法。但只有當你所有的輸入都有相同的驗證規則。

的你可以做什麼的例子:

function validateInput($input) { 
    if (!preg_match("/^[a-zA-Z ]*$/",$name)) 
    { 
    // handle error 
    } 
    else { 
    return true; 
    } 
} 

foreach ($_POST as $name => $wert) { 
    if (is_array($wert)) { 
    foreach ($wert as $einzelwert) { 
     if (validateInput($einzelwert) === TRUE) { 
     $mailtext .= $name.$trenner.$einzelwert."\n"; 
     } 
    } 
    } 
    elseif (validateInput($einzelwert)) { 
    $mailtext .= $name.$trenner.$wert."\n"; 
    } 
} 
+1

謝謝Andresch。那麼這是否意味着無法驗證輸入是否有不同的規則' – user3450822

+0

@ user3450822'歡迎您使用。點擊答案左側投票選項下方的小箭頭接受答案。這樣它將被標記爲已解決。 –

+0

@ user3450822另外,是的,這是可能的。也許你想看看Validator Libaries和Tools,比如symfony2驗證器:http://symfony.com/doc/current/book/validation.html你也可以定義一個匹配輸入和規則的映射。但我想谷歌有更多的信息;-) –