2014-05-01 74 views
-4
if($action == "send"){ 
$_POST['name'] =  $name ; 
$_POST['email'] =  $email ; 
$_POST['phone'] =  $phone ; 


    if(!empty($name) || !empty($email) || !empty($phone)){ 

    ..... 
} else { 

    $msg = 'All fields required'; 

} 

//無論我只顯示$味精。IF運算符不正常運行

//已經嘗試過,太

if(!empty($_POST['name']) || !empty($_POST['email']) || !empty($_POST['phone'])){ 
    .... 
    } 

什麼即時試圖做的是,給我發電子郵件數據的形式,我希望所有的字段來填充,所以也許我寫的if語句錯誤的方法。 對不起,如果我沒有解釋得很好。

+0

你有沒有打印$ _ POST,你肯定它具有值? – sunshinejr

+0

嘗試做一個print_r($ _ POST)來查看post全局變量裏面的內容,然後看看你的if是否應該導致'true'。也不應該你的測試是用&&代替||。 ||沒有意義。 – Nazgul

+0

如果沒有更多信息,我們無法回答您的問題。這個if語句和你的邏輯公式有問題,所以它來自它上面的代碼。 – Gwenc37

回答

1

你的代碼讀取:

如果名稱不爲空,或電子郵件不爲空,或電話不是空

這意味着,只要至少其中一個他們是非空的,那麼你很好!

很確定這不是你的意思。你想:

如果名稱不是空的,郵件是不是空的,手機是不是空

使用&&,而不是||,它應該只是工作!

+0

也試過這個,沒有工作 – Iury

+0

'$ _POST ['name'] = $ name;'是錯誤的。去掉它。如果有的話你可以做'$ name = $ _POST ['name']',但是我個人更喜歡避免「鏡像」用戶輸入變量,因爲它提醒用戶輸入,因此比平時更不安全。 –

+0

我之前嘗試過,並沒有工作,但現在我嘗試了您給我的建議:使用&&代替||。現在工作得很好,感謝隊友你救了我的生命hehehehe – Iury

1

我想你會對這裏涉及的所有消極因素感到困惑。我懷疑你以後是:

if (!(empty($name) || empty($email) || empty($phone))) { 
    ... 
} else { 
    $msg = 'All fields required'; 
} 

這將更好的寫法(在我看來)爲:

if (empty($name) || empty($email) || empty($phone)) { 
    $msg = 'All fields required'; 
} else { 
    ... 
} 
+0

也試過這個,沒有工作 – Iury

0
if($name=='' || $email=='' || $phone=='') 
{ 
    $msg='All fields required'; 
} 
else 
{ 
    .............. 
}