Fácil sistema de autentificación (login, password) PHP

Por el 7 de Agosto de 2006

en: Programacion


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.

// 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.

// 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

// 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

// 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í

158 Respuestas a Fácil sistema de autentificación (login, password) PHP

Avatar

Anónimo

8 de Agosto de 2006 a las 2:41 am

Un manual muy currado y sencillito. Dejas muy claro los pasos a seguir.

Solo añadirí­a alguna función para evitar que te hagan sql inyection y entren sin clave.

Avatar

Anónimo

19 de Agosto de 2006 a las 7:07 pm

Hola, me gusto mucho tu tuto, esta my claro.

Ojala puedas hacer uno usando la libreria AUTH de PEAR.

SAludos, sigue asi :)

Avatar

Anónimo

30 de Agosto de 2006 a las 8:39 am

como puedo guaradar la info de la sesion que escribe el usuario, es decir el username y el password para que pueda utilizarlos en distinto modulos php sin que el usuario tenga que escribirlos constantemente
?? gracias

Avatar

Anónimo

5 de Septiembre de 2006 a las 7:52 am

Disculpa tal ves si es una pregunta obvia pero no se identifica en q archivo se deben agregar esos codigos si es un solo PHP o alguno es un archivo conexion….

gracias

Avatar

Anónimo

1 de Noviembre de 2006 a las 1:06 pm

Eiiii muy currado esta tu tutorial, pero yo como no estoy muy puesto en esto del php me pierdo en el 4º paso y ya no se como se logue si me podeis ayudar…
Espero una respuesta, gracias de antemano.

Avatar

Anónimo

3 de Noviembre de 2006 a las 11:21 am

Esta muy currado, pero se podria meter un id para el loguin para q no se tenga q estar identificando todo el rato? si es asi, me podeis decir como es? Gracias x adelantado, y el tuto es mu claro

Avatar

Anónimo

4 de Noviembre de 2006 a las 11:46 am

se parece mucho a otro q habia visto antes

Avatar

Anónimo

7 de Noviembre de 2006 a las 7:13 am

Alguien ah hecho por fin un sistema de gestion de usuarios con la librerí­a de pear, lo necesito urgentemente.
Gracias

Avatar

Anónimo

16 de Noviembre de 2006 a las 1:05 pm

ME SIRVIO MUCHO… ES SENCILLO Y SUPER UTIL¡¡

Avatar

Anónimo

6 de Diciembre de 2006 a las 2:54 pm

YO LA VERDAD NECESITABA REALIZAR ESTA FUNCION DE LOGUEARSE Y LA VERDAD EXELENTE REALMENTE YO PUDE REALIZARLO CON CONOSIMIENTOS MINIMOS.

LO FELICITO REALMENTE SOS UN GENIO!!

SEGUI ASI TRANQUILO Y SEGURO

NO DEJES DE HACER MANUALES!!!!!!!!!!!

Avatar

Anónimo

19 de Diciembre de 2006 a las 8:06 pm

MUY BUENO SU TUTORIAL COMPA, SIGA APORTANDO PERLAS COMO ESTA

Avatar

Anónimo

23 de Diciembre de 2006 a las 7:18 pm

hola me es muy interesante este manual soy primeriso en esto ya he estado dando algunos pasos sobre myql y php, y me tiene fascinado, bueno he realizado todos los pasos que indican aqui con exito he creado todas las paginas con los codigos que indica las que son las siguientes:

crearbd.php // con este creo las tablas dentro de la base de datos.
login.htm // con este ingreso llamo a login.php
registro.htm // bueno su nombre lo dice con este me registro
login.php // con este me procesa la info de login.htm si soy o no usuario
register.php // con esteme procesa la informacion de register.htm
index.php // con este ya ingreso una ves registrado.

hasta aqui todo bien, lo unico que me falta es donde colocar este script y aun no entiendo para que sirve? solo me imagino que debe ser para autentificar al usuario y que no pueda ingresar sin permiso?

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

les agradecere si pueden ayudarme.

Avatar

Anónimo

26 de Diciembre de 2006 a las 9:30 am

< ?php
session_start();
$_SESSION = array();

// lo siguiente deberí­a de ir justo aquí­ obligatoriamente
session_destroy()
// y sirve para destruir la sesión

header("Location: index.php");
?>

y para responder a ‘anónimo’, este código debe ir en un archivo separado, al cual el usuario sera enviado luego se presionar un enlace del tipo ‘SALIR’, que puedes colocar en cualquier parte, dentro de tus paginas web, por ej.:

SALIR

… si el usuario presiona el enlace cierra la sesión, y deberá ingresar nuevamente usuario y contraseña.

Avatar

Anónimo

26 de Diciembre de 2006 a las 9:31 am

< ?php
session_start();
$_SESSION = array();

// lo siguiente deberí­a de ir justo aquí­ obligatoriamente
session_destroy()
// y sirve para destruir la sesión

header("Location: index.php");
?>

y para responder a ‘anónimo’, este código debe ir en un archivo separado, al cual el usuario sera enviado luego se presionar un enlace del tipo ‘SALIR’, que puedes colocar en cualquier parte, dentro de tus paginas web, por ej.:

SALIR

… si el usuario presiona el enlace cierra la sesión, y deberá ingresar nuevamente usuario y contraseña.

Avatar

Anónimo

3 de Enero de 2007 a las 8:18 am

al igual que puedes sacar el nombre de usuario
como puedo hacer para que aparezca el password
y el e-mailen la web ?? y para modificarlos desde la web?
muchas gracias

Avatar

Anónimo

17 de Enero de 2007 a las 10:45 pm

de verdad es muy interesante, no tanto la programacion, sino con la delicadeza con la que ud, lo hizo.. definitivamente a prueba de tontos!!!
Gracias!

http://silomontolomeo.blogspot.com

Avatar

Anónimo

18 de Enero de 2007 a las 2:30 am

esta todo okey con el

< ?

session_start();
$_SESSION = array();

// lo siguiente deberí­a de ir justo aquí­ obligatoriamente
session_destroy()
// y sirve para destruir la sesión

header("Location: index.php");

?>

lo he creado en un archivo aparte llamado logout.php pero cuando lo llamo me aparace el siguiente error:

Parse error: parse error, unexpected T_STRING in C:\AppServ\www\acessuser\logout.php on line 10

lo que corresponderia al siguiente codigo:

header(“Location: index.php”);

no entiendo para que es este pedacito de codigo, cual es su funcionalidad dentro de esta funcion?

una ves que lo saco o lo cierro entre comentarios y vuelvo a llamar el archivo logout.php , funciona bien, pero mi duda que tan seguro es sin este pedacito de codigo?

Avatar

Anónimo

19 de Enero de 2007 a las 4:11 am

Tu problema no radica en el header (“location : index.php”) que, por cierto, lo que hace es redirigir el navegador a la dirección index.php (eso sí­, del directorio en el que te encuentras… para hacerlo a la index de la aplicación o usas direcciónes absolutas “www.aplicacion.com/index.php” o usas “../index.php”.

El autí©ntico problema lo tienes en una ausencia de “;” justo tras el session_destroy…

Para que lo sepas en otra ocasión: “unexpected T_STRING” dice “me he encontrado una cadena que no esperaba”… la cosa está en que la función header necesita una cadena como argumento, ergo el error está más arriba… Si ves un “unexpected loquesea”, 1º mira que “loquesea” deba estar donde está, y despuí©s busca que no haya algo fuera de sitio más arriba….

PHP es como C: los errores te los da en una lí­nea, pero siempre andan más arriba de donde te salen ;)

Avatar

Anónimo

19 de Enero de 2007 a las 5:27 am

bueno te agradezco por tu ayuda y la paciencia, ahora pude solucionar el pequeño detalle que me he saltado ;) , te aseguro que ahora en adelante me fijare detalladamente en el código.

Avatar

Anónimo

24 de Enero de 2007 a las 3:45 pm

Está padrísimo este tutorial, intenté otros pero con este ya no tuve problemas exceptuando el paso referente al logeo, no puedo hacer que funcione, este es el error que me marca:

Warning: session_start() [function.session-start]: Cannot send session cookie – headers already sent by (output started at C:\AppServ\www\wakopedia\acceso.php:9) in C:\AppServ\www\wakopedia\acceso.php on line 16

Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at C:\AppServ\www\wakopedia\acceso.php:9) in C:\AppServ\www\wakopedia\acceso.php on line 16
Has sido logueado correctamente wakoatl y puedes acceder al index.php.

Lo curioso es que si detecta mi nombre de usuario y me dice que estoy logeado, como se puede ver en la última línea del error. Ahora bien, este es mi código:

< ?php
// Configura los datos de tu cuenta
$dbhost='localhost';
$dbusername='root';
$dbuserpass='wakito';
$dbname='usuarios';

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.";
}
}
}
?>

Avatar

Anónimo

28 de Enero de 2007 a las 7:19 pm

hago la base de datos, y la crea, pero me pide unos campos, y ya no se que hacer, me ayudan???????????,

Avatar

Anónimo

8 de Febrero de 2007 a las 6:54 am

Las cabeceras HTTP se deben enviar SIEMPRE lo primero de todo, antes de que se imprima nada en el navegador… por lo tanto, para la función header(); o para session_start o destroy() deben llamarse antes de nada…

