![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 21.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam Panstwa,
Mam problem, ktorego od dluzszego czasu nie potrafie rozwiazac. Chodzi o logowanie do bazy danych postgresql z poziomu przegladarki. Gdy wysle pole login i haslo metoda get i porownam je z danymi z bazy danych tak napisany skrypt jest niewrazliwy na wylogowywanie, bo jezeli nawet zniszcze sesje w ktorej przechowywalem haslo i login, to po powroceniu do strony logowania i nacisnieciu przycisku refresh login i haslo sa znow wpisywane do sesji z formularza. Jak zrobic, zeby tylko raz pobrac login i haslo? Chcialbym takze, zeby mozna bylo przewracac kartki w przegladarce przyciskiem back i odczytywac informacje tak dlugo jak dlugo jestem zalogowany. Dziekuje za podpowiedzi, Marcin Glogowski |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 401 Pomógł: 0 Dołączył: 18.04.2003 Skąd: Trójmiasto Ostrzeżenie: (0%) ![]() ![]() |
a moglbys umiescic jakis kod ? tylko prosze nie zapomnij o znacznikach php przy umieszczaniu kodu :!:
![]() napisz na poczatku kodu: Kod [php] tutaj kod php [/php] |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 21.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
Dobrze, oto kod strony glownej:
[php:1:87f1147501] session_start(); include('naglowek.inc.php'); echo "<form action='projekt.php' method='get'> <br> <table> <tr> <td> Użytkownik </td> <td> <input name='login' type='text'> </td> </tr> <tr> <td> Hasło </td> <td> <input name='haslo' type='password'> <input type='submit' value='Loguj'> </td> </tr> </table> </form>"; include('stopka.inc.php'); [/php:1:87f1147501] no i kod strony, na ktora wchodze po nacisnieciu przycisku [php:1:87f1147501] session_start(); error_reporting(D_ALL); include('naglowek.inc.php'); $zalogowany = $_SESSION['zalogowany']; if ($zalogowany == 1) { $login=$_SESSION['login']; $haslo=$_SESSION['haslo']; }else if (!isset($zalogowany)) { $login=$_GET['login']; $haslo=$_GET['haslo']; $_SESSION['login'] = $login; $_SESSION['haslo'] = $haslo; $baza = pg_connect("dbname=sklad user='$login' password='$haslo'"); if ($baza) { $zalogowany = $_SESSION['zalogowany'] = 1; pg_close(); } } [/php:1:87f1147501] Tak jak juz wspomnialem, jezeli bylo nieprawidlowe logowanie, to sesja zostaje zniszczona poprzez session_destroy(); ale po powrocie na strone projekt.php i odswierzeniu znow mozna wejsc do bazy danych, no login i haslo jest pobierane poprzez get z formularza. Pozdrawiam |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 86 Pomógł: 0 Dołączył: 2.04.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
A moze by tak ustawic ciasteczko po przetworzeniu danych z forumlarz...
(?) W ten sposob dwa razy nie da sie uzyc tych samych zmiennych z formularza. Nie wiem czy dobrze kojarze ale jezeli (chyba) nie ustali sie limitu zywotnosci ciahca to po zamknieciu przegladarki zostanie ono usuniete - wiec nie bylo by problemu z powtornym logowaniem! Drugim sposobem jaki przychodzi mi na mysl to podczas sprawdzania danych z formularza najpierw sprawdzic czy nie ma juz zainicjowanych zmiennych w sesji a zamiast uzywac session_destroy() poprostu zmienic wartosci login i hasla na jakies nieuzyteczne... Moze ktorys pomysl Ci sie spodoba i wykorzystasz go... PS nie zapomnij na pisac na forum jak rozwiazales swoj problem ![]() Pozdrawiam |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 19:25 |