Autor Tema: Logueo  (Leído 4850 veces)

Desconectado Zeuser

  • PHPer@
  • **
  • Mensajes: 75
  • Karma: 1
    • Ver Perfil
Re: Logueo
« Respuesta #15 en: 18 de Octubre de 2006, 15:15:19 pm »
Vale, muchas gracias naveda. Ya me funciona a la perfección ;)

Salu2 :D

Comunidad PHPeros

Re: Logueo
« Respuesta #15 en: 18 de Octubre de 2006, 15:15:19 pm »

Desconectado Raken

  • PHPero Avanzado
  • ****
  • Mensajes: 297
  • Karma: 30
  • Sexo: Masculino
    • Ver Perfil
Re: Logueo
« Respuesta #16 en: 18 de Octubre de 2006, 15:42:57 pm »
Citar
Vosotros, como haceis un logueo ( sin mysql ni bd ni nah) que poniendo la contraseña correcta i el nick, se redireccione a otra web , otro link....

En vez de redireccionar, yo lo mostraría tras confirmar los datos de LOGIN:

<?php
if (isset($_POST["usuario"]) && isset($_POST["pass"]) && $_POST["enviar"]) {

if (
$_POST["usuario"] == "zeuser" && $_POST["pass"] == "test") {

//==========================================================
// Aquí tú redireccionas, yo lo que haría sería poner directamente los contenidos
//==========================================================


} else {
echo 
"Error: Nombre de usuario y/o contraseña incorrectos";
exit; 
//El exit mejor cuando falla el login ;)
}




De esta forma, por ejemplo, evitas que un usuario entre directamente en index.htm sin pasar por la página de login, entre otras cosas.

Si en estos contenidos hubiesen distintas secciones y hubiese que cargar la página de nuevo, se olvidaría de los campos $_POST, por lo que podrías guardarlos en una cookie.

setcookie ("usuario"$_POST[&#39;usuario&#39;]);
setcookie ("pass"$_POST[&#39;pass&#39;]); 


O podrías hacer uso de las sesiones.

www.php.net/session


salu2 ;)
Raken - Moderador para PHP y HTML

Desconectado Pc-Admin

  • PHPer@ Fijo
  • ***
  • Mensajes: 118
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
Re: Logueo
« Respuesta #17 en: 18 de Octubre de 2006, 18:08:34 pm »
Pido disculpas si e molestado, pero almenos cuando ayais avanzado recurrireis a ese code :):)
Todo en esta vida, es practicar.

Desconectado Zeuser

  • PHPer@
  • **
  • Mensajes: 75
  • Karma: 1
    • Ver Perfil
Re: Logueo
« Respuesta #18 en: 19 de Octubre de 2006, 21:51:07 pm »
<?php 
if (isset($_POST["usuario"]) && isset($_POST["pass"]) && $_POST["enviar"]) { 

if (
$_POST["usuario"] == "zeuser" && $_POST["pass"] == "test") { 

echo &
#39;<script>window.location = "index.html";</script>&#39;; 
} else { 
echo 
"Error: Nombre de usuario y/o contraseña incorrectos"
exit; 
//El exit mejor cuando falla el login ;)



?>

Bien, este es el codigo que tengo actualmente y me funciona a la perfeccion. Pero tengo una duda y no se por donde empezar. Como hago para que no se pueda ir directamente al index.html? Osea que se tenga que pasar por el logueo, y no se pueda acceder sin poner los datos.

Tengo que poner un index.php no? Y en este index.php crear un script para esta funcion, pero nose por donde empezar.

Salu2 :D

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: Logueo
« Respuesta #19 en: 20 de Octubre de 2006, 16:14:56 pm »
Hola,

Crea esta session antes de redirigir el usuario a "index.php"

$_SESSION
[user] = $_POST[usuario];

Y añade esto al principio del codigo:
session_start();
El resto ya te lo imaginaras....
En el index.php pones if($_SESSION[user]) {
....

Salu2!!
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado Zeuser

  • PHPer@
  • **
  • Mensajes: 75
  • Karma: 1
    • Ver Perfil
Re: Logueo
« Respuesta #20 en: 20 de Octubre de 2006, 19:30:39 pm »
Los dos codigos que me has dado los pongo en el login.php o al index .php?


Salu2 :D

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: Logueo
« Respuesta #21 en: 22 de Octubre de 2006, 18:35:43 pm »
Al principio de login.php
Añade esto:
session_start();
Y debajo de:
if ($_POST["usuario"] == "zeuser" && $_POST["pass"] == "test") { 

Añade esto:
$_SESSION[user] = $_POST[usuario];


Luego en el index.php tendrias que poner:
if($_SESSION[user]) {
/* CODIGO QUE SE EJECUTARIA SI ESTA LOGUEADO */
} else {
/* CODIGO QUE SE EJECUTARIA SI NO ESTA LOGUEADO */
}


Salu2!
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado Zeuser

  • PHPer@
  • **
  • Mensajes: 75
  • Karma: 1
    • Ver Perfil
Re: Logueo
« Respuesta #22 en: 23 de Octubre de 2006, 13:50:43 pm »
Cuando añado al principio del login.php :

session_start();

Me da el siguiente error: Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/virtual/sitio107740/www/login.php:9) in /home/virtual/sitio107740/www/login.php on line 10

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/virtual/sitio107740/www/login.php:9) in /home/virtual/sitio107740/www/login.php on line 10

 
 a que es devido?


Por otro lado, sino añado el session_start()
Me funciona bien el loguin , pero al abrirse el index.php me muestra siempre el mensaje de else, en este caso es:

No tinees acceso a esta pagina, pero ademas de mostrarme esto, me muestra todo el index.php cosa que no quiero.

<?
if($_SESSION[user]) {
echo 
"Index";
} else {
echo 
"No tienes acceso a esta página";
}
?>


Siempre me sale el else, pese a poner los datos, el else me meustra lña web, cosa que no quiero, y como hago que al poner echo "Index", se vea el  index.php ( una vez solucionado el echo que solo lee el else)

Salu2 :D
« Última modificación: 23 de Octubre de 2006, 13:57:27 pm por Zeuser »

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: Logueo
« Respuesta #23 en: 23 de Octubre de 2006, 17:23:22 pm »
Eso es devido a que no inicia la session, por ese modo ni la crea ni nada, pero no devuelve errores porque el codigo en si no esta mal.

El error que te da es devido a que antes del codigo session_start(); has añadido ya sea un include, una variable o un echo. Son las causas mas comunes

Salu2!!
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado Zeuser

  • PHPer@
  • **
  • Mensajes: 75
  • Karma: 1
    • Ver Perfil
Re: Logueo
« Respuesta #24 en: 23 de Octubre de 2006, 17:52:19 pm »
No hay nada delante del session_start();

Aqui va el codigo:

<?
session_start
(); 

if (isset(
$_POST["usuario"]) && isset($_POST["pass"]) && $_POST["enviar"]) { 

if (
$_POST["usuario"] == "zeuser" && $_POST["pass"] == "test") { 

$_SESSION[user] = $_POST["usuario"] ;

echo &
#39;<script>window.location = "index.php";</script>&#39;; 
} else { 
echo 
"Error: Nombre de usuario y/o contraseña incorrectos"
exit; 
//El exit mejor cuando falla el login ;)



?>

Y el index.php:

<?
if($_SESSION[user]) {
echo 
"Panel de Admin";
} else {
echo 
"No tienes acceso a esta página";
}
?>


Como hago porque si voy directo al index.php me diga: no tienes acceso a esta pagina ( y la pagina no se muestre).
Y si me logueo y pongo los datos correctos ponga: panel de admin, y ademas se muestre la pagina.


Salu2 :D

Conectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re: Logueo
« Respuesta #25 en: 23 de Octubre de 2006, 20:13:05 pm »
Pues segun veo tal y como esta puesto debería funcionar ;)
Por favor, leete las Normas


Desconectado Raken

  • PHPero Avanzado
  • ****
  • Mensajes: 297
  • Karma: 30
  • Sexo: Masculino
    • Ver Perfil
Re: Logueo
« Respuesta #26 en: 23 de Octubre de 2006, 20:16:58 pm »
Y no será que el archivo que contiene éste código...

<?
session_start
();

if (isset(
$_POST["usuario"]) && isset($_POST["pass"]) && $_POST["enviar"]) {

if (
$_POST["usuario"] == "zeuser" && $_POST["pass"] == "test") {

$_SESSION[user] = $_POST["usuario"] ;

echo &
#39;<script>window.location = "index.php";</script>&#39;;
} else {
echo 
"Error: Nombre de usuario y/o contraseña incorrectos";
exit; 
//El exit mejor cuando falla el login ;)
}

}
?>



...es el que estás incluyendo en la otra página?

Raken - Moderador para PHP y HTML

Desconectado Zeuser

  • PHPer@
  • **
  • Mensajes: 75
  • Karma: 1
    • Ver Perfil
Re: Logueo
« Respuesta #27 en: 24 de Octubre de 2006, 23:43:53 pm »
Lo estoy poniendo bien, o almenos digo yo:

<?
session_start
(); 

if (isset(
$_POST["usuario"]) && isset($_POST["pass"]) && $_POST["enviar"]) { 

if (
$_POST["usuario"] == "zeuser" && $_POST["pass"] == "test") { 

$_SESSION[user] = $_POST["usuario"] ;

echo &
#39;<script>window.location = "index.php";</script>&#39;; 
} else { 
echo 
"Error: Nombre de usuario y/o contraseña incorrectos"
exit; 
//El exit mejor cuando falla el login ;)



?>


Y el index.php:

<?
if($_SESSION[user]) {
echo 
"Panel de Admin";
} else {
echo 
"No tienes acceso a esta página";
}
?>

 Seguro ;)

Pero una cosa Naveda, puede  que lo veas correcto, ya que el script no da error, pero no consigo lo que quiero.
Con este codigo consigo que si pongo los datos correctos me vaya al index, se muestre, pero con el mensaje : No tienes acceso a esta página
Si no pongo los datos correctas, perfecto:Nombre de usuario y/o contraseña incorrectos

Si voy directo al index.php en lugar de no mostrarse el index, este se muestra y ademas se me ve el mensaje: No tienes acceso a esta pagina ( cosa correcta, pero el index no deveria mostrarse)

Lo que tengo que conseguir:

Si pongo los datos correctos, que se muestre el index y la frase Panel de Admin.

Si voy directo al index.php, que NO se muestre el index.php y la frase: NO tienes acceso a esta pagina.

Salu2 :D
« Última modificación: 24 de Octubre de 2006, 23:49:10 pm por Zeuser »

Desconectado Raken

  • PHPero Avanzado
  • ****
  • Mensajes: 297
  • Karma: 30
  • Sexo: Masculino
    • Ver Perfil
Re: Logueo
« Respuesta #28 en: 25 de Octubre de 2006, 00:09:49 am »
exit ("No tienes acceso a esta página"); 
Raken - Moderador para PHP y HTML

Desconectado Zeuser

  • PHPer@
  • **
  • Mensajes: 75
  • Karma: 1
    • Ver Perfil
Re: Logueo
« Respuesta #29 en: 25 de Octubre de 2006, 15:49:47 pm »
He usado lo tuyo raken y ya hemos avanzado.
Ahora si voy directo al index.php no se muestra la web, pero si pongo los datos correctos en el login tampoco.
Osea, no lee que he incluido los datos en el logueo.php
Porque?

Y otra cosa, no inclutyo el session start(); que sino me da error sin motivo aparente :S
Hace falta añadirlo? Porque me da error :S


Si pongo los datos correctos y no me muestra el index.php no sera a causa que dentro del index.php no hay esa session, sino que esa esta en otro archivo? ( en este caso el login.php)
« Última modificación: 25 de Octubre de 2006, 15:55:22 pm por Zeuser »