2013-12-12 34 views
0

我的PHP形式的短代碼:POST方法有時不工作,發送字段爲空

<form action="register.process.php" method="post"> 
<label for="code">Type</label><br/><select name="type" style="width:265px;"> 
    <option value="ex" selected="selected">Exchange</option> 
    <option value="computer">Computer</option> 
    <option value="metal">Metal</option> 
</select> 
<label>Address</label><br/><input type="text" name="adr" /> 
<label>Phone</label><br/><input type="text" name="phn" /> 
<input type="submit" value="Submit" style="width:265px; height:30px;"/> 
</form> 

和我register.process.php是:

<?php 
$type = $_POST['type']; 
$adr = $_POST['adr']; 
$phn = $_POST['phn']; 
$subject = "new data : ".$type." | ".$phn; 
if($type =="" || $phn="" || $$adr=""){ 
    header("refresh:1;url=store.register.php?error=1"); 
    $write = 1; 
} 
if($write != 1){ 
$msg = '<p>Type : '.$type."<br/>Address : ".$adr."<br/>Phone : ".$phn."</p>"; 
$to = "[email protected]"; 
$headers = "MIME-Version: 1.0" . "\r\n"; 
$headers .= "Content-type:text/html;charset=utf-8" . "\r\n"; 
$headers .= "From: xCodz Store Register <[email protected]>" . "\r\n"; 
mail($to,$subject,$msg,$headers); 
echo 'Your data has been sent!'; 
} 
?> 

我把,如果條件爲空或空數據,但空字段仍然通過這種情況! 將這些數據發送到郵件或將它們保存在MySql中沒有什麼不同。 通常ADR和PHN字段爲空,或者有時只是其中一個爲空,但在80%的時間內,此代碼正常工作!

回答

3

這絕不會反正工作:

if($type =="" || $phn="" || $$adr=""){ 
        ^--   ^--- 

你做任務到兩個指定變量,而不是平等的比較。嘗試使用==代替...

此外,在代碼的其餘部分中,您還有多個拼寫錯誤,因爲此處突出顯示的顏色表示。請注意,您的mail()命令是紅色的,這意味着它被解釋爲一個字符串。上面有一個或多個無與倫比的引用。

+0

謝謝你的回覆,我犯了一個錯誤,當我把我的代碼放在這裏提問時,我改變了「到」一個字段,我的郵件()的紅色是爲了那個,但我有錯誤和大錯誤for =!我修復了這個問題,謝謝, –

相關問題