2012-07-04 2 views
0

모바일 웹 사이트에서 작업 중이며 내 이메일 양식에 문제가 있습니다. 문제는 양식을 통해 전송 된 메일을받을 때 데이터가 포함되어 있지 않습니다. 사용자가 입력 한 모든 데이터가 누락되었습니다. 제발 여기 PHP 스크립트가있는 Jquery 모바일 이메일 양식

다음은 양식 코드

<form action="correo.php" method="post" data-ajax="false"> 
<div> 
<p><strong>You can contact us by filling the following form</strong></p> 
</div> 
<div data-role="fieldcontain"> 
<fieldset data-role="controlgroup" data-mini="true"> 
<label for="first_name">First Name</label> 
<input id="first_name" placeholder="" type="text" /> 
</fieldset> 
</div> 
<div data-role="fieldcontain"> 
<fieldset data-role="controlgroup" data-mini="true"> 
<label for="last_name">Last name</label> 
<input id="last_name" placeholder="" type="text" /> 
</fieldset> 
</div> 
<div data-role="fieldcontain"> 
<fieldset data-role="controlgroup" data-mini="true"> 
<label for="email">Email</label> 
<input id="email" placeholder="" type="email" /> 
</fieldset> 
</div> 
<div data-role="fieldcontain"> 
<fieldset data-role="controlgroup" data-mini="true"> 
<label for="telephone">Phone</label> 
<input id="telephone" placeholder="" type="tel" /> 
</fieldset> 
</div> 
<div data-role="fieldcontain"> 
<fieldset data-role="controlgroup" data-mini="true"> 
<label for="age">Age</label> 
<input id="age" placeholder="" type="number" /> 
</fieldset> 
</div> 
<div data-role="fieldcontain"> 
<fieldset data-role="controlgroup" data-mini="true"> 
<label for="country">Country</label> 
<input id="country" placeholder="" type="text" /> 
</fieldset> 
</div> 
<div data-role="fieldcontain"> 
<fieldset data-role="controlgroup"> 
<label for="message">Your message</label> 
<textarea id="message" placeholder="" data-mini="true"></textarea> 
</fieldset> 
</div> 
<input data-inline="true" data-theme="e" value="Submit" data-mini="true" type="submit" /> 
</form> 

인 PHP 코드

<? 
/* aqui se incializan variables de PHP */ 
if (phpversion() >= "4.2.0") { 
     if (ini_get('register_globals') != 1) { 
       $supers = array('_REQUEST', 
           '_ENV', 
           '_SERVER', 
           '_POST', 
           '_GET', 
           '_COOKIE', 
           '_SESSION', 
           '_FILES', 
           '_GLOBALS'); 

       foreach($supers as $__s) { 
         if ((isset($$__s) == true) && (is_array($$__s 
) == true)) extract($$__s, EXTR_OVERWRITE); 
       } 
       unset($supers); 
     } 
} else { 
     if (ini_get('register_globals') != 1) { 

       $supers = array('HTTP_POST_VARS', 
           'HTTP_GET_VARS', 
           'HTTP_COOKIE_VARS', 
           'GLOBALS', 
           'HTTP_SESSION_VARS', 
           'HTTP_SERVER_VARS', 
           'HTTP_ENV_VARS' 
           ); 

       foreach($supers as $__s) { 
         if ((isset($$__s) == true) && (is_array($$__s 
) == true)) extract($$__s, EXTR_OVERWRITE); 
       } 
       unset($supers); 
     } 
} 

/* DE AQUI EN ADELANTE PUEDES EDITAR EL ARCHIVO */ 
    /* reclama si no se ha rellenado el campo email en el formulario */ 

/* aquí se especifica la pagina de respuesta en caso de envío exitoso */ 
$respuesta="index.html#respuesta"; 
// la respuesta puede ser otro archivo, en incluso estar en otro servidor 

/* AQUÍ ESPECIFICAS EL CORREO AL CUAL QUEIRES QUE SE ENVÍEN LOS DATOS 
DEL FORMULARIO, SI QUIERES ENVIAR LOS DATOS A MÁS DE UN CORREO, 
LOS PUEDES SEPARAR POR COMAS */ 
$para ="[email protected];" /* this is not my real email, of course */ 

/* AQUI ESPECIFICAS EL SUJETO (Asunto) DEL EMAIL */ 
$sujeto = "Mail de la página - Movil"; 

/* aquí se construye el encabezado del correo, en futuras 
versiones del script explicaré mejor esta parte */ 
$encabezado = "From: $first_name $last_name <$email>"; 
$encabezado .= "\nReply-To: $email"; 
$encabezado .= "\nX-Mailer: PHP/" . phpversion(); 

/* con esto se captura la IP del que envío el mensaje */ 
$ip=$REMOTE_ADDR; 

/* las siguientes líneas arman el mensaje */ 
$mensaje .= "NOMBRE: $first_name\n"; 
$mensaje .= "APELLIDO: $last_name\n"; 
$mensaje .= "EMAIL: $email\n"; 
$mensaje .= "TELEFONO: $telephone\n"; 
$mensaje .= "EDAD: $age\n"; 
$mensaje .= "PAIS: $country\n"; 
$mensaje .= "MENSAJE: $message\n"; 

/* aqui se intenta enviar el correo, si no se 
tiene éxito se da un mensaje de error */ 
if(!mail($para, $sujeto, $mensaje, $encabezado)) 
{ 
    echo "<h1>No se pudo enviar el Mensaje</h1>"; 
    exit(); 
} 
else 
{ 
    /* aqui redireccionamos a la pagina de respuesta */ 
    echo "<meta HTTP-EQUIV='refresh' content='1;url=$respuesta'>"; 
} 

?> 

는 어떤 도움입니까? 미리 감사드립니다. 파블로

답변

1

input 요소에는 name 속성이 없습니다. name 속성은 나중에 PHP 코드에서 사용하는 변수와 일치해야합니다.

편집 : PHP 코드는 실제로 $_POST에 액세스하려고 시도하지 않고, 이미 켜져 있지 않으면 register_globals를 강제 실행합니다. 이것은 심각하게 연습을 말하고 싶습니다. 나는 상단에 모든 register_globals의-물건을 제거하고 단지 할 것 : 그래서 대신

$mensaje .= "NOMBRE: {$_POST['first_name']}\n"; 
$mensaje .= "APELLIDO: {$_POST['last_name']}\n"; 
$mensaje .= "EMAIL: {$_POST['email']}\n"; 

그리고있다.

+0

도오미 ... 나는 그걸 제외하고 모든 것을 검사했습니다. –

관련 문제