Dziękuję za wszelkie dotacje.
| Wygasanie sesji w Joomla, VirtueMart |
| Wpisany przez Wojciech Romanek | |||
| czwartek, 21 lutego 2008 23:52 | |||
|
Częstym problemem na nowych instalacjach Joomla 1.0.13 jest wygasanie sesji. Np kiedy robimy coś na VirtueMart, chcemy zapisać zmiany i wtedy zostajemy wylogowani. I dostajemy komunikat że sesja wygasła. Przed wylogowaniem często na dole w panelu administratora pojawiają się komunikaty (mniej więcej takie): Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/muitoafr/public_html/fimo/includes/joomla.php:4145) in /home/muitoafr/public_html/fimo/includes/joomla.php on line 800 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/muitoafr/public_html/fimo/includes/joomla.php:4145) in /home/muitoafr/public_html/fimo/includes/joomla.php on line 800 Jak sobie z tym poradzić? Ciężko uwierzyć ale błąd ten powodowany jest przez złą kolejność komend. Tzn jedną komendę wystarczy przenieść na koniec pliku. Pamiętaj! Przed dokonaniem jakichkolwiek zmian w plikach Joomla zrób ich kopię! Gdy coś nie zadziała przywrócisz skopiowane pliki i będzie jak poprzednio! Aby naprawić ten błąd musisz edytować plik: /administrator/index2.php odszukujemy kod wyglądający tak:
doGzip(); // if task action is 'save' or 'apply' redo session check if ( $task == 'save' || $task == 'apply' ) { $mainframe->initSessionAdmin( $option, '' ); }{/geshibot} Teraz modyfikujemy go w ten sposób: {geshibot lang="php"} // if task action is 'save' or 'apply' redo session check if ( $task == 'save' || $task == 'apply' ) { $mainframe->initSessionAdmin( $option, '' ); } doGzip(); Jeśli po tych zmianach nadal sesja będzie wygasać to prawdopodobnie masz źle zadeklarowaną ścieżkę do ktalogu w którym zapisywane są sesje. Aby to naprawić utwórz w katalogu głównym Twojej strony folder o dowolnej nazwie (ja napisałem tmp) nadaj mu prawa do zapisu. A następnie edytuj /includes/joomla.php odrazu zaraz za pierwszym komentarzem jako pierwszą instrukcję w pliku wpisz: session_save_path("/ścieżka/do/twojego/katalogu/tmp"); I po problemie! Sposób rozwiązania tego problemu znalazłem na jednym z anglojęzycznych for o Joomla, niestety teraz nie pamietam jakiego. Jak sobie przypomnę to dodam link do wątku oryginalnego na forum.
|