|
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ę takie 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
Warning%3A%20session_start%28%29%20%5Bfunction.session-start%5D%3A%20Cannot%20send%20session%20cookie%20-%20headers%20already%20sent%20by%20%28output%20started%20at%20%2Fhome%2Fmuitoafr%2Fpublic_html%2Ffimo%2Fincludes%2Fjoomla.php%3A4145%29%20in%20%2Fhome%2Fmuitoafr%2Fpublic_html%2Ffimo%2Fincludes%2Fjoomla.php%20on%20line%20800%0A%0AWarning%3A%20session_start%28%29%20%5Bfunction.session-start%5D%3A%20Cannot%20send%20session%20cache%20limiter%20-%20headers%20already%20sent%20%28output%20started%20at%20%2Fhome%2Fmuitoafr%2Fpublic_html%2Ffimo%2Fincludes%2Fjoomla.php%3A4145%29%20in%20%2Fhome%2Fmuitoafr%2Fpublic_html%2Ffimo%2Fincludes%2Fjoomla.php%20on%20line%20800
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, '' ); }
doGzip%28%29%3B%0A%0A%20%20%20%20%2F%2F%20if%20task%20action%20is%20%27save%27%20or%20%27apply%27%20redo%20session%20check%0A%20%20%20%20if%20%28%20%24task%20%3D%3D%20%27save%27%20%7C%7C%20%24task%20%3D%3D%20%27apply%27%20%29%20%7B%0A%20%20%20%20%24mainframe-%3EinitSessionAdmin%28%20%24option%2C%20%27%27%20%29%3B%0A%7D Teraz modyfikujemy go w ten sposób: // if task action is 'save' or 'apply' redo session check if ( $task == 'save' || $task == 'apply' ) { $mainframe->initSessionAdmin( $option, '' ); } doGzip();
%20%20%20%20%2F%2F%20if%20task%20action%20is%20%27save%27%20or%20%27apply%27%20redo%20session%20check%0A%20%20%20%20if%20%28%20%24task%20%3D%3D%20%27save%27%20%7C%7C%20%24task%20%3D%3D%20%27apply%27%20%29%20%7B%0A%20%20%20%20%24mainframe-%3EinitSessionAdmin%28%20%24option%2C%20%27%27%20%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20doGzip%28%29%3B 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: {geshibot lang="php"}session_save_path("/Å›cieżka/do/twojego/katalogu/tmp");{geshibot} 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. |