2016-02-14 3 views
0

Я пытаюсь получить «вариант выбора», чтобы опубликовать его на моем электронном письме, другие поля ввода сделать сообщение, но не выбрать, как он меня заводит. Пожалуйста посоветуй. Также было бы высоко оценено любые дополнительные рекомендации по методам предотвращения инъекций sql.выберите вариант, форму электронной почты

HTML 

<form action="contactform.php" method="post" > 
<input type="text" name="name" placeholder="*Full Name"> 
<input type="text" name="email" placeholder="*Email"> 
<input type="tel" name="telephone"placeholder="*Telephone"> 
<input type="text" name="comments"class="feedback-input"id="comments"placeholder="*How can I help?"> 
<select name="selectoption"> 
    <option value="first">First</option> 
    <option value="second">Second</option> 
    <option value="third">Third</option> 
    </select> 
<input type="text" name="code" placeholder="1+2 =" /> 
<input type="submit"value="Send"class="button"> 
</form> 



PHP 
<?php 

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


if (strtolower($_POST['code']) != '3') {die('Wrong access code');} 


    $email_to = ""; 

    $email_subject = "contact form submission"; 

    $name = $_POST['name']; // required 

    $email_from = $_POST['email']; // required 

    $telephone = $_POST['telephone']; // not required 


    $comments = $_POST['comments']; // required 

    $selectoption = $_POST['selectoption']; // required 



    function clean_string($string) { 

     $bad = array("content-type","bcc:","to:","cc:","href"); 

     return str_replace($bad,"",$string); 

    } 

    $email_message .= "Name: ".clean_string($name)."\n"; 

    $email_message .= "Email: ".clean_string($email_from)."\n"; 

    $email_message .= "Telephone: ".clean_string($telephone)."\n"; 


    $email_message .= "Comments: ".clean_string($comments)."\n"; 

    $email_message .= "Selectoption: ".clean_string($selectoption)."\n"; 




// create email headers 

$headers = 'From: '.$email_from."\r\n". 

'Reply-To: '.$email_from."\r\n" . 

'X-Mailer: PHP/' . phpversion(); 

@mail($email_to, $email_subject, $email_message, $headers); 

?> 






Thank you for contacting us. We will be in touch with you very soon. 
<a href="#">return to website</a> 


<?php 

} 

?> 



thanks very much 
Dan 
+0

Ваш первый экземпляр '$ email_message' находится в конкатенации. Вы должны начать с '$ email_message =" ";' not '$ email_message. =" ";' –

+0

Также совет. В вашей чистой функции строки. Вы просто сравниваете массив. Вы должны запустить цикл в этой функции для циклического прохождения каждого сравнения. –

+0

Вам нужно больше санитарии в переменных $ _POST. Я написал вам эту быструю функцию для справок в будущем. 'функция защиты ($ p) { \t $ p = stripslashes ($ p); \t $ p = strip_tags ($ p); \t $ p = preg_replace ("[^ A-Za-z0-9]", "", отделка (обрезка ($ p, "'"),' '')); \t return $ p; } ' –

ответ

0
<select name="selectoption"> 
    <option value="first">First</option> 
    <option value="second">Second</option> 
    <option value="third">Third</option> 
</select> 

Вы можете получить выбранный valueby ниже код: -

$selectOption = $_POST['selectoption']; 

Используйте Исеть, чтобы проверить значение является существовать или нет.

$name = isset($_POST['name']) ? $_POST['name'] : ''; 

$email_from = isset($_POST['email']) ? $_POST['email'] : ''; 

$telephone = isset($_POST['telephone']) ? $_POST['telephone'] : '';  

$comments = isset($_POST['comments']) ? $_POST['comments'] : ''; 

$selectoption = isset($_POST['selectoption']) ? $_POST['selectoption'] : ''; 

Для SQL Injection Профилактические методы,

См этот link.

Надеюсь, что это вам поможет :)

+0

, который не работал. Ravi по электронной почте: сообщения: Selectoption: but not value :( – Dave

+0

Спасибо Adam и Ravi – Dave

+0

$ telephone = $ _POST ['phone']; // требуется $ комментарии = $ _POST [ 'комментарии']; // требуется $ selectOption = $ _POST [ 'selectoption']; – Dave

Смежные вопросы