Foros del Web » Programando para Internet » PHP »

$_session

Estas en el tema de $_session en el foro de PHP en Foros del Web. Hola! Tengo en un form un checkbox declarado de la siguiente forma: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código HTML: Ver original < input type = 'checkbox' name = ...
  #1 (permalink)  
Antiguo 10/09/2010, 06:47
 
Fecha de Ingreso: julio-2010
Mensajes: 51
Antigüedad: 14 años, 4 meses
Puntos: 0
$_session

Hola!
Tengo en un form un checkbox declarado de la siguiente forma:
Código HTML:
Ver original
  1. <input type='checkbox' name='checkbox".$x."' id='checkbox".$x."' value='1'/>
Lo tengo definido asi ya que es dinamico.
Quisiera saber como guardar el value de los checkbox en una variable $_SESSION[] para luego poder usarlos en otras paginas.
Intente hacerlo de esta forma:
Código PHP:
Ver original
  1. $_SESSION['check']="checkbox";
y en la otra pagina para leerlo:
Código PHP:
Ver original
  1. $variable=$_SESSION['check'];
  2.         .
  3.         .
  4.         .
  5.         $total = $_POST["total"];
  6. for($x=0;$x<=$total;$x++){
  7.     if($_POST["checkbox".$x]=="1"){
  8.         $cant = count($esto);
  9.         .
  10.         .
  11.         .
  12.         .

Pero eso no funciona.. no me muestra ningun resultado..
Alguien sabe como puedo manejar esa variable?
  #2 (permalink)  
Antiguo 10/09/2010, 06:49
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 4 meses
Puntos: 150
Respuesta: $_session

Es muy raro lo que estoy viendo.......

¿podrias pegar TODO el contenido de tu formulario? ¿lo imprimes via echo de PHP?
  #3 (permalink)  
Antiguo 10/09/2010, 07:29
 
Fecha de Ingreso: julio-2010
Mensajes: 51
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: $_session

Hola Vun!
Este es el codigo completo, es para mandar un form por mail.
El problema es q me manda el mail vacio.
Código PHP:
Ver original
  1. <?php
  2. include("_config.php");
  3. require_once("lib.php");
  4.  
  5. $variable=$_SESSION['check'];
  6. $carro=$_SESSION['carro'];
  7.  
  8. $remitente = $_REQUEST["email"];
  9. $nombre = $_REQUEST["nombre"];
  10. $localidad = $_REQUEST["localidad"];
  11. $telefono = $_REQUEST["telefono"];
  12.  
  13.  
  14. // subject
  15. $titulo = '--------';
  16.  
  17. // message
  18.  
  19. $mensaje = '';
  20. $total = $_POST["total"];
  21. for($x=0;$x<=$total;$x++){
  22.     if($_POST["checkbox".$x]=="1"){
  23.         $cant = count($carro);
  24.         $carro[$cant]["id"] = $_POST["id_".$x];
  25.         $carro[$cant]["cantidad"] = $_POST["precio_".$x];
  26.     }
  27.  
  28. }
  29.   $_SESSION["carro"]=$carro;
  30.  
  31.     $mensaje .='<table width="500" border="1" cellpadding="1" cellspacing="1">
  32.         <tr>
  33.         <th>Producto</th>
  34.         <th>Cantidad</th>
  35.         <th>Precio</th>
  36.         <th>SubTotal</th>
  37.         <th>&nbsp;</th>
  38.         </tr>';
  39.        
  40.     $cantidad = count($carro);
  41.     for($x=0;$x<=$cantidad;$x++){
  42.         $SQL = "SELECT * FROM precios WHERE id = ".$carro[$x]["id"].";";
  43.         $registro= mysql_query($SQL,$mcon);    
  44.         $f=mysql_fetch_assoc($registro);    
  45.         $subtotal = $f["precio"]*$carro[$x]["cantidad"];
  46.         $tot+=$subtotal;
  47.         $iva=  round($total* 0.21,2);
  48.         $final= round($total * 1.21,2);
  49.         if($f["Id"]){  
  50.             if($f["id"]){    
  51.  
  52.                 $mensaje.='<tr><td>'.$f["nombre"].'</td>
  53.                 <td>'.$carro[$x]["cantidad"].'</td><td>'.$f["precio"].'</td>        
  54.                 <td>'.$subtotal.'</td>        <td>        </td>        </tr>';
  55.  
  56.             } // CIERRA EL IF DEL ID
  57.         } // CIERRA EL IF DE LA MEDIDA
  58.     } // CIERRA EL FOR
  59.    $mensaje .= '<table align="right" border="1" class="tabla2">
  60.         <tr>
  61.         <td class="tabla2" bgcolor="#F3F3F3">Precio FINAL</td>
  62.         </tr>
  63.         <tr>
  64.         <td class="tabla3"><span class="Estilo1">Neto:</span> $ '.$tot.'</td>
  65.         </tr>
  66.         <tr>
  67.         <td class="tabla3"><span class="Estilo1">IVA 21%:</span> $ '.$iva.'</td>
  68.         </tr>
  69.         <tr>
  70.         <td class="tabla3"><span class="Estilo1">FINAL:</span> $ '.$final.'</td>
  71.         </tr>
  72.         </table>';
  73.         $nombre = $_POST["nombre"];
  74.         $localidad = $_POST["localidad"];
  75.         $telefono = $_POST["telefono"];
  76.         $mensaje .= '<table align="left" border="1" class="tabla2">
  77.         <tr>
  78.         <td class="tabla2" bgcolor="#F3F3F3">Datos Cliente</td>
  79.         </tr>
  80.         <tr>
  81.         <td class="tabla3"><span class="Estilo1">Nombre:</span>  '.$nombre.'</td>
  82.         </tr>
  83.         <tr>
  84.         <td class="tabla3"><span class="Estilo1">E-mail:</span>  '.$remitente.'</td>
  85.         </tr>
  86.         <tr>
  87.         <td class="tabla3"><span class="Estilo1">Localidad:</span>  '.$localidad.'</td>
  88.         </tr>
  89.         <tr>
  90.         <td class="tabla3"><span class="Estilo1">Telefono:</span>  '.$telefono.'</td>
  91.         </tr>
  92.         </table>';
  93.        
  94.        
  95.  
  96. // Para enviar un correo HTML mail, la cabecera Content-type debe fijarse
  97. $cabeceras  = 'MIME-Version: 1.0' . "\r\n";
  98. $cabeceras .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
  99.  
  100. // Cabeceras adicionales
  101. $cabeceras .= 'From: '.$remitente.' ' . "\r\n";
  102. ?>
  #4 (permalink)  
Antiguo 10/09/2010, 07:30
 
Fecha de Ingreso: julio-2010
Mensajes: 51
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: $_session

Corrijo! en las variables q tomo por ej el remitente, localidad, telefono, etc si me las envia.. lo que llega vacia es la tabla que corresponde al $mensaje.
  #5 (permalink)  
Antiguo 10/09/2010, 07:38
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 4 meses
Puntos: 150
Respuesta: $_session

Primero preguntas por el checkbox, ahora por enviar el email sin texto........ me lias!

Y no pusiste lo que te pedi, aunque veo que construyes todo el html via php.

Lueog no veo donde esta la funcion mail() para enviarlo, osea que menos puedo saber..... A ver si alguien mas te ayuda, suerrrrrrrrrrte
  #6 (permalink)  
Antiguo 10/09/2010, 08:40
 
Fecha de Ingreso: julio-2010
Mensajes: 51
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: $_session

Pregunte primero lo del checkbox porq resolviendo eso me llegaria el mail con la tabla con los datos correctos... pero vos me pediste q te pase el codigo, entonces puse todo! Tan simple como eso.
Gracias igual por intentarlo!
Suerte.
  #7 (permalink)  
Antiguo 10/09/2010, 09:08
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 4 meses
Puntos: 150
Respuesta: $_session

Bueno, retomo de 0 el problema. Cuando tu envias datos por un formulario, en la pagina php de destino llegan los valores en la variable $_POST[], por ejemplo si tienes un checkbox que se llama name="check1" llegara:

$_POST['check1'] con el valor correspondiente.

Para que tu web guarde datos de dicho usuario en su sesion hacemos:
$_SESSION['check1']=$_POST['check1'];

Y entonces si inicias la sesion totalmente al inicio de tus paginas con session_start(); estaras propagando todas tus variables de sesion para usarlas donde quieras.

No se si esto lo sabias, pero obviamente esto que pusiste:

$_SESSION['check']="checkbox";


no hace que guarde el dato que proviene del formulario.
  #8 (permalink)  
Antiguo 10/09/2010, 09:36
 
Fecha de Ingreso: julio-2010
Mensajes: 51
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: $_session

Claro, pero en este caso la pagina que contiene los check no tiene como destino la pagina donde envio por mail, por ese motivo no use la variable $_POST[].

Es por eso que quiero encontrar otra forma para pasar los valosres de los check y se me ocurrio con sesion.

Como bien dijiste, al inicio de cada pagina inicio con session_start();

Como puedo hacer para que me guarde el dato que proviene del formulario
si la forma en que lo hice es es incorrecta?
  #9 (permalink)  
Antiguo 10/09/2010, 09:38
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: $_session

definitivamente la forma en que lo hiciste es incorrecta, o bien, inviable...

ya que enumerar los checkbox por medio de un sufijo es tedioso, y reagrupar los datos se torna mas complicado aún...

la solución sería usar la nomenclatura del tipo array en los name
Código HTML:
<input name="foo[]"/>
<input name="foo[]"/>
<input name="foo[]"/> 
finalmente en PHP esto se convierte en un array totalmente agrupado, y almacenarlo en sesión es aún mas sencillo...
Código PHP:
$_SESSION['foo'] = $_POST['foo']; 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

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 11:28.