Сделать PHP для чтения выпадающего списка в HTML-форме - PullRequest
0 голосов
/ 16 декабря 2010

Привет всем, у меня есть HTML-форма на моем веб-сайте, которая в настоящее время использует только текстовые поля и кнопку отправки для отправки в файл .php, а затем на мою электронную почту.Я пытаюсь заменить одно из этих текстовых полей раскрывающимся меню (выбрать, вариант).

Вот моя форма HTML:

<form id="ajax-contact-form" action="javascript:alert('success!');">
<label>Name:*</label><INPUT class="textbox" type="text" name="name" value=""><br />

<label>E-Mail:*</label><INPUT class="textbox" type="text" name="email" value=""><br />

<label>Number Desired:*</label><INPUT class="textbox" type="text" name="numberdesired" value=""><br />

<label>Message:</label><TEXTAREA class="textbox" NAME="message" ROWS="7" COLS="40"></TEXTAREA><br /><br />


<INPUT class="textbox" type="hidden" name="subject" value="Form Submission" >

<label>Human Verification:*<br />
<?=$_SESSION['n1']?> + <?=$_SESSION['n2']?> =</label><input type="text" name="captcha" id="captcha" /><br />


<label>&nbsp;</label><INPUT class="button" type="submit" name="submit" value="Send Message">
</form>

Вот файл php, которыйотправляет:

<?php
/*
Credits: Bit Repository
URL: http://www.bitrepository.com/
*/

include 'config.php';

session_name("fancyform");  /* starting the session */
session_start();


$post = (!empty($_POST)) ? true : false;

if ($post) {
    include 'functions.php';

    $email = trim($_POST['email']);
    $name = stripslashes($_POST['name']);
    $subject = stripslashes($_POST['subject']);
    $captcha = stripslashes($_POST['captcha']);
    $numberdesired = stripslashes($_POST['numberdesired']);
    $message = stripslashes($_POST['message']);

    $error = '';

    // Check name
    if (!$name) {
        $error .= 'Please enter your name.<br />';
    }

    // Check email
    if (!$email) {
        $error .= 'Please enter an e-mail address.<br />';
    }

    if ($email && !ValidateEmail($email)) {
        $error .= 'Please enter a valid e-mail address.<br />';
    }

    if (!$numberdesired) {
        $error .= 'Please enter the number desired.<br />';
    }

    if ((int)$_POST['captcha'] != $_SESSION['expect'])
        $error .= 'Wrong verification number.';

    //Send the Name, Email, and Message in a formated version.
    $email_message = "The following message was sent to you from....\n\n";

    function clean_string($string) {
        $bad = array("content-type","bcc:","to:","cc:","href");
        return str_replace($bad,"",$string);
    }
    $email_message .= "Email: ".clean_string($email)."\n";
    $email_message .= "Gamertag: ".clean_string($name)."\n";
    $email_message .= "Credits Desired: ".clean_string($numberdesired)."\n";
    $email_message .= "Message: ".clean_string($message)."\n";

    if (!$error)    {
        $mail = mail(WEBMASTER_EMAIL, $subject, $email_message,
            "From: ".$name." <".$email.">\r\n"
            ."Reply-To: ".$email."\r\n"
            ."X-Mailer: PHP/" . phpversion());

        if ($mail) {
            echo 'OK';
        }
    }
    else {
        echo '<div class="notification_error">'.$error.'</div>';
    }
}
?>

Теперь я довольно новичок в PHP.Я не думаю, что «полосы» прочитают выпадающее меню.Могу ли я использовать что-нибудь еще?

1 Ответ

3 голосов
/ 16 декабря 2010

Значение из текущего выбора меню будет возвращено в вашей переменной $ _POST.

Тот факт, что текст пришел из выпадающего меню, а не из текстового поля, не имеет значения для вашей программы php.

Единственное поле ввода, которое выглядит по-разному - это флажок.Переменная $ _POST не будет возвращена вообще, если ни один из вариантов не проверен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...