2013-06-05 2 views
-1

간단한 PHP 폼 메일을 만들려고합니다. 내 이메일 주소를 제거한 아래
모든 메신저 이후 이있는 이메일의 예에서PHP 전자 메일 스크립트에 사용자 정의 필드를 추가하는 방법

Name: joe blogs 
Email: [email protected] 
Message: anything. 
Answer 1: Red 
Answer 2: green 
Answer 3: Blue 

보이는 ... 문제는 내가 필드를 작성하고 '제출'버튼을 누르십시오 내가 얻을 내 메시지가 전송되었지만 이메일이 오지 않는다고 말하는 메시지. $ questX 필드를 추가 할 때까지 작동하는 것이 멈췄습니다. 그러나 나는 $ 이름에 아무런 차이가 보이지 않는다. 그래서 나는 아주 혼란스러워.

<?php 
if (isset($_REQUEST['email'])) 
//if "email" is filled out, send email 
{ 
//send email 
    $email = $_REQUEST['email'] ; 
    $name = $_REQUEST['name'] ; 
    $quest = $_REQUEST['quest'] ; 
    $questb = $_REQUEST['questb'] ; 
    $questc = $_REQUEST['questc'] ; 
    $subject = "Competition Entry" ; 
    $message = $_REQUEST['message'] ; 
    mail("[email protected]", $subject, "Name:" . $name, "From:" . $email, "Answer 1:" . 
    $quest, "Answer 2:" . $questb, "Answer 3:" . $questc, $message); 
    echo "Thank you for using our mail form"; 
} 
else 
//if "email" is not filled out, display the form 
{ 
    echo "<form method='post' action='win-a-deck2.php'> 
      <label for='name'>Name:</label><input name='name' type='text' placeholder='Enter your fullname'><br> 
      <label for='email'>Email:</label><input name='email' type='text'><br> 
      <label for='message'>Message:</label><br> 
      <input name='message' type='text'><br> 
      <label for='quest'>Question 1:</label><input name='quest' type='text' placeholder='Answer to Question 1'><br> 
      <label for='questb'>Question 2:</label><input name='questb' type='text' placeholder='Answer to Question 2'><br> 
      <label for='questc'>Question 3:</label><input name='questc' type='text' placeholder='Answer to Question 3'><br> 
      <input type='submit'> 
     </form>"; 
} 
?> 
+0

$ questc, $ message 있습니다. $ questc이 필요합니다. $ message는 메일 함수에 4 개의 인자를주고, 3 번째 인자는 4 번째 인자가 필요하다. 헤더 설정을 위해 사용된다. –

답변

0

간단한 PHP 이메일 양식 다음과 같이

<form action="process.php" method="post"> 
<ul style="list-style-type: none;"> 
<li>Name: <input type="text" name="name" size="30" maxlength="40"></li> 
<li>&nbsp;</li> 
<li>Email: <input type="text" name="email" size="30" maxlength="40"></li> 
<li>&nbsp;</li> 
<li><input type="submit" name="submit" value="Send"></li> 
</ul> 
</form> 

process.php 페이지에 대한 코드는 다음과 같습니다 -

Thanks, <?php 
@extract($_POST); 
$sub="Form feedback"; 
$name = stripslashes($name); 
$email = stripslashes($email); 
mail('[email protected]',$sub,"$name $email","From: $name <[email protected]>"); 
echo stripslashes($name); 
?> , we will drop you a line shortly. 

자습서 :

http://wickham43.net/formemail.php

자동 회신 및 응답 없음.

또한 단지 일반 목적 :

http://php.net/manual/en/function.mail.php

0

메일 기능 :

bool mail ( 
1. string $to , 
2. string $subject , 
3. string $message 
4. [, string $additional_headers 
5. [, string $additional_parameters ]]) 

http://www.php.net/manual/en/function.mail.php

는이처럼 사용하고 있습니다 :

mail(
1. "[email protected]", 
2. $subject, 
3. "Name:" . $name, 
4. "From:" . $email, 
5. "Answer 1:" . 
$quest, "Answer 2:" . $questb, "Answer 3:" . $questc 
6. , $message); 

확실히 잘못된 매개 변수를 함수에 전달하기 때문에 함수가 작동하지 않습니다. 이것을 시도하십시오 :

mail(
"[email protected]", 
$subject, 
"Name:" . $name . "Answer 1:" . $quest, "Answer 2:" . $questb 
. "Answer 3:" . $quest . $message, 
"From:" . $email); 
0

먼저 질문 이름이 배열이되도록 양식을 편집해야합니다. 그렇게하면 $ _POST [ 'questions']를 배열로 사용할 수 있고 각 질문을 자체 변수에 입력하는 대신 foreach 루프를 사용할 수 있습니다.

두 번째로 오류보고를 켜고 어떤 오류가 발생하는지 확인하십시오.

셋째, 모든 ONE $ 메시지 문자열에 있어야 너무 많은 http://us1.php.net/manual/en/function.mail.php 당신이 $ 한 메일의 매개 변수(), $ 제목, 다음 무리 이상의 문자열을 가지고있다.

관련 문제