Foros del Web » Programando para Internet » PHP »

variables de sesion

Estas en el tema de variables de sesion en el foro de PHP en Foros del Web. Amigos me podrian ayudar en esta consulta Asigno asi mis variables de sesion: Código PHP: $categoria  =  $_SESSION [ 'categoria' ] =  $_POST [ 'categoria' ];       ...
  #1 (permalink)  
Antiguo 27/03/2010, 16:38
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Exclamación variables de sesion

Amigos me podrian ayudar en esta consulta
Asigno asi mis variables de sesion:
Código PHP:
$categoria $_SESSION['categoria'] = $_POST['categoria'];      
$club $_SESSION['club'] = $_POST['club']; 
Que son los q me llegan de un formulario ahora esta variables las quiero reutilizar con ese valor asignado para formar pdf
en mi script de pdf
llamo asi:
Código PHP:
$categoria $_SESSION['categoria'];    
$club $_SESSION['club']; 
El problema es que cuando hago click para convertir esa consulta en pdf no me llega los valores de esas variables para realizar pdf pq ??

Última edición por vili86; 27/03/2010 a las 16:40 Razón: faltan datos
  #2 (permalink)  
Antiguo 27/03/2010, 17:09
 
Fecha de Ingreso: abril-2007
Ubicación: Tandil, Bs As, Argentina
Mensajes: 106
Antigüedad: 17 años
Puntos: 2
Respuesta: variables de sesion

Mmm no te entiendo bien porque la doble asignacion arriba del todo jeje.. pero suponiendo que eso esta bien, si no te llegan las variables de la session es porque las estaras abriendo despues de llamarla o la cerras en algun momento por alguna causa..

A mi no me da mucha confianza que asignes dos veces.. pero siguiendo la logica la doble asignacion te dejaria solo los valores del post..
  #3 (permalink)  
Antiguo 27/03/2010, 17:21
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: variables de sesion

En la primera parte del codigo me funciona correctamente hice pruebas
Código PHP:
echo $_SESSION['categoria'];
echo 
$categoria
Y me imprimen los dos de manera correcta pero ahora cuando llamo a este scritp
Código PHP:
<?php
       session_start
();
       include(
'pdf/class.ezpdf.php');
    
$categoria $_SESSION['categoria'];    
                
$club $_SESSION['club'];     
                
$pdf = & new Cezpdf('letter','landscape');
      
$pdf->selectFont('pdf/fonts/Helvetica');
      
$pdf->ezSetCmMargins(1,1,1.5,1.5);// margenes
      
$pdf->ezStartPageNumbers(500,18,10,'','{PAGENUM} de {TOTALPAGENUM}',1);
      
      
$all $pdf->openObject();
      
$pdf->saveState();
      
$pdf->setStrokeColor(0,0,0,1);
      
$pdf->line(20,30,750,30);
      
$pdf->line(20,585,750,585);
      
$pdf->addText(20,590,10,'Asociacion Chuquisaqueña de Futbol *** ACHF *** ');
      
$pdf->addText(650,590,10,'Detalle de Jugador(res)');
      
$pdf->addText(20,18,10,'Dirección: Calle Junin 744 - Telfs. 64-51271- 64-55460 - FAX.(04) 64-55460','Pagina');
      
$pdf->restoreState();
      
$pdf->closeObject();
       
// termina las lineas
      
$pdf->addObject($all,'all');
        
      include(
'conectar.php');
      
$link Conectarse();
      
//$conexion = mysql_connect("localhost", "root", "");
      //mysql_select_db("bd_asociacion", $conexion);
      
$queEmp "SELECT *  FROM jugadores Where  club='$club'  ";
      
$resEmp mysql_query($queEmp$link) or die(mysql_error());
      
$totEmp mysql_num_rows($resEmp);
      
