我在移动网站上工作,我的电子邮件表单出现问题 问题是,当我收到通过表单发送的邮件时,它不包含任何数据。 用户输入的所有数据都缺失。
这是表单代码
<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 ="some@mail.com;" /* 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'>";
}
?>
请帮忙吗? 提前致谢 巴勃罗
答案 0 :(得分:1)
您的input
元素没有name
个属性。 name
属性应与您稍后在PHP代码中使用的变量匹配。
编辑:您的PHP代码实际上并未尝试直接访问$_POST
,而是强制注册register_globals,除非它已经开启。这是非常严重糟糕的做法我会说。我会删除顶部的所有register_globals-stuff,然后执行:
$mensaje .= "NOMBRE: {$_POST['first_name']}\n";
$mensaje .= "APELLIDO: {$_POST['last_name']}\n";
$mensaje .= "EMAIL: {$_POST['email']}\n";
依此类推。