Özel PHP ve ifade motoru

2 Cevap php

Benim iletişim sayfasına içine uygulamak için arıyorum karmaşık bir php iletişim formu oluşturduk, ama nedense ifade motoru benim tercihlerinde etkinleştirdikten sonra bile php kodunu tanımıyor.

Ama hiçbir şey henüz çalıştı - İşte ben dosyayı gömme yerine sayfasında gerçek kodu yapıştırarak gibi bir kaç şey denedim, gibi form görünüyor buydu.

    <?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>

Herkes yardımcı olabilir, takdir edileceği - teşekkürler.

2 Cevap

Öncelikle, ben ExpressionEngine için önceden oluşturulmuş formu modüllerinden birini kullanarak daha iyi olabileceğini düşünüyorum. E-posta yanı sıra doğrulama ve hata iletileri göndererek idare edecek, bu tür serbest formlu ve ProForm gibi, mevcut çeşitli vardır.

Eğer PHP rotayı kullanmak istiyorum yoksa, muhtemelen daha iyi $ _POST dizi preprocesses hayyam / CodeIgniter giriş kütüphane, kullanmak bulacaksınız. Tüm anahtarlarınızı $ this-> EE-> input-> post ('key_name'ı') ile ulaşılabilir;

Ben ExpressionEngine 'etkin php' ile bireysel bir şablon içinde küçük ve basit php kolları, fakat kod veya karmaşık php daha büyük parçalar için kendi eklenti kurmak gerekiyor anladığım kadarıyla.

Hangi daha güvenli bir sistem için yapar gibi, çok iyi mantıklı.

Birçok dersler dışında orada vardır.