Foros del Web » Programando para Internet » PHP »

registro de usuarios

Estas en el tema de registro de usuarios en el foro de PHP en Foros del Web. Hola, estoy buscando algun codigo para registro de usuarios y no encuentro mucha cosa por hay, lo que estoy buscando es una cosa asi: Formulario ...
  #1 (permalink)  
Antiguo 24/04/2009, 12:31
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años
Puntos: 8
Pregunta registro de usuarios

Hola, estoy buscando algun codigo para registro de usuarios y no encuentro mucha cosa por hay, lo que estoy buscando es una cosa asi:

Formulario de registro:
Email:.................... <--Este campo servira como usuario al hacer login
Contraseña:..........
Repetir contraseña:..........

Ahora lo que no se hacer es la pagina que hace el registro por ejemplo reguser.php:
Al insertar se inserte tambien la fecha de alta y la ip del usuario.

Sabeis de algun codigo o algun tutorial sobre como hacerlo?
  #2 (permalink)  
Antiguo 24/04/2009, 12:50
 
Fecha de Ingreso: febrero-2009
Mensajes: 580
Antigüedad: 15 años, 1 mes
Puntos: 13
Respuesta: registro de usuarios

Si, si miras en la sección de aportes; hay un sistema de reconocimiento y de registro de usuarios ;)

de hecho yo lo uso jeje
  #3 (permalink)  
Antiguo 24/04/2009, 13:17
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años
Puntos: 8
Pregunta Respuesta: registro de usuarios

Muchas gracias, he conseguido hacer lo siguiente:

Formreg.php:

Código PHP:
<form name="form1" method="post" action="reg.php">
  <
TABLE>
    <
TBODY>
      <
TR>
        <
TD align="right">Email:
          <
INPUT maxLength="25" size="15" name="email">
        </
TD>
      </
TR>
      <
TR>
        <
TD align="right">Password:
          <
INPUT type="password" maxLength="25" size="15" value="" name="password">
        </
TD>
      </
TR>
      <
TR>
        <
TD align="right">Repite Password:
          <
INPUT type="password" maxLength="25" size="15" value="" name="cpassword">
        </
TD>
      </
TR>
      <
TR>
        <
TD align="middle"><INPUT name="submit" type="submit" value="Registro">
        </
TD>
      </
TR>
    </
TBODY>
  </
TABLE>
</
form
y el archivo de registro reg.php:

