Foros del Web » Programando para Internet » PHP »

Problemas con la session

Estas en el tema de Problemas con la session en el foro de PHP en Foros del Web. el problema que tengo es que cuando tu accedes por medio del login a una determinada parte de la pagina(area de compras) y te vas ...
  #1 (permalink)  
Antiguo 15/03/2010, 05:08
 
Fecha de Ingreso: marzo-2010
Mensajes: 79
Antigüedad: 14 años, 1 mes
Puntos: 0
Problemas con la session

el problema que tengo es que cuando tu accedes por medio del login a una determinada parte de la pagina(area de compras) y te vas luego a otra (ver carrito) no puedo volver atras por medio de un enlace(volver a zona de compras) porque la del login es la que me validaba la sesion y sino me manda al index, alguna idea para que al dar a volver a zona de compras reenvie la sesion al area de compras, muchas gracias
  #2 (permalink)  
Antiguo 15/03/2010, 05:30
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Problemas con la session

Tienes mal entendido el concepto de sesiones me parece. En una sola pagina de login es donde creas la variable de sesion, por ejemplo $_SESSION["idusuario"]=$valor_tomado_de_la_base_de_datos;

Y luego en las paginas donde quieres que solo se navegue mediante login pones:

Código PHP:
Ver original
  1. if (intval($_SESSION["idusuario"])==0) {
  2. header("location:index.php");exit();
  3. }

Recuerda que una variable de sesion solo la creas tu con php, no puede modificarla el usuario de ningun modo, por lo que con comprobar que dicha variable tiene algun valor que no sea cero, sera que esta logueado.
  #3 (permalink)  
Antiguo 15/03/2010, 05:36
 
Fecha de Ingreso: marzo-2010
Mensajes: 79
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Problemas con la session

problamente entonces tenga todo mal, pero de momento he conseguido que un usuario registrado solo pueda acceder a la pagina cuando haces login

podrias alguien revisar este codigo haber que os parece y me decis que esta mal??

<?php
session_start();
mysql_connect('localhost','root','root')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('tiendadiscos')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["usuario"]) != "" && trim($HTTP_POST_VARS["password"]) != "")
{
$usuario = strtolower(htmlentities($HTTP_POST_VARS["usuario"], ENT_QUOTES));
$password = $HTTP_POST_VARS["password"];
$result = mysql_query('SELECT password, usuario FROM clientes WHERE usuario=\''.$usuario.'\'');
if($row = mysql_fetch_array($result)){
if($row["password"] == $password){
$_SESSION["k_username"] = $row['usuario'];


}else{
header("Location:index.php");
}
}else{
header("Location:index.php");
}
mysql_free_result($result);
}else{
header("Location:index.php");
}
mysql_close();
?>

<html>
<head>
<title>RKO 2.0 DISCOS</title>
<link rel="stylesheet" type="text/css" href="style.css"/>
</head>

<body>
<div id="container">
<div id="header">
<div id="logo">
<a href="index.php">RKO 2.0 DISCOS</a>
</div>
<div id="menu">
<a href="index.php">Home</a>&nbsp; &nbsp; &nbsp;<a href="novedades.php">Novedades</a
</div>
</div>

<div id="main">
<div id="left">
<div class="block">
<h2>Estas en la mejor web para comprar música online</h2>
<?php>
$_SESSION["k_username"] = $row['usuario'];
echo 'Bienvenido '.$_SESSION['k_username'].' <p>';

?>
</br>
</br>
Solo tienes que elegir el disco que quieras y lo recibirás en 1 día
<div class="clear"></div>

</div>
<div class="clear"></div>
</div>

<div id="right">
<div class="block">
<!--- codigo creatupropiaweb.com---><table border="0" id="t1"><tr><td><a href="http://www.creatupropiaweb.com"><param name=wmode value=transparent><embed style="" src="http://www.creatupropiaweb.com/Recursos_Flash/FirstChannelClock.swf" wmode="transparent" type="application/x-shockwave-flash" height="160" width="160"><param name=wmode value=transparent></embed></a></TD></tr></table><!--- codigo creatupropiaweb.com--->
</br>
<a href='logout.php'>Cerrar sesión</a><br>
<a href='carrito.php'>Mostrar carrito</a>


</div>
</div>
<?php
include 'conectar.php';
//Seleccionar productos
$sql="SELECT * FROM PRODUCTOS";
$result=mysql_db_query("tiendadiscos",$sql);


echo "<table border='1'>";
echo

"<tr><td>Carátula</td><td>Artista</td><td>Albúm</td><td>Género</td><td>Precio</td><td>Unidades</

td><td>Al Carrito</td></tr>";

while( $campo=mysql_fetch_array($result))
{
echo "<tr><td><img src='images/$campo[foto]' width='150' height='150'></td><td> $campo[artistacd] </td><td> $campo[nombrecd] </td><td> $campo[generocd] </td><td>$campo[preciocd] €

</td><td><input name='unidades' type='text' ></td><td><input type='submit' value='Añadir al

carrito'><input type='hidden' name='cod' value='$campo[codcompra]'></td></tr>";
}

?>

<div class="clear">

</div>
<div id="footer">
&copy; Copyright 2010 Jesus & Dani &nbsp;<span class="separator"></span> &nbsp;
</div>
</div>
</html>

Etiquetas: session
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 06:08.