Debes tener algún tipo de error en este script al establecer las variables de conexión, o si tienes php para indicar TODOS los errores error_reporting(E_ALL) lo mismo te tira un NOTICE con dichas variables.
En definitiva, pon session_start(); al principio del script, antes de hacer nada más…

Por otro lado, si el script lo estás incluyendo en otro quizás se esté generando código, de nuevo, antes que session_start().

Recordad, todos los errores del tipo “ya se enviaron las cabeceras” (

“headers already sent by”

) es porque estais enviando algún tipo de código antes que las cabeceras HTTP, un espacio, un error de php declarando variables…, cualquier cosa.

Si haceis un sistema modular por ejemplo, estableced la sesión al comienzo del script y si teneis código antes de esto aseguraos que no tira ningún error ( por ejempo, podeis establecer error_reporting(0); ) o en cualquier caso que no imprime nada.


A parte… no es demasiado recomendable asignar directamente a la variable de sesión el resultado de la consulta:
$_SESSION["s_username"] = $row['username'];
Es mejor establecer tus propias variables para manejarlas de forma más segura, es decir, variables que controles tú para luego poder definir las de sesión con algo “que conozcas”.

Un saludo, espero ayude ;)
http://www.culturadigital.org

Avatar

Anónimo

9 de Febrero de 2007 a las 9:01 pm

Excelente !
Muy, muy bueno.. me funcionó de maravillas, aún cuando mi conocimiento de PHP es casi nulo.
Muchas gracias por hacer un Tutorial tan detallado.
Saludos desde Perú.

Avatar

Luis

25 de Febrero de 2007 a las 12:28 pm

Para solucionar tu problema solo tienes que poner el script antes de las etiquetas
html

Avatar

Abel Diaz

2 de Marzo de 2007 a las 7:07 pm

Muchas gracias, este tutorial esta excelente. Con este tutorial hice mi primer login con PHP, gracias

Avatar

Diego

31 de Marzo de 2007 a las 3:44 pm

El tutorial me parecio bueno pero con muchos errores bobos, por ejemplo, yo no se casi nada de php y me doy cuenta q en cada texto q escribis te olvidas al principio del < ?
Ademas no decis q nombre ponerle a cada archivo :S no entiendo nada
Si alguien puede porfavor que me mande todos los archivos en un zip q los re necesito para mi pagina, gracias. mi pagina http://www.tumodeo.com.ar

Avatar

PAKO

3 de Abril de 2007 a las 3:03 pm

en el 4to paso, donde ya me dice
echo “Has sido logueado correctamente “.$_SESSION['s_username'].” y puedes acceder al index.php.”;
ya se loguea, pero a donde,,, como le puedo hacer para q me direccione ya a la pagina que quiero??

Avatar

nachofig

25 de Abril de 2007 a las 8:46 am

hola. está bueno el programa de login. Cómo hago para que cada usuario vea sólo determinados registros de la base de datos y no todos…
Gracias

Avatar

ajmorphy

4 de Mayo de 2007 a las 10:51 am

Hola! felicidades por el tutorial, está muy clarito, aún para los que no tenemos casi ni idea de PHP. Ahora me surge una duda, ¿cómo puedo hacer para que según qué usuario se logea le redireccione automaticamente a su página privada? Es decir, quiero hacer páginas diferentes para cada usuario y me gustaria que el login.php detecte de quién se trata y luego se le envíe a su página privada.

GRACIAS!!

Avatar

Lucas

8 de Mayo de 2007 a las 3:33 pm

Wenas muy bueno el tutorial ojala los agas todos asi
me podrias mandar los archivos del tutorial en un zip a mi correo???’

lucasalonsorey@hotmail.com

Avatar

Edwin

15 de Mayo de 2007 a las 9:36 am

Hola esta muy bueno tu script pero mi pregunta es la siguiente con este codigo al yo ingresar mi usuario y contraseña este me diferencia las mayusculas de las minusculas, si no las diferencia y si puedes regalame el codigo para hacer que me diferencie entre mayusculas y minusculas

Avatar

Guillermo

17 de Mayo de 2007 a las 12:07 am

yo tengo esa misma duda!!!!

como identificar a cada usuario con su pagina privada

Avatar

Isaias Villanueva

6 de Junio de 2007 a las 5:35 pm

Muy buen tutorial pero tengo un problema con el paso cuatro no se que pasa no me muetra el mensaje echo “Has sido logueado correctamente “.$_SESSION['s_username'].” y puedes acceder al index.php.”; y no se que pasa.
Este es mi codigo si me pueden ayudar:

< ?
session_start();
?>
< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">


< ?
// Configura los datos de tu cuenta
$dbhost='localhost';
$dbusername='root';
$dbuserpass='admin';
$dbname='alumnos';
// Conectar a la base de datos
mysql_connect ($dbhost, $dbusername, $dbuserpass);
mysql_select_db($dbname) or die('Cannot select database');
if ($_POST['nombre']) {
//Comprobacion del envio del nombre de usuario y password
$username=$_POST['nombre'];
$password=$_POST['contraseña'];
if ($password==NULL) {
echo "La password no fue enviada por encontrase vacio su campo";
}else{
$query = mysql_query("SELECT nombre,password FROM alumnos WHERE nombre = '$username'") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['contraseña'] != $password) {
echo "Login incorrecto";
}else{
$query = mysql_query("SELECT nombre,password FROM alumnos WHERE nombre = '$username'") or die(mysql_error());
$row = mysql_fetch_array($query);
$_SESSION["s_username"] = $row['nombre'];
echo "Has sido logueado correctamente " . $_SESSION['s_username'] . " y puedes acceder al registrados.php.";
}
}
}
?>



Gracias

Avatar

erika elizabeth

18 de Junio de 2007 a las 9:41 am

quiero saber como hacer un login

pero quiero todos los pasos para hacerlo por que no se nada deespe como hecer una base de datos hasta el final

por favor se los voy a gradeser muchoooooooooooooo

Avatar

roderick

18 de Junio de 2007 a las 5:33 pm

hola:
en la u me estan enceñando php … y me pidieron realizar lo siguiente …
cmparar de una basede dtos las pass .. luego cmbiar las pass…
en el cambio de las pass me pide qe solo igrese numeros y letras minusculas de lo contrario mande un error ….
como hav}cer eso…

Avatar

maharet

22 de Junio de 2007 a las 2:58 am

Avatar

leoss

28 de Junio de 2007 a las 2:30 pm

el script esta muy bueno, es sencillo y claro, porsupuesto que tienes que tener conocimientos basicos para entenderlo mas rapido….. ok a lo que vine, el scrip tiene un problema, mas de un usuario pueden registrarse con la misma direccionde correo, trate de corregirlo personalmente pero simplemente no funciona, el problema radica en la “@” o el “.”, ya que el verica el campo, como cualquiero otro, y al parecer tiene problemas con los caracteres especiales; si escribes un email como “email@tudominio.com” podra crear todas las cuentas que quieras con mismo correo, pero si solo colocas “email” sin “@” y sin “.”, (que no deberia ser aceptado, estoy trabajando en eso.) si los valida correctamente, y no deja repetirlos, si alguien sabe como arreglarlo seria muy util para todos.

Avatar

brokercl

13 de Julio de 2007 a las 9:21 am

PORQUE session_destroy() NO DESTRUYE LA SESION… PORQUE?????????????

AQUI VA EL CODIGO:

< ?php
echo "

