Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Formularze, logowanie i PHP
marcingl
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Fo
post
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 :!: aaevil.gif
napisz na poczatku kodu:
Kod


[php]

tutaj kod php

[/php]
ulatwi to nam prace - no chyba ze znajdzie sie ktos kto powie ci o co chodzi bez patrzenia na kod skryptu - ja bym wolal zobaczyc...
Go to the top of the page
+Quote Post
marcingl
post
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
Go to the top of the page
+Quote Post
Project
post
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
smile.gif

Pozdrawiam
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 19:25