Lukaso 0 Zgłoś post Napisano Marzec 9, 2013 Witam,Po aktualizacji serwera VPS ( Apache 2.2.22, PHP 5.3.3 i MySQL 5.5.28 ) mam problem z logowaniem do postawionego na nim serwisu. Gdy zostanie wpisane poprawne hasło użytkownik zamiast się zalogować - otrzymuje poniższą informację: "Nieprawidłowe przekierowanieFirefox wykrył, że serwer przekierowuje żądanie tego zasobu w sposób uniemożliwiający jego ukończenie.Problem ten może się pojawić w wyniku zablokowania lub odrzucenia ciasteczek." Od momentu zalogowania we wszelkich podstronach wyświetla się ta informacja - do czasu usunięcia plikucookie odpowiedzialnego za zalogowanie. Dodam iż na innym serwerze cały proces logowania do serwisudziała poprawnie.Na czym polega powstały problem? Spotkaliście się kiedyś z taką sytuacją? Udostępnij ten post Link to postu Udostępnij na innych stronach
Pan Kot 1535 Zgłoś post Napisano Marzec 9, 2013 Ciężko stwierdzić w czym jest problem. Polecam przeanalizować logi apache'a z /var/log/apache2. Udostępnij ten post Link to postu Udostępnij na innych stronach
mraw 30 Zgłoś post Napisano Marzec 9, 2013 A może prostsza przyczyna: wyczyściłeś cache w przeglądarce, albo próbowałeś się zalogować za pomocą innej? Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość Kamikadze Zgłoś post Napisano Marzec 9, 2013 Sprawdz tez wersje php vpsa i hostingu i jezeli na vps jest nowszy to sprawdz czy jakas funkcja uzywana przez skrypt nie jest juz wspierana przez nowe php Udostępnij ten post Link to postu Udostępnij na innych stronach
Lukaso 0 Zgłoś post Napisano Marzec 9, 2013 Ciężko stwierdzić w czym jest problem. Polecam przeanalizować logi apache'a z /var/log/apache2. Logi przeanalizowane - ale nie ma tam nic niepokojącego. A może prostsza przyczyna: wyczyściłeś cache w przeglądarce, albo próbowałeś się zalogować za pomocą innej? Niestety - to nie takie proste... Problem pojawia się na różnych przeglądarkach (np. na IE długo ładuje i wyświetla komunikat "Nie można wyświetlić strony") - sprawdzane na kilku komputerach. Sprawdz tez wersje php vpsa i hostingu i jezeli na vps jest nowszy to sprawdz czy jakas funkcja uzywana przez skrypt nie jest juz wspierana przez nowe php Na starym serwerze jest PHP w wersji 5.3.13 - a na obecym 5.3.3. Czy to może stanowić problem? Gdzie mogę znaleźć listę funkcji wspieranych przez jedną i drugą wersję, aby móc je porównać? Udostępnij ten post Link to postu Udostępnij na innych stronach
kix 28 Zgłoś post Napisano Marzec 9, 2013 Pokaż error_log od domeny. Udostępnij ten post Link to postu Udostępnij na innych stronach
Lukaso 0 Zgłoś post Napisano Marzec 10, 2013 (edytowany) Faktycznie - w error log znalazłem błędy (było ich całkiem sporo, dużo już wyeliminowałem, ale mam problem z poniższymi): PHP Deprecated: Function session_register() is deprecated in /var/www/vhosts/mojadomena.pl/httpdocs/x/core.php on line 3 PHP Warning: session_register() [<a href='function.session-register'>function.session-register</a>]: open(/var/lib/php/session/sess_maka3fh2tou4m2ps49asklemr3, O_RDWR) failed: Permission denied (13) in /var/www/vhosts/mojadomena.pl/httpdocs/x/core.php on line 3 Próbowałem to naprawić wg. instrukcji znalezionych w necie, ale bezskutecznie... Zerknijcie na kod przed zmianami i pomóżcie mi bo już tracę siły.... Poniżej podaję fragment kodu (core.php): <?php session_register('iLogged'); if ($_SESSION['iLogged'] == true) { define(_i, $_SESSION['iLogged']); mysql_query("UPDATE `"._sql."users` SET `last_visit` = '".time()."' WHERE `id` = "._i); if (user(rank) == 9) define (_iA, true); else define (_iA, false); if (user(rank) == 8) define (_iM, true); else define (_iM, false); if (user(rank) < 0) { $_SESSION['iLogged'] = false; setcookie("iUser", $user['id'], time()-1, "/"); redirect(); } } else { define('_i', false); define('_iA', false); define ('_iM', false); } if (!_i AND $_COOKIE['iUser']) { $cookie = explode("_", $_COOKIE['iUser']); $sql = "SELECT * FROM `"._sql."users` WHERE `id` = '".$cookie[0]."'"; if (sql_num($sql)) { $sql = sql_load($sql); if (md5($sql["hash"]) == $cookie[1]) { $_SESSION['iLogged'] = $sql['id']; redirect(_ref); } } } ?> + plik logowania: <?php class login { function content() { if ($_POST['login_try']) return $this -> try_login(); elseif (_1 == logout) { $_SESSION['iLogged'] = false; setcookie("iUser", $user[id], time()-1, "/"); redirect(_ref); } elseif (!_i) return $this -> form(); else redirect(_ref); } function form() { if ($this -> error) { $icon = forbidden; $title = $this -> error; } else { $icon = lock; $title = "Zaloguj się:"; } echo _open.alert($icon, $title, "<form action='"._server."login' method='post'>".row( array ( "Login:<br /> <input name='login_login' style='width:100px;' type='text' value='' /><br />", "Hasło:<br /> <input name='login_password' style='width:100px;' type='password' value='' /><br />", "<input name='login_try' type='hidden' value='1' /><br /> <input type='submit' value='Zaloguj się' class='submit short' />" ) )."</form>"._clear)._close; } function try_login() { $login = filter($_POST[login_login]); $password = filter($_POST[login_password]); $sql = "SELECT * FROM `"._sql."users` WHERE `login` = '".$login."' AND `password` = '".md5($password)."'"; $user = sql_load($sql); if (sql_num($sql) AND $user[verified] AND $user[rank] >= 0) { $_SESSION[iLogged] = $user[id]; setcookie("iUser", $user[id]."_".md5($user["hash"]), strtotime("+1 month"), "/"); redirect(_ref); } elseif ($user[rank] < 0) { if ($user[rank] == -3) $expired = "żywotnio"; else $expired = " ".date(set(show, date_format), $user["rank_expire"]); $this -> error = "<span style='color: #ffffff;'>Użytkownik zbanowany (do".$expired.")!</span>"; } elseif (!sql_num($sql)) $this -> error = "<span style='color: #ffffff;'>Nieprawidłowe dane!</span>"; elseif (!$user[verified]) $this -> error = "Konto nieaktywne!<br /><span style='font-size: 11px; color: white;'>E-mail aktywacyjny nie dotarł? <a href='"._server."rejestracja/5/".$login."'>Kliknij.</a>"; if ($this -> error) return $this -> form(); } } ?> Edytowano Marzec 10, 2013 przez Lukaso (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
kix 28 Zgłoś post Napisano Marzec 11, 2013 Zmień w php.ini session_save_path na /tmp i sprawdź czy /tmp ma prawa 777. Dodatkowo wyłącz wyświetlanie błędów E-Deprecated Udostępnij ten post Link to postu Udostępnij na innych stronach