Destruye Session…“;
session_start(); /* crea una sesion o la retoma si ya existe… */
setcookie(session_name(),”"); /* Carga la session vacia*/
session_destroy(); /* destruccion de la session */
echo “Sesion destruida…

“;
?>
Session 1

Session 2

AYUDA…. GRACIAS…

Avatar

ac1d

26 de Julio de 2007 a las 2:24 pm

Hola que tal esta muy bien tu ejemplo pero no me funciona el script del login. Yo tengo por separado los script para no generar tanto codigo pero ya cuando inserto la contraseña correcta o incorrecta no pasa nada..se pone en blanco la pagina

< ?php
include("conexion.php");
session_start();
//Comprobar el usuario y contraseña
if($POST['Usuario']){
$usuario=$_POST['Usuario'];
$contarseña=$_POST['Contraseña'];
if($Contraseña==NULL){
echo "La contraseña no fu enviada";
}else{
$query = mysql_query("SELECT Usuario,Contraseña FROM usuarios WHERE Usuario='$Usuario'")
or die(mysql_error());
$data = mysql_fetch_array($querry);
if ($data['Contraseña'] !=$Contraseña){
echo "Tu contraseña es incorrecta por favor trata de nuevo o contacta al Administrador del sistema";
}else{
$querry = mysql_querry("SELECT Usuario,Contraseña FROM usuarios WHERE Usuario='$Usuario'")
or die (mysql_error());
$row = mysql_fetch_array($query);
$SESSION["s_Usuario"] = $row['Usuario'];
$_SESSION['s_Usuario']." y puedes acceder al index.php.";

}
}
}
?>

Avatar

ALMA

27 de Julio de 2007 a las 5:47 pm

Tal vez es porque apenas inicio en esto del php pero a mi si me quedan varias dudas.
Primero no me corren las paginas si no les quito session_star();, de otra forma me marcan error , si logro que se registren pero como hacer para que despues de que se reguistren inmediatamente aparesca la pagina en la que ingresen su contraseña y si esta correcta te mande directa al index.php, ya que solo aparece que has sido logueado correctamente y como se accede al index.php???

perdon tal vez son preguntas obvias pero no se como hacerle haber si alguien me puede ayudar.

gracias bye

Avatar

Roger

3 de Agosto de 2007 a las 4:48 am

El script es vulnerable a mas no poder a un SQL inyection…. Jamas (y en casi todos los libros, como tiran de receta, viene mal) y digo jamas, se puede hacer esto:
$query = mysql_query(“SELECT username,password FROM users WHERE username = ‘$username’”)

¿¿Como vas a meter una entrada (en este caso el nombre del usuario) sin verificar o analizar directamente en una sentencia SQL?? Eso es una locura, pero de las gordas….

Como hacerlo seguro?, facil, no metiendo nada en esa sentencia :D haces un select * from users y luego un bucle que recorra el resultando, comparandolo con lo que tienes, autentificando si es igual y anulando si no. De esta manera, es imposible. Por cierto, no cifras la clave, otro fallo de seguridad de los gordos… creo que por poner md5($password) no se muere nadie no??? y haciendo lo mismo a la hora de comparar la clave (en el login) anulas cualquier intento de ataque que te intenten meter por el campo password.

Enfin, no todo lo que veais en los libros esta bien… hay que pensar por uno mismo.

Ah! y no, no soy ingeniero, soy Tecnico Superior en Desarrollo de Aplicaciones Informaticas.

Avatar

Anónimo

15 de Agosto de 2007 a las 2:38 am

Muy fácil de entender el tutorial.
Lo he aplicado con exito a mi sistema de envio de sms

Avatar

Anónimo

19 de Agosto de 2007 a las 5:30 am

es facil encontrar el pelo en la sopa pero, señor tecnico cual su aporte, el granito de arena

Avatar

Anónimo

23 de Agosto de 2007 a las 3:28 pm

Estimado amigo,,, estoy muy de acuerdo contigo, pero creo que si encuentras todo tan mal y no escribes acá la solución completa tal como el gran aporte que hizo el amigo, mejor no descalifiques,,,,,te felicito por ser Técnico, pero no vale de nada toda tu habilidad si no eres capaz de aportar con el resto.

Avatar

Anónimo

29 de Agosto de 2007 a las 7:18 am

ola podrias subir a la web los archivos php configurados please es que sabes que no se porque no me fncionan y asi yo solo cambiarle mis datos porfavor!!!

Avatar

Anónimo

8 de Octubre de 2007 a las 5:41 pm

Ya ha pasado un año desde que publicaste este tema pero… Podrías poner con colores lo que hay que cambiar por mis datos y lo que hay que eliminar?

Por ejemplo:
// Configura los datos de tu cuenta <—- En rojo, ya que no sirve de nada (creo)
$dbhost=’localhost’; <—- Azul, donde debemos colocar nuestros datos u opciones.

Que hay bastantes linea que no se que poner exactamente xD

Aun no he hecho nada pero lo haré ahora mismo, de todas formas, GRACIAS, el mejor manual que he visto pese que aun no lo he probado.

Avatar

FRANCISCO

20 de Octubre de 2007 a las 11:31 am

Neceito uregente el codigo para la creacion de una apgina dinamica
es para la creacion de una pagina ke yame una zona de casas habitaciones ojala alguien me peuda ayudar

Avatar

Anónimo

21 de Octubre de 2007 a las 2:00 pm

Pues es que todos los comentarios tienen // , es la forma de identificarlos.

Avatar

Anónimo

5 de Noviembre de 2007 a las 12:37 pm

Hola mi nombre es fernando, y la verdad q no se como hacer muchas cosas q explica este tutorial, por ejemplo donde colocar los codigos sitados, si va entre etiquetas, cuales; etc…me gustaria si alguien puede q me diera un poco mas de info, no pido q lo hagan por mi, ya q yo quiero aprender como se hace, pero teniendo cero conocimiento de mas de una cosa es casi imposible, solo pido un poco mas de guia en cuanto a donde poner los codigos, q programas usar etc, este tutorial un poquito mejor explicado para los q tenemos poco o nada de conocimiento pero muchas ganas de aprender….espero q alguno pueda sino todo bien…seguiremos leyendo y buscando en internet para seguir aprendiendo…muchas gracias igual…

saludos.

Avatar

Anónimo

5 de Noviembre de 2007 a las 12:40 pm

Hola mi nombre es fernando, y la verdad q no se como hacer muchas cosas q explica este tutorial, por ejemplo donde colocar los codigos sitados, si va entre etiquetas, cuales; etc…me gustaria si alguien puede q me diera un poco mas de info, no pido q lo hagan por mi, ya q yo quiero aprender como se hace, pero teniendo cero conocimiento de mas de una cosa es casi imposible, solo pido un poco mas de guia en cuanto a donde poner los codigos, q programas usar etc, este tutorial un poquito mejor explicado para los q tenemos poco o nada de conocimiento pero muchas ganas de aprender….espero q alguno pueda sino todo bien…seguiremos leyendo y buscando en internet para seguir aprendiendo…muchas gracias igual…

saludos.

Avatar

Anónimo

10 de Noviembre de 2007 a las 7:18 pm

este archivo si que es buen archivo, me esta ayudando un munton en un login que estoy desarrollando para un sistemas

Avatar

Hector

5 de Mayo de 2008 a las 3:24 pm

Lo que no comprendo es porque hace dos llamadas sql para comparar:

if ($password==NULL) {
echo “La password no fue enviada”;
}else{

// consulta 1

$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{

/// consulta 2

$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.”;
}
}

No alcanzaria con la primera nomas?, si el password es correcto quiere decir que esta bien, no veo la razon de volver a consultar la tabla para obtener el username…

Avatar

Anónimo

24 de Abril de 2008 a las 11:31 am

Hola, pues a mi me pasa lo mismo me da error:

Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at /home/s0176795/public_html/pages/login.php:8) in /home/s0176795/public_html/pages/login.php on line 91

y por cierto que mal educado y poca verguenza el que ha escrito el post de menuda kaka, encima que lo escriben, nada hay gente para todo…

Avatar

sqlfriend

10 de Noviembre de 2007 a las 8:45 pm

te felicito por tu tutorial estube buscando autentificaciones http pero devido a que mi pagina esta en un host gratuito pues no me funciona el http pero las sesiones funcionan de maravilla solo te diria que en el 4to paso te falto un if mas para saber si el usuario entro el username; ya que si no lo pones te deja accesar a la pagina que protejes gracias por tutorial exelente

Avatar

frodrigoa

3 de Agosto de 2008 a las 6:54 pm

hola que bueno su codigo despues de muchoencontre algo bueno…..
pero ruego ayuda entre el codigo de login.php
< ?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.";
}
}
}
?>
lo adapte a mi modelo donde username es = nick
funciona sin indicar error pero termina en una pag en blanco

que tengo mallllll?????

Avatar

Diego Castro

4 de Marzo de 2008 a las 10:08 am

hola, estoy intentando hacer un formulario que capture datos de usuario y password, ellos quedan almacenados en una base de datos, ya sea por mysql, con ayuda del apache o con una base de datos que esta dentro de linux, espero me puedan ayudar, pues no soy muy bueno en programacion

Avatar

Anónimo

25 de Mayo de 2008 a las 12:57 am

yo php se pero realmente lo utilizo de una forma mas aplicativa y no tanto en paginas web xq no conozco mucho d base de datos

aplike lo q pusiste pero no me encuentra la base de datos

un problemon!!

Avatar

Harvey

6 de Mayo de 2008 a las 12:26 am

El tutorial esta excelente, la unica duda es donde coloco el index.php.

Muchas gracias.

Avatar

Anónimo

5 de Marzo de 2008 a las 4:59 pm

Tu tutorial me funcionó a la perfección.

Avatar

milciades

30 de Enero de 2008 a las 8:04 am

necesito un codigo para un login de una pagina web espero que me ayudes es para mi tesis

Avatar

atomix

13 de Mayo de 2008 a las 1:43 am

Codigo increiblemente inseguro, se nota que fue hecho por un noob programmer. codigo vulnerable a php injection, sql injection y xss.

Avatar

Tata

17 de Enero de 2008 a las 2:52 pm

Muchisimas gracias, me sacaste de un apuro grandisimo, estaba a punto de tirar el PC por la ventana.

Avatar

luciano

17 de Diciembre de 2007 a las 7:55 pm

hola a todos quiero agradecer por el codigo si me funciono todo valio la pena encontrarme con ustedes bueno gracias de nuevo ahora voy a seguir con lo que estaba .

Avatar

rene ortiz

13 de Febrero de 2008 a las 1:43 pm

Estos escrips son para autenticar a un usuario y para que puedan o no tener acceso a una pagina determinada, pero tengo algunas paginas y ya me funciono el codigo pero, siempre me muestra el contenido de la pagina, como puedo hacer para que no pueda accesar a la pagina solo si esta logueado el usuario?

Avatar

Caro

22 de Noviembre de 2007 a las 9:11 pm

yo e hecho el login de otra manera y no pasa nada me muesta el mismo index y no se que hacer las vasriables estan bien y no me tira ningunb error no se que hacer y necesito ayuda por favor si alguien me ayuda no me enojo gracias de antemano…..

Avatar

LoK TaR

30 de Noviembre de 2007 a las 3:16 pm

hola
se agradece por la ayuda
pero
aun asi
tengo unos problemillas
son minimos si
no me muestra los
mensajes
que puedo hacer en ese caso?
bueno eso
y bye
gracias por la ayuda

