Foros del Web » Programando para Internet » PHP »

[consulta] sesion + mostrar campo

Estas en el tema de [consulta] sesion + mostrar campo en el foro de PHP en Foros del Web. Hola a todos nuevamente, luego de un tiempo ausente, tengo una duda que me surgio, quiero hacer lo siguiente: Tengo una pagina donde muestro productos, ...
  #1 (permalink)  
Antiguo 21/05/2009, 09:35
 
Fecha de Ingreso: marzo-2008
Mensajes: 171
Antigüedad: 16 años, 1 mes
Puntos: 0
[consulta] sesion + mostrar campo

Hola a todos nuevamente, luego de un tiempo ausente, tengo una duda que me surgio, quiero hacer lo siguiente:

Tengo una pagina donde muestro productos, en los cuales NO se muestra el precio, yo quiero que se muestre, SOLAMENTE si el usuario ha iniciado sesion en la pagina (con su user y pass).

Si no inicio sesion, que se muestren todo como está ahora, pero sin el precio.

Como deberia encararse esto, imagino:

if(sesion iniciada)
echo "precio"


Alguien que me de una mano?

La idea es hacer una carrito de compras, disponible solo si estás logueado.
Esto seria el primer paso, luego viene la parte de la tabla temporal y el envio de la misma, pero bueno, para unas horas mas adelante.

Un beso grande y espero puedan ayudarme.

Agus.
  #2 (permalink)  
Antiguo 21/05/2009, 10:18
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
Respuesta: [consulta] sesion + mostrar campo

Pues es tal cual lo indicas en tu logica, compruebas si tienes la variable de sesión e imprimes por ejemplo:
Código php:
Ver original
  1. if ($_SESSION['loggedIn'] === true) {
  2.       echo "precio";
  3. }

Saludos.
  #3 (permalink)  
Antiguo 21/05/2009, 10:48
 
Fecha de Ingreso: febrero-2007
Mensajes: 309
Antigüedad: 17 años, 1 mes
Puntos: 16
Respuesta: [consulta] sesion + mostrar campo

ay ay ay! a leer tutoriales! :P

Por ejemplo:

programacion.com/php/tutorial/php/
webestilo.com/php/php00.phtml

Suerte! y a leer :P
  #4 (permalink)  
Antiguo 21/05/2009, 10:58
 
Fecha de Ingreso: marzo-2008
Mensajes: 171
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: [consulta] sesion + mostrar campo

Hice el login con el DW:

LOGIN.PHP
Código PHP:
<?php require_once('Connections/colecciones.php'); ?>

<?php
if (!function_exists("GetSQLValueString")) {
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  
$theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

  
$theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? "'" doubleval($theValue) . "'" "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}
}
?>
<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
  
session_start();
}

