2009-11-12 3 views
2

연락처 페이지에 구현하려는 복잡한 PHP 문의 양식을 만들었지 만, 어떤 이유로 표현 엔진이 PHP 코드를 사용할 수 있도록 인식하지 못하고 있습니다. 내 취향.사용자 정의 PHP 및 표현 엔진

모양은 다음과 같습니다. 실제 코드를 페이지에 붙여 넣는 대신 파일을 포함시키는 것과 같은 몇 가지 시도를했지만 아직 아무 것도 작동하지 않았습니다.

<?php 
if($_POST && $_POST['submit']) 
{ 
    // Put form posts into varibles 
     $name = $_POST['name']; 
     $mainphone = $_POST['mainphone']; 
     $email = $_POST['email']; 
     $altphone = $_POST['altphone']; 
     $contacttime = $_POST['contacttime']; 
     $airport = $_POST['airport']; 
     $departdate = $_POST['departdate']; 
     $departdateflex = $_POST['departdateflex']; 
     $duration = $_POST['duration']; 
     $prefcountry = $_POST['prefcountry']; 
     $prefresort = $_POST['prefresort']; 
     $hotels = $_POST['hotels']; 
     $numadults = $_POST['numadults']; 
     $numunder12 = $_POST['numunder12']; 
     $numunder2 = $_POST['numunder2']; 
     $roomarrange = $_POST['roomarrange']; 
     $maxbudget = $_POST['maxbudget']; 
     $addreq = $_POST['addreq']; 

    // Set Errors To None 
     $errors = false; 

    // Validate Form 
     if(!$mainphone) 
     { 
      $errors = true; 
      $errMsgs .= "<li>Please enter your phone number</li>"; 
     } 

     if(!$email) 
     { 
      $errors = true; 
      $errMsgs .= "<li>Please enter your email address</li>"; 
     }  

     if(!$airport) 
     { 
      $errors = true; 
      $errMsgs .= "<li>Please select the airport in which you would like to depart from</li>"; 
     }   

     if(!$departdate) 
     { 
      $errors = true; 
      $errMsgs .= "<li>Please enter the date you would like to depart</li>"; 
     } 

     if(!$duration) 
     { 
      $errors = true; 
      $errMsgs .= "<li>Please enter the duration of your stay</li>"; 
     }     

     if(!$prefcountry) 
     { 
      $errors = true; 
      $errMsgs .= "<li>Please enter the preferred country you wish to visit</li>"; 
     }  

     if(!$numadults) 
     { 
      $errors = true; 
      $errMsgs .= "<li>Please enter the number of adults travelling</li>"; 
     }    
    // Check For Errors 
     if($errors) 
     { 
      // Errors Found 
       $foundErrors = $errMsgs; 
     } 
     else 
     { 
      // No Errors Found || Process the form 

      // Create Email 
       $emailMsg = "<html><body>"; 
       $emailMsg .= "<p>"; 
       $emailMsg .= "<strong>Name:</strong> $name <br />"; 
       $emailMsg .= "<strong>Main Phone:</strong> $mainphone <br />"; 
       $emailMsg .= "<strong>Email:</strong> $email <br />"; 
       $emailMsg .= "<strong>Alternate Phone:</strong> $altphone <br />"; 
       $emailMsg .= "<strong>Contact Time:</strong> $contacttime <br />"; 
       $emailMsg .= "<strong>Airport's:</strong> <br />"; 
       foreach($airport as $v) 
       { 
        $emailMsg .= '- '.$v."<br />"; 
       } 
       $emailMsg .= "<strong>Depart Date:</strong> $departdate <br />"; 
       $emailMsg .= "<strong>Departure Flexible By:</strong> $departdateflex <br />"; 
       $emailMsg .= "<strong>Duration:</strong> $duration <br />"; 
       $emailMsg .= "<strong>Preferred Country:</strong> $prefcountry <br />"; 
       $emailMsg .= "<strong>Preferred Resort:</strong> $prefresort <br />"; 
       $emailMsg .= "<strong>No. Adults:</strong> $numadults <br />"; 
       $emailMsg .= "<strong>No. Under 12's:</strong> $numunder12 <br />"; 
       $emailMsg .= "<strong>No. Under 2's:</strong> $numunder2 <br />"; 
       $emailMsg .= "<strong>Room Arrangements:</strong> $roomarrange <br />"; 
       $emailMsg .= "<strong>Max Budget:</strong> $maxbudget <br />"; 
       $emailMsg .= "<strong>Additional Requirements:</strong> $addreq <br /></p>"; 
       $emailMsg .= "</body></html>"; 

       $Name = "$name"; //senders name 
       $email = "$email"; //senders e-mail adress 
       $recipient = "[email protected]"; //recipient 
       $mail_body = "$emailMsg"; //mail body 
       $subject = "Web enquiry form"; //subject 
       $header = "From: ". $Name . " <" . $email . ">\r\n" . "Content-type: text/html; charset=iso-8859-1"; //optional headerfields 

       ini_set('sendmail_from', '[email protected]'); //Suggested by "Some Guy" 

       mail($recipient, $subject, $mail_body, $header); //mail command :) 
     } 
} 
?> 

