/ Published in: PHP
Registro de usuarios en PHP con validación y activación por mail
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
<?php /* Creador : Admin COLORATE BLOG Web/BLOG: http://www.colordeu.es Tutorial: http://www.colordeu.es/BLOG/registros-de-usuarios-en-php-y-mysql-con-validacion-de-campos-y-activacion-por-mail-56 */ //***************************// //******** FUNCIONES ********// //***************************// //FUNCION PARA INSERTAR EL REGISTRO EN LA TABLA users_temp function insertarReg($name_, $username_, $password1_, $email_){ /*Teneis que declarar las variables $servidor, $usuario,$password y $sdb (base de datos). En mi caso para Localhost tengo lo siguiente:*/ $servidor = "localhost"; $usuario = "root"; $password = ""; $sdb = "prueba1"; $inserta= "insert into users_temp (nombre,usersTemp,password,email,fecAlta) values ('$name_','$username_','$password1_','$email_',CURDATE())"; if (!$resultado3) return false; else{ return true; } } function validateName($name){ $permitidos = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_"; $caracter1KO = 0; return false; else: $caracter1KO = 1; } } endif; return false; else: return true; endif; } function validateUsername($username){ $permitidos = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_"; $caracterKO = 0; return false; else: $caracterKO = 1; } } endif; return false; else: return true; endif; } function validateExistUsername($username){ /*Teneis que declarar las variables $servidor, $usuario,$password y $sdb (base de datos). En mi caso para Localhost tengo lo siguiente:*/ $servidor = "localhost"; $usuario = "root"; $password = ""; $sdb = "prueba1"; $consulta= "select usersTemp from users_temp where usersTemp = '$username'"; return false; else return true; } function validatePassword1($password1){ //NO tiene minimo de 5 caracteres o mas de 12 caracteres return false; // SI longitud, NO VALIDO numeros y letras return false; // SI rellenado, SI email valido else return true; } function validatePassword2($password1, $password2){ //NO coinciden if($password1 != $password2) return false; else return true; } function validateEmail($email){ if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){ //miro si tiene caracter . //obtengo la terminacion del dominio //compruebo que la terminación del dominio sea correcta //compruebo que lo de antes del dominio sea correcto if ($caracter_ult != "@" && $caracter_ult != "."){ $mail_correcto = 1; } } } } } if ($mail_correcto) return true; else return false; } function validateExistMail($mail){ /*Teneis que declarar las variables $servidor, $usuario,$password y $sdb (base de datos). En mi caso para Localhost tengo lo siguiente:*/ $servidor = "localhost"; $usuario = "root"; $password = ""; $sdb = "prueba1"; $consulta2= "select id_usersTemp from users_temp where email = '$mail'"; return false; else return true; } //Comprobacion de datos //variables valores por defecto $name = ""; $nameValue = ""; $username = ""; $usernameValue = ""; $password1 = ""; $password2 = ""; $passwordValue = ""; $email1 = ""; $emailValue = ""; $existusername = ""; $existEmail = ""; //Validacion de datos enviados if(!validateName($_POST['name'])) $name = "error"; if(!validateUsername($_POST['username'])) $username = "error"; if(!validateExistUsername($_POST['username'])) $existusername = "error"; if(!validatePassword1($_POST['password1'])) $password1 = "error"; if(!validatePassword2($_POST['password1'], $_POST['password2'])) $password2 = "error"; if(!validateEmail($_POST['email'])) $email1 = "error"; if(!validateExistMail($_POST['email'])) $existEmail = "error"; //Guardamos valores para que no tenga que reescribirlos $nameValue = $_POST['name']; $usernameValue = $_POST['username']; $emailValue = $_POST['email']; $passwordValue = $_POST['password2']; //Comprobamos si todo ha ido bien if($name != "error" && $username != "error" && $password1 != "error" && $password2 != "error" && $email1 != "error"){ if($existusername == "error"){ $existeU = 1; } if($existEmail == "error"){ $existeE = 1; } if (!$existeU && !$existeE){ $status = 1; } } } //******** FIN FUNCIONES ********// ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="es-ES"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Formulario de registro utilizando PHP para validar | COLORATE</title> <link rel="stylesheet" href="main.css" type="text/css" media="screen" /> </head> <body> <div class="wrapper"> <div class="section"> <h1>Formulario de Registro</h1> <form id="form1" action="formulario_2.php" method="post"> <label for="name">Nombre <?php if ($name == "error"): echo "<span style=color:red>"; else: echo "<span style=color:green>"; endif; ?>A-z, mÃnimo 5 caracteres</span></label> <input tabindex="1" name="name" id="name" type="text" class="text <?php echo $name ?>" value="<?php echo $nameValue ?>" /> <label for="username">Nombre de usuario <?php if ($username == "error" || $existusername == "error"): if ($existusername == "error"): echo "<span style=color:red>El usuario " . $usernameValue . " ya existe"; else: echo "<span style=color:red>Caracteres de A-z, mÃnimo 5 caracteres (No números)"; endif; else: echo "<span style=color:green>Caracteres de A-z, mÃnimo 5 caracteres (No números)</span>"; endif; ?> </label> <input tabindex="2" name="username" id="username" type="text" class="text <?php if ($existeU == 1): echo $existusername; else: echo $username; endif;?>" value="<?php echo $usernameValue;?>" /> <label for="password1">Contraseña <?php if ($password1 == "error"): echo "<span style=color:red>"; else: echo "<span style=color:green>"; endif; ?>MÃnimo 5 caracteres, máximo 12 caracteres, letras y números</span></label> <input tabindex="3" name="password1" id="password1" type="password" class="text <?php echo $password1 ?>" value="" /> <label for="password2">Repetir Contraseña <?php if ($password2 == "error"): echo "<span style=color:red>"; else: echo "<span style=color:green>"; endif; ?>Debe ser igual a la anterior</span></label> <input tabindex="4" name="password2" id="password2" type="password" class="text <?php echo $password2 ?>" value="" /> <label for="email">Email <span> <?php if ($email1 == "error" || $existEmail == "error"): if ($existEmail == "error"): echo "<span style=color:red>El email " . $emailValue . " ya existe"; else: echo "<span style=color:red>Escribe un email válido por favor"; endif; else: echo "<span style=color:green>Escribe un email válido por favor</span>"; endif; ?> </label> <input tabindex="5" name="email" id="email" type="text" class="text <?php echo $email1 ?>" value="<?php echo $emailValue ?>" /> <div> <input tabindex="6" name="send" id="send" type="submit" class="submit" value="Enviar formulario" /> </div> </form> <?php else: ?> <?php insertarReg($nameValue, $usernameValue, $passwordValue, $emailValue);?> <?php endif; ?> </div> </div> </body> </html>