Foros del Web » Programando para Internet » PHP »

borrar variables sesion

Estas en el tema de borrar variables sesion en el foro de PHP en Foros del Web. hola quetal: estoy usando el carito de webestilo, y me funciona perfecto, pero le falta una cosa que necesito, y no tengo ni idea de ...
  #1 (permalink)  
Antiguo 20/01/2004, 06:25
 
Fecha de Ingreso: marzo-2003
Mensajes: 34
Antigüedad: 21 años, 8 meses
Puntos: 0
Pregunta borrar variables sesion

hola quetal:

estoy usando el carito de webestilo, y me funciona perfecto, pero le falta una cosa que necesito, y no tengo ni idea de hacerla, borrar variable que ya he añadido.



he aqui el script de webestilo:

<?php // Manual de PHP de WebEstilo.com
session_start();
session_register('itemsEnCesta');
$item=$_POST['item'];
$cantidad=$_POST['cantidad'];
$itemsEnCesta=$_SESSION['itemsEnCesta'];

if ($item){
if (!isset($itemsEnCesta)){
$itemsEnCesta[$item]=$cantidad;
}else{
foreach($itemsEnCesta as $k => $v){
if ($item==$k){
$itemsEnCesta[$k]+=$cantidad;
$encontrado=1;
}
}
if (!$encontrado) $itemsEnCesta[$item]=$cantidad;
}
}
$_SESSION['itemsEnCesta']=$itemsEnCesta;
?>
<html>
<body>
<tt>
<form action="<?=$PHP_SELF."?".$SID?>" method="post">
Dime el producto <input type="text" name="item" size="20"><br>
Cuantas unidades <input type="text" name="cantidad" size="20"><br>
<input type="submit" value="Añadir a la cesta"><br>
</form>
<?
if (isset($itemsEnCesta)){
echo'El contenido de la cesta de la compra es:<br>';
foreach($itemsEnCesta as $k => $v){
echo 'Artículo: '.$k.' ud: '.$v.'<br>';
}
}
?>
</tt>
</body>
</html>


pues eso si alguien sabe como hacerlo!!!


lee los objetos que hay:

foreach($itemsEnCesta as $k => $v){
echo 'Artículo: '.$k.' ud: '.$v.' DELETE<br>';

y quiero que cuando cliquen en delete se borre el objeto deseado y los demas sigan en la lista.


gracias.

pd: gran invento este de forosdelweb.
  #2 (permalink)  
Antiguo 20/01/2004, 09:52
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
De ...

foreach($itemsEnCesta as $k => $v){
echo 'Artículo: '.$k.' ud: '.$v.' DELETE<br>';

Vas a tener que generar un link para cada item (artículo) que apunte a un script.php que hará el proceso de borrardo de 1 (ese item) o varios a borrar.

A ese script.php le tendras que pasar el ID del articulo (identificador) ..en tu caso parece ser el $k ? ...

ejemplo:
<a href="borrar.php?id=<? echo $k ?>">Borrar</a>

Y tu borrar.php .. tendrá que borrar el elemento que corresponda bajo ese identificador de ese array que gestiona en la sesión: itemsEnCesta

borrar.php
Código PHP:
<?
$id
=$_GET['id']
unset (
$_SESSION['itemsEnCesta'][$id]);
// y recargar el carrito ...
?>
Lo principal es que te des cuenta que estás trabajando con Arrays .. y que está se almacena temporalmente en una sesión de nombre mencionado ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 12/02/2004, 09:29
Avatar de midpunto  
Fecha de Ingreso: enero-2004
Ubicación: España Palma de mallorca
Mensajes: 118
Antigüedad: 20 años, 10 meses
Puntos: 0
quiero hacer una comprobacion??

Hola este ejemplo funciona muy bien pero he intentado hacer una comprobacion mediante un }else{ para que en el caso de no tener variables para mostrar me diga que no hay nada..

el codigo completo seria este:

<?
if (isset($itemsEnCesta)){
echo'El contenido de la cesta de la compra es:<br>';
foreach($itemsEnCesta as $k => $v){
echo 'Artículo: '.$k.' ud: '.$v. ' <a href="borrar_podu.php?id='.$k.'">Borrar</a><BR>';
}
}
else{
echo "no tiene articulos seleccionados";
}
?>
esto no me da ningun tipo de error pero tampoco lo esta ejecutando y aunque no tenga variables me tira el primer
echo 'El contenido de la cesta de la compra es:';
seguramente devo tener algo mal pero no me doy cuenta....
Muchas gracias.
  #4 (permalink)  
Antiguo 12/02/2004, 12:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Esque .. isset() significa "si tal variable está definida" .. pero no de si tiene algún valor .. para eso emplea empty() ... (pero niegalo si lo vas a usar en el mismi if() que estás usando).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 14/10/2004, 00:56
 
Fecha de Ingreso: enero-2004
Ubicación: here I Am
Mensajes: 437
Antigüedad: 20 años, 10 meses
Puntos: 1
Buenas , yo tbien uso el código este... y tengo problemas al intentar quitar un elemento de 1 array lo hago en la linia "unset($k)" ... pero no funciona , alguien podria ayudarme a solucionarlo o decirme alguna otra forma ? me lo miro y remiro y no veo ninguna solución.

Código:
if ($item)
{
	if (!isset($itemsEnCesta))
	{
		$itemsEnCesta[$item]=$cantidad;
	}
	else
	{
		foreach($itemsEnCesta as $k => $v)
		{
			if ($v<0)
			{
                        //borro el item de la cesta
			unset($k);
			}
			
			if ($item==$k)
			{
				$itemsEnCesta[$k]+=$cantidad;
				$encontrado=1; 
			}
						
		}
		if (!$encontrado) $itemsEnCesta[$item]=$cantidad;
	}
}
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.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 12:16.