Avatar

Javier

30 de Noviembre de 2007 a las 3:22 pm

Si hubieras leido los comentarios de otros, hubieras visto, que aun siendo tan simple, muchos no entendieron algunas cosas, o sea, mi punto es, es para gente q recien empieza y necesita un solucion simple rapida y que pueda implementar, seguramente luego mejoraran la solucion. Si se hubiera querido info sobre seguridad avalada por un tecnico, se hubiera solicitado. Sino arma un tutorial al respecto.

Avatar

FRANCISCO

28 de Diciembre de 2007 a las 8:41 am

Muchas gracias por este código!
Como puedo obtener la cantidad de personas “loggeadas” a cada momento ?
Saludos

Avatar

Anónimo

26 de Abril de 2008 a las 1:42 pm

Hijos de Puta!!!

Avatar

Mondongo

14 de Marzo de 2008 a las 10:28 am

Funciona muy bien; no soy experto en php asi que mi problema puede ser facil de solucionar; me sucede esto al loguearme e ingresar a index.php:

Warning: session_start(): Cannot send session cache limiter – headers already sent (output started at /home/domains/MiDominio.com/web/session/01/index.php:6) in /home/domains/MiDominio.com/web/session/01/index.php on line 11
Bienvenido a mi sitio has ingresado como Mondongo, gracias por la visita!

No puedo descubrir que debo modificar en linea 11; que es esta:

< ?
$dbhost='mihost';
$dbusername='mibase';
$dbuserpass='miclave';
$dbname='mibase';
session_start(); <-- ESTA ES LA LINEA DEL "PROBLEMA" -->

Por favor; solo me falta eso para que todo funcione perfectametne
Muchas gracias!

Avatar

VAYA TELAAAAA

14 de Abril de 2008 a las 2:43 pm

el codigo esta bien, no digo que no, pero el tutorial es una kaka colega, tendrías que haber explicado mejor que codigo hay que meter en cada archivo, porque al menos yo lo que es el ultimo script no tengo ni zorra donde ponerlo, pero ya buscaré, no te preocupes…

LA CUESTION:

para a quien le interese:::

cada script se guarda en un archivo a parte:
yo al final tenía estos archivos: instalar_tabla.php, formulario_registro.php, register.php, formulario_identificacion.php, login.php y index.php

esta claro que el codigo hay que arreglarlo para hacer una web mas fluida, pero lo importate esta echo, un aplauso por ahí!!, pero lo que es ecribit tutoriales no se te da nada bien colega.

ah! y los codigos, menos lo de los formularios, se ponen antes ke nada, es decir os vais arriba del todo y le dais al intro y lo pegais ahí.

SOYS TODOS UNOS FRIKIS JODER… porque cojones no pondreís las cosas bien.

Avatar

VAYA TELAAAAA

14 de Abril de 2008 a las 2:42 pm

el codigo esta bien, no digo que no, pero el tutorial es una kaka colega, tendrías que haber explicado mejor que codigo hay que meter en cada archivo, porque al menos yo lo que es el ultimo script no tengo ni zorra donde ponerlo, pero ya buscaré, no te preocupes…

LA CUESTION:

para a quien le interese:::

cada script se guarda en un archivo a parte:
yo al final tenía estos archivos: instalar_tabla.php, formulario_registro.php, register.php, formulario_identificacion.php, login.php y index.php

esta claro que el codigo hay que arreglarlo para hacer una web mas fluida, pero lo importate esta echo, un aplauso por ahí!!, pero lo que es ecribit tutoriales no se te da nada bien colega.

SOYS TODOS UNOS FRIKIS JODER… porque cojones no pondreís las cosas bien.

Avatar

kinhack

10 de Enero de 2008 a las 12:38 pm

El contenido es exelente y muy sencillo, pero tengo un problema

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in “el archivo”

$query = mysql_query(“SELECT nick,contraseña FROM usuario WHERE nick = $nick “) ;
$lista = mysql_fetch_array($query);===>aqui esta el error

y no se por que

Gracias de antemano…

Avatar

cesar

31 de Enero de 2008 a las 5:03 pm

Todo super bien me dice has sido logeado correctamente, pero cuando voy a index me dice que no he ingresado de manera correcta y el enlace es directo no entiendo

Es decir me imprime el usuario y me dice que esta logeado y esto lo he comparado con mi base de datos que el usuario es correcto, pero cuando pasa al otro archivo la propia variable se pierde y todo es copiado exactamente igual, ya verifique y recontraverifique mil veces para que no haya error incluse hice un copiar pegar de la variable y aun asi me da mensaje de error, tiene el session_star() y todo bien

Por favor ayudaaaaaaaaaaaaaaaaaaaaa
< ?php
..........
$_SESSION["s_username"] = $row['email'];
echo "Has sido logueado correctamente ".$_SESSION['s_username']." y puedes acceder al index.php.";

Header("Location: jugar.php");

?>
jugar.php

< ?php
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'];
}
..........
?>

Avatar

Rubén

6 de Enero de 2008 a las 5:16 pm

muy bueno, pero ahi falta algo..

