Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Nie trzymanie sesji
Maxik
post 24.01.2009, 13:18:04
Post #1





Grupa: Zarejestrowani
Postów: 726
Pomógł: 129
Dołączył: 10.01.2008
Skąd: Gdańsk

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


Pojawił sie kolejny problem z moją konsolą. W pliku ajax.php dodaje 3 testowe wpisy, zostają one zapisane w sesji $_SESSION['konsola'] jako tablica. Gdy próbuję potem odczytać te wpisy to tablica jest pusta. Nie zostają zapisane. Mam session_start() na początku pliku ajax.php. Odbieram dane ajaxem w pliku konsola.html, służy mi do tego prototype. Na moje powino trzymać sesję. Nie działa ani na lokalu, ani na hostingu. Proszę o pomoc.


--------------------
Pomogłem? Kliknij przycisk Pomógł pod pomocnym Ci postem.
http://maxik.me/
Go to the top of the page
+Quote Post
erix
post 24.01.2009, 13:50:54
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Ok, pokaż ścieżki do tych plików (strukturę katalogu ze skryptem).


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Maxik
post 24.01.2009, 13:52:20
Post #3





Grupa: Zarejestrowani
Postów: 726
Pomógł: 129
Dołączył: 10.01.2008
Skąd: Gdańsk

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


-konsola
--konsola.html
--konsola.class.php
--ajax.php


--------------------
Pomogłem? Kliknij przycisk Pomógł pod pomocnym Ci postem.
http://maxik.me/
Go to the top of the page
+Quote Post
erix
post 24.01.2009, 13:54:27
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




No i trochę kodu:
Cytat
Odbieram dane ajaxem w pliku konsola.html, służy mi do tego prototype.

Listing funkcji pobierającej dane.

Cytat
Mam session_start() na początku pliku ajax.php.

No i tego pliku.

Poza tym, sprawdź, czy przeglądarka dostaje ciasteczko z identyfikatorem sesji, a jeśli tak, to czy SID jest taki sam w każdym przypadku.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Maxik
post 24.01.2009, 16:34:20
Post #5





Grupa: Zarejestrowani
Postów: 726
Pomógł: 129
Dołączył: 10.01.2008
Skąd: Gdańsk

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


Cistko się zgadza.

JS:
  1. <script type="text/javascript">
  2. function post_cmd(cmd){
  3. new Ajax.Request('ajax.php',
  4. {method:'post',
  5. parameters:{ command: cmd },
  6. onSuccess: function(obj){
  7. if(cmd=='/clear'){
  8. document.getElementById('main-window').innerHTML = '';
  9. }
  10. document.getElementById('main-window').innerHTML=document.getElementById('main-window').innerHTML+obj.responseText;
  11. var objDiv = document.getElementById("main-window");
  12. objDiv.scrollTop = objDiv.scrollHeight;
  13. },
  14. onFailure: function(){
  15. alert("Błąd serwera.");
  16. }
  17. });
  18. document.getElementById('cmd').value='';
  19. document.getElementById('cmd').focus();
  20. }
  21. function init(){
  22. new Ajax.Request('ajax.php',{
  23. method:'get',
  24. parameters:{
  25. akcja: 'init'
  26. },
  27. onSuccess: function(obj){
  28. document.getElementById('main-window').innerHTML=obj.responseText;
  29. var objDiv = document.getElementById("main-window");
  30. objDiv.scrollTop = objDiv.scrollHeight;
  31. },
  32. onFailure: function(){
  33. alert("Błąd serwera.");
  34. }
  35. });
  36. document.getElementById('cmd').value = '';
  37. document.getElementById('cmd').focus();
  38. }
  39.  
  40. function check_msg(){
  41. new Ajax.Request('ajax.php',{
  42. method:'get',
  43. parameters:{
  44. akcja: 'check'
  45. },
  46. onSuccess: function(obj){
  47. document.getElementById('main-window').innerHTML=document.getElementById('main-window').innerHTML+obj.responseText;
  48. var objDiv = document.getElementById("main-window");
  49. objDiv.scrollTop = objDiv.scrollHeight;
  50. },
  51. onFailure: function(){
  52. alert("Błąd serwera.");
  53. }
  54. })
  55. }
  56. function checkenter(event){
  57. event = (event)?event:((window.event)?event:null);
  58. if(event.keyCode==13){
  59. post_cmd(document.getElementById('cmd').value);
  60. }
  61. }
  62. </script>


ajax.php:
  1. <?php
  2.  
  3. header("Content-type:text/html; charset=utf-8");
  4.  
  5. require("konsola.class.php");
  6. $konsolaobj = new Konsola();
  7.  
  8. if(!empty($_GET['akcja']) and $_GET['akcja']=='init'){
  9.    $konsolaobj->put('Maxiks Console', 'important');
  10.    $konsolaobj->put('Version 0.1Beta', 'info');
  11.    $konsolaobj->put('Wpisz komendę...', 'info');
  12.    $konsolaobj->ajax_check();
  13. } elseif(!empty($_POST['command'])){
  14.    $konsolaobj->parse_cmd(strip_tags($_POST['command']));
  15. } elseif(!empty($_GET['akcja']) and $_GET['akcja']=='add'){
  16.    $konsolaobj->put('Wpis dodany bez sprawdzenia', 'important');
  17.    $konsolaobj->put('Kolejny...', 'info');
  18.    $konsolaobj->put('I ostatni...', 'error');
  19. }
  20.  
  21. ?>


W przegladarce wywołuję ajax.php?akcja=add.

Udało mi się rozwiązać problem. Konstruktor czyścił po prostu wpisy. Wystarczyło dodać instrukcję warunkową. Dzięki za pomoc.


--------------------
Pomogłem? Kliknij przycisk Pomógł pod pomocnym Ci postem.
http://maxik.me/
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 Wersja Lo-Fi Aktualny czas: 13.06.2025 - 09:04