Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Sesiones que no agarran en un AJAX

Estas en el tema de Sesiones que no agarran en un AJAX en el foro de Frameworks JS en Foros del Web. Intento hacer algo así Código PHP: <?  session_register (); session_start (); include( "interfase.php" ); conexion ();  $noticia = $_GET [ 'noticia' ]; [...] ?> <body> ...
  #1 (permalink)  
Antiguo 24/12/2005, 09:32
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
Sesiones que no agarran en un AJAX

Intento hacer algo así
Código PHP:
<? 
session_register
();
session_start();
include(
"interfase.php");
conexion(); 
$noticia=$_GET['noticia'];
[...]
?><body>
[...]
<?             $_SESSION['busqueda'] = "SELECT * FROM gb_noticias_fotos WHERE id_noticia=".$noticia
?>
<script language="javascript"  type="text/javascript"> 

var url = "imagenajax.php?pagina=";  
var http = getXmlHttpObject(); 

function handleHttpResponse(){ 
    if (http.readyState == 1){ 
        document.getElementById('resultado').innerHTML = "Cargando..."; 
    } 
    if (http.readyState == 4){ 
        results = http.responseText; 
        document.getElementById('resultado').innerHTML = results; 
    } 


function sendQuerystring(pagina){ 
    http.open("GET", url + pagina, true); 
    http.onreadystatechange = handleHttpResponse; 
    http.send(null); 


function getXmlHttpObject(){ 
    var xmlhttp; 

    /*@cc_on 
    @if (@_jscript_version >= 5) 
    try{ 
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
    } 
    catch (e){ 
    try{ 
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    catch (e){ 
    xmlhttp = false; 
    } 
    } 
    @else 
    xmlhttp = false; 
    @end @*/ 

    if (!xmlhttp && typeof XMLHttpRequest != 'undefined'){ 
        try{ 
            xmlhttp = new XMLHttpRequest(); 
        } 
        catch (e){ 
            xmlhttp = false; 
        } 
    } 
    return xmlhttp; 


</script>
<?
            
$sql 
mysql_query($busqueda); 
$total_registros mysql_affected_rows(); 
$TAMANO_PAGINA 1
$total_paginas ceil($total_registros $TAMANO_PAGINA); 

if (
$total_paginas 1){ 
    for (
$i=1;$i<=$total_paginas;$i++){ 
?>
    
    <a href="#" class="link" onClick="sendQuerystring('<?  echo $i?>')"><?    
    $il
=$i-1;
    
$sql mysql_query($busqueda " LIMIT $il, $TAMANO_PAGINA"); 
    
$fila_ciclo_imagenes=mysql_fetch_array($sql);

// Tomado de http://www.ladodos.com/webtotal

$maxwidth "50"// Ancho predefinido
$maxheight"50"// Alto predefinido
$imagehw GetImageSize($fila_ciclo_imagenes['url_foto']);
$imagewidth $imagehw[0]; 
$imageheight$imagehw[1]; 

IF (
$imagewidth  $maxwidth)  { $alto=$imageheight/5$ancho=$imagewidth/5; } ELSE { $ancho=$imagewidth; }

IF (
$imageheight $maxheight) { $alto=$imageheight/5$ancho=$imagewidth/5; } ELSE { $alto=$imageheight; }
?>
<img src="imagenjpeg2.php?ruta=<? echo $fila_ciclo_imagenes['url_foto']; ?>&ancho=<? echo $ancho?>&alto=<? echo $alto?>&texto=" alt="<? echo $fila_ciclo_imagenes['pie_foto']; ?>" width="<? echo $ancho?>" height="<? echo $alto?>" border="0" align="top"></a><? 
    

}else{ 
    echo 
"$i ";  
?></td>
                </tr>
              </table></center>
              
<div id="resultado">
  <div align="center"><em> 
  Escoje alguna para ampliarlo aqu&iacute; abajo </em></div>
</div>
Imagenajax.php dice así:
Código PHP:
<?php 
session_register
();
session_start();
function 
quitar($mensaje

$mensaje str_replace("<","&lt;",$mensaje); 
$mensaje str_replace(">","&gt;",$mensaje); 
$mensaje str_replace("\'","'",$mensaje); 
$mensaje str_replace('\"',"&quot;",$mensaje); 

return 
$mensaje


$busqueda=$_SESSION['busqueda'];
$TAMANO_PAGINA 1
$pagina $_GET["pagina"]; 
if (!
$pagina) { 
    
$inicio 0
    
$pagina=1

else { 
    
$inicio = ($pagina 1) * $TAMANO_PAGINA
}  
include(
"interfase.php");
conexion(); 
$sql mysql_query($busqueda) or die("Error de busqueda: ".mysql_error()); 
$total_registros mysql_affected_rows(); 
$total_paginas ceil($total_registros $TAMANO_PAGINA); 

$sql mysql_query($busqueda " LIMIT $inicio, $TAMANO_PAGINA;"); 

while (
$row mysql_fetch_array($sql)){ ?>

<center><?
$imagehw 
GetImageSize($row['url_foto']);
$imagewidth $imagehw[0]; 
$imageheight$imagehw[1]; ?>
<img src="imagenjpeg2.php?ruta=<? echo $row['url_foto']; ?>&ancho=<? echo $imagehw[0]; ?>&alto=<? echo $imagehw[1]; ?>&texto=" alt="<? echo $fila_ciclo_imagenes['pie_foto']; ?>" width="<? echo $imagehw[0]; ?>" height="<? echo $imagehw[1]; ?>" border="0" align="center"></center>
<?



?>
El detalle es muy obvio, $_SESSION['busqueda'] no me lo registra, y por ello no hace ver nada de lo que aparece, es más, no aparece ya nada.

Antes hice la corrección a $_GET['busqueda']; pero como era una sentencia SQL era muy apto a ataques de cualquier tipo, por eso cambié a sesiones, ¿que puedo hacer con esto?
  #2 (permalink)  
Antiguo 26/12/2005, 14:45
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
loading...........



en

var url = "imagenajax.php?<?=SID;?>&pagina=";


expande la sesion por URL haber que pasa, aunque no tendria porque perderse la sesion :S


connection closed.
__________________

Maborak Technologies
  #3 (permalink)  
Antiguo 26/12/2005, 17:53
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
Gracias maborak, así funciona, solo que tambien me faltó una instrucción más:
Código PHP:
<?             $_SESSION['busqueda'] = "SELECT * FROM gb_noticias_fotos WHERE id_noticia=".$noticia
$busqueda=$_SESSION['busqueda']; ?>
  #4 (permalink)  
Antiguo 27/12/2005, 11:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El caso es que no propagas el SID en cookies .. por eso debes añadirlo en el URL.

Revisa bien como tu configuración de PHP propaga tus sesiones .. pero si usas:
session.use_cookies = ON
y
session.use_trans_sid = ON

Teóricamente propagas sesiones por cookies .. pero sólo cuando tu cliente (navegador) las acepte y no tengas algo más por médio que las bloquee .. como un firewall, antivirus .. o equivalente.

Un saludo,
  #5 (permalink)  
Antiguo 27/12/2005, 12:04
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
gracias Cluster, es una ventaja de usar servidores dedicados, ya que modifiqué eso. Solo que como tengo el PHP 4.2 solo puse las variables que me dijiste en 1 y no en ON, valdrá?
  #6 (permalink)  
Antiguo 27/12/2005, 14:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si, es lo mismo (el tema de 1 u ON .. o 0 y oFF)

Si quieres dicutimos el tema en el foro de PHP .. pero lo recomendable sería que propagues el SID en cookies siempre y sólo bajo cookies (php.net así lo recomienda por seguridad) .. así ganas en seguridad y no es necesario incrustrar el código del SID en todos los redireccionamientos que puedas hacer como los que hace vía javascript/objetos equivalentes cuando usamos Ajax.

Eso sí, tendrás que tener bien claro que tus clientes (navegadores) deberán aceptar cookies Si o SI y que nadie las bloquee por otros médios (firewalls, antivirus, proxys .. etc).

Un saludo,
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 04:39.