2014-10-19 3 views
0

내 html 양식을 제출할 때 이메일에 $ name 값만 표시됩니다. 또한 감사의 HTML 페이지로 리디렉션하지 않고 제출을 클릭하면 감사 페이지의 내용이 양식 아래에 나타납니다. 어떤 아이디어? 여기에 내 코드는 ...PHP 양식 전용 전자 메일 1 값

HTML :

<section class="container content"> 

<div class="row"> 
<div class="center title col-sm-12"> 
<h2>Short Application Form</h2> 
</div> 
</div> 

<h2>Personal Information</h2> 
<form method="post" action="appemail.php" name="contactform" id="contactform" class="row"> 
<fieldset> 
<div class="form-field col-sm-6"> 
<label for="name">First Name</label> 
<span><input type="text" name="name" id="name"/></span> 
</div> 

<div class="form-field col-sm-6"> 
<label for="lastname">Last Name</label> 
<span><input type="text" name="lastname" id="lastname"/></span> 
</div> 

<div class="form-field col-sm-6"> 
<label for="email">Email</label> 
<span><input type="text" name="email" id="email"/></span> 
</div> 

<!--<div class="form-field col-sm-6"> 
<label for="email">Referral Name</label> 
<span><input type="email" name="email" id="email"/></span> 
</div>--> 

<div class="form-field col-sm-6"> 
<label for="email">Home/Cell Phone</label> 
<span><input type="text" name="phone" id="phone"/></span> 
</div> 

<div class="form-field col-sm-6"> 
<label>Martial Satus</label> 
<select name="martial"> 
    <option>Married</option> 
    <option>Unmaried</option> 
    <option>Seperated</option> 
</select> 
</div> 

<div class="form-field col-sm-6"> 
<label>Are you a Canadian Permanent Resident</label> 
<select name="resident"> 
    <option>Yes</option> 
    <option>No</option> 
</select> 
</div> 

<div class="form-field col-sm-6"> 
<label for="email">Date of Birth</label> 
<span><input type="text" name="birth"/></span> 
</div> 

<div class="form-field col-sm-6"> 
<label for="email">Number of Dependents</label> 
<span><input type="text" name="dependents"/></span> 
</div> 

<div class="center title col-sm-12"> 
<h2 style="text-align:left">Current Address</h2> 
</div> 

<div class="form-field col-sm-6"> 
<label for="name">Street Address</label> 
<span><input type="text" name="adress"/></span> 
</div> 
<div class="form-field col-sm-6"> 
<label for="name">City</label> 
<span><input type="text" name="city"/></span> 
</div> 
<div class="form-field col-sm-6"> 
<label for="name">Province</label> 
<span><input type="text" name="province"/></span> 
</div> 
<div class="form-field col-sm-6"> 
<label for="name">Postal Code</label> 
<span><input type="text" name="postal"/></span> 
</div> 
<div class="form-field col-sm-6"> 
<label for="name">Years at this Address</label> 
<span><input type="text" name="years"/></span> 
</div> 

<div class="form-field col-sm-6"> 
<label>Rent or Own</label> 
<select name="rent"> 
    <option>Own</option> 
    <option>Rent</option> 
</select> 
</div> 

<div class="center title col-sm-12"> 
<h2 style="text-align:left">Subject Property</h2> 
</div> 

<div class="form-field col-sm-6"> 
<label>Property Usage</label> 
<select name="property"> 
    <option>Primary Residence</option> 
    <option>Second Home</option> 
    <option>Investment</option> 
</select> 
</div> 

<div class="form-field col-sm-6"> 
<label for="name">Loan Amount $ </label> 
<span><input type="text" name="loan"/></span> 
</div> 
<div class="form-field col-sm-6"> 
<label for="name">Purchase Price $</label> 
<span><input type="text" name="price"/></span> 
</div> 

<div class="center title col-sm-12"> 
<h2 style="text-align:left">Monthly Income</h2> 
</div> 

<div class="form-field col-sm-6"> 
<label for="name">Yearly Income $ </label> 
<span><input type="text" name="yearly"/></span> 
</div> 
<div class="form-field col-sm-6"> 
<label for="name">Other Sources of Income (combined) $</label> 
<span><input type="text" name="other"/></span> 
</div> 

<div class="form-field col-sm-12"> 
<label for="message">Comments</label> 
<span><textarea name="message" id="message"></textarea></span> 
</div> 
</fieldset> 
<div class="form-click center col-sm-12"> 
<span><input type="submit" name="submit" id="submit" value="Send it"/></span> 
</div> 
<div id="alert" class="col-sm-12"></div> 
</form> 
</section> 

PHP : 사전에

<?php 

