Foros del Web » Programando para Internet » PHP »

problema con session start y ajax

Estas en el tema de problema con session start y ajax en el foro de PHP en Foros del Web. Hola, veran estoy realizando un buscador para mi web, todo va perfecto para buscar todos los usuarioos sin tener la variable SESSION , pero cuando ...
  #1 (permalink)  
Antiguo 18/02/2013, 20:54
Avatar de erozwashere  
Fecha de Ingreso: noviembre-2012
Ubicación: mex
Mensajes: 176
Antigüedad: 12 años
Puntos: 0
problema con session start y ajax

Hola, veran estoy realizando un buscador para mi web,

todo va perfecto para buscar todos los usuarioos sin tener la variable SESSION , pero cuando quiero buscar de una tabla de acuerdo a la $_SESSION['id']


Tengo un archivo busqueda.php
Código PHP:
Ver original
  1. <input type="text" class="buscar" id="buscador" placeholder="Buscar personas.." name="bus" /><br />
  2. </div>
  3. <div id="mostrarresultados"></div>


dento de ese mismo archivo tengo un script js que envia los datos a otro archivo prosesarbusqueda.php
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. $(document).ready(function(){
  3.  
  4. $(".buscar").keyup(function()
  5. {
  6. var texto = $(this).val();
  7. var dataString = 'palabra='+ texto;
  8.  
  9. if(texto=='')
  10. {
  11.  
  12.   $("#mostrarresultados).slideUp("fast");
  13. }
  14. else
  15. {
  16. $.ajax({
  17. type: "POST",
  18. url: "prosesarbusqueda.php",
  19. data: dataString,
  20. cache: false,
  21. success: function(html)
  22. {
  23. $("#mostrarresultados").html(html).slideDown("fast");
  24.  }
  25. });
  26. }return false;    
  27. });
  28. });
  29. jQuery(function($){
  30.   $("#buscador").Watermark("Buscar personas.");
  31.   });
  32. </script>


prosesarbusqueda.php
Código PHP:
Ver original
  1. <?
  2. mysql_connect("localhost","usuario","constrasena");
  3. mysql_select_db("basededatos");
  4.  
  5.  
  6. $buscarr=$_POST['palabra'];
  7.  
  8.  
  9.  
  10. $sql_res=mysql_query("select * from personas where nombre like '%$buscarr%'");
  11. while($row=mysql_fetch_array($sql_res))
  12. {
  13. $id=$row['id'];
  14. $nombre=$row['nombre'];
  15. $direc=$row['perfil_id'];
  16. $foto=$row['url'];
  17.  
  18.  
  19.  
  20. <div >MUESTO LOS DATOS </div>
  21.  
  22. <?php
  23. }
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30. ?>


HASTA AHI TODO BIEN,


pero cuando agrego "session_start();" al archivo prosesarbusqueda.php y pido que me muestre la session para realizar una consulta mediante la session que esta abierta pasa que me muestra todas las sessiones

y despues de eso puedo entrar a otras sessiones y ya no en la mia

ayuda

nose se si esta bien publicarlo en este foro o en el de js

GRACIAS POR CONTESTAR
  #2 (permalink)  
Antiguo 18/02/2013, 21:41
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 21 años, 3 meses
Puntos: 105
Respuesta: problema con session start y ajax

Holas,

Y como estas usando o declarando el session_start?. Y como estas recuperando el valor de la sesion?

Saludos,
__________________
.: Gildus :.
  #3 (permalink)  
Antiguo 18/02/2013, 21:46
Avatar de erozwashere  
Fecha de Ingreso: noviembre-2012
Ubicación: mex
Mensajes: 176
Antigüedad: 12 años
Puntos: 0
Respuesta: problema con session start y ajax

Cita:
Iniciado por gildus Ver Mensaje
Holas,

Y como estas usando o declarando el session_start?. Y como estas recuperando el valor de la sesion?

Saludos,

Al iniciar session guardo la session en $_SESSION['id'];

luego en el archivo "prosesarbusqueda.php"

hago <?session_start();

y guardo la session en $id=$_SESSION['id'];

luego realizo una consulta mysql "select * from tabla where id=".$id.""
y despues de eso me muestra todo mal se aloca el sistema
?>


cabe recalcar que uso el mismo procedimiento en otros archivos y todo funciona perfecto solo en este falla creo que es por el metodo ajax
  #4 (permalink)  
Antiguo 18/02/2013, 22:18
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 21 años, 3 meses
Puntos: 105
Respuesta: problema con session start y ajax

Deberias de dumpear la cadena que pasas a la consulta con var_dump y alli te mostrara que estas enviandole, y te mostrara quizas el error mas exacto.

Parece que no defines por algun lado el valor de $_SESSION['id'].
__________________
.: Gildus :.
  #5 (permalink)  
Antiguo 18/02/2013, 22:28
Avatar de erozwashere  
Fecha de Ingreso: noviembre-2012
Ubicación: mex
Mensajes: 176
Antigüedad: 12 años
Puntos: 0
Respuesta: problema con session start y ajax

Cita:
Iniciado por gildus Ver Mensaje
Deberias de dumpear la cadena que pasas a la consulta con var_dump y alli te mostrara que estas enviandole, y te mostrara quizas el error mas exacto.

Parece que no defines por algun lado el valor de $_SESSION['id'].
coomo dumpear? no entiendo?

el valor de la $_SESSION['id']; lo obtengo a la hora de iniciar session en otro archivo "validarusuario.php"


<?php
session_start();
mysql_connect('localhost','usuario','contra');
mysql_select_db('basededatos');
$usuario = strtolower($_POST["usuario"]);
$password = $_POST["password"];
if($usuario!= "" && $password!= "")
{
$sql = mysql_query('SELECT * FROM perfil WHERE id="'.$usuario.'"');
if($f= mysql_fetch_array($sql)){
if($f["password"] == $password){
$_SESSION["id"]=$f['perfil_id'];
$_SESSION["k_username"] = $f['id'];
$_SESSION["emaail"] = $f['email'];
$_SESSION["usuario"] = $f['nombreusuario'];


/// SIGUE CODIGO PHP pero basicamente ahi guardo la $_SESSION['id'];
  #6 (permalink)  
Antiguo 18/02/2013, 22:31
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 14 años, 2 meses
Puntos: 45
Respuesta: problema con session start y ajax

antes de definir session_start() coloca session_name('tu_sesion'), para que no se mezcle con otras
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #7 (permalink)  
Antiguo 18/02/2013, 22:56
Avatar de erozwashere  
Fecha de Ingreso: noviembre-2012
Ubicación: mex
Mensajes: 176
Antigüedad: 12 años
Puntos: 0
Respuesta: problema con session start y ajax

Cita:
Iniciado por malakian Ver Mensaje
antes de definir session_start() coloca session_name('tu_sesion'), para que no se mezcle con otras
en cual archivo?

session_name('id')? asi

gracias
  #8 (permalink)  
Antiguo 18/02/2013, 23:01
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 14 años, 2 meses
Puntos: 45
Respuesta: problema con session start y ajax

a ver, dices que creas las variables de sesion en validarusuario.php...
deberías colocar session_name('elNombreQueQuieras'); siempre antes de llamar session_start().

Ahora si necesitas las sesiones en procesarbusqueda.php deberías volver a colocar session_name() y session_start();
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #9 (permalink)  
Antiguo 18/02/2013, 23:57
Avatar de erozwashere  
Fecha de Ingreso: noviembre-2012
Ubicación: mex
Mensajes: 176
Antigüedad: 12 años
Puntos: 0
Respuesta: problema con session start y ajax

Cita:
Iniciado por malakian Ver Mensaje
a ver, dices que creas las variables de sesion en validarusuario.php...
deberías colocar session_name('elNombreQueQuieras'); siempre antes de llamar session_start().

Ahora si necesitas las sesiones en procesarbusqueda.php deberías volver a colocar session_name() y session_start();


No consegui resolverlo con session_name()


pero borre esta linea $id = $row['id'];

y toodo funciono no entiendo por qe al poner esa linea causa el error

Gracias por tomarse el tiempoo de contestar,


saludos
  #10 (permalink)  
Antiguo 19/02/2013, 07:23
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 21 años, 3 meses
Puntos: 105
Respuesta: problema con session start y ajax

Para tener mas claro, en el codigo que mencionas:

Código PHP:
Ver original
  1. <?php
  2.  
  3. mysql_connect('localhost','usuario','contra');
  4. mysql_select_db('basededatos');
  5.  
  6. $usuario = strtolower($_POST["usuario"]);
  7. $password = $_POST["password"];
  8.  
  9. if($usuario!= "" && $password!= "")
  10. {
  11.     $sql = mysql_query('SELECT * FROM perfil WHERE id="'.$usuario.'"');
  12.     if($f= mysql_fetch_array($sql)) {
  13.         if($f["password"] == $password) {
  14.             $_SESSION["id"]=$f['perfil_id'];
  15.             $_SESSION["k_username"] = $f['id'];
  16.             $_SESSION["emaail"] = $f['email'];
  17.             $_SESSION["usuario"] = $f['nombreusuario'];
  18.             ...
  19.  
  20. ?>

No asigna el valor por ejemplo $f['perfil_id']; a la variable $_SESSION["id"] ?

Me imagino que en las condiciones:

Código PHP:
Ver original
  1. if($f["password"] == $password)

Y

Código PHP:
Ver original
  1. if($f= mysql_fetch_array($sql))


Si no cumplen estaras limpiando o eliminando las variables de la sesion por ejemplo:

Código PHP:
Ver original
  1. ...
  2. ...
  3. else {
  4.     unset( $_SESSION["id"]);
  5.     // o un session_destroy();
  6. }


Sobre el dumpear es un termino que uso cuando uso la funcion var_dump(), por ejemplo antes de enviar la consulta.

- Podrias tener error en tu consulta SQL. (usa el var_dump).
- Tambien podrias tener error al iniciar la sesion con session_start() cuando ya esta iniciada. (confirma si ya existe la varibale por ejemplo $_SESSION["id"], y si no entonces inicia session_start() )
- Ya existe una salida en la cabecera antes de la funcion session_start(). (Verifica que no se envie nada antes del session_start()).


Saludos
__________________
.: Gildus :.

Etiquetas: Ninguno
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 22:37.