2016-09-27 9 views
0

私は現在、DowsingRod.netのウェブサイトを所有しています。 PHPの知識はそれほど大きくありません。 send.phpにいくつか問題があります。それはうまく動作し、私は含まれているメッセージと素敵な簡単な電子メールを取得します。人々が記入した名前とメールアドレスだけが表示されません。Send.phpには名前とメールは含まれていません

私のPHPは、以下の通りである:

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<meta name="viewport" content="initial-scale=1, maximum-scale=1" /> 
<meta name="viewport" content="width=device-width" /> 
</head> 

<body> 

<?php 
$email_to = "[email protected]"; 
$name = $_POST["name"]; 
$email = $_POST["email"]; 
$message = $_POST["message"]; 
$text = "Name: $name<br> 
    Email: $email<br> 
    Message: $message"; 
$headers = "MIME-Version: 1.0" . "\r\n"; 
$headers .= "Content-type:text/html; charset=utf-8" . "\r\n"; 
$headers .= "From: <$email>" . "\r\n"; 
mail($email_to, "Message", $text, $headers); 
?> 

</body> 
</html> 
+5

あなたは私たちに、フォームのためのあなたのhtmlを表示することができますか? – RasmusGlenvig

+1

もフォームコードを表示する –

答えて

1

あなたはこのコードを試してみてください: -

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
     <meta name="viewport" content="initial-scale=1, maximum-scale=1" /> 
     <meta name="viewport" content="width=device-width" /> 
    </head> 

    <body> 

<?php 
if(isset($_POST)&&!empty($_POST)) 
{ 
$email_to = "[email protected]"; 
$name = $_POST["name"]; 
$email = $_POST["email"]; 
$message = $_POST["message"]; 
$text = "Name: $name<br> 
    Email: $email<br> 
    Message: $message"; 
$headers = "MIME-Version: 1.0" . "\r\n"; 
$headers .= "Content-type:text/html; charset=utf-8" . "\r\n"; 
$headers .= "From: <$email>" . "\r\n"; 
mail($email_to, "Message", $text, $headers);  
} 
?> 
     <form method="POST"> 
      <label>Name</label> 
      <input type="text" name="name" value=""/> 
      <label>Email</label> 
      <input type="email" name="email" value=""/>    
      <label>Message</label> 
      <textArea name="message"></textarea> 
      <input type="submit" value="Send Mail"/> 
     </form> 

    </body> 
</html> 
0

これ、ここに、どのようにあなたのSend.phpの一般的な概要を与えるだけの試みですあなたの任意のものと同様にcontact-us.phpのように見えるかもしれません。おそらく、これはちょっと役立ちます:うまくいけば。

任意のファイル:連絡-us.php

<?php 
    // CHECK IF SESSION EXIST BEFORE STARTING IT. 
    if (session_status() == PHP_SESSION_NONE || session_id() == '') { 
     session_start(); 
    } 

    $errMessage = isset($_SESSION["errMessage"]) ? $_SESSION["errMessage"] : ""; 
    $name  = isset($_SESSION["name"])   ? $_SESSION["name"]   : ""; 
    $email  = isset($_SESSION["email"])   ? $_SESSION["email"]  : ""; 
    $subject = isset($_SESSION["subject"])  ? $_SESSION["subject"]  : ""; 
    $message = isset($_SESSION["message"])  ? $_SESSION["message"]  : ""; 
?> 

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
     <meta name="viewport" content="initial-scale=1, maximum-scale=1" /> 
     <meta name="viewport" content="width=device-width" /> 
    </head> 

    <body> 

    <!-- HTML FORM FROM WHICH WE GATHER OUR DATA FOR THE EMAIL --> 
    <!-- HERE THE ENC-TYPE IS SET TO "multipart/form-data" IN CASE WE HAVE ATTACHMENTS OR SO... --> 
    <!-- THE ACTION FOR THIS FORM IS SET TO "send.php" --> 
    <div class="form-container"> 
     <div class="error-box"> 
      <?php echo $errMessage; ?> 
     </div> 

     <form name="email-form" id="email-form" class="email-form" enctype="multipart/form-data" method="post" action="send.php"> 
      <div class="form-group"> 
       <label for="name" class="form-lbl">Name:</label> 
       <input type="text" class="form-control" value="<?php echo $name; ?>" id="name" name="name" placeholder="John Doe" /> 
      </div> 

      <div class="form-group"> 
       <label for="email" class="form-lbl">Email:</label> 
       <input type="email" class="form-control" value="<?php echo $email; ?>" id="email" name="email" placeholder="[email protected]"/> 
      </div> 

      <div class="form-group"> 
       <label for="subject" class="form-lbl">Subject:</label> 
       <input type="text"  class="form-control" value="<?php echo $subject; ?>" id="subject" name="subject" placeholder="Subject of this Email." /> 
      </div> 

      <div class="form-group"> 
       <label for="message" class="form-lbl">Message:</label> 
       <textarea id="message" class="form-control" name="message" placeholder="Your message here..."><?php echo $message; ?></textarea> 
      </div> 

      <div class="form-group"> 
       <input type="submit" class="form-control" name="submit" value="Send" id="submit" /> 
      </div> 
     </form> 
    </div> 