Código PHP:
<?php
include("config.php");
// Preguntaremos si se han enviado ya las variables necesarias 
if (isset($_POST["email"])) { 
$email $_POST["email"];
$password $_POST["password"]; 
$cpassword $_POST["cpassword"]; 

// Hay campos en blanco 
if($password==NULL|$cpassword==NULL|$email==NULL) { 
echo 
"un campo está vacio."
}else{ 

// ¿Coinciden las contraseñas? 
if($password!=$cpassword) { 
echo 
"Las contraseñas no coinciden"
}else{ 

// Comprobamos si el nombre de usuario o la cuenta de correo ya existían 
$checkemail mysql_query("SELECT email FROM usu WHERE email='$email'"); 
$email_exist mysql_num_rows($checkemail); 

if (
$email_exist>0) { 
echo 
"La cuenta de correo esta ya en uso"
}else{

//Todo parece correcto procedemos con la inserccion 
$query "INSERT INTO usu (password, email) VALUES('$password','$email')"
mysql_query($query) or die(mysql_error()); 
echo 
"El usuario $email ha sido registrado de manera satisfactoria."



}  

?>
Alguien me propone algo para mejorar esto que he creado para registrarse?
  #4 (permalink)  
Antiguo 24/04/2009, 21:11
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años
Puntos: 8
Respuesta: registro de usuarios

Hola alguien sabe algun codigo de validar la direccion de email y donde deberia de ponerlo en el codigo anteriormente escrito?
  #5 (permalink)  
Antiguo 24/04/2009, 21:19
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 18 años, 11 meses
Puntos: 839
Respuesta: registro de usuarios

Puedes usar una expresión regular con preg_match().

De hecho, en el manual, entre los aportes de los usuarios hay una forma de cómo hacerlo:
http://www.php.net/manual/es/functio...atch.php#88007
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 24/04/2009, 21:21
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 4 meses
Puntos: 18
Respuesta: registro de usuarios

utiliza expresiones regulares
http://www.php.net/manual/es/ref.pcre.php

además las etiquetas html se escriben en minúscula

suerte.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #7 (permalink)  
Antiguo 24/04/2009, 21:38
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años
Puntos: 8
Respuesta: registro de usuarios

De nuevo al habla el novato :P jejeje a continuacion os expongo la barbaridad que habre echo.... jejejej.

el codigo a quedado asi:

Código PHP:
<?php
include("config.php");
// Preguntaremos si se han enviado ya las variables necesarias 
if (isset($_POST["email"])) { 
$email $_POST["email"];
$password $_POST["password"]; 
$cpassword $_POST["cpassword"]; 

// Hay campos en blanco 
if($password==NULL|$cpassword==NULL|$email==NULL) { 
echo 
"un campo está vacio."
}else{ 

//Validar direccion de email
$email "[email protected]";
if (
preg_match(
'/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',
$email)) {
    echo 
"Email no válido.";
}else{

// ¿Coinciden las contraseñas? 
if($password!=$cpassword) { 
echo 
"Las contraseñas no coinciden"
}else{ 

// Comprobamos si el nombre de usuario o la cuenta de correo ya existían 
$checkemail mysql_query("SELECT email FROM usu WHERE email='$email'"); 
$email_exist mysql_num_rows($checkemail); 

if (
$email_exist>0) { 
echo 
"La cuenta de correo esta ya en uso"
}else{

//Todo parece correcto procedemos con la inserccion 
$query "INSERT INTO usu (password, email) VALUES('$password','$email')"
mysql_query($query) or die(mysql_error()); 
echo 
"El usuario $email ha sido registrado de manera satisfactoria."



}  

?>
pero me da el siguiente error:

Parse error: syntax error, unexpected $end in /mnt/web7/32/27/51920027/htdocs/coriaweb/usuarios/reg/reg.php on line 44

en donde estoy comentiendo el fallo?
  #8 (permalink)  
Antiguo 24/04/2009, 21:54
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años
Puntos: 8
Respuesta: registro de usuarios

Vale ya lo he solucionado al novato se le olvido de poner "}" al final jejeje pero ahora cuando escribo el email en el formulario y la contraseña siempre pone: Email no válido. Como se hace para que si es valido continue para adelante?
  #9 (permalink)  
Antiguo 24/04/2009, 21:57
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 18 años, 11 meses
Puntos: 839
Respuesta: registro de usuarios

Es que con el código muestras el mensaje "Email no válido" cuando la cadena coincide con el patrón, debes usar negación en el if (!), así mostrará el mensaje cuando no coincida con el patrón.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #10 (permalink)  
Antiguo 24/04/2009, 21:59
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años
Puntos: 8
Respuesta: registro de usuarios

como? jejej David muchas gracias por tu respuesta pero el novato se a perdido... :D ¿como se supone que tengo que hacerlo?
  #11 (permalink)  
Antiguo 24/04/2009, 22:03
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 18 años, 11 meses
Puntos: 839
Respuesta: registro de usuarios

En lugar de:
if (...)
usar
if (!...)

! de negación
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #12 (permalink)  
Antiguo 24/04/2009, 22:05
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 14 años, 11 meses
Puntos: 19
Respuesta: registro de usuarios

if (!preg_match(
'/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',
$email)) {
echo "Email no válido.";
}else{
  #13 (permalink)  
Antiguo 24/04/2009, 22:19
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años
Puntos: 8
Respuesta: registro de usuarios

jejejeje me estais haciendo un novato profesional :P jejej ya esta funcionando y la validacion la hace perfectamente (De momento) , el codigo a quedado asi tras haberle echo unos cambios:

Código PHP:
<?php
include("config.php");
// Preguntaremos si se han enviado ya las variables necesarias 
if (isset($_POST["email"])) { 
$correo $_POST["email"];
$password $_POST["password"]; 
$cpassword $_POST["cpassword"]; 

// Hay campos en blanco 
if($password==NULL|$cpassword==NULL|$correo==NULL) { 
echo 
"un campo está vacio."
}else{ 

//Validar direccion de email
if (!preg_match(
'/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',
$correo)) {
echo 
"Email no válido.";
}else{ 

// ¿Coinciden las contraseñas? 
if($password!=$cpassword) { 
echo 
"Las contraseñas no coinciden"
}else{ 

// Comprobamos si el nombre de usuario o la cuenta de correo ya existían 
$checkemail mysql_query("SELECT email FROM usu WHERE email='$correo'"); 
$email_exist mysql_num_rows($checkemail); 

if (
$email_exist>0) { 
echo 
"La cuenta de correo esta ya en uso"
}else{

//Todo parece correcto procedemos con la inserccion 
$query "INSERT INTO usu (password, email) VALUES('$password','$correo')"
mysql_query($query) or die(mysql_error()); 
echo 
"El usuario $correo ha sido registrado de manera satisfactoria."



}  
}
?>
Ahora voy a buscar para que al hacer el registro se le añadan algunas cositas como la direccion ip del usuario, la fecha de registro y ya ire viendo algunas cositas mas, pronto volvere con mis dudas jejeje muchas gracias.
  #14 (permalink)  
Antiguo 24/04/2009, 23:24
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años
Puntos: 8
De acuerdo Respuesta: registro de usuarios

Hola, tras mi googleo y un poquito de trabajo e añadido al codigo que cuando se registre el usuario la contraseña se codifique con sha1, que se inserte la ip del que se registra, que se inserte la fecha y hora y que se tenga que escribir minimo 4 caracteres en el campo contraseña. Me gustaria que vierais el codigo que a qedado y que me digais si esta bien todo o hay algo raro por hay aunque de momento funciona perfecto.

Código PHP:
<?php
include("config.php");
// Preguntaremos si se han enviado ya las variables necesarias 
if (isset($_POST["email"])) { 
$correo $_POST["email"];
$password $_POST["password"]; 
$cpassword $_POST["cpassword"]; 

//recoger direccion ip
$ip $_SERVER['REMOTE_ADDR'];

// Hay campos en blanco 
if($password==NULL|$cpassword==NULL|$correo==NULL) { 
echo 
"un campo está vacio."
}else{ 

//Validar direccion de email
if (!preg_match(
'/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',
$correo)) {
echo 
"Email no válido.";
}else{ 

//Minimo de caracteres en campo contraseña
if (strlen($password)<4)
{
echo 
"Mínimo 4 carácteres en la contraseña";
  
// no tiene mas de 4 caracteres
}else{

// ¿Coinciden las contraseñas? 
if($password!=$cpassword) { 
echo 
"Las contraseñas no coinciden"
}else{ 

//encriptar contraseña
$password sha1("CoriaWeb");

// Comprobamos si la cuenta de correo ya existe 
$checkemail mysql_query("SELECT email FROM usu WHERE email='$correo'"); 
$email_exist mysql_num_rows($checkemail); 

if (
$email_exist>0) { 
echo 
"La cuenta de correo esta ya en uso"
}else{

//Todo parece correcto procedemos con la inserccion 
$query "INSERT INTO usu (password, email, ip, fecha) VALUES('$password','$correo','$ip', NOW())"
mysql_query($query) or die(mysql_error()); 
echo 
"El usuario $correo ha sido registrado de manera satisfactoria."



}  
}
}
?>
  #15 (permalink)  
Antiguo 25/04/2009, 00:57
Avatar de pacmanaman  
Fecha de Ingreso: marzo-2009
Mensajes: 84
Antigüedad: 15 años
Puntos: 3
Respuesta: registro de usuarios

Código PHP:
include("configText.php"); // Aca agregas a $_TextRegistroNuevo, $_TextRegistroInsertError, etc, de esta manera centralizas en uno o mas Archivos los textos que se muestran.

$password_ok TRUE;
$email_ok TRUE;

if(
strlen($password)<4)
    
$password_ok FALSE;
else
    if(
$password != $cpassword)
        
$password_ok FALSE;

$password sha1("CoriaWeb"); 

$checkemail mysql_query("SELECT email FROM usu WHERE email='$correo'");  
$email_exist mysql_num_rows($checkemail);  

if (
$email_exist>0
    
$email_ok FALSE


if(
$password_ok and $email_ok)
{
    
$query "INSERT INTO usu (password, email, ip, fecha) VALUES('$password','$correo','$ip', NOW())";  
    
mysql_query($query) or die(mysql_error());  

    
// Aca tendrias que verificar si el insert se realizo satisfactoriamente!

    
if($insert_ok)
        echo 
$_TextRegistroNuevo;
    else
        echo 
$_TextRegistroInsertError;
}
else
{
    echo 
$_TextRegistroPasswordError $_TextRegistroEmailError;    

__________________
(<++
  #16 (permalink)  
Antiguo 25/04/2009, 03:53
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años
Puntos: 8
Respuesta: registro de usuarios

Hola amigos aqui estoy de nuevo, mirar ahora lo que estaba buscando en como se hace para que los errores salgan en la pagina del formulario.
Es decir de reg.php se vaya a regform.php y muestre encima del formulario el error.
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 04:38.