$name = $_POST['name']; 
$lastname = $_POST['lastname']; 
$visitor_email = $_POST['email']; 
$phone = $_POST['phone']; 
$martial = $_POST['martial']; 
$resident = $_POST['resident']; 
$birth = $_POST['birth']; 
$dependents = $_POST['dependents']; 
$adress = $_POST['adress']; 
$city = $_POST['city']; 
$province = $_POST['province']; 
$postal = $_POST['postal']; 
$years = $_POST['years']; 
$rent = $_POST['rent']; 
$property = $_POST['property']; 
$loan = $_POST['loan']; 
$price = $_POST['price']; 
$other = $_POST['other']; 
$message = $_POST['message']; 

if(IsInjected($visitor_email)) 
{ 
    echo "Bad email value!"; 
    exit; 
} 

$email_from = $visitor_email; 
$email_subject = "Application Loan"; 

$email_body = "You have received a new message from $name\n\n". 
    "Here is the Application: \n\n". 
    "Phone: $phone\n\n". 
    "Martial Status: $martial\n\n". 
    "Resident: $resident\n\n". 
    "Birth: $birth\n\n". 
    "Dependents: $dependents\n\n". 
    "Address: $address\n\n". 
    "City: $city\n\n". 
    "Province: $province\n\n". 
    "Postal: $postal\n\n". 
    "Years at this Address: $years\n\n". 
    "Rent or Own: $rent\n\n". 
    "Property: $property\n\n". 
    "Loan: $loan\n\n". 
    "Price: $price\n\n". 
    "Other: $other\n\n". 
    "Message: $message\n\n"; 

$to = "[email protected]";//<== update the email address 
$headers = "From: $visitor_email \r\n"; 
$headers .= "Reply-To: $visitor_email \r\n"; 

//Send the email! 
mail($to,$email_subject,$email_body,$headers); 
//done. redirect to thank-you page. 
header('Location:thank-you.html'); 
// Function to validate against any email injection attempts 

function IsInjected($str) 
{ 
    $injections = array('(\n+)','(\r+)','(\t+)','(%0A+)','(%0D+)','(%08+)','(%09+)'); 
    $inject = join('|', $injections); 
    $inject = "/$inject/i"; 

    if(preg_match($inject,$str)){return true;} 
    else{return false;} 
} 
?> 

감사합니다.

+1

군부 -> 결혼 : – jimmy

+0

정말 문자 인코딩/이스케이프 처리에주의해야합니다. 그렇지 않으면 이메일 전달 서버가 이메일을 변경하고 수정할 수 있습니다. – arkascha

답변

0

줄 바꿈으로 인해 문자열 연결이 작동하지 않습니다.

0

코드를 다시 작성하고 \n &을 제외하고는 isset 함수를 사용하여 양식 검사 데이터를 제출할 때 숨겨진 필드를 추가하십시오.

+0

구문은 어떻게 보입니까
? 덕분에 isset 함수가 추가됩니다. @Patricia – hassaad

0

$ 주소가있는 오타가있는 경우를 제외하고 코드를 복사하여 정상적으로 실행됩니다. 때로는 주소 (올바른 주소)를 사용하고 경우에 따라 주소를 지정합니다.

이메일은 내가받은 :

You have received a new message from First Name 
Here is the Application: 
Phone: 0000000 
Martial Status: Married 
Resident: Yes 
Birth: 2014-10-19 
Dependents: 42 
Address: Street Address 
City: City 
Province: Province 
Postal: Postal Code 
Years at this Address: 42 
Rent or Own: Own 
Property: Primary Residence 
Loan: 42 
Price: 42 
Other: 42 
Message: Comments 

에는 HTML 태그가 없기 때문에 라인의 새로운 디스플레이는 대부분의 이메일 클라이언트와 함께 작동합니다, 그래서 일반 텍스트로 표시됩니다. Setting the appropriate header도 도움이됩니다.

그렇지 않으면 백 엔드는 무엇입니까? OS, 호스트, PHP 버전?

+0

머리글을 변경하려고했지만 여전히 이름 값만 가져옵니다. 또한 내가 변수를 보내는 변수를 하나만 보내면 $ name이라는 것을 알아 차렸다. 나는 호스트 정보를 얻으려고 노력할 것이다. 는 "당신은 MyName로 여기 에서 새 메시지를받은 응용 프로그램입니다 : 전화 : 무술 상태 : 주민 : 출생 : 부양 가족 : 주소 : 도시 : 도 : 우편 :이 주소에서 년 : 임대 또는 자신 : 재산권 : 대출 : 가격 : 기타 : 메시지 : " – hassaad

+0

이 입력으로받은 POST 데이터에 영향을주지 않습니다 수신 PHP 스크립트에서 헤더를 설정. 어쨌든, 그럴 것 같지 않습니다. 코드가 더 많거나 적게 제공되는 코드 (무술, 주소)가 있기 때문에 환경과 어울리는 비법이 있습니다. 프레임 워크 (케이크, 심포니, 연료 등)를 사용합니까? 'phpinfo();'는 어떤 버전입니까? – lazos