en la parte que dice “if($array[password] != $password) { …”

Le faltaría, if($array[password] != $password and $array[usuario] != $usuario) {..

que quiere decir “Si el array[password] no es igual a la variable password y el array[usuario] no es igual al variable $usuario, entonces..

Pero esta muy bueno, gracias..

Avatar

Gustavo

26 de Agosto de 2008 a las 7:25 pm

Como dicen por hay, yo necesito saber como hacer para ver datos de una cuenta. peor para explicar mejor lo q quiero, les dare un ejemplo:

Digamos q tengo una cuenta “X” en la cual me conecto y todo bien, pero ahora quiero ver un articulo “Y” q se encuentra en una tabla independiente de la de usuarios, hasta ahora lo tengo todo bien y me funciona. pero el problema bien cuando quiero ver varios articulos relacionados a una misma cuenta. cuando quiero ver el articulo de la cuenta “X” solo veo el primer articulo, sabiendo q en la base de datos hay mas de 1 articulo pero los demas no se muestran.

Ahora digamos q en la tabla de las cuentas y los articulos esta la variable “id” que es la q relaciona un o unos articulos con “X” cuenta. si me pueden ayudar en eso… les agradeceria.

Avatar

oC

15 de Mayo de 2008 a las 12:00 pm

Esta bien el script, aunque no especifica donde poner los archivos!!!, pero yo pude ubicarlos… Gracias por todo

Avatar

Fonso

10 de Marzo de 2008 a las 9:12 am

Muchas gracias, me ha sido muy útil ;)

Avatar

Anónimo

4 de Marzo de 2008 a las 2:06 am

pasame yu codigo yo estoy haciendo algo similar
por fis

Avatar

DIDIER

29 de Noviembre de 2007 a las 7:11 pm

ESTE AÑO MIS COMPAÑEROS DE ESTUDIOS Y YO HEMOS DISEÑADO UNA WEBSITE HECHO CON CODIGOS DE PHP, HTML Y ALGO DE JAVASCRIPT,ETC…EL HECHO ES QUE SE NOS DESAFIO AÑADIR A NUESTRO SITIO UNA OPCION DE LOGIN(USER Y PASSWORD DE USUARIOS YA REGISTRADOS…), ADEMÁS DE ESO QUE UNA SECCIÓN DE NUESTRA WEBSITE PERMITA UN SERVICIO DE DIAGNOSTICO DE SOPORTE TÉCNICO–DIRÁN COMO ASI—POR EJEMPLO:

1¿SU PC PRESENTA SONIDOS EXTRAÑOS EN SU COOLER DE SU PROCESADOR? 2¿SU LECTORA NO LEE CD’S COMO ANTES?
3¿LA OPERATIVIDAD DE SU PC POR RATOS SE VUELVE LENTA?, ETC..YES/ NO
—-(“YES” o “NO”EN RADIO BUTONS oCHECKBOX–AMBAS OPCIONES)…Y QUE AL FINAL DE ESA LISTA DE PREGUNTAS(TIPO DIAGNOSTICO DE VIDA DEL ORDENADOR O EQUIPOS DE CÓMPUTO)—SE ABRA UNA VENTANA QUE DE EL RESULTADO DEL DIAGNÓSTICO( YA SEA POSITIVO O NEGATIVO–EN EL ASPECTO QUE MEJORAS DEBE HABER EN LA PC DEL USUARIO, QUIZAS NECESIDAD DE COMPRAR NUEVAS PIEZAS POR POSIBLES PIEZAS CON FALLAS, ETC.).

Avatar

Ricardo

11 de Diciembre de 2007 a las 5:08 pm

Probablemente te falta hacer global alguna o algunas de tus variables que tienes en “conexion.php” y pueda ser que ese sea lo que te está ocacionando dolores de cabeza…

Cuando incluyes un archivo de funciones externo y requieres de usar variables que estén ahí, tienes que hacerlas globales con “global $variable”..

Por ejemplo, yo tengo un script de funciones así:


function conexcionSQL()
{
//aquí haces global la variable
global $conexion;
$conexion=mysql_connect("hostname","username","password") or die ("No se pudo conectar");
mysql_select_db("dbname",$conexion) or die ("Problemas en la selección de la base de datos");
}

Saludos, espero que te sirva…

Avatar

Seque

12 de Junio de 2008 a las 2:10 pm

Muy buena la publicacion… Gracias

Avatar

Diego Castillo Giraldo

5 de Mayo de 2008 a las 12:32 pm

Esta exelente este tutorial me funciono a la perfeccion, esto lo he querido hacer durante mucho tiempo pero hasta ahora he visto como 125 paginas, de las cuales solo esta me ha servido…

Gracias por este script.

Avatar

Krist

18 de Febrero de 2009 a las 5:12 pm

Hola nuevamente…
Me parece excelente el tutorial y además muy practico como ya lo mencioné.

Ahora quisiera consultar algo que al parecer ha quedado en el aire.
como proyecto de grado hice un website ya está casi listo le coloqué lo del login (lo hice por mera intuicion luego de ver algunos tutoriales muy enredados en otras paginas de ayuda) ahora solo me falta redireccionar a la pagina index.html de mi website además de eso quisiera restringir el acceso a ciertos contenidos, para eso tengo en la tabla login de mi base de datos un campo de Tipo de usuario pero no se como lograr la restriccion.
Lo explicaré con un ejemplo: es decir que si estás logeado como alumno no puedas ingresar a la pagina administrativa de los tutores.

Mil gracias de antemano por su pronta colaboracion.

Avatar

Gustavo

26 de Agosto de 2008 a las 12:00 am

para los q tengan el mismo problema des session_start tienen q eliminar todo lo q este antes u despues del < ?php ?>, los espacios o lo q sea.

Avatar

Guillermo Salinas

27 de Mayo de 2008 a las 2:21 pm

“VAyanse a la mierda con su tutorial
Enviado por Anónimo (no verificado) el Sáb, 04/26/2008 – 17:42.
Hijos de Puta!!!

que chucha t cres wn muchos de lo post que hay en esta area son para gente que quiere aprender pero se nota que siempre hay weones que por tener un c.i de -100
tratan de cagar las opiniones de los dmas…
me cago en ti en la concha hedionda de tu perra m,adre y en tu familia si es que tienes por que parece que no la tuvieras… yo que tu me precuparia de algo interesante antes de ser como tu que en un futuro proximo vas a ser un maldito parasito de la sociedad…

Avatar

Carlos Gaviria

27 de Febrero de 2009 a las 1:09 pm

Necesito que me ayuden con el script que permite recordar el password, en caso de olvido, donde se pide al usuario digitar un email y el password se lo envian a la cuenta de correo o que vuelva a crear un nuevo password. Muchas gracias para todos los que han construido este sitio web de mucha ayuda para los principiantes.

Avatar

Andres

27 de Septiembre de 2008 a las 12:14 am

Cuando le pongo “header(“Location: $_SESSION["s_privilegios"]“); ” a la pagina index, para redireccionar a paginas almacenadas en la base de datos, me da el error:

Parse error: syntax error, unexpected ‘”‘, expecting T_STRING or T_VARIABLE or T_NUM_STRING

Ojala me puedas orientar por que no tengo idea de que estoy haciendo mal.

Avatar

daniel

27 de Agosto de 2008 a las 5:10 pm

man falta el index la comprobacion de que esta logeado. si pudieran areglar el link que esta mal le agredeceria mucho

Avatar

Anónimo

30 de Junio de 2008 a las 3:34 pm

te falto el viva chile mierda wn ajajajjaj

Avatar

ecrayo

17 de Noviembre de 2008 a las 12:49 pm

Holas, podrias ser mas claro en el problema, como te funciona todo bien sin el index.php ???
saludos :D

Avatar

ecrayo

17 de Noviembre de 2008 a las 12:49 pm

Holas, podrias ser mas claro en el problema, como te funciona todo bien sin el index.php ???
saludos :D

Avatar

Krist

18 de Febrero de 2009 a las 5:01 pm

hola, me parece excelente el tutorial, muy practico y sin tanta teoria que usualmente tiende a confundir al neofito.
ahora bien, quisiera hacer una consulta:
lo que sucede es que no logro redireccionar a la pagina de inicio en mi website, en su ejemplo usted menciona que la variable o parametro contect describe o almacena el tiempo ke tarda en redireccionar pero no dices donde está ese fragmento del codigo.

utilizé la funcion header para redireccionar a mi pagina de inicio despues del login, pero me sale el siguiente error:

Warning: Cannot modify header information – headers already sent by (output started at C:\xampp\htdocs\PROYECTO GRADO\Login.php:26) in C:\xampp\htdocs\PROYECTO GRADO\Login.php on line 27.

no he logrado redireccionar al inicio del website, Mil gracias de antemano por su pronta ayuda

Avatar

ecrayo

9 de Julio de 2008 a las 10:14 am

lo primero es armar la primera pagina que ve el usuario, en este tutorial debes agregar en el login.php el “Cuarto Paso: Autentificación de usuarios” mas lo que dice el login.php debiese quedar algo asi

< ?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.";
}
}
}
?>

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

prueba a ver como te anda ;-)

Avatar

Anónimo

30 de Mayo de 2008 a las 1:59 pm

Cambia la linea del mensaje por:
echo “Has sido logueado correctamente “.$_SESSION['s_username'].” y puedes acceder al index.php.”

Avatar

ecrayo

9 de Julio de 2008 a las 10:21 am

Mira el tutorial es basico para que la gente aprenda, esta consulta debieses hacerlo en otra seccion, si te puedo decir que necesitas hacer un poco mas de cosas, por ejemplo crear otras tablas de datos, y asociarlos a los id de que cada usuario, o si te vas por el lado facil, a la tabla usuario le agregas mas campos y despues te traes esos datos en la pagina de ingreso de los usuarios, algo como

id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
username VARCHAR(30) NOT NULL,
password VARCHAR(20) NOT NULL,
email VARCHAR(40) NOT NULL)’,
consumos VARCHAR(40) NOT NULL)’,
nombre VARCHAR(40) NOT NULL)’,
apellidos VARCHAR(40) NOT NULL)’;

pero eso es mas arcaico, a modo crecimiento es mejor hacer tablas separadas en la base de datos.

Avatar

Anónimo

19 de Junio de 2008 a las 11:52 am

Esta bien la ciritca de código inseguro, pero anexo deberías proponer y mejorar el escript con técnicas de seguridad como encriptación de la contraseña y encapsulamiento de las consultas

Avatar

ecrayo

30 de Junio de 2008 a las 6:39 pm

Facil, solo crea otra columna que se llame privilegios en la tabla users algo como

$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)’;
privilegios VARCHAR(10) NOT NULL)’;
$result = mysql_query($query);
echo “!Tabla creada!”;

en el campo privilegios puedes agregar algun codigo o simplemente el sitio al que quieres redireccionar, por ejemplo en la tabla verias:

username : user
password : user
email : email@email.com
privilegios : sitio.html

ahora debes modificar uno de los query en la consulta SQL añadiendo el campo nuevo, algo como

$query = mysql_query(“SELECT username,password, privilegios FROM users WHERE username = ‘$username’”) or die(mysql_error());
$row = mysql_fetch_array($query);
$_SESSION["s_username"] = $row['username'];
$_SESSION["s_privilegios"] = $row['privilegios'];

y ahora en el index.php coloca:

if (isset($_SESSION['s_username'])) {
header(“Location: $_SESSION["s_privilegios"]“); //esta seccion redirecciona al sitio que este en el campo privilegios

}else{
echo “Tu no estas autentificado dirígete a login.php o registrate en register.php”;
echo $_SESSION['s_username'];
}

bueno en el campo privilegios puedes agregar un codigo en vez de una pagina directamente, pero eso queda a tu criterio

Avatar

ecrayo

30 de Junio de 2008 a las 6:44 pm

como puse por ahi mas abajo en modo anonimo, el problema se soluciona modificando el archivo php.ini en la seccion [session], por ejemplo deben dejar algo asi en el archivo

[Session]
; Handler used to store/retrieve data.
session.save_handler = files

#esta parte es donde se guardaran los archivos de la session ustedes deben
#seleccionar el directorio que ustedes quieran
session.save_path = “C:/Apache2/tmp”

session.use_cookies = 1

session.name = PHPSESSID

session.auto_start = 1

session.cookie_path = /

session.serialize_handler = php

session.gc_probability = 1
session.gc_divisor = 1000

espero que les ayude, a cuando modifican este archivo deben reiniciar el server que este ejecutando php (IIS o Apache)

Avatar

ecrayo

30 de Junio de 2008 a las 6:51 pm

Como dice el amigo anonimo, no critiquen por criticar si no van hacer un aporte, por el tema de seguridad, todos los que quieren evitar la injection sql pueden defenderse con algo asi:

