Holas, estoy trabajando con ajax y php, tengo el archivo "personas.php" donde ahi llamo a "mostrar-personas.php" con un include en una div, paso por get los valores a travez de ajax.
Bien, me encuentro con el problema de cuando voy pasando fotos asincronicamente, la variable $_SESSION['fid_username'] se llena, pero en la segunda y tercera pagina "asincronica"... no se llena y me salta el error:
Notice: Undefined variable: _SESSION in C:\wamp\www\mostrar-personas.php on line 5
Notice: Undefined variable: usuario_de in C:\wamp\www\mostrar-personas.php on line 47
Este error significa que la session esta indefiinida, o seria, inexistente ... pero en la primera impresion si me devuelve el valor que es:
1410854509
no puedo incluir session_start(); en el mostrar-personas.php porque me dice que ya llame la sesion en personas.php:
Les dejo el codigo php:
mostrar-personas.php
Código PHP:
Ver original<?php
include('conexion.php');
$RegistrosAMostrar=1;
echo $_SESSION['fid_username'];
//estos valores los recibo por GET
if(isset($_GET['trebol'])){ $trebol = $_GET['trebol'];
}
$RegistrosAEmpezar=($_GET['pag']-1)*$RegistrosAMostrar;
$PagAct=$_GET['pag'];
//caso contrario los iniciamos
}else{
$RegistrosAEmpezar=0;
$PagAct=1;
}
//******--------determinar las páginas---------******//
$PagAnt=$PagAct-1;
$PagSig=$PagAct+1;
$PagUlt=$NroRegistros/$RegistrosAMostrar;
//verificamos residuo para ver si llevará decimales
$Res=$NroRegistros%$RegistrosAMostrar;
// si hay residuo usamos funcion floor para que me
// devuelva la parte entera, SIN REDONDEAR, y le sumamos
// una unidad para obtener la ultima pagina
if($Res>0) $PagUlt=floor($PagUlt)+1;
$Resultado=mysql_query("SELECT fotos.id_foto as foto, usuarios.fid_usuario as fid_usuario, usuarios.nombre_usuario as nombre_usuario, fotos.link_foto as link_foto FROM fotos, usuarios WHERE usuarios.fid_usuario = fotos.pertenecea_foto AND usuarios.check_usuario = 1 ORDER BY fotos.id_foto DESC LIMIT $RegistrosAEmpezar, $RegistrosAMostrar",$db) or
die(mysql_error());
if($PagAct==$PagUlt){ echo "No hay mas para mostrar";}else{
$Resultado_sobremi = mysql_query('SELECT texto_sobremi FROM sobremi WHERE quien_sobremi = "'.$MostrarFila["fid_usuario"].'" ORDER BY id_sobremi DESC',$db);
//aca se realiza la votacion de la persona
$q_interaccion = mysql_query('INSERT interaccion SET de_interaccion ="'.$usuario_de.'", a_interaccion = "'.$MostrarFila["fid_usuario"].'", valor_interaccion = "'.$trebol.'"',$db); }
echo '<a href="perfil.php?usuario='.$MostrarFila["fid_usuario"].'"><img src="uploads/'.$MostrarFila["link_foto"].'" /></a>
<p class="texto-normal" style="word-wrap:break-word;">'.mysql_result($Resultado_sobremi, 0).'</p>';
}
//desplazamiento
echo "<center><table width='270px' border='0'>
<tr>
<td>";
if($PagAct<$PagUlt) echo "<a onclick=\"Pagina('$PagSig', '1')\"><img src='images/si.png' /></a>
<a onclick=\"Pagina('$PagSig', '2')\"><img src='images/capas.png' /></a>
<a onclick=\"Pagina('$PagSig', '3')\"><img src='images/nah.png' /></a></td>
</tr>
</table></center></center><br><br>";
}
?>
Este es mi codigo AJAX:
ajaxpagsingle.js
Código Javascript
:
Ver originalfunction objetoAjax(){
var xmlhttp=false;
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(E){
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function Pagina(nropagina, trebol){
//donde se mostrará los registros
divContenido = document.getElementById('foto-persona');
ajax=objetoAjax();
//uso del medoto GET
//indicamos el archivo que realizará el proceso de paginar
//junto con un valor que representa el nro de pagina
ajax.open("GET", "mostrar-personas.php?pag="+nropagina+"&trebol="+trebol);
divContenido.innerHTML= '<img src="anim.gif">';
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
//mostrar resultados en esta capa
divContenido.innerHTML = ajax.responseText
}
}
//como hacemos uso del metodo GET
//colocamos null ya que enviamos
//el valor por la url ?pag=nropagina
ajax.send(null)
}
y aqui llamo a la funcion:
personas.php
Código HTML:
Ver original<div id="foto-persona" class="foto-persona">
<?php include('mostrar-personas.php');?>
de nuevo, me muestra TODO, pero cuando quiero llenar paso la foto no me reconoce la session y con este inconveniente no puedo llenar la db en la parte donde necesito insertar en la tabla interaccion.
osea en la primera impresion si aparece, pero cuando paso la foto se borra la variable session
No se que puede ser!!
gracias de antemano!