Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Czy cookie może powodować internal server error
Forum PHP.pl > Forum > PHP
adrian1987
Mam taki problem, że napisałem sobie aplikację w php wykorzystującą cookies i problem mój jest że strona działa do momentu, aż nie kliknę na link prowadzący do podstrony gdzie zapisuję lub odczytuję coś z cookies, wtedy wyskakuje mi właśnie błąd:
  1. Błąd krytyczny serwera
  2. Internal Server Error - Błąd 500
  3.  
  4. Wystąpił problem krytyczny z serwerem, żądana strona nie może zostać prawidłowo wyświetlona.
  5. Jeżeli jesteś właścicielem serwera, na którym znajduje się ta strona prosimy abyś sprawdził:
  6. 1. Poprawność wpisów mod_rewrite w pliku .htaccess.
  7. 2. Sprawdzić zawartość pliku .htaccess pod kątem występowania wpisów php_flag i php_admin_value.
  8. Serwer PHP działa w trybie CGI i ustawienia PHP są pobierane z pliku php.ini.
  9. Prosimy usunąć linie o początku php_flag lub php_admin_value lub zakomentować je znakiem hash "#".


hosting mam na cal.pl i administratorzy odsyłają mnie do analizy kodu, a w kodzie nic takiego się nie dzieje... Podam przykład:
  1. <?PHP
  2.    include('lib/class.php');
  3.    $numer_wiadomosci = $wiadomosc = $temat = NULL;
  4.    $user = new users;
  5.    $szablon = $user -> get_szablon(1);
  6.    $html = $szablon['szablon'];
  7.    $html = str_replace('$numer_wiadomosci', $numer_wiadomosci, $html);
  8.    $html = str_replace('$wiadomosc', $wiadomosc, $html);
  9.    $html = str_replace('$temat', $temat, $html);
  10.    echo $html;
  11. ?>
  12. <script src="js/jquery-1.3.2.min.js"></script>
  13. <script type="text/javascript">
  14. function pokazCookie(nazwa) {
  15.  if (document.cookie!="") {
  16.  var toCookie=document.cookie.split("; ");
  17.    for (i=0; i<toCookie.length; i++) {
  18.      var nazwaCookie=toCookie[i].split("=")[0];
  19.      var wartoscCookie=toCookie[i].split("=")[1];
  20.      if (nazwaCookie==nazwa) return unescape(wartoscCookie);
  21.    }
  22.  }
  23. }
  24. var temat = pokazCookie('FCKeditor2');
  25. var nr_message = pokazCookie('nr_message');
  26. var tresc = pokazCookie('FCKeditor1');
  27. var zdjecie = pokazCookie('nazwa_zdjecia');
  28. zdjecie = 'url(szablon1/' + zdjecie + ')';
  29. //alert("temat" + temat + "\nnumer wiadomosci:" + nr_message + "\nzdjecie:" + zdjecie + "\nkod:" + tresc);
  30. jQuery.noConflict();
  31. jQuery('#numer').html(nr_message);
  32. jQuery('#temat').html(temat);
  33. jQuery('#kol_left').html(tresc);
  34. jQuery('#zdjecie').css('background-image', zdjecie);
  35. </script>
nospor
Cytat
Czy cookie może powodować internal server error
A nie możesz usunac tego kodu z cookie i w ten sposob sprawdzic czy to wina cookie czy nie?
Fifi209
Albo mi się rzuciło na oczy albo zapomniałeś o listingu gdzie zapisujesz ów cookie.
adrian1987
Wrzuciłem na inny hosting i wszystko śmiga... No właśnie z moich obserwacji wynika, że dopóki nie ma cookies to jest ok...
Zapisywanie cookie mam np poprzez taką funkcję:
  1. jQuery('#podglad').click(function() {
  2. fced = FCKeditorAPI.GetInstance('FCKeditor1');
  3. zawartosc = fced.GetXHTML(true);
  4. ustawCookie('FCKeditor1', zawartosc);
  5. fced = FCKeditorAPI.GetInstance('FCKeditor2');
  6. zawartosc = fced.GetXHTML(true);
  7. ustawCookie('FCKeditor2', zawartosc);
  8. var nr_message = jQuery('#nr_message').val();
  9. ustawCookie('nr_message', nr_message);
  10. window.open('podglad.php', 'NEWSLETTER - PODGLĄD');
  11. });
Fifi209
Może wina hostingu.

Co do cookie, nie lepiej zapisywać je po stronie php? W dodatku nie pokazałeś funkcji ustawCookie.
adrian1987
a ta funkcja wygląda tak:
  1. function ustawCookie(nazwa, wartosc, expire) {
  2. document.cookie = nazwa + "=" + escape(wartosc) + ((expire==null)?"" : ("; expires=" + expire.toGMTString()))
  3. }
armon
Dla przyszłych poszukujących...

Rozwiązaniem jest użycie podczas kodowania cookies funkcji encodeURIComponent zamiast encode oraz podczas dekodowania decodeURIComponent zamiast decode

Pozdrawiam
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.