// creo un while para generar la tabla con sus campos

      
$ixx 0;
      while(
$datatmp mysql_fetch_assoc($resEmp)) {
              
$ixx $ixx+1;
             
$data[] = array_merge($datatmp, array('num'=>$ixx));
        
      
$titles = array(
                       
'num'=>'<b>Nº</b>',
                       
'nombre'=>'<b>Nombres</b>',
                       
'paterno'=>'<b>Ape. Paterno</b>',
                       
'materno'=>'<b>Ape. Materno</b>',
                       
'categoria'=>'<b>Categoria </b>',
                       
'nacionalidad'=>'<b>Nacionalidad </b>',
                       
'club'=>'<b>Club</b>',
                       
'ci'=>'<b>CI</b>'
                     
);
     
     
$options = array(
                      
'shadeCol'=>array(0.9,0.9,0.9),
                      
'xOrientation'=>'center',
                      
'width'=>700
                     
);
     }
     
$txttit "<b>BICENTENARIO DEL PRIMER GRITO DE LIBERTAD EN AMERICA 1809-2009\n SUCRE-BOLIVIA </b>\n";
    
     
$pdf->ezText($txttit12, array(justification=>center));
     
$pdf->ezTable($data$titles''$options);
     
$pdf->ezText("\n\n\n"18);
     
$pdf->ezText("<b>Fecha:</b> ".date("d/m/Y"), 5, array(justification=>left));
     
$pdf->ezText("<b>Hora:</b>  ".date("H:i:s")."\n\n",5, array(justification=>left));
     
$pdf->ezStream();
    
?>
¿COMO PODRIA HACER LA PRUEBA EN ESTE SCRIPT PARA SABER SI MIS VARIABLES DE SESSION ESTAN LLEGANDO YA QUE PONGO UN echo $categoria o $club pero me vota el pdf vacio solamente con su diseño predeterminado?

Última edición por vili86; 27/03/2010 a las 17:22 Razón: falta de datos
  #4 (permalink)  
Antiguo 27/03/2010, 17:45
 
Fecha de Ingreso: abril-2007
Ubicación: Tandil, Bs As, Argentina
Mensajes: 106
Antigüedad: 17 años
Puntos: 2
Respuesta: variables de sesion

Pone como comentario toda la parte de creacion del pdf y hacete el echo de las dos variables para ver que te tira.. porque por ahi el error no esta ahi.. sino, lo otro que podes hacer antes es darle vos en el script un valor fijo a tus dos variables y probar como te sale el pdf.. para asegurarte de que el problema esta ahi, en la session..
  #5 (permalink)  
Antiguo 27/03/2010, 17:58
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: variables de sesion

Gracias por tu sugerencia hice esto:

Lo puse como comentario todas la lineas que me generan el pdf
Primero puse asi:
Código PHP:
    echo $_SESSION['categoria'];
        echo 
$categoria
No me vota nada vacio entonces hice esta prueba.
Prueba 2
Código PHP:
     echo $_SESSION['categoria'];
      echo 
$categoria
                echo 
"Hola "
Me vota el Hola luego descomente las lineas que me generan el pdf y puse un por defecto en la consulta.
Código PHP:
$queEmp "SELECT *  FROM jugadores Where  categoria='S7'  "
Y me genera el pdf muy bien

Entonces la conclusion es que mis variables de session en el script no me estan llegando con esos valores PQ??
Sera la forma de llamar en mi form anterior.
Código HTML:

<form action="modulos/consultas/vistas/generar_todo_avanzado.php" method="post" target="_blank">  

<input  type="submit" name="genera" value="Imprimir" class="btn" />
				</form> 
				</td></tr> 
Es asi cuando hago click en sumit me tiene q votar los resultados de la consulta en pdf pero en el script del pdf cuando llamo a esa variables de session no me llegan con su valor de la busqueda ??
  #6 (permalink)  
Antiguo 27/03/2010, 18:12
 
Fecha de Ingreso: abril-2007
Ubicación: Tandil, Bs As, Argentina
Mensajes: 106
Antigüedad: 17 años
Puntos: 2
Respuesta: variables de sesion