function sqlsecurefield($fieldsecure) {
$fieldsecure = str_replace(“\’”,” “,$fieldsecure);
$fieldsecure = str_replace(“\”",” “,$fieldsecure);
return $fieldsecure;
}

esta funcion lo que hace va remplzar las comillas simples y dobles por espacios, con esta funcion solo deben modificar los query de

$query = mysql_query(“SELECT username,password FROM users WHERE username = ‘$username’”

y dejarlo a si

$query = mysql_query(“SELECT username,password FROM users WHERE username = ‘”.sqlsecurefield($username).”‘”);

con esto evitaran a que metan una injection sql como el mas basico que es :
‘ or 1=1 –

:)

Avatar

Anónimo

20 de Noviembre de 2008 a las 11:57 pm

muchas gracias, toda la info de esta pagina me fue muy util, ya habia batallado mucho con esto pero al fin quedo, una vez mas, gracias.

Avatar

Anónimo

30 de Junio de 2008 a las 5:20 pm

Hola, los que tienen errores en las sessiones con session_start deben configurar el archivo php.ini q se aloja en la carpeta windows o en el mismo php, dentro del archivo está la sección [session] donde deben activarlo y configurarlo

Avatar

ecrayo

1 de Diciembre de 2008 a las 7:22 am

Lo que nesecitas es un poco mas avanzado de lo normal, igual te suguiero lo siguiente:

- en la tabla de la Base de datos de usuarios, pon un campo más que guarde la fecha.
- en el index.php puedes tirar un query de update cada vez que el login sea exitoso y poner la fecha en el nuevo campo.
- y para determinar quien no se ha logueado en x tiempo lo que podrias hacer es otra pagina php que solo revise la tabla usuario y vea la columna de fecha y la compare con x dias, si se cumple que el periodo del campo fecha es muy largo se desactive o borre la cuenta.
- la parte de arriba solo puedes hacerlo con alguna tarea, si tienes el sitio corriendo en windows, en programador de tarea pone que todos los dias se ejecute el nuevo archivo php, si lo tienes en linux coloca la sentencia en el cron, ambos anteponiendo php, ejemplo: “php caducausuario.php”

con eso abra una tarea que revise los usuarios, como te dije arriba es mas avanzada tu consulta, mira en google y busca como sumar fechas en php y lo podras sacar sin problemas lo que necesitas.

Avatar

giselle

29 de Junio de 2008 a las 3:08 pm

hola esta bueno todo y me sirve mucho! quería seber ¿como hago para que vaya a otras paginas?

osea en el ejemplo muetra con un hecho q es correcta la contraseña y se logueo correctamente, si quiero puedo poner en vez del echo header (“Location: otrapag.php”); pero mi pregunta seria ¿como hago que vaya a distintas pags?

ej:
usuario—-> que vya a pag de usaurio
administrador—>a otra pag dif
moderadore—>a otra pag dif
supongo q se dbe verifiacr con un id pero como hago?

saludos y graciass!

Avatar

gise

29 de Junio de 2008 a las 3:09 pm

hola esta bueno todo y me sirve mucho! quería seber ¿como hago para que vaya a otras paginas?

osea en el ejemplo muetra con un hecho q es correcta la contraseña y se logueo correctamente, si quiero puedo poner en vez del echo header (“Location: otrapag.php”); pero mi pregunta seria ¿como hago que vaya a distintas pags?

ej:
usuario—-> que vya a pag de usaurio
administrador—>a otra pag dif
moderadore—>a otra pag dif
supongo q se dbe verifiacr con un id pero como hago?

saludos y graciass!

Avatar

Anónimo

10 de Julio de 2008 a las 11:19 am

Para los que quieran redireccionar la pagina tambien pueden usar donde el 0 es la cantidad de tiempo que quieren para redireccionar a los usuarios.

Avatar

Anónimo

16 de Junio de 2008 a las 6:57 pm

Pues vereis tengo un problema con session-start, cuando logueo me aparece el mensaje:

Warning: session_start() [function.session-start]: Cannot send session cookie – headers already sent by (output started at D:\AppServ\www\prueba_logueo\syssecundario\login.php:10) in D:\AppServ\www\prueba_logueo\syssecundario\login.php on line 11

Este mensaje por lo que estube leyendo es por q ya se enviaron las cabezeras y supuestamente tengo q poner session_start(); al principio del script. Pues bien mi codigo empieza asi :

session_start();
….

Tengo la funcion session_start(); en la primera linea del script y me sigue saliendo y no comprendo por que. Si alguien me puede echar una mano se lo agradeceria mucho.

Avatar

ecrayo

21 de Agosto de 2008 a las 9:17 am

Hi, prueba algo a si

< ?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'];
header("Location: loginexitoso.php");
}
}
}
?>

y en loginexitoso.php pon esto

< ?php
if (isset($_SESSION['s_username'])!="") {
?>


echo “Has sido logueado correctamente “.$_SESSION['s_username'].” y puedes acceder al index.php.”;


< ?php
}else{
header("Location: login.php"); //esto es solo por seguridad
}
?>

siendo content=”5; la cantidad de segundos a esperar para redireccionar a otra pagina

Avatar

Carlos hernandez

20 de Febrero de 2009 a las 7:20 pm

hola soy nuevo en esto de mysql y php y la verdad este tuto esta super perron
ya hice mi primer login
bueno mi pregunta es, como puedo hacer para que la informacion que tengo en mi pagina no se vea si no eres usuario registrado solo que los usuarios puedan ver su contenido esta es mi web http://www.pinkynet.com.mx/login/members.php
ya puse en codigo de redireccion si la persona no esta logeada pero cuando coloco el usuario y contrasena me regresa de nuevo a colocar el usuario y contrasena y no me muestra nada este es el codigo que puse bajo else header(“Location: members.php”);
ayuda por fas

Avatar

pepe

1 de Noviembre de 2008 a las 4:38 pm

Mi pagina index está en html y en la misma pagina yo te el USUARIO con su caja de texto y su PASSWORD con su caja de texto y lo hice de esta manera: (este es el formulario donde tengo el Usuario y Password):

NOTA: Te aclaro amigo que la llamada a la pagina “validar_usuario.php” si debe estar en php, o sea que debes poner este archivo en tu server, para mi caso mi pagina index.html esta en un servidor que no tiene posibilades de correr codigos php no asi las otras las cuales controlan las bases de datos mysql que si lo estan, te recomiendo si no tienes un server free que uses http://www.miarroba.com donde vas a obtener espacio free hasta 500 megas y poder administrar tus bases con My Admin SQL. SUERTE
———————————————————–

LOGIN
Usuario:
Password:
 

—————————————————-

Avatar

Anónimosss

21 de Octubre de 2008 a las 3:34 pm

holas a todos, bueno el pregunta es lo siguiente, lo que sucede es k funiona muy bien el login cuando esta sin el index.php, es decir funciona solo en su misma pagina, pero cuando utlizo el post del form y le digo k vaya a index.php aparentemente hace como si el dato la sesion estuviera en blanco, y obviamente me sale el mensaje que el usuario no se ha logeado cuando los datos son correctos…..alguien tiene algo parecido por alli???…una manito no caeria mal…gracias…..

Avatar

Jrp

29 de Septiembre de 2008 a las 12:04 pm

Buenas,

Tengo un sitio web creado en index.html y dentro de otra página creado una área de acceso Login y password. Mi duda es la siguiente.

1.- Necesito en el index.html crear ahí el acceso login y password, y no en otra página como lo tengo actualmente. Si por favor me pudiera indicar el código que debo utilizar para página. Ya me lo solicitarlo que vaya en la página principal.

Necesito urgente su respuesta, mucha gracias y la página es muy completa los felicito.

Avatar

Christian

13 de Agosto de 2008 a las 10:49 pm

Quisiera pedirles un favor grandisimo.

Hola que tal? me llamo Christian y queria darle las gracias y la enorabuena por los tutoriales que tiene en el internet. Son muy buenos particularmente para gente que esta empezando como yo.

Tambien tengo una pregunta aver si usted me la puede resolver.
Tengo una pagina web ya creada, para acabarla solo me falta algo que es muy importante para mi. Quiero hacer una pagina para que la gente se registre (nombre de usuario, nombre, apellidos, telefono, email y unos cuantos registros mas, etc… PERO NO QUIERO NINGUN CAMPO PARA CONTRASENA) y otra donde ingresen su nombre de usuario y contrasena para que puedan entrar a la pagina. Hasta ahi todo normal, lo dificil viene aqui.
En la pagina de registracion necesito que ingresen todos los campos requeridos para la registracion y que cuando hagan click en enviar pase lo siguiente:

1. Supongo que toda la informacion sera enviada a una base de datos en el servidor.
2. Utilizado un generador de contrasenas, automaticamente una contrasena debe de ser enviada a la direccion de correo electronico insertada en la pagina de registracion por la persona que se quiere registrar al instante.
3. La persona accedera a su email y utilizara la contrasena enviada automaticamente por el generador de contrasenas y su nombre de usuario para entrar en mi pagina (login). El proposito de esto es porque quiero que la gente ingrese un email que exista.
4. Cuando la persona quiera debo de poner un boton para que pueda cerrar la sesion (logout).

No se si me explique bien pero necesito saber todos los codigos (html and php o los que se necesiten) y explicaciones paso a paso como hacerlo igual que usted lo ensena en sus videos que es facilisimo de seguir. Utilizo dreamweaver y simp edit que es como note pad ++.

Por favor le ruego que si tiene un poco de tiempo me ayude, llevo 3 semanas tratando y tratando, buscando en el internet pero no encuentro como hacerlo, solo encontre codigos php para crear un generador de contrasenas (espero que le sea de ayuda).

(codigo PHP) crear un generador de contrasenas aleatorias.

