Foros del Web » Programando para Internet » PHP »

Formulario registro

Estas en el tema de Formulario registro en el foro de PHP en Foros del Web. Soy nuevo en Php y estoy practicando con un formulario. Cree las BD para este formulario(una de usarios temporales, hasta que me confirmen el e-mail, ...
  #1 (permalink)  
Antiguo 26/02/2012, 14:13
Avatar de fvz676fvz  
Fecha de Ingreso: junio-2011
Mensajes: 24
Antigüedad: 12 años, 9 meses
Puntos: 1
Pregunta Formulario registro

Soy nuevo en Php y estoy practicando con un formulario.
Cree las BD para este formulario(una de usarios temporales, hasta que me confirmen el e-mail, y la otra seria la definitiva)
El tema es que hice la validacion de los campos(que tuvieran un formato correcto y estos ya no existieran en la base de datos) y la validacion corre bastante bien pero cuendo esta se encuetra con algun dato que ya fue ingresado, por ejemplo en nombre de usario me da el error pero igual me lo agrega en la base de datos, les dejo los codigos y agradezco su ayuda

index.php
<?php

include ('funciones.php');

//Valores Variables por defecto
$usuario ="";
$usuario_value ="";
$email ="";
$email_value ="";
$pass ="";
$pass_value ="";

$exist_usuario ="";
$exist_email ="";

$exist_user =0;
$exist_mail =0;



if (isset($_POST['Enviar_datos'])){
if(!validateUsuario($_POST['Usuario']))
$usuario ="error";
if(!validateExistUsuario($_POST['Usuario']))
$exist_usuario ="error";
if(!validateMail($_POST['E_mail']))
$email ="error";
if(!validateExitEmail($_POST['E_mail']))
$exist_email ="error";
if(!validatePass($_POST['Pass']))
$pass ="error";


$usuario_value = $_POST['Usuario'];
$email_value = $_POST['E_mail'];
$pass_value = $_POST['Pass'];


if($usuario!="error" && $email!="error" && $pass!="error"){
if($exist_user =="error"){
$exist_user= 1;
}
if($exist_email=="error"){
$exist_mail= 1;
}
if(!$exist_mail &&!$exist_user){
$estatus= 1;
}
}
}
?>


<head>


<title>Formulario de registro</title>
</head>

<body>
<div class="contenedora">
<div class="frm">

<h2>Formulario de registro</h2>
<form action="index.php" method="POST" name="Form" id="form">
<h3>Ingrese sus datos</h3>
<label title="Usuario"
class="form_ing">Usuario:<?php if ($usuario=="error"){echo "<span style='color:#FB0202;
margin-left:122px;
font-size:12px;'>El nombre de usuario no es valido</span>";}
elseif ($exist_usuario=="error"){echo "<span style='color:#FB0202;
margin-left:122px;
font-size:12px;'>El usuario ingreseado ya existe</span>";}
else {echo "<span style='color:#042B86;
margin-left:122px;
font-size:12px;'>Debe de ser entre 4 y 6 caracteres</span>";}
?><br /></label>
<input type ="text"
class ="form_camp"
name ="Usuario"
id ="usuario"
value ="<?php if ($usuario!= 'error'){echo $usuario_value;}?>"
tabindex="1"/><br />

<label title="E-mail"
class="form_ing">E-mail:<?php if ($email=="error"){echo "<span style='color:#FB0202;
margin-left:130px;
font-size:12px;'>El e-mail ingresado no es valido</span>";}
elseif ($exist_email=="error"){echo "<span style='color:#FB0202;
margin-left:130px;
font-size:12px;'>El e-mail ingreseado ya existe</span>";}
else {echo "<span style='color:#042B86;
margin-left:130px;
font-size:12px;'>Verifique bien su e-mail</span>";}
?><br /></label>
<input type ="text"
class ="form_camp"
name ="E_mail"
id ="e_mail"
value="<?php if ($email!='error'){echo $email_value;}?>"
tabindex="2"/><br />

<label title="Pass"
class="form_ing">Contrase&ntilde;a:<?php if ($pass =="error"){echo "<span style='color:#FB0202;
margin-left:90px;
font-size:12px;'>La contraseña ingresada no es valida</span>";}
else {echo "<span style='color:#042B86;
margin-left:90px;
font-size:12px;'>Debe de ser entre 4 y 10 caracteres</span>";}
?><br /></label>
<input type ="password"
class ="form_camp"
name ="Pass"
id ="pass"
value="<?php if ($pass!='error'){echo $pass_value;}?>"
tabindex="4"/><br />
<label class="clausulas_grl">Todos los campos son obligatorios</label><br /><br />
<label class="botones">
<input type="reset" value="Cancelar" name="Borrar_datos"/>
<input type="submit" value="Enviar" name="Enviar_datos"/></label>

</form>

<?php if (insertarReg($usuario_value,$email_value,$pass_val ue))
?>
<h1>Gracias</h1>
</div>
</div>



</body>
</html>



funciones.php

<?php
function validateUsuario ($usuario){

if((strlen($usuario)<=3 || strlen($usuario)>=7))
return 0;

else if (!preg_match("/^[0-9a-zA-z]+$/",$usuario))
return 0;
else
return 1;
}

function validateExistUsuario ($usuario){

$servidor ="localhost";
$usuario_db ="root";
$password ="";
$sdb ="formulario";

$ilink=mysql_connect($servidor,$usuario_db,$passwo rd)
or die(mysql_error());

mysql_select_db($sdb,$ilink);
$consulta = "select usuario_db from user_temp where usuario_db = '$usuario'";
$resultado = mysql_query($consulta,$ilink)or die (mysql_error());
if (mysql_num_rows($resultado)>0)
return 0;
else
return 1;
}


function validateMail($email){
$email = $_POST[ "E_mail"];
$mail_correcto = 0;

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 1;
}
else
return 0;
}

function validateExitEmail($email) {
//declaro variables de conexion con mysql
$servidor ="localhost";
$usuario_db ="root";
$password ="";
$sdb ="formulario";

$ilink = mysql_connect($servidor,$usuario_db,$password)
or die (misql_error());

mysql_select_db($sdb,$ilink);
$consulta = "select email from user_temp where email = '$email'";
$resultado = mysql_query($consulta,$ilink) or die (mysql_error());
if (mysql_num_rows($resultado)>0)
return 0;
else
return 1;
}


function validatePass ($pass){

if((strlen($pass)<=3 || strlen($pass)>=11))
return 0;

else if (!preg_match("/^[0-9a-zA-z]+$/",$pass))
return 0;
else
return 1;
}

//ING DE DATOS A LA BD
function insertarReg($usuario_, $email_, $pass_){

$servidor = "localhost";
$usuario_db = "root";
$password = "";
$sdb = "formulario";

$ilink3=mysql_connect($servidor,$usuario_db,$passw ord) or die(mysql_error());
mysql_select_db($sdb,$ilink3);

$inserta= "insert into user_temp (usuario_db,email,pass,fecha_alta) values ('$usuario_','$email_','$pass_',CURDATE())";
$resultado3=mysql_query($inserta,$ilink3) or die (mysql_error());

if (!$resultado3)
return false;
else{
return true;

}
}


?>
  #2 (permalink)  
Antiguo 26/02/2012, 16:25
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Formulario registro

Usa Highlight para publicar el código, así se hace mas difícil leerlo, pero a simple vista ejecutas la función "insertarReg" sin usar las validaciones que haces en un comienzo, cuando debería ser algo así...

Código PHP:
Ver original
  1. if (!$exists_user && $exists_mail) {
  2. insertarReg();
  3. }

Pero esto es solo viendo por encima, no voy a desentrañar tu código, ya que así no se puede leer con naturalidad...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 26/02/2012, 17:42
Avatar de fvz676fvz  
Fecha de Ingreso: junio-2011
Mensajes: 24
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: Formulario registro

Dale gracias por las info, la del Highlight y la otra, creo haber entendido si lo que falta, gracias

Etiquetas: formulario, html, mysql, registro, sql, variables, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:03.