Posted By

danideu on 02/10/11


Tagged

php html


Versions (?)

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


 / Published in: PHP
 

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

Pertenece al tutorial publicado por COLORATE --> http://www.colordeu.es/BLOG/registros-de-usuario-en-php-y-mysql-con-validacion-de-campos-y-activacion-por-mail

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

Report this snippet  

Comments

RSS Icon Subscribe to comments
Posted By: gsl on November 28, 2013

Suficiente tecnología apta de buena calidad para desarrollar ambientes empresariales sin problemas y en el menor tiempo, no se justifica que se sigan estudiando ejemplos de media categoría.

You need to login to post a comment.