2016-10-21 2 views
-1

수신 한 전자 메일에는 전자 메일 주소 나 전화 번호 또는 이름이 아닌 메시지 만 표시됩니다.내 HTML 양식은 PHP 메일에 1 개의 값만을 반환합니다.

이메일이 전송 된 메일도 표시되지 않습니다.

양식에서 전체 정보를 받아야합니다. 그렇지 않으면 내게 메시지가 표시되지 않습니다.

누군가이 코드보다 더 간단한 코드를 가지고있을 수 있습니까?

시도했지만 막혔습니다.

누군가 나를 도울 수 있습니까? 다음은

은 HTML과 PHP 코드를입니다

HTML 코드 :

<form name="mail" action="mail.php" method="post" > 
       <div class="form-group "> 
        <input id="name" class="form-control" placeholder="Name" type="text" required> 
        <label for="name" class="sr-only">Name</label> 

       </div> 
       <div class="form-group "> 
        <label for="email" class="sr-only">Email</label> 
        <input id="email" class="form-control" placeholder="Email" type="email" required> 
       </div> 
       <div class="form-group "> 
        <label for="phone" class="sr-only">Phone</label> 
        <input id="phone" class="form-control" placeholder="Phone" type="text" required> 
       </div> 
       <div class="form-group "> 
        <label for="message" class="sr-only">Message</label> 
        <textarea name="message" id="message" cols="30" rows="5" class="form-control" placeholder="Message" required></textarea> 
       </div> 
       <div class="form-group "> 
        <input class="btn btn-primary btn-lg" value="Send Message" name="submit" type="submit"> 
       </div> 
       </div> 
       </form> 

PHP 코드 : 당신은 다른에 대한 name 속성을 사용할 필요가

<?php 
 
if(!isset($_POST['submit'])) 
 
{ 
 
    //This page should not be accessed directly. Need to submit the form. 
 
    echo "error; you need to submit the form!"; 
 
} 
 
$name = $_POST['name']; 
 
$phone = $_POST['phone']; 
 
$email = $_POST['email']; 
 
$message = $_POST['message']; 
 

 

 

 
$email_from = "$email";//<== update the email address 
 
$email_subject = "New Form submission"; 
 
$email_phone = $phone; 
 
$email_body = "You have received a new message from the user ".$name. 
 
    "\nHere is the message:\n ".$message. 
 
    "\nThe phone number:\n ".$phone. 
 
    "The email:\n ".$email. 
 
    
 
$to = "[email protected]";//<== update the email address 
 
$headers = "From: $email_from \r\n"; 
 
$headers .= "Reply-To: $email \r\n"; 
 
//Send the email! 
 
mail($to,$email_subject,$email_body,$headers); 
 
//done. redirect to thank-you page. 
 
header('Location: index.html'); 
 

 

 

 
?>

+2

UR은 메시지 필드에 NAME 속성을 사용하기 때문에' name = "message"' – devpro

답변

1

룩을 시도해보십시오

<form name="mail" action="mail.php" method="post" > 
       <div class="form-group "> 
        <input name="name" id="name" class="form-control" placeholder="Name" type="text" required> 
        <label for="name" class="sr-only">Name</label> 
       </div> 
       <div class="form-group "> 
        <label for="email" class="sr-only">Email</label> 
        <input name="email" id="email" class="form-control" placeholder="Email" type="email" required> 
       </div> 
       <div class="form-group "> 
        <label for="phone" class="sr-only">Phone</label> 
        <input name="phone" id="phone" class="form-control" placeholder="Phone" type="text" required> 
       </div> 
       <div class="form-group "> 
        <label for="message" class="sr-only">Message</label> 
        <textarea name="message" id="message" cols="30" rows="5" class="form-control" placeholder="Message" required></textarea> 
       </div> 
       <div class="form-group "> 
        <input class="btn btn-primary btn-lg" value="Send Message" name="submit" type="submit"> 
       </div> 
       </div> 
       </form> 
+0

와우, 나는 그것을 보지 못해서 지금 어리 석다. –

+0

환영합니다;) 그것이 작동하는 것을 듣고 좋은 – Blueblazer172

+0

내 투표. – devpro

2

필드들도 마찬가지다. 애 message 필드, 같은 :

<input name="email" class="form-control" placeholder="Email" required> 
<input name="name" class="form-control" placeholder="NAme" required> 
<input name="phone" class="form-control" placeholder="Phone" required> 

그렇지 않으면 당신은 당신의 스크립트에서 정의되지 않은 인덱스 경고를 받게됩니다.

그것은,이 코드에서 모든 오류 및 경고를 찾는 데 도움이됩니다 개발 모드에서 PHP error_reporting()을 사용하는 것이 좋습니다.

// Same as error_reporting(E_ALL); 
ini_set('error_reporting', E_ALL); 

// Report all PHP errors (see changelog) 
error_reporting(E_ALL); 
+0

또는 그가 [여기] (https : // fil pgithub.io/whoops/) – Blueblazer172

+0

@ Blueblazer172 : ahan ... :) – devpro

+0

@ Blueblazer172 : 나는 100 % 확신합니다. 다음 질문은 내 이메일이 로컬 호스트에서 작동하지 않습니다 ... ... – devpro

2

이 코드 대신 <input>
사용에 누락 된 name="" 속성에 여기

<form name="mail" action="mail.php" method="post" > 
      <div class="form-group "> 
       <input id="name" class="form-control" placeholder="Name" type="text" name="name" required> 
       <label for="name" class="sr-only">Name</label> 

      </div> 
      <div class="form-group "> 
       <label for="email" class="sr-only">Email</label> 
       <input id="email" name="email" class="form-control" placeholder="Email" type="email" required> 
      </div> 
      <div class="form-group "> 
       <label for="phone" class="sr-only">Phone</label> 
       <input id="phone" name="phone" class="form-control" placeholder="Phone" type="text" required> 
      </div> 
      <div class="form-group "> 
       <label for="message" class="sr-only">Message</label> 
       <textarea name="message" id="message" cols="30" rows="5" class="form-control" placeholder="Message" required></textarea> 
      </div> 
      <div class="form-group "> 
       <input class="btn btn-primary btn-lg" value="Send Message" name="submit" type="submit"> 
      </div> 
      </div> 
      </form> 
+0

그것은 약간의 설명을 더하는 것이 좋습니다 – devpro

+2

당신은 이미 그것을 설명했습니다 :) –

+0

yah, 나는 그것을했다. ... – devpro

관련 문제