1. // PassStrength should be 0 to 4
2. function RandomPassword($PassLength = 6, $PassStrength = 0)
3. {
4. $Vowels = ‘aeuy’;
5. $Consonants = ‘bdghjmnpqrstvwxz’;
6. if ($PassStrength > 0)
7. {
8. $Consonants .= ‘BDGHJLMNPQRSTVWXZ’;
9. }
10. if ($PassStrength > 1)
11. {
12. $Vowels .= “AEUY”;
13. }
14. if ($PassStrength > 2)
15. {
16. $Consonants .= ‘23456789′;
17. }
18. if ($PassStrength > 3)
19. {
20. $Consonants .= ‘@#$%’;
21. }
22.
23. $PasswordString = “”;
24. $AltChar = time() % 2;
25. srand(time());
26. for ($i = 0; $i < $PassLength; $i++)
27. {
28. if ($AltChar == 1)
29. {
30. $PasswordString .= $Consonants[(rand() % strlen($Consonants))];
31. $AltChar = 0;
32. }
33. else
34. {
35. $PasswordString .= $Vowels[(rand() % strlen($Vowels))];
36. $AltChar = 1;
37. }
38. }
39. return $PasswordString;
40. }
41.
42. // Strong password, 6 characters long
43. echo RandomPassword(6, 4);
Tambien vi el buscador que hay en la pagina http://www.videotutoriales.us y tambien estube buscando como agregar uno a mi pagina pero no encontre un tutorial de como hacerlo. Quiero uno privado que solo busque en mi pagina y no en la web, no quiero los gratuitos de google ni ninguno de eso. aver si me puede ayudar tambien en como crearlo por que estube tratando y no pude.

muchas gracias por todo.

Avatar

Gaby

13 de Octubre de 2008 a las 3:54 pm

Excelente tutorial. Lo adapté a mis necesidades y funciona espectacular.
¡Muchas gracias!

Avatar

Anónimo

30 de Julio de 2008 a las 6:20 pm

…..y como realizo el codigo para modificar el registro si al ingresar los datos me equivoco o si me pide direccion o telefono y cambio de direccion y numero y quiero actualizar los datos.
Yo estoy realizando una pagina de venta de productos y si mi usuario cambia de direccion y numero y quiere seguir siendo usuario necesita aactualizar sus datos para asi yo enviarle sus productos. por favor ayudame…….

Avatar

Antónimo ;)

25 de Junio de 2008 a las 8:40 am

Excelente código, no es muy profesional pero me sirvió de mucho.
Gran trabajo ;)

Avatar

dadabit

17 de Julio de 2008 a las 2:26 pm

gracias…sirvio de mucho este codigo
para un proyecto de
programacion web ke
ando haciendo…..
pero lo adapte con
el uso de iframes
saludos

Avatar

WILTON MARTINEZ

5 de Julio de 2008 a las 11:40 pm

como redireccionar despues de loguearse
en el ejemplo me muestra:
Bienvenido a mi sitio has ingresado como wiltonxp, gracias por la visita!

como hago para en vez de esa pagina me muestre una redireeccion de otra

gracias¡¡¡

Avatar

JP

6 de Julio de 2008 a las 12:19 am

Mi pregunta es…….para hacer el logout necesito algun boton supongo….. como lo configuro y donde lo pongo???

Eso…..

Me ha servido mucho el php que diste….mil gracias……..

Avatar

EDWIN LAMADRID

5 de Julio de 2008 a las 2:46 pm

Hola, ojala alguien me pueda ayudar con esto, ya aplique el sistema de logueo y me funciona perfectamente, pero ahora lo que quiero hacer es que la aplicacion solo me muestre los datos correspondientes de cada usuario, po ejemplo estoy realizando una aplicacion web de asociados y se necesita que por Internet los socios puedan ver sus estados de cuentas, datos personales, cotizacion y reserva para eventos, de que manera puedo que la misma aplicacion al momento de loguearse cada socio me muestre automaticamente la informacion del socio que se acabo de loguear, datos personales, consumos etc.

ojala alguien me pueda ayudar con esto, gracias.

Avatar

keyvin

27 de Julio de 2008 a las 12:28 am

de pana eres el mejor esta muy bien explicado y me sirvio espero que subas uno con mas proteccion salu2

Avatar

Anónimo

2 de Julio de 2008 a las 10:03 am

Hola pues mira aver quien me puede aydar :( :( es que estoy amargado ya de buscar tanto por google, de hacer esto de hacer lo otro y pues nada o consigo nada…
Pues mira el rpoblema es este:
me descarge los 4 archivos necesarios para hacer eso del tutorial, ya modifique ela rchivo connetc.php con los datos de mios, ahora que debos hacer cone sos archivos?

Avatar

Apokalyptica79

16 de Noviembre de 2008 a las 6:36 pm

Hola no soy experta, apenas si soy usuaria y empezando con php pero, si no me equivoco tu error es en efecto “session_start()” como te indica, esa función debe ser la primer línea, o sea debería de ser de la siguiente forma:

< ?php

session_start();
$dbhost='mihost';
$dbusername='mibase';
$dbuserpass='miclave';
$dbname='mibase';

?>

Probalo y contanos como te fue, espero que pases y dejes buenas noticias.
Éxitos.

Avatar

Marvin Abrego

27 de Noviembre de 2008 a las 11:47 am

Como le hago para tener vencimiento de cuentas de usuarios, es decir en el logueo debo validar si un usuario no ha cambiado su contraseña en X días, como se puede validar esto?

Gracias por sus aportes

Avatar

skanda

18 de Junio de 2008 a las 1:04 am

Miren yo ya lo probé y la verdad es que soy super inexperta para esto, pues apenas voy empesando a base de ensallo y erroooor…XD pero si funciona
muchos tienen problema con la simple conexion, RECUERDEN QUE tienen que tener activo el servidor Apache e introducir bien lo de la contraseña, usuario y base de datos….ESTE ES MI CASO

$dbhost=’localhost’;
$dbusername=’root’;
$dbuserpass=’cc32′;
$dbname=’fjr’;

//session_start();

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

pero notarán que tube que OMITIR lo de session_start();
ESTO FUE PORQUE, me probocaba error…simple: QUITENLO Y CHEKEN SI LES FUNCIONA..
GRACIAS A QUIEN HIZO EL CODIGO
BYE

Avatar

ecrayo

9 de Julio de 2008 a las 10:24 am

eso esta en unos articulos mas abajo, pero en vez de poner echo “Bienv….” solo pone

header(“Location: sitio.html”);

Avatar

ecrayo

9 de Julio de 2008 a las 10:45 am

mmmm, segun el ejemplo puedes hacer un link a una pagina ejemplo

salir

y en la pagina logout.php dejas el script

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

con eso te va desloguear y redireccionar a index nuevamente o a la pagina que tu quieras.

Avatar

ecrayo

9 de Julio de 2008 a las 10:48 am

donde dice salir es un link de a href

< a href ="logout.php" > salir < / a>

y en la pagina logout.php dejas el script

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

Avatar

Anónimo

12 de Julio de 2008 a las 12:35 pm

hola tengo una consulta, como lo haces para verificar en cada pagina q el usuario esta activo?

te dejo mi mail, si podes me agregas: maximiliano_001@hotmail.com

Avatar

Isaura

30 de Julio de 2008 a las 5:51 pm

hola tu codigo esta bueno segui adelante pese a los malos comentarios que te enviaron nunca faltan los egoistas y malas personas pero estoy segura que ayudas a mucha gente que tiene problemas por ejemplo a mi tus codigos me sirvieron mucho gracias…….

Avatar

frodrigoa

4 de Agosto de 2008 a las 6:19 pm

Hola como estan…..copue todos los archivos de sistema de autentificación (login, password) PHP u me funcionaron bien…solo que me falta la redireccion antes de que salga la pagina en blanco con la respuesta del “echo”, quiero que la respuesta salga en la pagina principal en html y no lo puedo hacer….

ruego ayyudaaaa

saludos

Avatar

Victor Rodriguez

9 de Enero de 2009 a las 11:21 pm

Una vez confirmado el usuario en en la porcion del script

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.”;
}

COMO almacena en memoria los datos de los otros campos de la tabla, en caso de que la tabla tuviese otros campos como NOMBRE, TELEFONO, DIRECCION, etc.. Estan esos datos dentro de $_SESSION… Como los extraigo?

Avatar

DeLux

26 de Febrero de 2009 a las 12:52 pm

No podrian poner los archivos para descargar
como para editar y agregarlos
que el tuto esta muy bueno peor no me funciona,
si estarian para descargar creo que seria mejor
Bueno eso
Adios

Avatar

DeLux

26 de Febrero de 2009 a las 12:52 pm

No podrian poner los archivos para descargar?
como para editar y agregarlos
que el tuto esta muy bueno peor no me funciona,
si estarian para descargar creo que seria mejor
Bueno eso
Adios

Avatar

carlos

4 de Enero de 2009 a las 10:31 pm

hola muy buen tuto, lo estoy haciendo pero me dice q no tengo la tabla creada este error
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/diariode/public_html/login/register.php on line 27

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/diariode/public_html/login/register.php on line 30
Table ‘diariode_login.users’ doesn’t exist

y yo tengo la tabla creo la cree desde mysql en mi servidor, la tabla tiene un nombre enparticular q debo poner o que debo hacer gracias.. ojala me puedan responder..

Avatar

WILSON

25 de Febrero de 2009 a las 6:38 pm

quisiera que alguien me ayude a crear un codigo para generar seciones en php para que personas autorizadas ingresen a determinados lugares GRACIAS…..

Avatar

Anónimo

28 de Febrero de 2009 a las 11:37 am

hola, no me deja insertar registros nuevos, no me sale nada, el login si que me va. Que hago mal???. Gracias. Saludos.

< ?php
// Configura los datos de tu cuenta
$dbhost="localhost";
$dbusername="root";
$dbuserpass="root";
$dbname="solo-tenis";

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

// Preguntaremos si se han enviado ya las variables necesarias
if (isset($_POST["usuario"])) {
$usuario = $_POST["usuario"];
$password = $_POST["password"];
$nombre = $_POST["nombre"];
$apellidos = $_POST["apellidos"];
$direccion = $_POST["direccion"];
$cp = $_POST["cp"];
$poblacion = $_POST["poblacion"];
$provincia = $_POST["provincia"];
$pais = $_POST["pais"];
$telefono = $_POST["telefono"];
$email = $_POST["email"];
// Hay campos en blanco
if($usuario==NULL|$password==NULL|$nombre==NULL|$apellidos==NULL|$pais==NULL|$email==NULL) {
echo “Hay algun campo obligatorio 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 usuario FROM personas WHERE usuario=’$usuario’”);
$username_exist = mysql_num_rows($checkuser);

$checkemail = mysql_query(“SELECT email FROM personas WHERE email=’$email’”);
$email_exist = mysql_num_rows($checkemail);

if ($email_exist>0|$usuario_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 personas(usuario, password, nombre, apellidos, direccion, cp, poblacion, provincia, pais, telefono, email) VALUES(‘$usuario’,'$password’,'$nombre’,'$apellidos’,'$direccion’,'$cp’,'$poblacion’,'$provincia’,'$pais’,'$telefono’,'$email’)”;
mysql_query($query) or die(mysql_error());
echo “El usuario $usuario ha sido registrado de manera satisfactoria.”;
}
}
?>

Avatar

Anónimo

19 de Febrero de 2009 a las 6:37 pm

Buen día. Necesito que en un centro de computo, los alumnos al momento de entrar a win2 se autentifiquen en un dase de datos que tengo (mysql) esto con el fin de tener el control de quien y a que hora se conecto, claro a demás de restringir el uso solo a personal autorizado. Alguno que me ilumine please…

Gracias y un saludo

Avatar

drcharrua

3 de Febrero de 2009 a las 3:04 am

QUIERO SIMPLEMENTE COLOCAR UN INGRESO DE MIEMBROS CON ID Y PASSWORD, TENGO MI HOSTING EN GODADDY EL CUAL ME PROVEE MySQL ESCRIBANME PARA DARME EL PRECIO Y EN CUANTO LO TERMINAN

JULIO G RICCA

Avatar

Anónimo

11 de Enero de 2009 a las 4:32 pm

En un post anterior alguien menciona que no vendria nada mal utilizar md5($pass) Aqui les dejo un enlace a la documentacion de md5 en PHP para que vean un poco más acerca de esto y vean algunas técnicas para tener un poco mas de seguridad. Aunado a esto, hay que recordar que se debe utilizar validación para evitar Injection, y esto se debe hacer SIEMPRE que el usuario pueda escribir un dato que tenga algo que ver con la base de datos.

Avatar

Anónimo

11 de Enero de 2009 a las 4:32 pm

Avatar

ecrayo

14 de Febrero de 2009 a las 11:36 am

holas, si son paginas .php, todo se basa en el servidor web que lo ejecuta, este debe saber interpretar el lenguaje, si estas haciendo pruebas con una pagina local busca en internet WINDOWS + APACHE + PHP, WINDOWS + IIS + PHP o LINUX + APACHE + PHP, etc… pero ese es tu problema, el servidor debe ejecutar tu lengua de programacion.

Avatar

ecrayo

14 de Febrero de 2009 a las 11:48 am

No entendi mu bien la pregunta :P , pero si te refieres a las paginas en PHP no te debieses preocupar por que es codigo que solo interpreta el server y no el cliente, pero tambien se encuentran programas que encriptan por temas de seguridad de paginas web.

Si te refieres a la seguiridad de los documentos, eso es solo con programas, pero generalmente todos estos traen metodos de proteccion, en el caso de los pdf si tienes el programa de adobe el acrobat PDF Writer te da la opcion de ponerle password a tu documento, igual los documentos de office, etc.. y como puse mas arriba, tambien ahi programas que hacen lo mismo.

:D

Avatar

Ever

11 de Febrero de 2009 a las 5:00 pm

Buen dia,
bueno, soy nuevo en esto, pero el caso es que ya logre hacer la tabla, ya hice una forma de registro y esta funcionando, inclusive ya puedo hacer login, ahora solo me falta saber como proteger las paginas. Parte del contenido protegido, son manuales en pdf, en ese caso como se protegen. A ver si alguien me puede ayudar.
Anexo el codigo de login:
< ?
// Configura los datos de tu cuenta
$dbhost='remote-mysql4.server.net';
$dbusername='everd99_admin';
$dbuserpass='Admin1234';
$dbname='everd99_admin';

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 "El password no fue enviado";
}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'];
//agregado
setcookie("username",$username,time()+3600);
setcookie("password",$password,time()+3600);
//agregado
header ("Location: index.php");
}
}
}
?>

