Foros del Web » Programando para Internet » PHP »

Principiante: Verificacion de codigo para encontrar error

Estas en el tema de Principiante: Verificacion de codigo para encontrar error en el foro de PHP en Foros del Web. Hace un tiempito que estoy dedicado a aprender php para implementarlo en un sitio propio, debo confesar que aprendi por ahora lo basico y realize ...
  #1 (permalink)  
Antiguo 20/05/2006, 12:47
 
Fecha de Ingreso: diciembre-2001
Ubicación: Mar del Plata
Mensajes: 201
Antigüedad: 16 años
Puntos: 0
Principiante: Verificacion de codigo para encontrar error

Hace un tiempito que estoy dedicado a aprender php para implementarlo en un sitio propio, debo confesar que aprendi por ahora lo basico y realize paginas simples, pero juntando parte de lo que se y leyendo tutoriales y el manual, logre uno de mis cometidos, el tener una seccion en mi web privada para los clientes, se ingresa a una page en ella se pide el name y pass y si esta ok le muestro el contenido y puede ir a otras pages protegidas tambien, lo cual esta echo a traves del uso de session, hasta alli todo ok para mis pretenciones pero el echo es que no puedo dar con lo siguiente quiero que luego de entrar por la page principal (validacion mediante) y al utilizar links para ir a otras protegidas, al volver a la principal no me vuelva a pedir la validacion, en la page principal primero verifica unas variables para ver si se logueo y si es correcto inicia una session que es verificada en las siguientes pages, pero si de estas quiero enlazar a la primera nuevamente me pide que me loguee y quiero evitar eso, se que tengo que utilizar tambien el leer la session para ello pero lo intente de varias formas y no he podido ver el contenido de la primera page sin volver a loguearme. Perdon por lo extenso aqui les dejo el code de la principal, y las demas pages. Desde ya muy agradecido con quien pueda ayudarme!!!

index.php
Código PHP:
<?
$user
="fer"// AQUI ENTRE " " PONER EL NOMBRE DEL USUARIO
$pass="qwerty"// AQUI ENTRE " " PONER LA CLAVE REQUERIDA
?>

<? // hacer que no queden las paginas en el chache o memoria
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // fecha antigua
header("Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT"); // modificado siempre
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Pragma: no-cache"); // HTTP/1.0 ?>

<html>
<head>
<title>Bienvenido a su Página Privada en www.fad.com.ar 14</title>
</head>
<body bgcolor="#999999" text="#000000" link="#FFFFFF" vlink="#000000" alink="#333333" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<font size="2" face="Verdana, Arial, Helvetica, sans-serif">