Generas el pdf en la misma pagina donde tenes el form o lo mandas a otra?
  #7 (permalink)  
Antiguo 27/03/2010, 18:17
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: variables de sesion

La mando a otra con el target="_blank"

Intento hacerlo todo en un solo script pero tengo problemas de header ??? ya lei sobre eso y no tengo espacios y nada pero me sale basura en mi pantalla??
Código PHP:
Ver original
  1. <form action="modulos/consultas/vistas/generar_todo_avanzado.php" method="post" target="_blank">  
  2.   <?php
  3.                //include('pdf/class.ezpdf.php');
  4.                session_start();
  5.                include ('PHPPaging.lib.php');
  6.                include('conectar.php');
  7.                $con = mysql_connect("xx","xx","") or die (mysql_error());
  8.                mysql_select_db("xxx",$con) or die (mysql_error());
  9.                $categoria = $_SESSION['categoria'] = $_POST['categoria'];  
  10.                 $club = $_SESSION['club'] = $_POST['club'];    
  11.                 //echo $categoria;
  12.                 //echo $_SESSION['categoria'];
  13.                    $pdf = & new Cezpdf('letter','landscape');
  14.                   $pdf->selectFont('pdf/fonts/Helvetica');
  15.                   $pdf->ezSetCmMargins(1,1,1.5,1.5);// margenes
  16.                   $pdf->ezStartPageNumbers(500,18,10,'','{PAGENUM} de {TOTALPAGENUM}',1);
  17.                   $all = $pdf->openObject();
  18.                   $pdf->saveState();
  19.                   $pdf->setStrokeColor(0,0,0,1);
  20.                   $pdf->line(20,30,750,30);
  21.                   $pdf->line(20,585,750,585);
  22.                   $pdf->addText(20,590,10,'Asociacion Chuquisaqueña de Futbol *** ACHF *** ');
  23.                   $pdf->addText(650,590,10,'Detalle de Jugador(res)');
  24.                   $pdf->addText(20,18,10,'Dirección: Calle Junin 744 - Telfs. 64-51271- 64-55460 - FAX.(04) 64-55460','Pagina');
  25.                   $pdf->restoreState();
  26.                   $pdf->closeObject();
  27.                   $pdf->addObject($all,'all');
  28.                   $link = Conectarse();
  29.                   $queEmp = "SELECT *  FROM jugadores Where  club='$club'";
  30.                   $resEmp = mysql_query($queEmp, $link) or die(mysql_error());
  31.                   $totEmp = mysql_num_rows($resEmp);
  32.                   $ixx = 0;
  33.                   while($datatmp = mysql_fetch_assoc($resEmp)) {
  34.                        $ixx = $ixx+1;
  35.                        $data[] = array_merge($datatmp, array('num'=>$ixx));
  36.                   $titles = array(
  37.                                    'num'=>'<b>Nº</b>',
  38.                                    'nombre'=>'<b>Nombres</b>',
  39.                                    'paterno'=>'<b>Ape. Paterno</b>',
  40.                                    'materno'=>'<b>Ape. Materno</b>',
  41.                                    'categoria'=>'<b>Categoria </b>',
  42.                                    'nacionalidad'=>'<b>Nacionalidad </b>',
  43.                                    'club'=>'<b>Club</b>',
  44.                                    'ci'=>'<b>CI</b>'
  45.                                  );
  46.                  $options = array(
  47.                                   'shadeCol'=>array(0.9,0.9,0.9),
  48.                                   'xOrientation'=>'center',
  49.                                   'width'=>700
  50.                                  );
  51.                  }
  52.                  $txttit = "<b>BICENTENARIO DEL PRIMER GRITO DE LIBERTAD EN AMERICA 1809-2009\n SUCRE-BOLIVIA </b>\n";
  53.                  $pdf->ezText($txttit, 12, array(justification=>center));
  54.                  $pdf->ezTable($data, $titles, '', $options);
  55.                  $pdf->ezText("\n\n\n", 18);
  56.                  $pdf->ezText("<b>Fecha:</b> ".date("d/m/Y"), 5, array(justification=>left));
  57.                  $pdf->ezText("<b>Hora:</b>  ".date("H:i:s")."\n\n",5, array(justification=>left));
  58.                  $pdf->ezStream();
  59.                  */?>
  60. <center>
  61. <table border="0" align="center" id="lista" >
  62.     <tr> <th colspan="14"> Resultados de la Busqueda </th></tr>
  63.     <tr>
  64.     <td id="carlos">CI</td>
  65.     <td id="carlos">Nombres</td>
  66.     <td id="carlos">Paterno</td>
  67.     <td id="carlos">Materno</td>
  68.     <td id="carlos" align="center">Fecha Nac. </td>
  69.     <td id="carlos" >Nacionalidad </td>
  70.     <td id="carlos" align="center">Club </td>
  71.     <td  id="carlos">Categoria </td>
  72.     <td  id="carlos"   colspan="5" align="center">Opciones</td>
  73.     </tr>
  74.  <?php
  75.       if (isset($_POST["nombre"]) || isset($_POST["paterno"]) || isset($_POST["materno"]) || isset($_POST["registro_fbf"]) || isset($_POST["ci"]) || isset($_POST["edad"]) || isset($_POST["fecha_n"]) || isset($_POST["categoria"]) || isset($_POST["club"]) || isset($_POST["estado"]) || isset($_POST["nacionalidad"]) || isset($_POST["lugar_n"])){
  76.         }
  77.         if (!($_SESSION['nombre'])){  
  78.                   $_SESSION['nombre'] = $_POST['nombre'];
  79.         }else{
  80.                   // no hacemos nada
  81.         }
  82.         if (!($_SESSION['paterno'])){  
  83.                   $_SESSION['paterno'] = $_POST['paterno'];
  84.         }else{
  85.                   // no hacemos nada
  86.         }
  87.         if (!($_SESSION['materno'])){  
  88.                   $_SESSION['materno'] = $_POST['materno'];
  89.         }else{
  90.                   // no hacemos nada
  91.         }
  92.         //if (!($_SESSION['registro_fbf'])){  
  93.          //         $_SESSION['registro_fbf'] = $_POST['registro_fbf'];
  94.         //}else{
  95.                   // no hacemos nada
  96.        // }
  97.         //if (!($_SESSION['ci'])){  
  98.           //        $_SESSION['ci'] = $_POST['ci'];
  99.        // }else{
  100.                   // no hacemos nada
  101.        // }
  102.         if (!($_SESSION['edad'])){  
  103.                   $_SESSION['edad'] = $_POST['edad'];
  104.         }else{
  105.                   // no hacemos nada
  106.         }
  107.         if (!($_SESSION['fecha_n'])){  
  108.                   $_SESSION['fecha_n'] = $_POST['fecha_n'];
  109.         }else{
  110.                   // no hacemos nada
  111.         }
  112.         if (!($_SESSION['categoria'])){  
  113.                   $_SESSION['categoria'] = $_POST['categoria'];
  114.         }else{
  115.                   // no hacemos nada
  116.         }
  117.         if (!($_SESSION['club'])){  
  118.                   $_SESSION['club'] = $_POST['club'];
  119.         }else{
  120.                   // no hacemos nada
  121.         }
  122.         if (!($_SESSION['estado'])){  
  123.                   $_SESSION['estado'] = $_POST['estado'];
  124.         }else{
  125.                   // no hacemos nada
  126.         }
  127.         if (!($_SESSION['nacionalidad'])){  
  128.                   $_SESSION['nacionalidad'] = $_POST['nacionalidad'];
  129.         }else{
  130.                   // no hacemos nada
  131.         }
  132.         if (!($_SESSION['lugar_n'])){  
  133.                   $_SESSION['lugar_n'] = $_POST['lugar_n'];
  134.         }else{
  135.                   // no hacemos nada
  136.         }
  137.            
  138.             $categoria = addslashes($_SESSION['categoria']);
  139.             $club =  addslashes($_SESSION['club']);
  140.             $paging = new PHPPaging;
  141.             $paging->modo('desarrollo');
  142.             $paging->agregarConsulta("SELECT * FROM jugadores Where ( (categoria='$categoria' or '$categoria'='') and (club='$club' or '$club'='') ') ",$server_link);
  143.              
  144.             $paging->porPagina(20);
  145.             $paging->paginasAntes(4, 10, 20);
  146.             $paging->paginasDespues(4, 10, 20);  
  147.             $paging->ejecutar();
  148.        
  149.                 // y  luego mostramos los resultados con un pequeño cambio al while
  150.                 while($row = $paging->fetchResultado()) {
  151.                 //$queEmp = $row;
  152.                 echo "<tr>";
  153.                 echo "<td>".$row['ci']."</td>";
  154.                 echo "<td align=left>".$row['nombre']."</td>";
  155.                 echo "<td align=left>".$row['paterno']."</td>";
  156.                 echo "<td align=left>".$row['materno']."</td>";
  157.                 echo "<td>".$row['fecha_n']."</td>";
  158.                 echo "<td>".$row['nacionalidad']."</td>";
  159.                 echo "<td align=left>".$row['club']."</td>";
  160.                 echo "<td>".$row['categoria']."</td>";
  161.                
  162.                  ?>
  163.                                
  164.                 <?php
  165.                     echo "</tr>";  
  166.                 }
  167.                 echo "<tr>";
  168.                 echo "<td colspan=14 align=center><b><SPAN STYLE=\"font-size:11px;font-family:Tahoma;color:black;font-weight:bold\">Página ".$paging->numEstaPagina()." de ".$paging->numTotalPaginas()."</SPAN></b><br/></td>";
  169.                 echo "</tr>";
  170.                 ?>
  171.                 <tr><td colspan="14" align="center">
  172.                 <input  type="submit" name="genera" value="Imprimir" class="btn" />
  173.                 </form>
  174.                 </td></tr>
  175.                 <?php
  176.                 echo "</table>";
  177.                
  178.             ?>              
  179. </center>

