![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 0 Dołączył: 4.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Tak więc kombinuje z systemem logowanie i znalazłem kurs na webmade.org/system-logowania.php.
Wklepałem, założyłem bazę, rejestracja działa, logowanie też, ale..... Sprawdźcie plik CHECK.PHP, bo u mnie : 1 . warunek if ustawiony na odwrót działa poprawnie, czyli gdy zalogowany=0 wtedy otwiera się następna podstrona, a gdy zalogowany=1 wtedy żąda zalogowania. dla jasności powklejam pliki z kursu ale już w mojej wersji, plik index.php Kod <?php session_start(); session_register("zalogowany"); if(empty($_SESSION["zalogowany"]))$_SESSION["zalogowany"]=0; mysql_connect("localhost", "root", "")or die("Nie można nawiązać połączenia z bazą"); mysql_select_db("user1")or die("Wystąpił błąd podczas wybierania bazy danych"); function ShowLogin($komunikat=""){ echo "$komunikat "; echo "<form action='index.php' method=post>"; echo "Login: <input type=text name=login> "; echo "Hasło: <input type=text name=haslo> "; echo "<input type=submit value='Zaloguj!'>"; echo "</form>"; echo "Jeśli nie jesteś zarejestrowany, <a href='rej.php'>tu znajdziesz formularz</a>"; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl"> <head> <title>Strona główna</title> </head> <body> <?php if($_GET["wyloguj"]=="tak"){$_SESSION["zalogowany"]=0;echo "Zostałeś wylogowany z serwisu";} if($_SESSION["zalogowany"]!=1){ if(!empty($_POST["login"]) && !empty($_POST["haslo"])){ if(mysql_num_rows(mysql_query("select * from user2 where user_login = '".htmlspecialchars($_POST["login"])."' AND user_haslo = '".htmlspecialchars($_POST["haslo"])."'"))){ echo "Zalogowano poprawnie. <a href='index.php'>Przejdź na stronę główną</a>"; $_SESSION["zalogowany"]=1; } else echo ShowLogin("Podano złe dane!!!"); } else ShowLogin(); } else{ ?> Gratulacje! Zalogowałeś się pomyślnie! Możesz przejśc teraz do innych podstron, np. do <a href="stronaf.php">tej</a> <a href='index.php?wyloguj=tak'>wyloguj się</a> <?php } ?> </body> </html> <?php mysql_close(); ?> plik rejestracji rej.php Kod <?php mysql_connect("localhost", "root", "")or die("Nie można nawiązać połączenia z bazą"); //połączenie z bazą danych mysql_select_db("user1")or die("Wystąpił błąd podczas wybierania bazy danych"); function ShowForm($komunikat=""){ //funkcja wyświetlająca formularz rejestracyjny echo "$komunikat "; echo "<form action='rej.php' method=post>"; echo "Login: <input type=text name=login> "; echo "Hasło: <input type=text name=haslo> "; echo "<input type=hidden value='1' name=send>"; echo "<input type=submit value='Zarejestruj mnie'>"; echo "</form>"; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl"> <head> <title>Formularz rejestracyjny</title> </head> <body> <?php if($_POST["send"]==1){ //sprawdzanie czy formularz został wysłany if(!empty($_POST["login"]) && !empty($_POST["haslo"])){ //oraz czy uzupełniono wszystkie dane if(mysql_num_rows(mysql_query("select * from user2 where user_login='".htmlspecialchars($_POST["login"]."'"))))ShowForm("Użytkownik o podanym loginie już istnieje!!!"); // sprawdzanie czy użytkownik o podanej nazwie już istnieje else{ mysql_query("insert into user2 values(NULL, '".htmlspecialchars($_POST["login"])."', '".htmlspecialchars($_POST["haslo"])."')"); // zapisywanie rekordu do bazy echo "Rejestracja przebiegła pomyślnie. Możesz teraz przejść do <a href='index.php'>strony głównej</a> i się zalogować."; } } else ShowForm("Nie uzupełniono wszystkich pól!!!"); } else ShowForm(); mysql_close(); //zamykanie połączenia z bazą ?> </body> </html> plik check.php I TU jest różnica w porównaniu z kursem, bo w kursie na samej górze jest jeszcze : <?php session_start(); ?> Ja musiałem to usunąć bo po każdym uruchimieniu tego pliku zgłaszał bląd : Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at G:\WebServ\httpd\log3\stronaf.php:6) in G:\WebServ\httpd\log3\check.php on line 2 Kod <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl"> <head> <title>podstrona</title> </head> <body> <?php if($_SESSION["zalogowany"]==0){echo "nie masz dostępu do tej części witryny. <a href='index.php'>Zaloguj się</a></body></html>;"; exit();} ?> no i plik MOJA_PODSTRONA.PHP Kod <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Dokument bez nazwy</title> </head> <?php require("check.php"); ?> to treść strony do której mają dostęp tylko zalogowani użytkownicy, między innymi ty:P <a href='index.php?wyloguj=tak'>wyloguj się</a> </body> </html> <body> </body> </html> Wydaje mi się że usunięcie z pliku check.php lini <?php session_start(); ?> powoduje ten problem, tylko że gdy go nie usunę zgłasza ww błąd. Jeszcze inna sytuacja. Po usunięciu z check.php <?php session_start(); ?> i zamianie warunku (czyli gdy zalogowany=) wtedy jestem zalogowany, otwiera się moja podstrona, na niej klikam wyloguj się , pokazuje że wylogowuję się ale w przeglądarce klikam strzałke w tył, czyli poprzednia strona, i ona cholera otwiera mi się znowu :////// Właśnie tego staram się uniknąć. Że gdy się wyloguje powrót na stronę zastrzeżoną był już niemożliwy H E L P |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Ten cholerny tag...
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Ten cholerny tag... I ten cholerny tytuł... I te cholerne bbcode@marecki33 jakbys sie jeszcze nie domyslil to musisz na PW przeslac moderatorowi poprawki odnosnie tytułu i tagu a po otwarciu tematu poprawic bbcode. ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 31.07.2025 - 08:50 |