Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/09/2010, 07:51
Avatar de Markgus
Markgus
 
Fecha de Ingreso: junio-2010
Mensajes: 152
Antigüedad: 13 años, 10 meses
Puntos: 5
aplicacion de sesiones en php

Hola les comento mi problema hice un registro de usuarios en php con sesiones guiandome de aqui xxxhttp://ayuda.fotopex.com/programacion/php/hacer-login-de-usuarios-con-php-y-mysql/xxx
y pues si funciona al momento de registrar o al hacer el login entra ala pagina "prohibida.php" el problema es que cuando copio el url me entra normalmente ala pagina sin necesidad de que me logue, mi pregunta es como solucionar esto les pondre el codigo por el momento del login, validar usuario y de la pagina prohibida pienso que con eso es suficiente para que me puedan ayudar

login .php
<form action="validar_usuario.php" method="post">
Usuario:<input type="text" name="username" size="20" maxlength="20" />
<br />
Password:<input type="password" name="password" size="10" maxlength="10" />
<br />
<input type="submit" value="Ingresar" />
</form>

validar_usuario.php
<?php
session_start();

mysql_connect('host','usuario','contrasenia')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('DB')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
function quitar($mensaje)
{
$nopermitidos = array("'",'\\','<','>',"\"");
$mensaje = str_replace($nopermitidos, "", $mensaje);
return $mensaje;
}
if(trim($HTTP_POST_VARS["username"]) != "" && trim($HTTP_POST_VARS["password"]) != "")
{

$username= strtolower(htmlentities($HTTP_POST_VARS["username"], ENT_QUOTES));
$password = $HTTP_POST_VARS["password"];
$result = mysql_query('SELECT password, username FROM usuarios WHERE username=\''.$username.'\'');
if($row = mysql_fetch_array($result)){
if($row["password"] == $password){
$_SESSION["k_username"] = $row['username'];
echo 'Has sido logueado correctamente'
.$_SESSION['k_username'].' <p>';

header ("Location: prohibida.php");


}else{
echo 'Password incorrecto';
}
}else{
echo 'Usuario no existente en la base de datos';
}
mysql_free_result($result);
}else{
echo 'Debe especificar un usuario y password para poder ver el contenido';
}
mysql_close();
?>

hasta aqui toto bien la duda esta en la pagina prohibida.php
si pongo esto al inicio

<?php session_start();
echo 'Bienvenido, ';
if (isset($_SESSION['k_username'])) {
echo '<b>'.$_SESSION['k_username'].'</b>.';
echo '<p><a href="logout.php">Logout</a></p>';
}else{
echo '<p><a href="login.php">Login</a></p>
<p><a href="registrar.php">Registrar</a></p>';
}
?>
<html>
<head></head>
<body>
//
</body>
<html>


incluyendo el archivo o poniendo el codigo en el body entra ala pagina solo copiando el url, digamos que este codigo lo agarra solo como un mensaje por ejemplo si copio el url sin loguearme entra ala pagina solo el mensaje de bienvenida se queda sin el nombre del usuario pero se puede ver el contentido y anduve leyendo por ahi que con un la funcion empty() pero pues los ejemplos todos estan para un solo usuario, como adapto esto a un sistema de registros cn una bd de mysql??

Les agradeceria mucho su ayuda y comprension

Última edición por Markgus; 08/09/2010 a las 07:58