Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][Ajax][jQuery] Problem z sesjami po dynamicznym ładowaniu stron
Forum PHP.pl > Forum > Przedszkole
igorew
Witam Panowie i Panie, na wstępie dodam, że jeżeli taki temat był to przepraszam za pomyłkę - ja niestety rozwiązania nie znalazłem. Przedstawię wpierw skrypty mojej strony aby naświetlić nieco sytuację.

Kod strony dostępnej po zalogowaniu:

  1. <?php require_once('./data/engine/session/secure.php');?>
  2. <!DOCTYPE html>
  3. <html>
  4. <META http-equiv="Content-type" content="text/html; charset=utf-8">
  5. <META http-equiv="Content-Language" content="pl">
  6. <meta http-equiv="Reply-to" content="" />
  7. <meta name="Author" content=" " />
  8. <link rel="stylesheet" href="data/css/adm_main_style.css">
  9. <head>
  10. <title> <?php include('data/blocs/title.php') ?> </title>
  11. <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
  12. <script src="data/engine/loader/main_script.js"></script>
  13. </head>
  14. <body>
  15. <div id="HEADER"><?php include('data/blocs/header.php'); ?></div>
  16. <div id="container">
  17. <div id="LBLOC"><?php include('data/blocs/lbloc.php'); ?></div>
  18. <div id="RBLOC"><?php include('data/blocs/rbloc.php'); ?></div>
  19. <div id="MAIN"></div>
  20. <div id="FOOTER"><?php include('data/blocs/footer.php'); ?></div>
  21. </div>
  22. </body>
  23. </html>


Następnie do diva #MAIN treść ładuję przez skrypt następujący:

Kod
$(document).ready(function() {
   //Strona ladowana jako pierwsza:
   $('#MAIN').load('data/blocs/main.php');

   //Ladowanie pozostalych podstron:
   $('ul#menu li#load a').click(function() {
      var podstrona = $(this).attr('href');
      $('#MAIN').html('<p id="load">Ładuję...</p>');
      $('#MAIN').load('/data/pages/'+podstrona);
      return false;
   });
});


Kod maina natomiast to:

  1. <?php require_once('/home/igkrad/public_html/alfa/data/engine/session/secure.php')?>
  2. <?php
  3.  
  4.  
  5.  
  6. echo "<p>asdasd łżąćźńóę</p> ";
  7. echo "<p>dasdas test</p>";
  8.  
  9. ?>


A plik który includuję do każdej wewnętrznej strony i podstrony dostępnej tylko dla zalogowanych użytkowników wygląda tak:

  1. <?php
  2.  
  3. try
  4. {
  5. require_once('common.php');
  6.  
  7. if($session -> getUser() -> isAnonymous())
  8. {
  9.  
  10. echo " brak logowania";
  11. die();
  12.  
  13. }
  14. else
  15. {
  16. //echo '<p>Witaj, '.$session -> getUser() -> getLogin().'!
  17. //Ostatnio odwiedziles nas '.
  18. //$session -> getUser() -> getLastvisit().'!
  19. //(<a href="./login.php">Wyloguj sie</a>)</p>';
  20. }
  21.  
  22. //echo 'To sa tajne dane.';
  23. }
  24. catch(PDOException $exception)
  25. {
  26. echo 'Blad bazy danych: '.$exception->getMessage();
  27. }
  28. ?>
  29.  
  30.  


W końcu czas na problem: Po zalogowaniu się przez użytkownika i automatycznym przekierowaniu go na strone wewnętrzną której kod ukazałem na samej górze postu, w mainie wyświetla się: "brak logowania", czyli wiadomo, że problem dotyczy pzrekazywania danych logowania. Niestety nie znalazłem odpowiedzi jak ów problem rozwiązać. Pisano gdzieś żeby dać session_start() etc ., od razu pragnę wspomnieć, że nie używam session_start() nigdzie bowiem sesje mam rozpisane obiektowo a dane sesji przechowuję w bazie mySql. Wiem na czym problem polega niestety nie mogę dać sobie z nim rady, czy moglibyście wskazać mi co żle zrobiłem. Z góry dzięki za odp.

Pozdrawiam
Igor
lobopol
to czy używasz bazy czy plików i tak wymaga dodania session start przykład: http://brennydoogles.wordpress.com/2011/09...abase-sessions/
igorew
Nie zgodzę się. Ale mniejsza nie o to, problem jak wyżej opisano dotyczy braku przekazywania danych.

Jeszcze jedno (raczej istotne): Gdy wyłącze skrypt ładowania "jQuery" i włącze go już po zalogowaniu - strona wyświetlana jest prawidłowo czyli przekazywane/ pobierane są dane. Czasem również załaduję się wszystko prawidłowo. Może więc to mieć związek z tym czym przy logowaniu php i Ajax są ładowane synchroniczne i Ajax nie dostaję wtedy danych logowania. Jak tak nie jest to wybaczcie spekulacje.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.