<div class="errors"> 
    <h2>Sorry but your enquiry could not be sent</h2> 
    <p>There were problems with the following fields:</p> 

    <ul> 
     <?php echo $foundErrors; ?> 
    </ul> 
</div> 
<form name="form" method="post" action=""> 
    <legend>x</legend> 
    <fieldset> 
     <label for="name"> 
      Name: 
      <input type="text" name="name" value="<?= $name; ?>"> 
     </label> 

     <label for="mainphone"> 
      Main Contact Phone Number:<span class="required">*</span> 
      <input type="text" name="mainphone" value="<?= $mainphone; ?>"> 
     </label> 

     <label for="email"> 
      Email Address:<span class="required">*</span> 
      <input type="text" name="email" value="<?= $email; ?>"> 
     </label> 

     <label for="altphone"> 
      Alternative Contact Phone Number: 
      <input type="text" name="altphone" value="<?= $altphone; ?>"> 
     </label> 
    </fieldset> 
    <fieldset> 
     <label for="contacttime">Preferred Contact Time:</label> 

     <label for="contacttime"> 
      <input type="radio" name="contacttime" <?php if($contacttime == '10am-12pm') { echo 'checked'; } ?> value="10am-12pm"/> 
      10am - 12pm 
     </label> 

     <label for="contacttime"> 
      <input type="radio" name="contacttime" <?php if($contacttime == '12pm-2pm') { echo 'checked'; } ?> value="12pm-2pm"/> 
      12pm - 2pm 
     </label> 

     <label for="contacttime"> 
      <input type="radio" name="contacttime" <?php if($contacttime == '2pm-4pm') { echo 'checked'; } ?> value="2pm-4pm"/> 
      2pm - 4pm 
     </label> 

     <label for="contacttime"> 
      <input type="radio" name="contacttime" <?php if($contacttime == '4pm-6pm') { echo 'checked'; } ?> value="4pm-6pm"/> 
      4pm - 6pm 
     </label> 

     <label for="contacttime"> 
      <input type="radio" name="contacttime" <?php if($contacttime == '6pm-7pm') { echo 'checked'; } ?> value="6pm-7pm"/> 
      6pm - 7pm 
     </label>  
    </fieldset> 
    <fieldset> 
     <label for="airport">Preferred Departure Airport:</label> 

     <label for="airport"> 
      <input type="checkbox" name="airport[0]" <?php if($airport[0]) { echo 'checked'; } ?> value="Heathrow"/> 
      Heathrow 
     </label> 

     <label for="airport"> 
      <input type="checkbox" name="airport[1]" <?php if($airport[1]) { echo 'checked'; } ?> value="Gatwick"/> 
      Gatwick 
     </label> 

     <label for="airport"> 
      <input type="checkbox" name="airport[2]" <?php if($airport[2]) { echo 'checked'; } ?> value="Manchester"/> 
      Manchester 
     </label> 

     <label for="airport"> 
      <input type="checkbox" name="airport[3]" <?php if($airport[3]) { echo 'checked'; } ?> value="Birmingham"/> 
      Birmingham 
     </label> 

     <label for="airport"> 
      <input type="checkbox" name="airport[4]" <?php if($airport[4]) { echo 'checked'; } ?> value="Glasgow"/> 
      Glasgow 
     </label> 
    </fieldset> 
    <fieldset> 
     <label for="departdate"> 
      Departure Date: <span class="required">*</span> 
      <input type="text" name="departdate" value="<?= $departdate; ?>"> 
     </label> 

     <label for="departdateflex">Departure Date Flexibility:</label> 
     <select name="departdateflex"> 
      <option <?php if($departdateflex == '+/- 0 days') { echo 'selected'; } ?> value="+/- 0 days">+/- 0 days</option> 
      <option <?php if($departdateflex == '+/- 1 days') { echo 'selected'; } ?> value="+/- 1 days">+/- 1 days</option> 
      <option <?php if($departdateflex == '+/- 2 days') { echo 'selected'; } ?> value="+/- 2 days">+/- 2 days</option> 
      <option <?php if($departdateflex == '+/- 3 days') { echo 'selected'; } ?> value="+/- 3 days">+/- 3 days</option> 
      <option <?php if($departdateflex == '+/- 4 days') { echo 'selected'; } ?> value="+/- 4 days">+/- 4 days</option> 
      <option <?php if($departdateflex == '+/- 5 days') { echo 'selected'; } ?> value="+/- 5 days">+/- 5 days</option> 
      <option <?php if($departdateflex == '+/- 6 days') { echo 'selected'; } ?> value="+/- 6 days">+/- 6 days</option> 
      <option <?php if($departdateflex == '+/- 7 days') { echo 'selected'; } ?> value="+/- 7 days">+/- 7 days</option> 
     </select> 

     <label for="duration">Duration:</label> 
     <select name="duration"> 
      <option <?php if($duration == '1 night') { echo 'selected'; } ?> value="1 night">1 night</option> 
      <option <?php if($duration == '2 nights') { echo 'selected'; } ?> value="2 nights">2 nights</option> 
      <option <?php if($duration == '3 nights') { echo 'selected'; } ?> value="3 nights">3 nights</option> 
      <option <?php if($duration == '4 nights') { echo 'selected'; } ?> value="4 nights">4 nights</option> 
      <option <?php if($duration == '5 nights') { echo 'selected'; } ?> value="5 nights">5 nights</option> 
      <option <?php if($duration == '6 nights') { echo 'selected'; } ?> value="6 nights">6 nights</option> 
      <option <?php if($duration == '7 nights') { echo 'selected'; } ?> value="7 nights">7 nights</option> 
      <option <?php if($duration == '8 nights') { echo 'selected'; } ?> value="8 nights">8 nights</option> 
      <option <?php if($duration == '9 nights') { echo 'selected'; } ?> value="9 nights">9 nights</option> 
      <option <?php if($duration == '10 nights') { echo 'selected'; } ?> value="10 nights">10 nights</option> 
      <option <?php if($duration == '11 nights') { echo 'selected'; } ?> value="11 nights">11 nights</option> 
      <option <?php if($duration == '12 nights') { echo 'selected'; } ?> value="12 nights">12 nights</option> 
      <option <?php if($duration == '13 nights') { echo 'selected'; } ?> value="13 nights">13 nights</option> 
      <option <?php if($duration == '14 nights') { echo 'selected'; } ?> value="14 nights">14 nights</option> 
      <option <?php if($duration == '15 nights') { echo 'selected'; } ?> value="15 nights">15 nights</option> 
      <option <?php if($duration == '15+ nights') { echo 'selected'; } ?> value="15+ nights">15+ nights</option> 
      <option <?php if($duration == '21 nights') { echo 'selected'; } ?> value="21 nights">21 nights</option> 
      <option <?php if($duration == '28 nights') { echo 'selected'; } ?> value="28 nights">28 nights</option> 
     </select> 

     <label for="prefcountry"> 
      Preferred Destination Country:<span class="required">*</span> 
      <input type="text" name="prefcountry" value="<?= $prefcountry; ?>"> 
     </label> 

     <label for="prefresort"> 
      Preferred Destination Resort: 
      <input type="text" name="prefresort" value="<?= $prefresort; ?>"> 
     </label> 

     <label for="hotels"> 
      Name of hotel(s) of interest: 
      <textarea rows="5" cols="20" name="hotels"><?= $hotels; ?></textarea> 
     </label> 

     <label for="numadults"> 
      Number of adults:<span class="required">*</span> 
      <input type="text" name="numadults" value="<?= $numadults; ?>"> 
     </label> 

     <label for="numunder12"> 
      Number of Children under 12: 
      <input type="text" name="numunder12" value="<?= $numunder12; ?>"> 
     </label> 

     <label for="numunder2"> 
      Number of Infants under 2: 
      <input type="text" name="numunder2" value="<?= $numunder2; ?>"> 
     </label> 

     <label for="roomarrange">Room Arrangements:</label> 
     <select name="roomarrange"> 
      <option <?php if($roomarrange == 'single (sleeps 1)') { echo 'selected'; } ?> value="single (sleeps 1)">single (sleeps 1)</option> 
      <option <?php if($roomarrange == 'twin (sleeps 2)') { echo 'selected'; } ?> value="twin (sleeps 2)">twin (sleeps 2)</option> 
      <option <?php if($roomarrange == 'double (sleeps 2)') { echo 'selected'; } ?> value="double (sleeps 2)">double (sleeps 2)</option> 
      <option <?php if($roomarrange == 'twin plus child (above 2 years)') { echo 'selected'; } ?> value="twin plus child (above 2 years)">twin plus child (above 2 years)</option> 
      <option <?php if($roomarrange == 'double plus child (above 2 years)') { echo 'selected'; } ?> value="double plus child (above 2 years)">double plus child (above 2 years)</option> 
      <option <?php if($roomarrange == 'family plan 2 adults &amp; 2 children') { echo 'selected'; } ?> value="family plan 2 adults &amp; 2 children">family plan 2 adults & 2 children</option> 
      <option <?php if($roomarrange == 'family plan 2 adults &amp; 3 children') { echo 'selected'; } ?> value="family plan 2 adults &amp; 3 children">family plan 2 adults & 3 children</option> 
      <option <?php if($roomarrange == 'triple (sleeps 3)') { echo 'selected'; } ?> value="triple (sleeps 3)">triple (sleeps 3)</option> 
      <option <?php if($roomarrange == 'triple plus child (above 2 years)') { echo 'selected'; } ?> value="triple plus child (above 2 years)">triple plus child (above 2 years)</option> 
      <option <?php if($roomarrange == 'quad/villas/homes (sleeps 4+)') { echo 'selected'; } ?> value="quad/villas/homes (sleeps 4+)">quad/villas/homes (sleeps 4+)</option> 
     </select> 

     <label for="maxbudget"> 
      Maximum Budget per person &pound;: 
      <input type="text" name="maxbudget" value="<?= $maxbudget; ?>"> 
     </label> 

     <label for="addreq"> 
      Additional Requirements: 
      <textarea rows="5" cols="20" name="addreq"><?= $addreq; ?></textarea> 
     </label> 
    </fieldset> 
    <fieldset> 
     <input type="submit" value="submit" name="submit"> 
    </fieldset> 