</body> 
</html> 
<?php 
    // UNSET ERROR MESSAGE FROM SESSION... 
    unset($_SESSION["errMessage"]); 

send.php FILE:

<?php 
    // CHECK IF SESSION EXIST BEFORE STARTING IT. 
    if (session_status() == PHP_SESSION_NONE || session_id() == '') { 
     session_start(); 
    } 
    // CREATE A VARIABLE TO HOLD ERRORS (SHOULD YOU NEED IT). 
    $errMessage  = $name = $email = $subject = $message = ""; 

    // NOW; CHECK THAT THE FORM HAS BEEN SUBMITTED 
    if(isset($_POST['submit'])){ 
     // THEN SANITIZE ALL DATA COMING FROM THE FORM 
     $name  = isset($_POST["name"])  ? htmlspecialchars(strip_tags(trim($_POST["name"]))) : null; 
     $email  = isset($_POST["email"]) ? htmlspecialchars(strip_tags(trim($_POST["email"]))) : null; 
     $subject = isset($_POST["subject"]) ? htmlspecialchars(strip_tags(trim($_POST["subject"]))) : null; 
     $message = isset($_POST["message"]) ? htmlspecialchars(strip_tags(trim($_POST["message"]))) : null; 
     $email_to = "[email protected]"; 

     // BUILD THE ERROR MESSAGE: 
     $errMessage.= !($name) ? "The Name Field cannot be empty.<br>"  : ""; 
     $errMessage.= !($email) ? "The Email Field cannot be empty.<br>" : ""; 
     $errMessage.= !($subject) ? "The Email Subject is required.<br>"  : ""; 
     $errMessage.= !($message) ? "The Message Field cannot be empty.<br>" : ""; 

     // SET SOME SESSION DATA: 
     $_SESSION["errMessage"] = $errMessage; 
     $_SESSION["name"]  = $name; 
     $_SESSION["email"]  = $email; 
     $_SESSION["subject"] = $subject; 
     $_SESSION["message"] = $message; 


     // SO! IF THE $errMessage IS EMPTY, THEN WE BUILD & SEND THE EMAIL 
     // SINCE WE HAVE NO ERRORS... OTHERWISE WE JUST DISPLAY THE ERRORS AND BAIL... 
     if($errMessage == "" || empty($errMessage)) { 
      // SET THE HEADERS (MAKE IT HTML-COMPATIBLE) 
      $headers = "MIME-Version: 1.0" . "\r\n"; 
      $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; 
      $headers .= "From: <{$email}>" . "\r\n"; 

      // BUILD THE EMAIL BODY 
      $text = "Name: $name<br>"; 
      $text .= "Email: $email<br>"; 
      $text .= $subject? $subject : "Message: $message"; 

      // E-MAIL SUBJECT 
      $subject = "Email from my Website."; 

      // SEND OUT THE EMAIL: 
      $status  = mail($email_to, $subject, $text, $headers); 
      if($status){ 
       $name = $email = $subject = $message = ""; 
       $errMessage = "Email Successfully sent... Thanks for contacting us..."; 
       unset($_SESSION["name"]); 
       unset($_SESSION["email"]); 
       unset($_SESSION["subject"]); 
       unset($_SESSION["message"]); 
      } 
     } 
    } 

    // FINALLY REDIRECT TO THE CONTACT-US PAGE... 
    header("location: contact-us.php"); 
関連する問題