Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Login/Reistro en mi web pero con un error

Estas en el tema de Login/Reistro en mi web pero con un error en el foro de Bases de Datos General en Foros del Web. Buenas tardes. tengo un problema con un login / registrar que incorpore o quiero incorporar a unas de las paginas en mi web. Primero les ...
  #1 (permalink)  
Antiguo 30/09/2009, 14:34
 
Fecha de Ingreso: agosto-2005
Mensajes: 76
Antigüedad: 18 años, 7 meses
Puntos: 4
Login/Reistro en mi web pero con un error

Buenas tardes.

tengo un problema con un login / registrar que incorpore o quiero incorporar a unas de las paginas en mi web.

Primero les colocare el codigo tal como lo encontre y posteriormente les dejo el error, para que ojala algun maestro me ayude.
Código HTML:
Primer Paso: Creación de la base de datos

Lo primero que necesitas es crear la base de datos en la que vas a almacenar tu información. Si ya tienes creada una salta al paso dos.
Para crear la base de datos la mejor manera es desde algun tipo de software que te permita manejar MySql ya que el uso de scripts no está autorizado en todos los servidores.

Segundo Paso: Configuración de tablas
Ya está creada la base de datos y tenemos que configurar las tablas y campos en los que vamos a almacenar la información.
Utiliza este código o modifícalo adaptándolo a tus gustos.

<?php
// Configura los datos de tu cuenta
$dbhost='localhost';
$dbusername='username';
$dbuserpass='password';
$dbname='database';
// Conexión a la base de datos
mysql_connect ($dbhost, $dbusername, $dbuserpass);
// Seleccion de la base de datos
mysql_select_db($dbname) or die('Cannot select database');

// Creacion de la tabla (puedes elegir otros nombres para los campos)
$query = 'CREATE TABLE users(
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
username VARCHAR(30) NOT NULL,
password VARCHAR(20) NOT NULL,
email VARCHAR(40) NOT NULL)';
$result = mysql_query($query);
echo "!Tabla creada!";
?> 

Tercer Paso: Registro de usuarios
Ya hemos creado y configurado la base de datos, ahora escribiremos el código de una simple página de registr, en la que insertaremos nombre de usuario, contrseña y cuenta de correo.

<?php
// Configura los datos de tu cuenta
$dbhost='localhost';
$dbusername='username';
$dbuserpass='password';
$dbname='database';
// Conexión a la base de datos
mysql_connect ($dbhost, $dbusername, $dbuserpass);
mysql_select_db($dbname) or die("Cannot select database");

// Preguntaremos si se han enviado ya las variables necesarias
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==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
$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";
}else{
//Todo parece correcto procedemos con la inserccion
$query = "INSERT INTO users (username, password, email) VALUES('$username','$password','$email')";
mysql_query($query) or die(mysql_error());
echo "El usuario $username ha sido registrado de manera satisfactoria.";
}
}
}
}
?> 

Nos quedaría escribir el código HTML que debe contener el formulario de registro, prueba con este ejemplo o edítalo a tu gusto.

Puedes verlo aquí.



Nombre de usuario:   
Password:   
Repite Password:   
Email:   
  
Ver código registro.php  


Ahora que tenemos nuestra página de registro llego la hora de hacer pruebas, ten en cuenta que si has cambiado algún dato de los formularios o algun campo de la base de datos ten en cuenta que deberas cambiar las consultas.
La correcta ejecución de nuestro código debe devolver lo siguiente.

El usuario "nombre_de_usuario" ha sido registrado de manera satisfactoria.

Cuarto Paso: Autentificación de usuarios
<?php
// Configura los datos de tu cuenta
$dbhost='localhost';
$dbusername='username';
$dbuserpass='password';
$dbname='database';

session_start();

// Conectar a la base de datos
mysql_connect ($dbhost, $dbusername, $dbuserpass);
mysql_select_db($dbname) or die('Cannot select database');

if ($_POST['username']) {
//Comprobacion del envio del nombre de usuario y password
$username=$_POST['username'];
$password=$_POST['password'];
if ($password==NULL) {
echo "La password no fue enviada";
}else{
$query = mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['password'] != $password) {
echo "Login incorrecto";
}else{
$query = mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());
$row = mysql_fetch_array($query);
$_SESSION["s_username"] = $row['username'];
echo "Has sido logueado correctamente ".$_SESSION['s_username']." y puedes acceder al index.php.";
}
}
}
?> 

Nos quedaría escribir el código HTML que debe contener el formulario para ingresar en la página, prueba con este ejemplo o edítalo a tu gusto.

Puedes verlo aquí.



Nombre de usuario:   
Password:   
  
Ver código login.php  


Quinto Paso: Index.php visible para usuarios registrados
<?php
// Configura la información de tu cuenta
$dbhost='localhost';
$dbusername='username';
$dbuserpass='password';
$dbname='database';
session_start();

// Conexión a la base de datos
mysql_connect ($dbhost, $dbusername, $dbuserpass);
mysql_select_db($dbname) or die('Cannot select database');

?>

<?
if (isset($_SESSION['s_username'])) {
echo "Bienvenido a mi sitio has ingresado como ".$_SESSION['s_username'].", gracias por la visita!";
}else{
echo "Tu no estas autentificado dirígete a login.php o registrate en register.php";
echo $_SESSION['s_username'];
}
?> 

Sexto Paso: Logout
Sólo nos quedaría poder salir de la página una vez nos hayamos autentificado y esto lo haremos con este pequeño script.

<?
session_start();
$_SESSION = array();
header("Location: index.php");
?> 

Puedes ver más información sobre este script aquí
ACA ESTE EL ERROR QUE ME TIRA, TRATANDO YA DE INGRESAR CON UN USUARIO REGISTRADO EN LA bD, PORQUE TODO LO DEMAS ANDA MUY BIEN, SOLO QUE CUANDO ME AUTENTIFICO NO LO TOM AY ME ARROJA ESTE ERROR.

Código HTML:
Warning: Cannot modify header information - headers already sent by (output started at /home/clasific/public_html/micropagos/informes/uentrar.php:1) in /home/clasific/public_html/micropagos/informes/uentrar.php on line 17

Warning: Cannot modify header information - headers already sent by (output started at /home/clasific/public_html/micropagos/informes/uentrar.php:1) in /home/clasific/public_html/micropagos/informes/uentrar.php on line 18

Warning: Cannot modify header information - headers already sent by (output started at /home/clasific/public_html/micropagos/informes/uentrar.php:1) in /home/clasific/public_html/micropagos/informes/uentrar.php on line 19

Saludos y espero de su ayuda y ojala este codigo le sirva a otro que se ve bien bueno una vez que le quitemos 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 10:53.