2016-08-10 4 views
0

Err 저는이 문제로 현명함을 나타냅니다. 나는 내가 잘못하고있는 것을 보지 못하고 거기에 있어야 할 모든 것이 있지만 여전히 작동하지 않습니다.PHP 게시물 데이터를 보내지 않고 있습니다.

다른 양식과 PHP 메일 스크립트를 사용했지만 아무 것도 작동하지 않는 것 같습니다. 이메일을 보내고 있지만 정보는 항상 비어 있습니다. 예 :의 스크린 샷을 참조하십시오. 내가 뭘 잘못

This is the screenshot link

?

도움 말. 여기

양식 코드 :

<form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php"> 
        <div class="row-fluid"> 
        <div class="span5"> 
         First Name: <input type="text" name="first_name"><br> 
Last Name: <input type="text" name="last_name"><br> 
Email: <input type="text" name="email"><br> 
Message:<br><textarea rows="5" name="message" cols="30"></textarea><br> 
        </div> 
        <div class="span7"> 
         <button type="submit" class="btn btn-primary btn-large pull-right">Send Message</button> 
        </div> 

       </div> 


      </form> 

여기에 전체 PHP 파일 (sendemail.php)입니다 :

<?php 
    header('Content-type: application/json'); 
    $status = array(
     'type'=>'success', 
     'message'=>'Email sent!' 
    ); 


    $name = @trim(stripslashes($_POST['first_name'])); 
    $lastname = @trim(stripslashes($_POST['last_name'])); 
    $email = @trim(stripslashes($_POST['email'])); 
    $message = @trim(stripslashes($_POST['message'])); 

    $email_from = "Website Contact Form"; 
    $email_to = '//removed real email address'; 


$Body .= "Name: "; 
$Body .= $name; 
$Body .= "\n"; 
$Body .= "Email: "; 
$Body .= $Email; 
$Body .= "\n"; 
$Body .= "Message: "; 
$Body .= $Message; 


    $body = 'Name: ' . $name . "\n\n" . 'Email: ' . $email . "\n\n" . 'Subject: ' . $subject . "\n\n" . 'Message: ' . $message; 

    $success = mail($EmailTo, $Subject, $Body, "From: <$email_from>"); 

    $success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>'); 


    echo json_encode($status); 
    die; 

현재 코드 형태의 웹 페이지 당신 여기를 참조하십시오 실행 : http://minha-consulting.com/contactus.html

감사합니다.

+0

편집 : 내 댓글을 긁어 보면 어느 쪽이라도 잘못되었습니다. –

답변

0

$ Body의 첫 줄은 "."없이 시작해야합니다.

$Body = "Name: "; 

소문자로 변수를 정의한 경우 upper로 호출 할 수 없습니다.

$test != $Test 

그냥이 복사 오순절 당신의 코드를 대체 :

$name = @trim(stripslashes($_POST['first_name'])); 
    $lastname = @trim(stripslashes($_POST['last_name'])); 
    $email = @trim(stripslashes($_POST['email'])); 
    $message = @trim(stripslashes($_POST['message'])); 

$subject = 'Email Subject'; 
$headMail = "From: [email protected]\r\n"; 
$headMail .= "From: [email protected]\r\n"; 
$bodyMail = "Name: "; 
$bodyMail .= $name . ' ' . $lastname; 
$bodyMail .= "\n"; 
$bodyMail .= "Email: "; 
$bodyMail .= $email; 
$bodyMail .= "\n"; 
$bodyMail .= "Message: "; 
$bodyMail .= $message; 

mail($email, $subject, $bodyMail, $headMail); 
+0

Downvoter가 대답하는 문제는 무엇입니까? 나는 그에게 완성 된 코드를 주었다. – kuchar

0

변수 이름은 대소 문자를 구분합니다. http://php.net/manual/en/language.variables.basics.php

$Message$message

은 동일하지 않습니다. 비슷하게 다른 변수를 수정하십시오.

+0

친애하는 downvoter, 이유는 여기에서 유용 할 것이다. 그래서 나는 답을 고칠 수 있습니다. – Jigar

+0

upvoted for linking manual – lje

1

두 번 (대문자와 소문자) 변수 이름을 사용하고 전자 메일을 두 번 보내고 있습니다. 좀 지저분 해.

  • $Body

  • $Email
  • 을 정의되지 않은
  • $Message은 (대문자)
  • 왜 사용중인 위해서 stripslashes를 정의되지 않은 (대문자) 정의되지 않은 : 여기에 코드에서 몇 가지 문제는 무엇입니까? 더 나은 사용 Sanitize filters.
  • 적절한 들여 쓰기와 코드를 정리하고 찾을 훨씬 쉽게 될 것입니다 표준

이 방법은 버그를 코딩 PHP를 사용합니다.

+1

좋은 답변입니다. +1 – lje

+0

시간을내어 질문에 답변 해 주셔서 감사합니다. 나는 이것을 시도 할 것이고 당신에게 돌아갈 것이다! – desupink

+0

제안이 전혀 작동하지 않았습니다. ' '성공', \t \t '메시지'=> '보낸 이메일!' \t); $ name = ($ _POST [ 'first_name']); $ lastname = ($ _POST [ 'last_name']); $ email = ($ _POST [ '이메일']); $ message = ($ _POST [ 'message']); $ email_from = "웹 사이트 문의 양식"; $ email_to = '[email protected]'; $ body = "Name :". $ name. "\ nEmail :". $ email. "\ n 메시지 :". $ message; $ success = @mail ($ email_to, $ subject, $ body, '보낸 사람 : <. $ email_from.>>)); echo json_encode ($ status); die; ' – desupink

0

위의 소문자 'm'에 $ message 대신 $ message를 사용하십시오.

$Body .= "Name: "; 
$Body .= $name; 
$Body .= "\n"; 
$Body .= "Email: "; 
$Body .= $Email; 
$Body .= "\n"; 
$Body .= "Message: "; 
$Body .= $Message; 
관련 문제