Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-06-2006
Alexis De la Cr Alexis De la Cr is offline
Miembro
 
Registrado: may 2006
Ubicación: Puebla
Posts: 124
Poder: 19
Alexis De la Cr Va por buen camino
Arrays como Variables de Sesion

Estimados colegas del foro:

Aqui molestandolos con un problema que tengo. Requiero programar un carrito de compras, para ellos requiero utilizar un array como variable de seion. el problema es que por mas que intento introducir datos al arreglo no puedo hacerlo.

Código PHP:
$_SESSION['id_carr'] = array();
 
 
$_SESSION['id_carr'][1] = $_GET['id'];//deseo que el arreglo empieze en 1 y no en cero 
le buscado por varios metodos, pero nada de nada.

Quee stoy haciendo mal??

este tipo de carrito ya lo habia programado, pero haciendo session register(), y todo eso, pero el nuevo servidor no me acepta este tipo de programacion.

Gracias por la ayuda

Alexis de la Cruz
Puebla Mexico
Responder Con Cita
  #2  
Antiguo 01-06-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Si pones

$_SESSION['id_carr'] = array();

cada vez pues destruyes cualquier cosa que hayas tenido al sustituirlo por un nuevo arreglo.

// Saludos
Responder Con Cita
  #3  
Antiguo 01-06-2006
Alexis De la Cr Alexis De la Cr is offline
Miembro
 
Registrado: may 2006
Ubicación: Puebla
Posts: 124
Poder: 19
Alexis De la Cr Va por buen camino
Estimado Roman:

Claro que asi es, lo que tu dices, por eso antes de crear el arreglo verifico si existe dicha variable, te muestro el codigo original

Código PHP:
if(!isset($id)){
             
session_register("id");
             
$id = array();}
 
if(isset(
$codigo)){if(empty($id)){$id[1] = $codigo;}
                   else {
$id[] = $codigo;}
                       } 
Desafortunadamente este codigo ya no trabaja correctamente en un servidor con una version php mas actualizada.

mi version del codigo actualizado es el siguiente

Código PHP:
if (!isset($_SESSION['id_carrito'])) {$_SESSION['id_carrito'] = array();}
else{if (empty(
$_SESSION['id_carrito'])) {$_SESSION['id_carrito'][1] = $_GET['codigo'];} 
       else {
$_SESSION['id_carrito'][] = $_GET['codigo'];}
   } 
La duda que tengo, es si es correca la forma de registrar una variable asi como de leerla y escribirla, porque si es asi, el error esta en otra parte entonces.

Gracias por la ayuda de antemano.

Última edición por Alexis De la Cr fecha: 01-06-2006 a las 06:31:04.
Responder Con Cita
  #4  
Antiguo 01-06-2006
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Como recien hablabamos en este hilo, en el que gracias a kayetano pude salir del apuro, si utilizas el arreglo $_SESSION, deberás olvidarte de session_register('variable'), pero debemos de iniciar siempre con session_start(), en tu segundo código no encuentro esta función, a no ser que la tengas mucho antes de el fragmento de código que colocaste y en este no se vea.

Saludos.
Responder Con Cita
  #5  
Antiguo 01-06-2006
Alexis De la Cr Alexis De la Cr is offline
Miembro
 
Registrado: may 2006
Ubicación: Puebla
Posts: 124
Poder: 19
Alexis De la Cr Va por buen camino
Estimado d-mo:

Te agradezco tu interes en mi problemilla. Efectivamente utilizo session_start() solo que al principio del codigo, aqui solo copie la parte de declarar las variables. Estoy, revisando otra mes mi codigo, espero que despues de 1 dia de no trabajar en el y ya con la cabeza mas fria, puedo localizar el error.
Responder Con Cita
  #6  
Antiguo 01-06-2006
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Pues la verdad que ya me imaginaba que estuvieras haciendo uso de esta función, solo que no queria quedarme con la espina de no haberlo dicho.

Mi pregunta ahora es, ¿Por que los corchetes vacios al final del script?, ¿Que pretendes lograr con ellos?

Se que en algun momento talvez he dicho algo tonto pero acá ya es media noche y sigo trabajando, asi que cualquier cosa solo dimelo ok.

Saludos.
Responder Con Cita
  #7  
Antiguo 01-06-2006
Avatar de Emilio
*Emilio* Emilio is offline
Capo
 
Registrado: may 2003
Ubicación: Palma de Mallorca
Posts: 2.635
Poder: 10
Emilio Va por buen camino
Cita:
Empezado por Alexis De la Cr
La duda que tengo, es si es correca la forma de registrar una variable asi como de leerla y escribirla, porque si es asi, el error esta en otra parte entonces.
En principio ese código se ve bien, posiblemente te viene de otro lado.

Haz un print_r($carrito) igual te ayuda meter algún chivato.

