Foros del Web » Programando para Internet » PHP »

Paginas privadas solo visibles si estas conectado

Estas en el tema de Paginas privadas solo visibles si estas conectado en el foro de PHP en Foros del Web. ¿Con php y sin cookies como puedo hacer para que en una pagina solo puedas ver determinadas secciones si has iniciado sesión y que se ...
  #1 (permalink)  
Antiguo 03/03/2008, 02:14
Avatar de Aimarejada  
Fecha de Ingreso: abril-2006
Mensajes: 207
Antigüedad: 18 años
Puntos: 0
Paginas privadas solo visibles si estas conectado

¿Con php y sin cookies como puedo hacer para que en una pagina solo puedas ver determinadas secciones si has iniciado sesión y que se mantenga la sesion iniciada hasta que te desconectes?

Última edición por Aimarejada; 03/03/2008 a las 04:20
  #2 (permalink)  
Antiguo 03/03/2008, 02:38
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Paginas privadas solo visibles si estas conectado

con otro login con los datos del user en otra tabla, no en la principal
  #3 (permalink)  
Antiguo 03/03/2008, 02:56
Avatar de Aimarejada  
Fecha de Ingreso: abril-2006
Mensajes: 207
Antigüedad: 18 años
Puntos: 0
Re: Paginas privadas solo visibles si estas conectado

No entiendo lo que me quieres decir pero lo que queria es que una vez que inicies sesion puedas ver la zona privada, y tu sesion se mantenga hasta que te desconectes, una vez echo eso ya no podras ver la zona privada a no ser que vuelvas a iniciar sesion, todo esto de la forma mas simple que se pueda hacer.

Yo lo pense hacer ayudandome de la base de datos pero no lo veo nada claro como aplicar la idea.
  #4 (permalink)  
Antiguo 03/03/2008, 09:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Paginas privadas solo visibles si estas conectado

Es necesario el uso de cookies, o de otra forma usa sesiones y manda el session_id vía URL en cada link de tu pagina y formulario, así podrás mantener un control/rastreo de cual es tu id de sesión y podrás usar session_start y las variables de $_SESSION.

Saludos.
  #5 (permalink)  
Antiguo 03/03/2008, 16:23
Avatar de Aimarejada  
Fecha de Ingreso: abril-2006
Mensajes: 207
Antigüedad: 18 años
Puntos: 0
Re: Paginas privadas solo visibles si estas conectado

Esto es lo que he echo gracias a algun codigo que vi por el foro:

Código:
<?php
// Configura los datos de tu cuenta
$dbhost='localhost';
$dbusername='root';
$dbuserpass='';
$dbname='lovemeet';

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 usuario,contrasena FROM usuarios WHERE usuario = '$username'") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['contrasena'] != $password) {
echo "Login incorrecto";
}else{
$query = mysql_query("SELECT usuario,contrasena FROM usuarios WHERE usuario = '$username'") or die(mysql_error());
$row = mysql_fetch_array($query);
$_SESSION["s_username"] = $row['usuario'];
include("index.php");
}
}
}
Resuminedo; le digo que compruebe si la contraseña y el usuario son validos y si es asi que se vaya al index pero ahi ya no se como mantener al usuario logeado hata que el quiera desconectarse.

En el index lo que hice fue decirle:

Código:
<?php	
	if (isset($_SESSION['s_username'])) {
echo "<div id='menu'>
	    <br>
		<h1><a href='foro.php'>Foro</a></h1>
		<br>
		<h1><a href='buscador.php'>Busca tu media naranja</a></h1>
	</div>
	
	<div id='contenido'>";  
}else{
echo "<div id='menu'>
	    <br>
		<h1><a href='foro.php'>Foro</a></h1>
	</div>
	
	<div id='contenido'>";

}  
	
?>
Y asi si el usuario esta conectado que enseñe el enlace a la zona privada y si no lo esta que no lo haga pero claro apartir de aqui se supone que mediante sesiones tengo que conseguir que se mantengan esos datos y cuando se desconecte el usuario borrarlos para que el enlace a la zona privada ya no lo vean, pero no se como hacerlo.
  #6 (permalink)  
Antiguo 03/03/2008, 16:42
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Paginas privadas solo visibles si estas conectado

para mantener las variables de sesion has de comenzar tu script de index.php asi:

Código PHP:
<?php    

session_start
();


    if (isset(
$_SESSION['s_username'])) {
echo 
"<div id='menu'>
        <br>
        <h1><a href='foro.php'>Foro</a></h1>
        <br>
        <h1><a href='buscador.php'>Busca tu media naranja</a></h1>
    </div>
    
    <div id='contenido'>"
;  
}else{
echo 
"<div id='menu'>
        <br>
        <h1><a href='foro.php'>Foro</a></h1>
    </div>
    
    <div id='contenido'>"
;

}  
    
?>
session_start();
  #7 (permalink)  
Antiguo 04/03/2008, 03:22
Avatar de Aimarejada  
Fecha de Ingreso: abril-2006
Mensajes: 207
Antigüedad: 18 años
Puntos: 0
Re: Paginas privadas solo visibles si estas conectado

Tal y como lo tengo puesto añadiendo la variable de sesion encima del head que me has dicho una vez que me conecto me recuerda y me sale siempre la zona privada, pero al darle a desconectarse donde tengo puesto:

Código:
<?php unset($_SESSION['s_username']); ?>

Cuando voy a otra pagina aparezco de nuevo como conectado y no se ya como hacer que no salga como conectado despues de borrar la sesión.
  #8 (permalink)  
Antiguo 04/03/2008, 03:42
Avatar de Aimarejada  
Fecha de Ingreso: abril-2006
Mensajes: 207
Antigüedad: 18 años
Puntos: 0
Re: Paginas privadas solo visibles si estas conectado

Ya lo he solucionado con este codigo en la pagina desconectarse:

Código:
<?php    
session_start();
$_SESSION = array();
header("Location: index.php");
?>
  #9 (permalink)  
Antiguo 04/03/2008, 06:25
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Paginas privadas solo visibles si estas conectado

tambien te serviria este



Código PHP:
<?php
session_start
();
// Borramos toda la sesion
session_destroy();

?>
<SCRIPT LANGUAGE="javascript">
location.href = "principal.php";
</SCRIPT>
en tu escript no lo entiendo, convierte tus variables de sesion en un array, pero nio se si asi se destruye la sesion
  #10 (permalink)  
Antiguo 04/03/2008, 06:59
Avatar de Sensorium  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo-Uruguay
Mensajes: 207
Antigüedad: 16 años, 9 meses
Puntos: 7
Re: Paginas privadas solo visibles si estas conectado

Hola, es como dice jaronu, debes destruir la session para que no te recuerde en la zona privada, eso se hace con session_desroy();
  #11 (permalink)  
Antiguo 04/03/2008, 08:46
Avatar de Aimarejada  
Fecha de Ingreso: abril-2006
Mensajes: 207
Antigüedad: 18 años
Puntos: 0
Re: Paginas privadas solo visibles si estas conectado

Lo acabo de probar y va perfecto gracias.
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 03:47.