2015-06-10 42 views
0

我的聯繫方式,在這裏你可以添加多個收件人,但是當我上傳的服務器上,有這些錯誤:如果條件不允許留出空白領域

注意:未定義指數:收件人 /var/www/vhosts/partizanas.lt/httpdocs/brief/contactform.php在線 17注意:未定義索引:recipient0 /var/www/vhosts/partizanas.lt/httpdocs/brief/contactform .php在線 18注意:未定義的索引:recipient1在 /var/www/vhosts/partizanas.lt/httpdocs/brief/contactform.php在線 19注意:未定義索引:recipient2在 /var/www/vhosts/partizanas.lt/httpdocs/brief/contactform.php在線 20注意:未定義的索引:recipient3在 /var/www/vhosts/partizanas.lt/httpdocs/brief/contactform.php上線 21注:未定義指數:電子郵件中 /var/www/vhosts/partizanas.lt/httpdocs/brief/contactform.php在線 22"

我寫的,如果條件,修正了錯誤:

if (isset($_POST['Submit']))  
{  

$formproc->AddRecipient($_POST["recipient"]); 
$formproc->AddRecipient($_POST["recipient0"]); 
$formproc->AddRecipient($_POST["recipient1"]); 
$formproc->AddRecipient($_POST["recipient2"]); 
$formproc->AddRecipient($_POST["recipient3"]); 
$formproc->AddRecipient($_POST["email"]); 
} 

但問題是,如果有空輸入字段,表單不會發送。而且我希望它在沒有填充所有字段時發送表單。

任何建議如何做到這一點?

+2

請給我們看看。 – Masiorama

+1

測試密鑰。 '$ value = isset($ _ POST [「recipient」])? $ _POST [「收件人」]:'';'(基本示例) –

+1

這是一個複製粘貼嗎?看起來你的表單中沒有名爲'recipient,recipient0 ...'的輸入元素,所以 –

回答

1

Check this answer

依賴未初始化變量的缺省值是在包括一個文件到另一個使用相同變量名的情況下,成問題的。這也是register_globals打開時的一個主要安全風險。在處理未初始化的變量的情況下會發出E_NOTICE級別的錯誤,但不會在將元素追加到未初始化的數組的情況下發生。 isset()語言結構可用於檢測變量是否已被初始化。

1
if (isset($_POST['Submit']))  
{  
if(isset($_POST["recipient"]) && $_POST["recipient"] !=""){$formproc->AddRecipient($_POST["recipient"]);} 
if(isset($_POST["recipient1"]) && $_POST["recipient"] !=""){$formproc->AddRecipient($_POST["recipient1"]);} 
if(isset($_POST["recipient2"]) && $_POST["recipient"] !=""){$formproc->AddRecipient($_POST["recipient2"]);} 
if(isset($_POST["recipient3"]) && $_POST["recipient"] !=""){$formproc->AddRecipient($_POST["recipient3"]);} 
$formproc->AddRecipient($_POST["email"]); 
} 
1

考慮下面的代碼來解決問題:

if (isset($_POST['Submit']))  
{  

    if(!empty($_POST["recipient"])) { 
     $formproc->AddRecipient($_POST["recipient"]); 
    } 

    if(!empty($_POST["recipient0"])) { 
     $formproc->AddRecipient($_POST["recipient0"]); 
    } 

    if(!empty($_POST["recipient1"])) { 
     $formproc->AddRecipient($_POST["recipient1"]); 
    } 

    if(!empty($_POST["recipient2"])) { 
     $formproc->AddRecipient($_POST["recipient2"]); 
    } 

    if(!empty($_POST["recipient3"])) { 
     $formproc->AddRecipient($_POST["recipient3"]); 
    } 

    if(!empty($_POST["email"])) { 
     $formproc->AddRecipient($_POST["email"]); 
    } 
} 

這裏的想法是不執行該功能AddRecipient()如果輸入字段爲空。 !empty()函數爲你完成那項工作。