2016-02-09 18 views
0

我試圖在網站上放置一個基本的電子郵件表格,並且一直遇到「身份不明的索引」的問題。我四處閱讀,發現「isset()」解決了這個問題。我發現PHP拋出「未定義的索引」或不發送電子郵件形式的電子郵件

$... = isset($_POST['...']); 

確實擺脫了錯誤信息,但我的代碼什麼都不做。該頁面甚至不刷新或拋出另一個錯誤。這裏是我的html:

<form method="post" action="index.php"> 
     <h1>Send Us an Email</h1> 
     <header class="emailbody"> 
      <label>Name</label> 
      <input name="name" placeholder="Type Here"> 
     </header> 
     <section class="emailbody"> 
      <label>Email</label> 
      <input name="email" type="email" placeholder="Type Here"> 
     </section> 
     <footer class="emailbody"> 
      <label>Message</label> 
      <textarea name="message" placeholder="Type Here"></textarea><br> 
     </footer> 
     <div class="submitbutton"> 
      <input id="submit" type="submit" value="Send"> 
     </div> 
    </form> 

這裏是我的PHP:

<?php 

    $name = isset($_POST['name']); 
    $email = isset($_POST['email']); 
    $message = isset($_POST['message']); 
    $from = 'From: SiteDemo'; 
    $to = '[email protected]'; 
    $subject = 'Hello'; 

    $body = "From: $name\n E-Mail: $email\n Message:\n $message"; 

?> 

我已經有和沒有 「isset()函數」,圍繞不同的索引嘗試過。沒有,它會拋出錯誤,並且代碼不會執行任何操作。

+0

做ü要送空的電子郵件???如果沒有設置值? – devpro

回答

1

有兩件事情需要加以糾正:

1)您沒有書面mail()函數語句。

2)isset()僅返回TRUEFALSE,取決於是否設置了變量。如果設置了變量,它不會返回變量。

更正它:

$name = isset($_POST['name']) ? $_POST['name'] : ''; 

同其他變量。

0

是的,你可以在這裏使用isset()檢查任一值設置或不喜歡的是:

if(isset($_POST['submit'])) 
{ 
    // if you dont want to send empty email. 
    if(!empty($_POST['name']) && !empty($_POST['email']) && !empty($_POST['message'])) 
    { 
     $name = trim($_POST['name']); 
     $email = trim($_POST['email']); 
     $message = trim($_POST['message']); 
     $header = "From: SiteDemo"; 
     $to = '[email protected]'; 
     $subject = 'Hello'; 

     $body = "From: $name\n E-Mail: $email\n Message:\n $message"; 
     mail($to,$subject,$body,$header); 
    } 
} 

並添加name屬性的提交按鈕:

<input id="submit" type="submit" value="Send" name="submit">