PHP REGISTRAR USUARIOS EN PHP CON VALIDACION DE DATOSYACTIVACIÓN POR MAIL - 4
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP REGISTRAR USUARIOS EN PHP CON VALIDACION DE DATOSYACTIVACIÓN POR MAIL - 4相关的知识,希望对你有一定的参考价值。
<?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";
$ilink3=mysql_connect($servidor,$usuario,$password) or die(mysql_error());
mysql_select_db($sdb,$ilink3);
$inserta= "insert into users_temp (nombre,usersTemp,password,email,fecAlta) values ('$name_','$username_','$password1_','$email_',CURDATE())";
$resultado3=mysql_query($inserta,$ilink3) or die (mysql_error());
if (!$resultado3)
return false;
else{
return true;
}
}
function validateName($name){
$permitidos = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_";
$caracter1KO = 0;
if(strlen($name) < 5):
return false;
else:
for ($i=0; $i<strlen($name); $i++){
if (strpos($permitidos, substr($name,$i,1))===false){
$caracter1KO = 1;
}
}
endif;
if ($caracter1KO == 1 || strlen($name) <= 4):
return false;
else:
return true;
endif;
}
function validateUsername($username){
$permitidos = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_";
$caracterKO = 0;
if(strlen($username) < 5):
return false;
else:
for ($i=0; $i<strlen($username); $i++){
if (strpos($permitidos, substr($username,$i,1))===false){
$caracterKO = 1;
}
}
endif;
if ($caracterKO == 1 || strlen($username) <= 4):
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";
$ilink=mysql_connect($servidor,$usuario,$password) or die(mysql_error());
mysql_select_db($sdb,$ilink);
$consulta= "select usersTemp from users_temp where usersTemp = '$username'";
$resultado=mysql_query($consulta,$ilink) or die (mysql_error());
if (mysql_num_rows($resultado)>0)
return false;
else
return true;
}
function validatePassword1($password1){
//NO tiene minimo de 5 caracteres o mas de 12 caracteres
if(strlen($password1) < 5 || strlen($password1) > 12)
return false;
// SI longitud, NO VALIDO numeros y letras
else if(!preg_match("/^[0-9a-zA-Z]+$/", $password1))
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) != "@")){
if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," "))) {
//miro si tiene caracter .
if (substr_count($email,".")>= 1){
//obtengo la terminacion del dominio
$term_dom = substr(strrchr ($email, '.'),1);
//compruebo que la terminación del dominio sea correcta
if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){
//compruebo que lo de antes del dominio sea correcto
$antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1);
$caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);
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";
$ilink2=mysql_connect($servidor,$usuario,$password) or die(mysql_error());
mysql_select_db($sdb,$ilink2);
$consulta2= "select id_usersTemp from users_temp where email = '$mail'";
$resultado2=mysql_query($consulta2,$ilink2) or die (mysql_error());
if (mysql_num_rows($resultado2)>0)
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(isset($_POST['send'])){
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">
<?php if(!isset($status)): ?>
<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>
以上是关于PHP REGISTRAR USUARIOS EN PHP CON VALIDACION DE DATOSYACTIVACIÓN POR MAIL - 4的主要内容,如果未能解决你的问题,请参考以下文章
text usuarios en el sistema de victor infounsa
sql CreacióndeTrigger en Cat_Usuarios parareplicarinformacióninsertadaen Cat_BitacoraUsuar
注册人Usarios EN PHP CON VALIDACION DE DATOS Y ACTIVACIÓN POR MAIL-4