Foros del Web » Programando para Internet » PHP »

Registro de usuario en php

Estas en el tema de Registro de usuario en php en el foro de PHP en Foros del Web. Buenas, estoy haciendo una pagina llamada DeveTour, en la cual pagan para hacer publicidad de sus negocios, etc. En este momento estoy retocando el registro ...
  #1 (permalink)  
Antiguo 03/01/2013, 14:02
 
Fecha de Ingreso: enero-2013
Mensajes: 40
Antigüedad: 11 años, 4 meses
Puntos: 2
Pregunta Registro de usuario en php

Buenas, estoy haciendo una pagina llamada DeveTour, en la cual pagan para hacer publicidad de sus negocios, etc. En este momento estoy retocando el registro de usuario los cuales van a comentar, pero tengo una duda. Como hago para que no se registren con mismo nombre o con variaciones de mayusc. y minusc.? Ejemplo:
Usuario:
MatiDeve (existente)
matideve (No puede registrarse, porque ya existe uno asi)
MATIDEVE (No puede registrarse, porque ya existe uno asi)

Email:
[email protected] (existente)
[email protected] (No puede registrarse, porque ya lo ha hecho)

Código:
<?php

include('../include/dbconnect.php');

$usuario = $_POST['register_user'];
$password = $_POST['register_pwd'];
$apwd = $_POST['register_apwd'];
$email = $_POST['register_email'];
$age = $_POST['register_age'];
$codigoverificacion = rand(0000000000,9999999999);

$error = array();
$success = array();

if(!ereg("^[A-Za-z0-9]{3,}$", $usuario)){ 
	$error[] = "El usuario contiene caracteres invalidos.";
}

if(strlen($usuario)<6){
	$error[] = "El usuario debe tener entre 6 y 30 caracteres.";
}

if(strlen($usuario)>30){
	$error[] = "El usuario debe tener entre 6 y 30 caracteres.";
}

if(!ereg("^[A-Za-z0-9]{3,}$", $password)){ 
	$error[] = "La contraseña contiene caracteres invalidos.";
}

if(strlen($password)<6){
	$error[] = "La contraseña debe tener entre 6 y 15 caracteres.";
}

if(strlen($password)>15){
	$error[] = "La contraseña debe tener entre 6 y 15 caracteres.";
}

if(!ereg("^[A-Za-z0-9]{3,}$",$apwd)){
	$error[] = "La reiteracion de contraseña contiene caracteres invalidos.";
}

if($password != $apwd){
	$error[] = "Las contraseñas no coinciden.";
}

if (!strpos($email,"@"))
{
	$error[] = "El email ingresado es incorrecto.";
}

if(!is_numeric($age)){ 
	$error[] = "La edad debe ser solo numeros.";
}

if($age == '' OR $age =='0'){
	$error[] = "No ha ingresado su edad.";
}

$query = "SELECT * FROM usuario";
$resultado = mysql_query($query, $conexion);
$total = mysql_num_rows($resultado);

if($total>0){
	while ($fila = mysql_fetch_assoc($resultado)) {
		$sqlusu = $fila['nombre_usuario'];
		$sqlemail = $fila['email'];
	}
	//ACA VA LO QUE SOLICITO, COMO VERAN, ARRIBA LLAME A LOS USUARIOS Y A LOS EMAILS!
}


if(empty($error)){
	mysql_query("INSERT INTO registro(nombre_usuario,contrasenna,email,edad,codigo) values ('".$usuario."','".$password."','".$email."','".$age."','".$codigoverificacion."')");
	$headers = "From: [email protected]";
	$mensaje = " Usted ha querido registrarse en www.Tour.Deve.com, \n
	Para confirmarlo debe hacer click en el siguiente enlace: \n
	http://www.ninja-saga.comlu.com/action/confirmar.php?codigo=".$codigoverificacion;
	if (!@mail("$email","Confirmacion de registro en DeveTour","$mensaje","$headers")) die ("No se pudo enviar el email de confirmacion.");
	$success[] = "Se te envió un email de activacion. Accedé a tu email para confirmar el registro.";
	$_SESSION['register_success'] = $success;
	header("Location:../register.php");
	session_start();

    foreach ($success as $s) 
    {
	    $message .= "<li>$s</li>";
    }
    $_SESSION['notification_register_success'] = $message;

	header("Location:../register.php");
}else{
	session_start();

    $message = '';

    foreach ($error as $e) 
    {
      $message .= "<li>$e</li>";
    }

    $_SESSION['notification_register_error'] = $message;

    header("Location: ../register.php");
}