En este script trato de que una vez que me haya buscado los datos me muestre en pantalla y una vez mostrador cuando haga click en el submit imprimir me vote los resultados en pdf pero me sale como te decia errores de headers ???

Última edición por vili86; 27/03/2010 a las 18:23 Razón: falto codigo
  #8 (permalink)  
Antiguo 27/03/2010, 19:09
 
Fecha de Ingreso: abril-2007
Ubicación: Tandil, Bs As, Argentina
Mensajes: 106
Antigüedad: 17 años
Puntos: 2
Respuesta: variables de sesion

Mmm.. creo que si pones session_start() en el archivo que te crea el pdf abris una session nueva y cuando referencias mas tarde lo haes a al nueva session que no tiene los datos.. proba sacando esa linea a ver que onda..
  #9 (permalink)  
Antiguo 28/03/2010, 11:52
 
Fecha de Ingreso: agosto-2005
Ubicación: Argentina, Capital Federal
Mensajes: 435
Antigüedad: 18 años, 8 meses
Puntos: 2
Respuesta: variables de sesion

Cito a PHP.net:

Cita:
To use cookie-based sessions, session_start() must be called before outputing anything to the browser.
(Para usar sesiones basadas en cookies, session_start() DEBE ser llamada antes de generar cualquier salida al navegador)

En tu línea 1 estás instanciando un form por lo cual estás generando salida al navegador antes de haber llamado a session_start(). Dado que esta función necesita de las cabeceras para funcionar (trabaja con cookies) y estas cabeceras se envían con la primer salida su funcionamiento no es el que estás esperando.

Saludos.
__________________
R4DS en español | R4DS en inglés

Etiquetas: variables
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 10:43.