Пользовательский PHP и механизм выражений - PullRequest
2 голосов
/ 12 ноября 2009

Я создал сложную контактную форму 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@email.com"; //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@email.com'); //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>

Если кто-то может помочь, это будет оценено - спасибо.

Ответы [ 2 ]

5 голосов
/ 23 октября 2012

Во-первых, я думаю, вам лучше использовать один из готовых модулей форм для ExpressionEngine. Существует несколько доступных, таких как FreeForm и ProForm, которые будут обрабатывать отправку вашей электронной почты, а также сообщения о проверке и ошибках.

Если вы хотите использовать маршрут PHP, вам, вероятно, будет лучше использовать входную библиотеку ExpressionEngine / CodeIgniter, которая предварительно обрабатывает массив $ _POST. Все ваши ключи могут быть доступны с помощью $ this-> EE-> input-> post ('key_name');

3 голосов
/ 03 ноября 2012

Насколько я понимаю, ExpressionEngine обрабатывает маленький и простой php внутри отдельного шаблона с включенным php, но для больших кусков кода или сложного php вам нужно создать свой собственный плагин.

Что также имеет смысл, так как делает систему более безопасной.

Есть много учебных пособий.

...