Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Nie trzymanie sesji
Forum PHP.pl > Forum > Przedszkole
Maxik
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.
erix
Ok, pokaż ścieżki do tych plików (strukturę katalogu ze skryptem).
Maxik
-konsola
--konsola.html
--konsola.class.php
--ajax.php
erix
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.
Maxik
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.
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.