2010-12-16 2 views
0

안녕하세요. 저는 현재 웹 사이트에 HTML 양식을 가지고 있습니다.이 양식은 현재 텍스트 상자와 .php 파일로 보낸 후 제출 버튼을 사용합니다. 이 텍스트 상자 중 하나를 드롭 다운 (선택, 옵션) 메뉴로 바꾸려고합니다.HTML 형식으로 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에서 비교적 새로운 해요 :

여기
<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 파일입니다

여기 내 HTML 양식입니다. 나는 'stripslashes'가 드롭 다운 메뉴를 읽지 않을 것이라고 생각합니다. 내가 사용할 수있는 다른 것이 있습니까?

+1

'stripslashes()'는 PHP/서버 설정 오류'magic_quotes'를 해결하기위한 것임을주의하십시오. (더 나은 해결책은 PHP 매뉴얼을보십시오.) – mario

답변

3

현재 메뉴 선택의 값이 $ _POST 변수에 반환됩니다.

텍스트가 텍스트 상자가 아닌 풀다운 메뉴에서 나왔다는 사실은 PHP 프로그램과 큰 차이가 없습니다.

"입력란"은 모두 "확인란"입니다. 어떤 선택 항목도 선택하지 않으면 $ _POST 변수가 전혀 반환되지 않습니다.

+0

대단히 고마워요. – MJ93