<? // Verifico las variables $usuario y $password, si estan vacias es porque todavía no se logueo
if ($usuario=="" && $password=="")
{
$valido="alogearse"// Entonces creo la variable $valido con el valor "aloguearse"
}
else
{
$valido="user_pass_incorrectos"// Creo la variable $valido pero con el valor "user_pass_incorrectos"
?>
<? 
if ($valido=="alogearse"// Entonces si las variables estaban vacias muestro el FORM para loguearse
?>

<!-- FORMULARIO PARA INGRESO DE USUARIO Y CLAVE APUNTANDO A ESTA MISMA PAGE-->
<form method="POST" action="index.php">
Usuario : <input type="text" name="usuario" size="10"><br>
Password : <input type="password" name="password" size="10"><br>
<input type="submit" value="Enviar" name="privado"></form>
<!-- ------------------------------------------------------------------------>

</font>
</body>
</html>

<? }
else 
// Si por el contrario tenían algún valor procedo a validarlas
?>

<? // Comparamos a ver si son correctos
if ($usuario==$user && $password==$pass)
{
$valido="si";
}
else
{
$valido="no";
?>

<? if ($valido=="si"// Si el Usuario y la Clave fueron correctas muestro EL CONTENIDO QUE SE QUIERE PROTEGER
?>

<? session_start(); // Defino una sesion y guardo datos
    
session_register("autentificado");
    
$autentificado "SI";
?>

A continuación todo el contenido de nuestra Página Privada
<p>BIENVENIDO A LA PAGINA PRIVADA</p>
<br>

<a href="pagina_protegida_1.php">Enlace</a>
<br><br>
<a href="salir.php">Salir</a>

<? // Caso contrario muestro un ERROR DE LOGUEO
else
?>

<br>
USUARIO O CONTRASEÑA INCORRECTA <br> Recuerde que se distingue MAYUSCULAS de minusculas<br><br>
<a href="index.php">VOLVER</a>

<? ?>
<? 
?>
</font>
</body>
</html>
pagina_protegida_1.php
Código PHP:
<?include ("seguridad.php");?>
<html>
<head>
<title>Aplicación segura</title>
<script language="JavaScript" type="text/JavaScript">
<!--
function formButtonFever(formName,action){
    var myString = "document."+formName+"."+action+"();";
    eval(myString);
    }
//-->
</script>
</head>

<body bgcolor="#999999" text="#000000" link="#FFFFFF" vlink="#000000" alink="#333333" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <br>
Aplicación segura <br>
<br>
<a href="index.php">Volver</a><br>
<br>
<a href="salir.php">Salir</a><br>
</font> 
<form name="form1" method="post" action="index.php">
  <input name="usuario" type="hidden" id="usuario" value="fer">
  <input name="password" type="hidden" id="password" value="qwerty">
  <input name="imageField" type="image" onClick="formButtonFever('form1','submit')" src="../EBAPHP/EN/IMAGES/about_off.jpg" width="95" height="22" border="0">
</form>
</body>
</html>
seguridad.php

Código PHP:
<?
//TOMO VARIABLES DE SESION SOBRE LA AUTENTIFICACION
session_register("autentificado");

//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO
if ($autentificado != "SI") {
    
//si no existe, envio a la página de autentificacion
    
header("Location: index.php");
    
//ademas salgo de este script
    
exit();
}    
?>
__________________
:) Fernando Dichiera (:
[email protected]
  #2 (permalink)  
Antiguo 23/05/2006, 14:11
 
Fecha de Ingreso: diciembre-2001
Ubicación: Mar del Plata
Mensajes: 201
Antigüedad: 16 años
Puntos: 0
Pues nada todavia siguo sin poder sacarlo !!!
__________________
:) Fernando Dichiera (:
[email protected]
  #3 (permalink)  
Antiguo 26/05/2006, 14:24
 
Fecha de Ingreso: diciembre-2001
Ubicación: Mar del Plata
Mensajes: 201
Antigüedad: 16 años
Puntos: 0
Help me!!
__________________
:) Fernando Dichiera (:
[email protected]
  #4 (permalink)  
Antiguo 26/05/2006, 15:15
 
Fecha de Ingreso: julio-2002
Ubicación: Capital Federal
Mensajes: 66
Antigüedad: 15 años, 5 meses
Puntos: 0
No te falta un session_start en la parte de arriba del index.php?
Código PHP:
<? 
session_start
();
$user="fer"// AQUI ENTRE " " PONER EL NOMBRE DEL USUARIO 
$pass="qwerty"// AQUI ENTRE " " PONER LA CLAVE REQUERIDA 
?> 

<? // hacer que no queden las paginas en el chache o memoria 
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // fecha antigua 
header("Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT"); // modificado siempre 
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 
header("Pragma: no-cache"); // HTTP/1.0 ?> 

<html> 
<hea...
Tambien, no es buena idea validar un usuario en la misma página que tiene el formulario, tal vez si lo separás en dos archivos veas mejor tu problema: de index.php -> si valida va a valida.php y volves a la pagina anterior desde ahi.
__________________
Adrián (@ RHCP I Wanna Be Funky Flea)
  #5 (permalink)  
Antiguo 26/05/2006, 15:22
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
De acuerdo

Checa este seccion de tu código

<? session_start(); // Defino una sesion y guardo datos
session_register("autentificado");
$autentificado = "SI";
?>


Antes de session_start() no puede haber ninguna salida al explorador ya sea con <html> o echo "". Y session_register() ya no se usa mas desde php 4.1 se hace uso de $_SESSION[] ,para mayores referencia respecto a sesiones te pido que cheques este link http://www.php.net/manual/en/ref.session.php

Saludillos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:12.