Foros del Web » Programando para Internet » PHP »

No repetir datos de registro

Estas en el tema de No repetir datos de registro en el foro de PHP en Foros del Web. Buenas, tengo un sistema de registro que se basa en php y Mysql que funciona al 100% pero que deja que se registren los mismos ...
  #1 (permalink)  
Antiguo 28/10/2008, 05:08
 
Fecha de Ingreso: octubre-2008
Mensajes: 180
Antigüedad: 15 años, 5 meses
Puntos: 1
Exclamación No repetir datos de registro

Buenas, tengo un sistema de registro que se basa en php y Mysql que funciona al 100% pero que deja que se registren los mismos datos una y otra vez así como deja que se registren datos en blanco! asique al hacer el login en blanco entras en la zona segura directamente, vamos que de seguro poco tiene...

Pongo los códigos de mi sistema a ver quien me ayuda.

Registro.php
Código PHP:
<HTML>
<
HEAD>
<
TITLE>Insertar.html</TITLE>
</
HEAD>
<
BODY>
<
div align="center">
<
h1>Insertar un registro</h1>
<
br>
<
FORM METHOD="POST" ACTION="insertar.php">
  <
p>Nick<br>
      <
INPUT NAME="usuario" TYPE="TEXT" id="usuario">
      <
br>
      
Password<br>
      <
INPUT NAME="contrasena" TYPE="password" id="contrasena">
      <
br>
      
Mail<br>
      <
INPUT NAME="mail" TYPE="text" id="mail">
      <
br>
      <
INPUT TYPE="SUBMIT" value="Insertar">
    </
p>
  </
FORM>
</
div>
</
BODY>
</
HTML
insertar.php
Código PHP:
<HTML>
<HEAD>
<TITLE>Insertar.php</TITLE>
</HEAD>
<BODY>
<?
//Conexion con la base
mysql_connect("localhost","usuario","pass_rebuscadisimo"); 

//selección de la base de datos con la que vamos a trabajar 
mysql_select_db("mibasededatos"); 

//Ejecucion de la sentencia SQL
mysql_query("insert into mitabla (nombre_usuario,clave_usuario,mail_usuario) values ('$usuario','$contrasena','$mail')");
?>
<h1><div align="center">Registro Insertado</div></h1>
<div align="center"><a href="index.php">Volver y logearse </a></div>
</BODY>
</HTML>
Alguien me ayuda con esto por favor?
  #2 (permalink)  
Antiguo 28/10/2008, 05:19
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Respuesta: No repetir datos de registro

Hola

no haces ningun tipo de comprovacion, ni si quiera si los campos vienen vacios o si el user esta ya en la bbdd

Mirate este post, la segunda parte del aporte describe como hacer un sistema de users con BBDD

http://www.forosdelweb.com/f18/aport...aporte-561417/

Un saludo
  #3 (permalink)  
Antiguo 28/10/2008, 06:37
 
Fecha de Ingreso: octubre-2008
Mensajes: 180
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: No repetir datos de registro

jejeje, va como la seda macho.
Una última cosa, los echo como podrian aparecer a la derecha de los campos sin que te mande a otra página? se puede?
  #4 (permalink)  
Antiguo 28/10/2008, 07:31
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Respuesta: No repetir datos de registro

Ahora no entiendo, explicate mejor.

Un saludo
  #5 (permalink)  
Antiguo 28/10/2008, 08:04
 
Fecha de Ingreso: octubre-2008
Mensajes: 180
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: No repetir datos de registro

Bueno, pues que cuando enviamos el formulario y;
- nos falta algun campo
- o esta repetido el nombre o el mail
- o si no coincide la contraseña
nos envia a una página en blanco con el mensaje que hemos puesto en el echo tipo"el nombre de usuario que has escojido ya esta registrado". Y la idea es que en vez de enviarnos a una página en blanco con ese mensaje que lo haga directamente a la derecha del campo donde hemos fallado. Se entiende lo que quiero decir o no? Es muy complicado hacer esto?
  #6 (permalink)  
Antiguo 28/10/2008, 08:41
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: No repetir datos de registro

Hola Xematick,

No es complicado, pero tendrías que re-hacer la lógica del aporte que te pasaron para enviar el formulario a la misma pagina y al dibujar los campos ir mostrando el error o errores.

Todo depende de que tanta experiencia tengas con PHP y HTML.

Saludos.
  #7 (permalink)  
Antiguo 29/10/2008, 00:40
 
Fecha de Ingreso: octubre-2008
Mensajes: 180
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: No repetir datos de registro

Pues ninguna esperiencia básicamente. Por eso soy tan preguntón
  #8 (permalink)  
Antiguo 30/10/2008, 12:09
 
Fecha de Ingreso: febrero-2008
Mensajes: 30
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: No repetir datos de registro

Este es el codigo men:
<?php
if (isset($_POST["username"])) {
$username = $_POST["username"];
$password = $_POST["password"];
$cpassword = $_POST["cpassword"];
$email = $_POST["email"];
// Hay campos en blanco
if($username==NULL|$password==NULL|$cpassword==NUL L|$email==NULL) {
echo "un campo está vacio.";
print ("<P>[ <A HREF='registro.php'>Regresar</A> ]</P>\n");
}else{
// ¿Coinciden las contraseñas?
if($password!=$cpassword) {
echo "Las contraseñas no coinciden";
print ("<P>[ <A HREF='registro.php'>Regresar</A> ]</P>\n");
}else{
// Comprobamos si el nombre de usuario o la cuenta de correo ya existían
include("conexion.php");
$checkuser = mysql_query("SELECT username FROM users WHERE username='$username'");
$username_exist = mysql_num_rows($checkuser);
$checkemail = mysql_query("SELECT email FROM users WHERE email='$email'");
$email_exist = mysql_num_rows($checkemail);
if($email_exist>0|$username_exist>0){
echo "EL nombre de usuario o la cuenta de correo estan ya en uso";
print ("<P>[ <A HREF='registro.php'>Regresar</A> ]</P>\n");
}else{
//Todo parece correcto procedemos con la inserccion
// Configura los datos de tu cuenta
include("conexion.php");
$salt = substr ($username, 0,2);
$clave_crypt = crypt ($password, $salt);
$instruccion = "insert into users (username, password, email) values ('$username', '$clave_crypt','$email')";
$consulta = mysql_query ($instruccion, $conexion)
or die ("Fallo en la inserción");
mysql_close ($conexion);
print ("Usuario $username insertado con éxito\n");
session_destroy();
//include("logout.php");
print ("<P>[ <A HREF='login.php'>Ingresar al sistema</A> ]</P>\n");

}
}
}
}
?>
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:42.