2017-12-13 13 views
0

저는 PHP 스크립트를 전자 메일로 보내려는 디자이너입니다.PHP가 스켈레톤 CSS에서 메일 양식을 처리합니다.

<form> 
    <div class="row"> 
    <div class="six columns"> 
     <label for="exampleEmailInput">Your email</label> 
     <input class="u-full-width" placeholder="[email protected]" id="exampleEmailInput" type="email"> 
    </div> 
    <div class="six columns"> 
     <label for="exampleRecipientInput">Reason for contacting</label> 
     <select class="u-full-width" id="exampleRecipientInput"> 
     <option value="Option 1">Questions</option> 
     <option value="Option 2">Admiration</option> 
     <option value="Option 3">Can I get your number?</option> 
     </select> 
    </div> 
    </div> 
    <label for="exampleMessage">Message</label> 
    <textarea class="u-full-width" placeholder="Hi Dave …" id="exampleMessage"></textarea> 
    <label class="example-send-yourself-copy"> 
    <input type="checkbox"> 
    <span class="label-body">Send a copy to yourself</span> 
    </label> 
    <input class="button-primary" value="Submit" type="submit"> 
</form> 

나는이 일치하도록 기존의 PHP 스크립트를 수정하려고하고 문제의 엄청 많이 데 : HTML 양식은 http://getskeleton.com/#forms에서 자신의 웹 사이트에서 표준 해골 CSS의 하나입니다. 아마 경험 devs를 쉽게하지만 디자이너 꽤 뚫을 수있는 PHP를 적용하는 방법을 이해할 수 없다

<?php 

if($_REQUEST['name'] == '' || $_REQUEST['email'] == '' || $_REQUEST['message'] == ''): 
    return "error"; 
endif; 
if (filter_var($_REQUEST['email'], FILTER_VALIDATE_EMAIL)): 
    $to = '[email protected]'; 
$header = 'From: '. $_REQUEST['name'] . ' <'. $_REQUEST['email'] .'>'. "\r\n"; 
$header .= 'Reply-To: '. $_REQUEST['name'] . ' <'. $_REQUEST['email'] .'>'. "\r\n"; 
$header .= 'X-Mailer: PHP/' . phpversion(); 
$subject = "Hello"; 
$message .= 'Name: ' . $_REQUEST['name'] . "\n"; 
$message .= 'Email: ' . $_REQUEST['email'] . "\n"; 
$message .= 'Message: '. $_REQUEST['message']; 
$event = $_GET['exampleRecipientInput']  
$mail = mail($to, $url , $message, $header); 
return $mail ? "success" : "error"; 
else: 
    return "error"; 
endif; 
?> 

: 이것은 PHP 내베이스 플레이트입니다. 누구든지 도와 줄 수 있습니까?

+4

양식 요소에는'name' 속성이 없으므로 아마도 이것이 첫 번째 문제 일 것입니다. 실제로 그 요소 없이는 아무 데이터도 보내지 않을 것입니다. – ceejayoz

+1

작동에 문제가 있다는 의미에 대해 자세히 설명해주십시오. 당신이 그것을 시도하면 어떻게됩니까? 무슨 문제가있어? – jeteon

답변

1

ceejayoz, 당신은 당신이 다음 (추가 이름 속성처럼 보일 수 $_POST['whatever_name']

귀하의 HTML 코드를 통해 그들에 액세스 할 수 있습니다, 이름 입력 필드에 속성을 추가 할 필요 해요 말했듯) :

당신은 제출 버튼이 있었는지, 사실, 제출 당신이 확인하고 확인해야합니다
<form> 
    <div class="row"> 
    <div class="six columns"> 
     <label for="exampleEmailInput">Your email</label> 
     <input class="u-full-width" placeholder="[email protected]" id="exampleEmailInput" type="email" name="email"> 
    </div> 
    <div class="six columns"> 
     <label for="exampleRecipientInput">Reason for contacting</label> 
     <select class="u-full-width" id="exampleRecipientInput" name="reason"> 
     <option value="Option 1">Questions</option> 
     <option value="Option 2">Admiration</option> 
     <option value="Option 3">Can I get your number?</option> 
     </select> 
    </div> 
    </div> 
    <label for="exampleMessage">Message</label> 
    <textarea class="u-full-width" placeholder="Hi Dave …" id="exampleMessage" name="message"></textarea> 
    <label class="example-send-yourself-copy"> 
    <input type="checkbox"> 
    <span class="label-body">Send a copy to yourself</span> 
    </label> 
    <input class="button-primary" value="Submit" type="submit"> 
</form> 

:

<?php 

if (isset($_POST['submit']) { 

    if($_POST['name'] == '' || $_POST['email'] == '' || $_POST['message'] == ''): 
      return "error"; 
    endif; 
    if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)): 
     $to = '[email protected]'; 
     $header = 'From: '. $_POST['name'] . ' <'. $_POST['email'] .'>'. "\r\n"; 
     $header .= 'Reply-To: '. $_POST['name'] . ' <'. $_POST['email'] .'>'. "\r\n"; 
     $header .= 'X-Mailer: PHP/' . phpversion(); 
     $subject = "Hello"; 
     $message .= 'Name: ' . $_POST['name'] . "\n"; 
     $message .= 'Email: ' . $_POST['email'] . "\n"; 
     $message .= 'Message: '. $_POST['message']; 
     $event = $_POST['reason'];  
     $mail = mail($to, $url , $message, $header); 
     return $mail ? "success" : "error"; 
    else: 
     return "error"; 
    endif; 

} 
?> 

if (isset($_POST['submit'])) 부분은 양식이 제출되었음을 스크립트에 알리고 대괄호 안에 코드를 실행합니다.

: 나는 $_POST['name']$_REQUEST['']을 변경했습니다. 이것들은 HTML 편집의 맨 위에 제공 한 필드 이름과 관련이 있습니다.

+0

고맙습니다. 나는 이름 부분이 빠져서 이제 폼 코드를 내 연락처 페이지에 추가하고 PHP를 내 계정의 루트에 놓았지만 여전히 작동하지 않는 것을 보았습니다. ("$ to = '[email protected]'"을 내받은 편지함 주소로 변경하는 것을 기억했습니다.) –