Comunidad de diseño web y desarrollo en internet online

como ocultar informacion y que se vea solo si esta logueado

Citar            
MensajeEscrito el 20 Ago 2009 04:42 pm
tengo la duda de ocultar infmormacion que solo los usuarios registrados y devidamente leogueados puedan ver tengo un codigo que al iniciar sesion lo redirecciona pero eso no es lo que quiero, quiero que al iniciar sesion muestre lo que esta oculto para no tener que redireccionarlo a otra web porque tendria que hacer todo de nuevo

tengo un formulario que al colocar usuario y password lo envia a entrar.php y este es el codigo que tengo

Código PHP :

// Conectar a la base de datos 
mysql_connect ($dbhost, $dbusername, $dbuserpass); 
mysql_select_db($dbname) or die('No se puede seleccionar la base de datos'); 

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, haz Click ".'<a href="javascript:history.back(1)"> 
Aqui</a>'." para regresar"; 
}else{ 
$query = mysql_query("SELECT username,password FROM usuarios WHERE username = '$username'") or die(mysql_error()); 
$data = mysql_fetch_array($query); 
if($data['password'] != $password) { 
header("Location:error_usuario.php"); 
}else{ 
$query = mysql_query("SELECT username,password FROM usuarios WHERE username = '$username'") or die(mysql_error()); 
$row = mysql_fetch_array($query); 
$_SESSION["s_username"] = $row['username']; 

header("Location: usuarios_reg/principal.php");  


una vez autenticando el usuario y la pass lo redirecciona hacia otra pagina que hice aparte de esta que es uruarios_reg/principal.php
pero lo que quiero es que se quede en la misma pagina donde coloque el usuario y pass, que oculte eso de inicio de sesion y muestre bienvenido usuario e informacion etc etc...

no se si alguien me puede ayudar
gracias de antemano

Por cher1_7

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 20 Ago 2009 06:45 pm
A ver si entendí. Lo que quieres es que si el visitante no es un usuario logueado entonces muestre el formulario para hacerlo y si sí es un usuario logueado entonces muestre otro contenido siempre usando un solo archivo .php ¿entendí bien?.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 20 Ago 2009 08:27 pm
exacto asi es como quiero hacerlo
cuando el usuario no este logueado muestre el formulario para iniciar sesion y si esta logueado muestre otro contenido como: bienvenido (usuario), mi informacion, cerrar sesion
algo asi
lo que pasa es que tendo otra pagina y tuve que hacer uno para loguearse y cuando se loguea lo mando a otra web donde ahi si muestra todo lo que quiero, pero ya no lo quiero asi porque estoy haciendo el doble de trabajo
no se si me explico

DriverOp escribió:

A ver si entendí. Lo que quieres es que si el visitante no es un usuario logueado entonces muestre el formulario para hacerlo y si sí es un usuario logueado entonces muestre otro contenido siempre usando un solo archivo .php ¿entendí bien?.

Por cher1_7

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 21 Ago 2009 03:51 am
Sí, te explicas bien. Y es tan facil como hacer algo así:

Código PHP :

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
/* Quiere decir que el usuario ya pasó por el formulario, entonces evaluar los valores de $_POST y eventualmente loguearlo */
}
else {
/* Quiere decir que el usuario pretende ingresar sus datos de login, entonces mostrar el formulario apropiado */
}


Algo más elaborado sería establecer una variable bandera que te indique si el usuario hizo POST (hizo clic en el botón "enviar" del frmulario) o bien es un recién llegado o bien los datos de login son erróneos. Más o menos así:

Código PHP :

$try = ""; // intenta logease?

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  $try = "post";
  if (DatosCorrectos(@$_POST['username'],@$_POST['password'])) { $try = "loggedin"; }
}

if ($loggeado == "loggedin") {
 /* Mostrar contenido solo para usuarios logueados correctamente */
  exit; // No necesitas ir más que hasta acá.
}
if ($loggeado == "post") {
 /* Mostrar mensaje que los datos son erróneos */
}
/* Mostrar formulario */


En la función DatosCorrectos pon todo el proceso de acceso a la base de datos y tal, devolviendo true o false según sean los datos correctos o no. Eso es todo.

El código HTML puedes ponerlo con include() para no mezclar todo.

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.