Cita:
Empezado por D-MO
Mi pregunta ahora es, ¿Por que los corchetes vacios al final del script?, ¿Que pretendes lograr con ellos?
Para incrementar el array, si todavia no tiene elelemtos empezará en cero, por tanto será lo mis hacer...

Código PHP:
$a[0] = 'CERO';
// que esto otro
$a[] = 'CERO';

// Más claro con esto...
for ($i 0$i 24$i++) { 
   
$a[]='Posición: '.$i;
   echo 
$a[$i];

__________________
Saludos
Emilio
Responder Con Cita
  #8  
Antiguo 01-06-2006
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
10-4 Emilio.

Responder Con Cita
  #9  
Antiguo 01-06-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Alexis De la Cr
Efectivamente utilizo session_start() solo que al principio del codigo, aqui solo copie la parte de declarar las variables.
Sí, pero lo que te dice D-MO y te lo repito yo, es que no mezcles session_register con $_SESSION. Aun cuando no sea esta la fuente exacta del problema, évitate dolores posteriores de cabeza. Si usas el arreglo $_SESSION- y es lo recomendable -no uses session_register.

// Saludos
Responder Con Cita
  #10  
Antiguo 01-06-2006
Avatar de Emilio
*Emilio* Emilio is offline
Capo
 
Registrado: may 2003
Ubicación: Palma de Mallorca
Posts: 2.635
Poder: 10
Emilio Va por buen camino
Cita:
Empezado por D-MO
10-4 Emilio.

No caigo

Mejor me lo explicas.
__________________
Saludos
Emilio
Responder Con Cita
  #11  
Antiguo 01-06-2006
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Cita:
Empezado por Emilio
No caigo

Mejor me lo explicas.
Pues la verdad nunca he sido bueno para explicar pero aqui voy,

10-4 es algo asi como una clave (por llamarlo de ese modo) que usan los policias al recibir una indicacion por medio de radiotransmisores para indicar que han comprendido y recibido la información.

Saludos.
Responder Con Cita
  #12  
Antiguo 02-06-2006
Alexis De la Cr Alexis De la Cr is offline
Miembro
 
Registrado: may 2006
Ubicación: Puebla
Posts: 124
Poder: 19
Alexis De la Cr Va por buen camino
Estimados Colegas:

Reciban un Cordial Saludo y mi agradecimiento por contestar. Finalmente encontre el error, el codigo esta bien, el problema fue un misero y detestable error de dedo. Despues de descansar todo un dia, ya con la cabeza fria, pude descubrir el bendito error, y todo funciona ya correctamente.

Gracias Amigos!
Responder Con Cita
  #13  
Antiguo 02-06-2006
Avatar de Emilio
*Emilio* Emilio is offline
Capo
 
Registrado: may 2003
Ubicación: Palma de Mallorca
Posts: 2.635
Poder: 10
Emilio Va por buen camino
Sería interesante para todos y para finalizar el hilo en condiciones, que dijeses cual era el error y la forma en que lo solucionaste

De paso pega un vistazo a la guía de estilo.
__________________
Saludos
Emilio
Responder Con Cita
  #14  
Antiguo 02-06-2006
Alexis De la Cr Alexis De la Cr is offline
Miembro
 
Registrado: may 2006
Ubicación: Puebla
Posts: 124
Poder: 19
Alexis De la Cr Va por buen camino
Bueno, como les comente fue un error de dedo lo que me generaba el problema

Código PHP:
if (!isset($_SESSION['id_carrto'])) {$_SESSION['id_carrito'] = array();} 
else{if (empty(
$_SESSION['id_carrito'])) {$_SESSION['id_carrito'][1] = $_GET['codigo'];}  
       else {
$_SESSION['id_carrito'][] = $_GET['codigo'];} 
   } 
la primera instruccion verifica que no exista la variable id_carrito, que es un array, si no existe, entonces la crea. el error de dedo esta en esa primera instruccion, que verificaba que no existiera la variable id_carrto (faltaba la i). Obviamente nunca existia y por lo tanto siempre estaba creando la variable id_carrito, de tal forma que se destruia cualquier dato que se hubiese instroducido. Ahi estaba el detalle, ahi estuvo todo el problema, pero no se si solo a mi me pasa, que aunque me esfuerzo por encontrar el error, nunca lo veo, hasta que me despejo totalmente de la cabeza.

Saludos Colegas y Amigos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿Cómo puedo actualizar en el DBGrid los datos que inserto en la misma sesión? nuri SQL 3 18-07-2005 18:27:19
Como hacer que solo pueda haber una sesion de la aplicacion novaten Varios 2 05-06-2005 11:14:05
variables de sesion sarga PHP 4 08-07-2004 07:41:47
¿Como iniciar una sesión en equipos remotos de una LAN? jpep Internet 2 31-03-2004 21:53:37
Como obtener la duracion de una sesión juan Internet 6 12-05-2003 15:43:04


La franja horaria es GMT +2. Ahora son las 10:14:31.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi