| -Code46- |
Post
#1
|
|
Goście |
Załóżmy, że mam 3 pliki (apache, php i mysql postawione na localhost):
index.php - zawiera formularz logowania (metoda POST), który wywołuje skrypt czyok.php czyok.php - skrypt łączy się z bazą i sprawdza czy podany jest taki login i hasło jest poprawne. Jeśli nie to wracamy na stronę index.php. Jeśli login i hasło jest poprawne ładowany jest plik menu.php menu.php - menu główne, z którego mogą być wywoływane inne skrypty. Menu służy do zarząrzania całym systeme, np. dodawanie danych do bazy, usuwania, edytowanie i wiele innych dla zalogowanego użytkownika. logout.php - skrypt wylogowujący i ładujący strone index.php Kod <? session_unset(); setcookie ('PHPSESSID','', time()-300,'/','',0); //zniszcz cookie session_destroy(); header("location: main.php"); ?> Załóżmy, że zaloguje się do tego systemu a potem wyloguje. Kiedy zamknę przeglądarkę i otworzę ponownie, wpisze localhost/phpmyadmin/menu.php to pojawia się menu, i wyświetlany jest ostatnio zalogowany użytkownik. Można kasować dane z bazy, dodawać jednym słowem wszystko. A tak nie może być, bo po co wtedy hasło? Dopiero jak ręcznie usunę ciasteczko z przeglądarki to jest ok. Pomóżcie - błagam |
|
|
|
![]() |
| -Code46- |
Post
#2
|
|
Goście |
To jest skrypt, który odbiera dane z formularza (logowania) i sprawdza login i hasło:
Kod <!--Logowanie do systemu --> <? session_start(); include "config.inc.php"; ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"> <meta name="pragma" content="no-cache" /> <title>Logowanie...</title> <link rel="stylesheet" type="text/css" href="autoryzacja.css" /> </head> <body> <? //Połączenie z bazą danych $conn = mysql_connect($server, $identyfikator, $haslo) or die ("Nie udało się połączyć z bazą danych! BŁĄD: ".mysql_error()); //Wybór bazy danych mysql_selectdb($baza) or die ("Nie udało się wybrać bazy! BŁĄD: ".mysql_error()); //Zapytanie o login i hasło $query = "SELECT * FROM konto WHERE login='$_POST[logid]';"; $result = mysql_query($query) or die ("Zapytanie nieudane! BŁĄD: ".mysql_error()); $query_data = mysql_fetch_row($result); //Sprawdzenie czy podany login i hasło są poprawne if (MD5($_POST[pas]) == $query_data[2]) { //Udana autoryzacja if ($query_data[3] == 0) { //Zapytanie o dane osoby zalogowanej z tabeli pracownika $query = "SELECT konto.konto_id, login, haslo, kto, imie, nazwisko FROM konto, pracownik ". "WHERE login='$_POST[logid]' AND konto.konto_id=pracownik.konto_id;"; $result = mysql_query($query) or die ("Zapytanie nieudane! BŁĄD: ".mysql_error()); $query_data = mysql_fetch_row($result); $_SESSION[uzytkownik] = $query_data[4] . " " . $query_data[5]; $_SESSION[nick] = $query_data[1]; header("location: start.php"); } else { //Zapytanie o dane osoby zalogowanej z tabeli pracownika //Zapytanie o dane osoby zalogowanej z tabeli pracownika $query = "SELECT konto.konto_id, login, haslo, kto, imie, nazwisko FROM konto, klient ". "WHERE login='$_POST[logid]' AND konto.konto_id=klient.konto_id;"; $result = mysql_query($query) or die ("Zapytanie nieudane! BŁĄD: ".mysql_error()); $query_data = mysql_fetch_row($result); $_SESSION[uzytkownik] = $query_data[4] . " " . $query_data[5]; $_SESSION[nick] = $query_data[1]; header("location: start.php"); } } else { // Zły login lub hasło ?> <br><br><br><br><br><br><br><br><br> <table width="80%" align="center" border="0" cellpadding="14"> <tr> <td><h2 class="error">Podałeś zły login lub hasło!</h2></td> </tr> <tr> <br> <td align="center"><input type="Submit" Name="Button" Value="Wróć" onClick="location.href='main.php'"></h2></td> </tr> </table> <? } //Zamknięcie połączenia z bazą danych mysql_close($conn); ?> </body> </html> Jeśli użytkownik podał dobry login i hasło uruchamiany jest plik start.php: Kod <!--Ramki--> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"> <meta name="pragma" content="no-cache" /> </head> <frameset cols="200,*" frameborder="yes" border="3"> <frame src="menu.php" name="menu" scrolling="auto" noresize /> <frame src="wizytowka.php" name="wizytowka" scrolling="auto" /> </frameset> <noframes> </html> Zawartość pliku logout.php już macie wyżęj. Najlepsze jest to, że pytałem się ludzi którzy pracują jako koderzy php i nie wiedzą co z tym zrobić (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) |
|
|
|
Code46 Nie mogę skasować sesji 16.03.2005, 01:43:13
scanner A moze tak łaskawie podasz np. wersję php, której ... 16.03.2005, 08:28:53
Code46 Cytat(scanner @ 2005-03-16 07:28:53)A moze ta... 16.03.2005, 12:27:45
czachor [PHP] pobierz, plaintext <?php//z manuala// Usu... 16.03.2005, 12:36:42
Code46 Tak też robiłem ale nic z tego. Sesja jest pamięta... 16.03.2005, 12:47:44
yavaho Normalnie powinno wystarczyc
unset($_SESSION[... 16.03.2005, 13:47:05
durandal ja usuwam sesje za pomoca
session_unregister(zmien... 16.03.2005, 15:25:54
Code46 Próbowałem też coś takiego
Kod<?
setcookie ... 16.03.2005, 15:55:44
yavaho Podejrzewam ze masz skrypt, ktory automatycznie tw... 16.03.2005, 18:49:36
Darti a może session.use_cookies w php.ini ustawic na 0?... 17.03.2005, 00:20:11
Code46 Cytat(Darti @ 2005-03-16 23:20:11)a może sess... 17.03.2005, 00:24:28
Darti Cytat(Code46 @ 2005-03-16 23:24:28)Ale co wte... 17.03.2005, 00:34:16
Code46 Cytat(Darti @ 2005-03-16 23:34:16)Cytat(Code4... 17.03.2005, 00:44:08
Darti hmm ja tez nie kumam cookies i sesji - są głupie t... 17.03.2005, 01:05:46
Code46 Cytat(Darti @ 2005-03-17 00:05:46)hmm ja tez ... 17.03.2005, 01:12:05 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 09:40 |