?>
Por si no lo ven, dice "//ACA VA LO QUE SOLICITO, COMO VERAN, ARRIBA LLAME A LOS USUARIOS Y A LOS EMAILS!", ahi iria la verificacion
Saludos, espero su ayuda
  #2 (permalink)  
Antiguo 03/01/2013, 14:11
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Registro de usuario en php

pues en vez de recorrer miles de usuarios porque no haces la consulta preguntando por ese en específico
Código PHP:
Ver original
  1. $sql = "SELECT COUNT(*) as cantidad FROM usuarios WHERE LOWER(username) = " . strtolower($usuario);
  2. $query = mysql_query($sql) or die(mysql_error());
  3. $exist = mysql_fetch_array($query);
  4. if($exist['cantidad'] > 0) {
  5.     //lo que haces si existe el usuario en la base de datos
  6. }

saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 03/01/2013, 14:28
 
Fecha de Ingreso: enero-2013
Mensajes: 40
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: Registro de usuario en php

Cita:
Iniciado por carlos_belisario Ver Mensaje
pues en vez de recorrer miles de usuarios porque no haces la consulta preguntando por ese en específico
Código PHP:
Ver original
  1. $sql = "SELECT COUNT(*) as cantidad FROM usuarios WHERE LOWER(username) = " . strtolower($usuario);
  2. $query = mysql_query($sql) or die(mysql_error());
  3. $exist = mysql_fetch_array($query);
  4. if($exist['cantidad'] > 0) {
  5.     //lo que haces si existe el usuario en la base de datos
  6. }

saludos
La verdad que no lo entiendo muy bien, tengo una idea de lo que me decis que haga, pero lo que metiste adentro de la variable $sql tiene cosas que no conosco, el SELECT COUNT(*) as cantidad y esos de LOWER me los imagino pero me gustaria que me lo explicaras.. Gracias por la respuesta
  #4 (permalink)  
Antiguo 03/01/2013, 14:38
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Registro de usuario en php

el COUNT(*) te cuenta cuantos registros hay as cantidad es un alias, LOWER es una función de mysql para conventir un STRING en minúsculas, que es lo que hace la consulta me dice cuantos registros hay que tengan el username que colocaste en la variable.

Sería cuestión que busques un manual de MySQL para que veas sobre las funciones, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #5 (permalink)  
Antiguo 03/01/2013, 14:53
 
Fecha de Ingreso: enero-2013
Mensajes: 40
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: Registro de usuario en php

$sql = "SELECT COUNT(*) as cantidad FROM usuario WHERE LOWER(nombre_usuario) = " . strtolower($usuario);
$query = mysql_query($sql) or die(mysql_error());
$exist = mysql_fetch_array($query);
if($exist['cantidad'] > 0) {
echo "asd";
}else{
echo "hola";
}

Lo puse asi, y puse de usuario ASDASD (el usuario existente es asdasd) y me salto este error:
Unknown column 'asdasd' in 'where clause'

La tabla se llama usuario, y el campo de usuario nombre_usuario
  #6 (permalink)  
Antiguo 03/01/2013, 15:11
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Registro de usuario en php

cierto mi culpa los string en mysql van entre comillas
Código PHP:
Ver original
  1. $sql = "SELECT COUNT(*) as cantidad FROM usuarios WHERE LOWER(username) = '" . strtolower($usuario) . "'";

lo demás debería de quedar igual, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #7 (permalink)  
Antiguo 03/01/2013, 15:48
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Registro de usuario en php

Quizás conviene que elijas una colación que no diferencie mayúsculas de minúsculas.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 03/01/2013, 19:58
 
Fecha de Ingreso: enero-2013
Mensajes: 40
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: Registro de usuario en php

Cita:
Iniciado por carlos_belisario Ver Mensaje
cierto mi culpa los string en mysql van entre comillas
Código PHP:
Ver original
  1. $sql = "SELECT COUNT(*) as cantidad FROM usuarios WHERE LOWER(username) = '" . strtolower($usuario) . "'";

lo demás debería de quedar igual, saludos
Muchisimas gracias! Ahi me anduvo..

Etiquetas: mysql, registro, sql, 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 03:47.