$loginFormAction $_SERVER['PHP_SELF'];
if (isset(
$_GET['accesscheck'])) {
  
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset(
$_POST['textfield'])) {
  
$loginUsername=$_POST['textfield'];
  
$password=$_POST['textfield2'];
  
$MM_fldUserAuthorization "";
  
$MM_redirectLoginSuccess "dpa_nt_users.php?IDProducto=248&idt=5&IDModelo=1125&tipo=A";
  
$MM_redirectLoginFailed "login.php";
  
$MM_redirecttoReferrer false;
  
mysql_select_db($database_colecciones$colecciones);
  
  
$LoginRS__query=sprintf("SELECT user, pass FROM usuarios WHERE user=%s AND pass=%s",
    
GetSQLValueString($loginUsername"-1"), GetSQLValueString($password"text")); 
   
  
$LoginRS mysql_query($LoginRS__query$colecciones) or die(mysql_error());
  
$loginFoundUser mysql_num_rows($LoginRS);
  if (
$loginFoundUser) {
     
$loginStrGroup "";
    
    
//declare two session variables and assign them
    
$_SESSION['MM_Username'] = $loginUsername;
    
$_SESSION['MM_UserGroup'] = $loginStrGroup;

        

    if (isset(
$_SESSION['PrevUrl']) && false) {
      
$MM_redirectLoginSuccess $_SESSION['PrevUrl'];    
    }
    
header("Location: " $MM_redirectLoginSuccess );
  }
  else {
    
header("Location: "$MM_redirectLoginFailed );
  }
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<form id="form1" name="form1" method="POST" action="<?php echo $loginFormAction?>">
  <label>
  <input type="text" name="textfield" />
  </label>
  <label>
  <input type="text" name="textfield2" />
  </label>
  <label>
  <input type="submit" name="Submit" value="Enviar" />
  </label>
</form>
</body>
</html>

Luego, inclui en la pagina que quiero que se vea:


Código PHP:
<?php if (isset($_SESSION['MM_Username'])) {
echo 
$row_producto['IDProducto'];
echo 
'<a href="salir.php ">Salir</a>';

else { 
echo 
'<a href="login.php ">Login</a>'; }?>


El problema es que SIEMPRE me muestra "LOGIN" , hago el login correcto, me redirecciona, pero nunca muestra el PRECIO (en este caso row_producto['IDProducto'])
  #5 (permalink)  
Antiguo 21/05/2009, 11:08
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
Respuesta: [consulta] sesion + mostrar campo

Llamaste a session_start() en tu segunda pagina?

Saludos.
  #6 (permalink)  
Antiguo 21/05/2009, 11:54
 
Fecha de Ingreso: marzo-2008
Mensajes: 171
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: [consulta] sesion + mostrar campo

Ahi está. era eso que me habia olvidado al principio de la pagina! Muchas gracias.

Ahora, si cierro el browser, la sesion queda iniciada, y tampoco caduca despues de X tiempo, esto podria hacerse?
  #7 (permalink)  
Antiguo 21/05/2009, 11:59
 
Fecha de Ingreso: diciembre-2007
Mensajes: 131
Antigüedad: 16 años, 4 meses
Puntos: 6
Respuesta: [consulta] sesion + mostrar campo

Cita:
Iniciado por MadKat Ver Mensaje
Ahi está. era eso que me habia olvidado al principio de la pagina! Muchas gracias.

Ahora, si cierro el browser, la sesion queda iniciada, y tampoco caduca despues de X tiempo, esto podria hacerse?
Con el uso de cookies es posible. Al iniciar la session tendrias que fijarte si existe dicha cookie, y si no existe, no la creas.
  #8 (permalink)  
Antiguo 21/05/2009, 13:31
 
Fecha de Ingreso: marzo-2008
Mensajes: 171
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: [consulta] sesion + mostrar campo

Muchas gracias por las respuestas!

Ahora, les hago otra consulta acá para no crear otro tema. Estoy haciendo (como quizás pudieron deducir) un carrito de compras.

Estuve viendo como crear tablas temporales, pero lo que no pude encontrar es como acceder a ellas, ya que si lo hago de la forma tradicional, me da error de que la tabla no pertenece a la base de datos.

ASI LA CREO
Código PHP:
$conexion_tmp mysql_connect(host,user,pass);
mysql_select_db(db$conexion_tmp);

# TABLA TEMPORAL    
$query_create "create temporary table pedido(id INT NOT NULL AUTO_INCREMENT, species varchar(30) NOT NULL, primary key(id))";
$res_create mysql_query($query_create$conexion_tmp); 
Y donde deberia crearla? Cuando el usuario hace el login?

Para verla cuando hago: "SELECT * FROM pedido"; tira el error que mencioné antes.

Como hago para acceder, agregar datos y visualizar?

Esta bien plantear el carrito de compras de esta forma? Existe otra forma?
  #9 (permalink)  
Antiguo 21/05/2009, 14:16
 
Fecha de Ingreso: diciembre-2007
Mensajes: 131
Antigüedad: 16 años, 4 meses
Puntos: 6
Respuesta: [consulta] sesion + mostrar campo

Por que no usar el array $_SESSION para guardar los datos de la 'compra' en vez de una tabla temporal?
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 13:40.