Hola amigos! Siguiendo con mi aprendizaje con diferentes lenguajes ahora le estoy tomando el pulso a php. Estoy intentado hacer el tipico formulario de registro con validaciones y demás.
El caso es que ya lo tengo casi terminado me llegan los datos a la base de datos pero no se porque la función de envio de mail para terminar el registro del usuario no termina de enviar el mail y la verdad que he repasado el codigo ya varias veces y no encuentro el fallo por ningun lado. Acudo a vosotros para ver si alguien me puede echar una manilla. Os dejo las formulas que estoy haciendo especificamente para este paso a ver si alguien encuentra el problema.
function insertarReg($name_, $username_, $password1_, $email_){
global $url;
$clave = generar_txtAct(20,false);
$url = "activar.php?id=" . $clave;
$servidor = "";
$usuario = "";
$password = "";
$sdb = "";
$ilink3=mysql_connect($servidor,$usuario,$password) or die(mysql_error());
mysql_select_db($sdb,$ilink3);
$inserta= "insert into Usuarios_temp (usuariotemp,password,email,fechalta,txt_Activ) values ('$username_','$password1_','$email_',CURDATE(),'$clave')";
$resultado3=mysql_query($inserta,$ilink3) or die (mysql_error());
if (!$resultado3)
return false;
else
return true;
}
function mailactivacion($email, $username, $url){
$destinatario = $email;
$asunto = "COLORATE - Activar Usuario";
$cuerpo = '
<html>
<head>
<title>COLORATE - Activar usuario</title>
</head>
<body>
<h1>Hola';
$cuerpo .= $username;
$cuerpo .= '<p><b>Gracias por registrarte en COLORATE</b>.</p>
<p>Para completar el registro tienes que confirmar que has recibido el e-mail en el siguiente enlace:</p>
<p style=text-align:center><a href=';
$cuerpo .= $url;
$cuerpo .= " target=_blank>Activa tu usuario</a></p></body></html>";
//para el envío en formato HTML
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
//dirección del remitente
$headers .= "From: Admin COLORATE <[email protected]>\r\n";
//dirección de respuesta, si queremos que sea distinta que la del remitente
$headers .= "Reply-To: [email protected]\r\n";
//ruta del mensaje desde origen a destino
//$headers .= "Return-path: [email protected]\r\n";
//direcciones que recibián copia
//$headers .= "Cc: [email protected]\r\n";
//direcciones que recibirán copia oculta
//$headers .= "Bcc: [email protected],[email protected]\r\n";
mail($destinatario,$asunto,$cuerpo,$headers);
}
function generar_txtAct($longitud,$especiales){
// Array con los valores a escojer
$semilla = array();
$semilla[] = array('a','e','i','o','u');
$semilla[] = array('b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','w','x','y','z');
$semilla[] = array('0','1','2','3','4','5','6','7','8','9');
$semilla[] = array('A','E','I','O','U');
$semilla[] = array('B','C','D','F','G','H','J','K','L','M','N','P','Q','R','S','T','V','W','X','Y','Z');
$semilla[] = array('0','1','2','3','4','5','6','7','8','9');
// si puede contener caracteres especiales, aumentamos el array $semilla
if ($especiales) { $semilla[] = array('$','#','%','&','@','-','?','¿','!','¡','+','-','*'); }
// creamos la clave con la longitud indicada
for ($bucle=0; $bucle < $longitud; $bucle++)
{
// seleccionamos un subarray al azar
$valor = mt_rand(0, count($semilla)-1);
// selecccionamos una posicion al azar dentro del subarray
$posicion = mt_rand(0,count($semilla[$valor])-1);
// cojemos el caracter y lo agregamos a la clave
$clave .= $semilla[$valor][$posicion];
}
// devolvemos la clave
return $clave;
}
Eso iria en la parte alta del html y ya en el main del fichero iria la llamada de la funcion:
<?php
if(insertarReg($nameValue, $usernameValue, $passwordValue, $emailValue))?>
<?php mailactivacion($emailvalue, $username,$url); ?>
<h1>Registro introducido correctamente en la base de datos</h1>
<div class="respuesta_insert">
<p>Gracias por registrarte en EngelsFort.</p>
<p>Te hemos mandado un mail a <span style="color:green"><?php echo $emailValue; ?></span> para que confirmes el alta. Si no lo recibes comprueba la bandeja de correo no deseado</p>
<p>Gracias!</p>
<p>Administrador Laura</p>
<p>cosa random.</p>
</div>
<?php else: ?>
<?php if ($respuesta == 1) ?>
<h1 style="font-color: red">No se ha podido insertar el registro en nuestra base de datos</h1>
<!--<h1>¡Formulario enviado con éxito!</h1>-->
<?php endif; ?>
<?php endif; ?>