REGISTRAR USUARIOS EN PHP CON VALIDACION DE DATOS Y ACTIVACIÓN POR MAIL - 5


/ Published in: PHP
Save to your folder(s)

Registro de usuario en PHP con validación y activación por mail


Copy this code and paste it in your HTML
  1. <?php
  2.  
  3. //FUNCION PARA INSERTAR EL REGISTRO EN LA TABLA users_temp
  4. function insertarReg($name_, $username_, $password1_, $email_){
  5. /*Teneis que declarar las variables $servidor, $usuario,$password y
  6. $sdb (base de datos). En mi caso para Localhost tengo lo siguiente:*/
  7. $servidor = "localhost";
  8. $usuario = "root";
  9. $password = "";
  10. $sdb = "prueba1";
  11.  
  12. $ilink3=mysql_connect($servidor,$usuario,$password) or die(mysql_error());
  13. mysql_select_db($sdb,$ilink3);
  14.  
  15. $inserta= "insert into users_temp (nombre,usersTemp,password,email,fecAlta) values ('$name_','$username_','$password1_','$email_',CURDATE())";
  16. $resultado3=mysql_query($inserta,$ilink3) or die (mysql_error());
  17.  
  18. if (!$resultado3)
  19. return false;
  20. else
  21. return true;
  22. }
  23.  
  24. /*function validateName($name){
  25. //NO cumple longitud minima
  26. if(strlen($name) < 5)
  27. return false;
  28. //SI longitud pero NO solo caracteres A-z
  29. else if(!preg_match("/^[a-zA-Z]+$/", $name))
  30. return false;
  31. // SI longitud, SI caracteres A-z
  32. else
  33. return true;
  34. }*/
  35.  
  36. function validateName($name){
  37. $permitidos = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_";
  38. $caracter1KO = 0;
  39. if(strlen($name) < 5):
  40. return false;
  41. else:
  42. for ($i=0; $i<strlen($name); $i++){
  43. if (strpos($permitidos, substr($name,$i,1))===false){
  44. $caracter1KO = 1;
  45. }
  46. }
  47. endif;
  48. if ($caracter1KO == 1 || strlen($name) <= 4):
  49. return false;
  50. else:
  51. return true;
  52. endif;
  53. }
  54.  
  55. function validateUsername($username){
  56. $permitidos = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_";
  57. $caracterKO = 0;
  58. if(strlen($username) < 5):
  59. return false;
  60. else:
  61. for ($i=0; $i<strlen($username); $i++){
  62. if (strpos($permitidos, substr($username,$i,1))===false){
  63. $caracterKO = 1;
  64. }
  65. }
  66. endif;
  67. if ($caracterKO == 1 || strlen($username) <= 4):
  68. return false;
  69. else:
  70. return true;
  71. endif;
  72. }
  73.  
  74.  
  75. function validateExistUsername($username){
  76. /*Teneis que declarar las variables $servidor, $usuario,$password y
  77. $sdb (base de datos). En mi caso para Localhost tengo lo siguiente:*/
  78. $servidor = "localhost";
  79. $usuario = "root";
  80. $password = "";
  81. $sdb = "prueba1";
  82.  
  83. $ilink=mysql_connect($servidor,$usuario,$password) or die(mysql_error());
  84.  
  85. mysql_select_db($sdb,$ilink);
  86. $consulta= "select usersTemp from users_temp where usersTemp = '$username'";
  87. $resultado=mysql_query($consulta,$ilink) or die (mysql_error());
  88. if (mysql_num_rows($resultado)>0)
  89. return false;
  90. else
  91. return true;
  92. }
  93.  
  94. function validatePassword1($password1){
  95. //NO tiene minimo de 5 caracteres o mas de 12 caracteres
  96. if(strlen($password1) < 5 || strlen($password1) > 12)
  97. return false;
  98. // SI longitud, NO VALIDO numeros y letras
  99. else if(!preg_match("/^[0-9a-zA-Z]+$/", $password1))
  100. return false;
  101. // SI rellenado, SI email valido
  102. else
  103. return true;
  104. }
  105.  
  106. function validatePassword2($password1, $password2){
  107. //NO coinciden
  108. if($password1 != $password2)
  109. return false;
  110. else
  111. return true;
  112. }
  113.  
  114. function validateEmail($email){
  115.  
  116. if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){
  117. if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," "))) {
  118. //miro si tiene caracter .
  119. if (substr_count($email,".")>= 1){
  120. //obtengo la terminacion del dominio
  121. $term_dom = substr(strrchr ($email, '.'),1);
  122. //compruebo que la terminación del dominio sea correcta
  123. if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){
  124. //compruebo que lo de antes del dominio sea correcto
  125. $antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1);
  126. $caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);
  127. if ($caracter_ult != "@" && $caracter_ult != "."){
  128. $mail_correcto = 1;
  129. }
  130. }
  131. }
  132. }
  133. }
  134. if ($mail_correcto)
  135. return true;
  136. else
  137. return false;
  138. }
  139.  
  140. function validateExistMail($mail){
  141. /*Teneis que declarar las variables $servidor, $usuario,$password y
  142. $sdb (base de datos). En mi caso para Localhost tengo lo siguiente:*/
  143. $servidor = "localhost";
  144. $usuario = "root";
  145. $password = "";
  146. $sdb = "prueba1";
  147.  
  148. $ilink2=mysql_connect($servidor,$usuario,$password) or die(mysql_error());
  149. mysql_select_db($sdb,$ilink2);
  150. $consulta2= "select id_usersTemp from users_temp where email = '$mail'";
  151. $resultado2=mysql_query($consulta2,$ilink2) or die (mysql_error());
  152. if (mysql_num_rows($resultado2)>0)
  153. return false;
  154. else
  155. return true;
  156. }
  157.  
  158.  
  159. //Comprobacion de datos
  160. //variables valores por defecto
  161. $name = "";
  162. $nameValue = "";
  163. $username = "";
  164. $usernameValue = "";
  165. $password1 = "";
  166. $password2 = "";
  167. $passwordValue = "";
  168. $email1 = "";
  169. $emailValue = "";
  170. $existusername = "";
  171. $existEmail = "";
  172.  
  173. //Validacion de datos enviados
  174. if(isset($_POST['send'])){
  175. if(!validateName($_POST['name']))
  176. $name = "error";
  177. if(!validateUsername($_POST['username']))
  178. $username = "error";
  179. if(!validateExistUsername($_POST['username']))
  180. $existusername = "error";
  181. if(!validatePassword1($_POST['password1']))
  182. $password1 = "error";
  183. if(!validatePassword2($_POST['password1'], $_POST['password2']))
  184. $password2 = "error";
  185. if(!validateEmail($_POST['email']))
  186. $email1 = "error";
  187. if(!validateExistMail($_POST['email']))
  188. $existEmail = "error";
  189. //Guardamos valores para que no tenga que reescribirlos
  190. $nameValue = $_POST['name'];
  191. $usernameValue = $_POST['username'];
  192. $emailValue = $_POST['email'];
  193. $passwordValue = $_POST['password2'];
  194.  
  195.  
  196. //Comprobamos si todo ha ido bien
  197. if($name != "error" && $username != "error" && $password1 != "error" && $password2 != "error" && $email1 != "error"){
  198. if($existusername == "error"){
  199. $existeU = 1;
  200. }
  201. if($existEmail == "error"){
  202. $existeE = 1;
  203. }
  204. if (!$existeU && !$existeE){
  205. $status = 1;
  206. }
  207. }
  208.  
  209.  
  210. }
  211.  
  212.  
  213. ?>
  214.  
  215. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  216. <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="es-ES">
  217. <head>
  218. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  219. <title>Formulario de registro utilizando PHP y Javascript (jQuery) para validar | COLORATE</title>
  220. <link rel="stylesheet" href="main.css" type="text/css" media="screen" />
  221. </head>
  222. <body>
  223. <div class="wrapper">
  224. <div class="section">
  225. <?php if(!isset($status)): ?>
  226.  
  227. <h1>Formulario de Registro</h1>
  228.  
  229. <form id="form1" action="formulario_2.php" method="post">
  230. <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>
  231. <input tabindex="1" name="name" id="name" type="text" class="text <?php echo $name ?>" value="<?php echo $nameValue ?>" />
  232.  
  233. <label for="username">Nombre de usuario
  234. <?php
  235. if ($username == "error" || $existusername == "error"):
  236. if ($existusername == "error"):
  237. echo "<span style=color:red>El usuario " . $usernameValue . " ya existe";
  238. else:
  239. echo "<span style=color:red>Caracteres de A-z, mínimo 5 caracteres (No números)";
  240. endif;
  241. else:
  242. echo "<span style=color:green>Caracteres de A-z, mínimo 5 caracteres (No números)</span>";
  243. endif; ?>
  244. </label>
  245.  
  246. <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;?>" />
  247.  
  248. <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>
  249. <input tabindex="3" name="password1" id="password1" type="password" class="text <?php echo $password1 ?>" value="" />
  250.  
  251. <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>
  252. <input tabindex="4" name="password2" id="password2" type="password" class="text <?php echo $password2 ?>" value="" />
  253.  
  254. <label for="email">Email <span>
  255. <?php
  256. if ($email1 == "error" || $existEmail == "error"):
  257. if ($existEmail == "error"):
  258. echo "<span style=color:red>El email " . $emailValue . " ya existe";
  259. else:
  260. echo "<span style=color:red>Escribe un email válido por favor";
  261. endif;
  262. else:
  263. echo "<span style=color:green>Escribe un email válido por favor</span>";
  264. endif; ?>
  265. </label>
  266. <input tabindex="5" name="email" id="email" type="text" class="text <?php echo $email1 ?>" value="<?php echo $emailValue ?>" />
  267. <div>
  268. <input tabindex="6" name="send" id="send" type="submit" class="submit" value="Enviar formulario" />
  269. </div>
  270. </form>
  271.  
  272. <?php else: ?>
  273. <?php
  274. if(insertarReg($nameValue, $usernameValue, $passwordValue, $emailValue)):?>
  275. <h1>Registro introducido correctamente en la base de datos</h1>
  276.  
  277. <div class="respuesta_insert">
  278. <p>Gracias por registrarte en COLORATE.</p>
  279. <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>
  280. <p>Gracias!</p>
  281. <p>Administrador Colorate</p>
  282. <p>Tutorial "Registro de Usuarios en PHP y MySql con validación y activación por mail".</p>
  283. </div>
  284. <?php else: ?>
  285. <?php if ($respuesta == 1) ?>
  286. <h1 style="font-color: red">No se ha podido insertar el registro en nuestra base de datos</h1>
  287. <!--<h1>¡Formulario enviado con éxito!</h1>-->
  288. <?php endif; ?>
  289. <?php endif; ?>
  290. </div>
  291. </div>
  292. </body>
  293. </html>

URL: http://www.colordeu.es/BLOG/registros-de-usuarios-en-php-y-mysql-con-validacion-de-campos-y-activacion-por-mail-56

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.