Avatar

Moyado

20 de Febrero de 2009 a las 11:51 pm

existe algun riesgo de que spam con este sistema?
hoy en dia hay muchos bots que cazan este tipo de formularios
buen tutorial

Avatar

ecrayo

17 de Enero de 2009 a las 1:59 pm

es la funcion $_SESSION es la que hace la magia, tan solo debes crear un valor con session y le almacenas un dato para luego ser leido.
con esto le ingresas valores a session :

$_SESSION['nombre'] = $row['username'];
$_SESSION['telefono'] = $row['telefono'];
$_SESSION['direccion'] = $row['direccion'];

luego puedes traer los datos desde cualquier parte del sitio, algo a si:
echo “Bienvenido”. $_SESSION['nombre'] .”, tu telefono es “.$_SESSION['telefono'].” y vives en “. $_SESSION['direccion'];

puedes crear todos los valores que quieras.

Avatar

ecrayo

17 de Enero de 2009 a las 2:02 pm

puede ser que creaste mal la tabla en mysql o simplemente tienes el string de conexion mal, por el segundo error dice que no existe la tabla.

Avatar

Edwin

29 de Enero de 2009 a las 1:52 am

Hola, Gracias por sus tutoriales, pero soy algo bueno y quiero saber donde hago lo de Configuración de tablas, pensaba que es una pagina .php pero creo que no, porque si es una pagina no me anda, porfavor expliquenmen esa cosita, Gracias desde ante manos y tambien queria preguntar como lo inserto en mi pagina .html?

Avatar

Griselda Herrera

3 de Febrero de 2009 a las 7:23 am

Hola, quería por favor si alguien puede responderme a mi email lo siguiente: Quiero ver películas online o TV online, no quiero descargarlas ni usar programas excepto saber si me sirve para verlas bien el internet explorer 7 o windows 2008 server por el tema velocidad, tengo explorer común y mozilla 3 pero las películas se cortan cada rato porque las va cargando (bufler) no me importa que se corte un poco, pero cada rato… en fin no se si es normal, las películas las veo muy bien eso si, quiziera alguna sugerencia o solución por favor a mi email, les quedo super agradecida desde ya. Muchos saludos a todos.
Griselda.

Avatar

gochi

17 de Febrero de 2009 a las 3:08 pm

Buenas! Mi problema es que no se como hacer el llamado a otra pagina despues de logearme, como haria para que despues que el usuario y contraseña sean correptos entrar a otra pagina, en mi caso seria entrar al menu principal de un sistema… Para ello es que uso el sistema de logeo. Espero puedan ayudarme! Gracias!

Avatar

Ever

17 de Febrero de 2009 a las 9:11 pm

Bien, me queda claro lo de la proteccion de los documentos, pero la cuestion es que despues del login, no se que sigue, supongamos que la siguiente pagina (la lagina protegida) va a tener links a los archivos.
por ejemplo, al loguearte, te deja entrar a un catalogo de fotos, el cual es, catalogo.html, como hago para que no invoquen directamente el catalogo desde la barra de direcciones?

Saludos.

Avatar

Anónimo

12 de Abril de 2009 a las 10:14 am

muy bueno tu poste gracias

Avatar

Sergio Quintero

22 de Mayo de 2009 a las 8:44 pm

Hola, gracias por tu tutorial, he realizado en base tuyo un sistema de registro propio y he quedado muy contento con el resultado.
Saludos!

Avatar

Sergio Quintero

22 de Mayo de 2009 a las 8:44 pm

Hola, gracias por tu tutorial, he realizado en base tuyo un sistema de registro propio y he quedado muy contento con el resultado.
Saludos!

Avatar

Anónimo

29 de Mayo de 2009 a las 5:31 am

yo quiero hacer lo mismo si es de tipo 1 que entre en tal seccion i si es de tipo 2 que entre en otra, si lo solucionaste te agradeceria que me enviaras como hacerlo, graciass draudecarrill@hotmail.com

Avatar

ssssssssss

7 de Octubre de 2009 a las 3:39 am

sssssss

Avatar

Edgar

7 de Octubre de 2009 a las 8:14 pm

Muchisimas gracias!! me has sacado de un gran apuro, esta muy claro y muy practico. Funciona a la perfeccion!

Avatar

Alexis

17 de Diciembre de 2009 a las 9:44 pm

Muy bueno el ejemplo me ayudo mucho a entender el uso de sesiones se agradece el aporte ahora tengo una duda es posible usar sesiones y cookies juntas por ejemplo una enbebida dentro de otra.. gracias

Dejar un comentario

Patrocinadores

¿Interesado en patrocinar TuFunción?

Suscripción

Primera División