Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][Ajax][jQuery] Problem z sesjami po dynamicznym ładowaniu stron
igorew
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 15.09.2010

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
lobopol
post
Post #2





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

Ostrzeżenie: (0%)
-----


to czy używasz bazy czy plików i tak wymaga dodania session start przykład: http://brennydoogles.wordpress.com/2011/09...abase-sessions/


--------------------
Go to the top of the page
+Quote Post
igorew
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 15.09.2010

Ostrzeżenie: (0%)
-----


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.

Ten post edytował igorew 31.05.2013, 13:20:24
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 10:04