2012-09-08 57 views
0

每當我在文本框中輸入文本時,都無法正確傳輸到PHP。 PHP將輸入讀取爲空,實際上,那裏有文本。PHP沒有從文本框中獲取文本

PHP代碼。對於形式

<div id="form"> 

<form method="post" action="Email_Form_Script.php" enctype="text/plain" onsubmit="window.open('FormPopUp.html','popup','width=500,height=500,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0');" > 
    <div> 
     <input type="text" class="text" name="e3text" id="emailForm" value="Enter your e-mail address" onfocus="if(this.value=='Enter your e-mail address') { this.value = '' }" onblur="if(this.value=='') { this.value = 'Enter your e-mail address' }" /> 
     <input type="hidden" value="" name="email2"/> 
     <input type="hidden" name="loc" value="en_US"/> 
     <input type="submit" class="submit" value=""/></div> 
</form> 
</div> 

//Two Email Lines 
$email_to = "[email protected]"; 
$email_subject = "AUTO: REQUEST"; 

//Set equal to email form textbox 
$email_form = $_POST['email_text']; 


$email_message = "Email: " . $email_form . ""; 

//Create email headers 
@mail($email_to, $email_subject,$email_message,$headers); 

HTML代碼真的很困惑,爲什麼它不工作。我一直收到只是說「電子郵件:」的電子郵件(電子郵件後沒有文字)。

+0

您在名爲'email_text'的html代碼中沒有任何輸入。我會說這是第一個問題。 – Kuro

+0

請不要急於改變問題信息(或代碼),查看你的問題的其他人無法弄清楚原來的問題是什麼,這個問題沒有意義。你可以**添加**內容到原始問題(「編輯:我試圖設置字段爲'e3text',但它仍然失敗」) –

+0

嗯,其實我認爲老兄得到了他的答案,改變了問題是正確的,並不在乎接受他得到的任何答案。 – Kuro

回答

0

這是因爲您的表單實際上並不包含您的PHP代碼中引用的名爲email_text的輸入元素。您需要將您的HTML表單代碼構建爲至少看起來像這樣或更改您的PHP代碼以要求$_POST['e3text']

<div id="form"> 
    <form method="post" action="Email_Form_Script.php" enctype="text/plain" onsubmit="window.open('FormPopUp.html','popup','width=500,height=500,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0');" > 
     <div> 
      <input type="text" class="text" name="email_text" id="emailForm" value="Enter your e-mail address" onfocus="if(this.value=='Enter your e-mail address') { this.value = '' }" onblur="if(this.value=='') { this.value = 'Enter your e-mail address' }" /> 
      <input type="hidden" value="" name="email2"/> 
      <input type="hidden" name="loc" value="en_US"/><input type="submit" class="submit" value="" /> 
     </div> 
    </form> 
</div> 
+0

即使當我將其鎖定爲$ _POST ['e3text']時,我仍然收到空白的電子郵件。 – Springerdude11

2

行:

$email_form = $_POST['email_text']; 

需求來匹配而你的情況是name="e3text"形式的文字name所以你應該使用:

$email_form = $_POST['e3text']; 
+0

@ Springerdude11我正在查看你的代碼,如果e3text是電子郵件地址(javascript函數似乎暗示),那麼郵件正文的實際文本在哪裏?你是否錯過了你的問題textarea? – Fluffeh

+0

e3text是消息正文的一部分。該文本框是爲了讓用戶輸入一個電子郵件地址來註冊一個時事通訊,然後它將電子郵件發送到我的個人電子郵件,以便我可以將它們添加到列表中。 – Springerdude11

0

試試這個在PHP代碼

$email_form = $_POST['e3text']; 

「e3text」是您的文本框的名稱,所以在PHP使用thi姓名

+0

錯誤。它通過名稱不是id。 – Kris

+0

PHP使用名稱屬性而非ID。 – brezanac

+0

對不起。修正了我的代碼 –

0

當你打你的表單的提交按鈕,值傳遞爲:

name of the input field = value of the input field 

你的字段是名e3text - 請參考這樣的領域在你的腳本,即$_POST['e3text']