No se cual sera el motivo, pero a algunos cuando se registran, se les guarda todos los datos sin problema alguno, a otros el email no se les guarda, esto me di cuenta hace tiempo cuando estaba hechando un vistazo a mi mysql, note que el campo de email algunos estaban llenos y otros estaban vacios, no se de que dependera para que a unos se les guarde bien el email y a otros no, me fije en el codigo que procesa los datos para guardarlo en la base de datos, pero yo personalmente no veo ningun tipo de error. por favor quisiera que me lo hechen un vistazo y me digan que puede ser el error.
aqui les dejo el codigo que procesa los datos del formulario de registro:
Código PHP:
<?php
/* -----------------------------------------------------------------------------------------
form01 formulario de contacto 2008-02-26
autor: J?Heitmann
http://www.dpwgranada.net
---------------------------------------------------------------------------------------*/
$directorio = "../";
if($_POST['registro']) {
error_reporting(0);
include("../config.php");
function html($texto) {
$texto = trim($texto) ;
$texto = htmlspecialchars($texto) ;
return $texto ;
}
if($_POST[contrasena]==$_POST[contrasena2]) {
$query = "SELECT * FROM usuarios WHERE nick={$_POST['nick']} or email={$_POST['email']}";
$link = mysql_query($query);
if(mysql_affected_rows($link)==0) {
if(!$_POST[nick]) {
$error = "Lo sentimos, ese nick ya esta registrado";
}
if(!$_POST[contrasena]) {
$error = "La clave/password deben ser iguales";
}
if(!$_POST[email]) {
$error = "ya hay un usuario con ese email";
}
if($_POST[secret]!=9) {
$error = "Respuesta de pregunta no es correcta!";
}
$fecha = time();
$nick = ereg_replace("[^A-Za-z0-9]", "", $_POST[nick]);
$contrasena = md5($_POST[contrasena]);
$MailPass = $_POST[contrasena2];
$email = ($_POST[email]);
$nombre = html($_POST[nombre]);
$pais = html($_POST[pais]);
$ciudad = html($_POST[ciudad]);
$sexo = html($_POST[sexo]);
$boletin = html($_POST[boletin]);
$ip = $REMOTE_ADDR;
$n_dia = html($_POST[n_dia]);
$n_mes = html($_POST[n_mes]);
$n_ano = html($_POST[n_ano]);
} else {
$error = _YA_REGISTRADOS_;
}
}
else {
$error = _ALERTA_CONTRASENA_;
}
if($error) {
echo"<script>alert('"._ERROR_P_." ".$error."'); window.location='javascript:history.back()';</script>";
} else {
include("bienvenido.php");
$infp = mysql_query("SELECT * FROM configuracion");
$info = mysql_fetch_array($infp);
$puntos = $info[preg];
$r=mysql_query("INSERT INTO usuarios (nick,contrasena,pas_sena,email,fecha,nombre,pais,ciudad,sexo,boletin,ip,conectado,puntos,n_dia,n_mes,n_ano) VALUES ('$nick','$contrasena','$MailPass','$email','$fecha','$nombre','$pais','$ciudad','$sexo','$boletin','$ip','$fecha','$puntos','$n_dia','$n_mes','$n_ano')");
if (!$r)
echo"<script>alert('"._ERROR_P_." "._ERROR_QUERY_."'); window.location='javascript:history.back()';</script>";
//reemplace [email protected] por la direcci? donde quieres que se mande los datos.
$recipiente = "[email protected]";
//reemplace miasunto por el asunte que quieres en el email
$asunto = "Nuevo Registro";
$error = 0;
//los campos mandados por el formulario
$nick = $_POST['nick'];
$email = $_POST['email'];
$nombre = $_POST['nombre'];
$sexo = $_POST['sexo'];
$pais = $_POST['pais'];
$n_ano = $_POST['n_ano'];
$clave = $_POST['contrasena'];
//verificaci?i los campos requeridos estan llenos
if($nick == "" || $email == "" || $nombre == "" || $sexo == "" || $pais == "" || $n_ano == "") {
$error=1;
}
//verificaci?i el email es correcto
elseif(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$email)) {
$error=2;
}
//mensajes de error
if($error==1) {
echo "El siguiente error ha ocurrido!<BR>";
echo "No ha rellenado todos los campos obligatorios.<BR> Por favor vuelva <A HREF=\"javascript:history.back()\">atras</A>.<BR>";
}
elseif($error==2) {
echo "El siguiente error ha ocurrido!<BR>";
echo "El correo electronico es invalido!<BR> Por favor vuelva <A HREF=\"javascript:history.back()\">atras</A>.<BR>";
}
elseif($error==4) {
echo "El siguiente error ha ocurrido!<BR>";
echo "La respuesta no es correcta!<BR> Por favor vuelva <A HREF=\"javascript:history.back()\">atras</A>.<BR>";
}
else {
$message ="Estos son los datos para boletin del un nuevo usuario: <br>";
$message .="Nick: ".$nick."<br>";
$message .="Pais: ".$pais."<br>";
$message .="Email: ".$email."<br>";
$message .="Edad: ".$n_ano."<br>";
$message .="Sexo: ".$sexo."<br>";
$message = stripslashes($message);
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type:text/html; charset=iso-8859-1\r\n";
$headers .= "From: $email\r\n";
$headers .= "Repaly-to: $email\r\n";
mail($recipiente,$asunto,$message,$headers);
//aqui puedes modificar los mensajes
include("proceso-foro.php");
}
}
}
?>
ayudenme por fa :(