</form> 

누구든지 도움을받을 수 있다면 감사하겠습니다.

+1

@ 대니 : '표현 엔진'은 무엇을 의미합니까? – RageZ

+1

환경 설정에서 활성화했다고 말했지 만 환경 설정 그룹을 볼 때 "환경 설정"링크를 사용하여 * 개별 * 템플릿에서 설정해야한다고 분명히 밝힙니다. 간단한 확인 - 어떤 PHP 코드도 페이지에서 작동시킬 수 있습니까? 간단한 나머지 부분없이. 작동합니까? 나올거야? –

+1

@RageZ : 아마도 : http://expressionengine.com/ (CodeIgniter를 생산하는 사람들의 CMS) –

답변

5

먼저 ExpressionEngine에 미리 만들어진 양식 모듈 중 하나를 사용하는 것이 더 나을 것이라고 생각합니다. FreeForm 및 ProForm과 같이 유효성 검사 및 오류 메시지는 물론 전자 메일 전송을 처리 할 수있는 여러 가지가 있습니다.

PHP 경로를 사용하려면 $ _POST 배열을 사전 처리하는 ExpressionEngine/CodeIgniter 입력 라이브러리를 사용하는 것이 좋습니다. 모든 키는 $ this-> EE-> input-> post ('key_name')로 액세스 할 수 있습니다.

3

ExpressionEngine은 작고 간단한 PHP를 'PHP 활성화'가있는 개별 템플릿 내부에서 처리하지만, 더 큰 코드 또는 복잡한 PHP에서는 고유 한 플러그인을 만들어야합니다.

더 안전한 시스템을 만드는 것처럼 좋은 선택입니다.

튜토리얼이 많이 있습니다.