Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Logowanie + PHP + MySQL
darophp
post 13.02.2010, 20:28:33
Post #1





Grupa: Zarejestrowani
Postów: 309
Pomógł: 20
Dołączył: 13.02.2010
Skąd: Kęty

Ostrzeżenie: (0%)
-----


Hejka mam taki problem tiredsmiley.gif , otóż mam skrypt logowania oparty na sesjach w PHP + MySQL (login + hasło md5). Ma on za zadanie bronić wejścia przed niepożądanym osobami do panelu admina. Jest wszystko super ... po wpisaniu byle jakiej nazwy nie loguje się więc jest dobrze ... gdy wpisze poprawna zalogowywuje mnie i wyświetla, Witaj dariusz ..itd. i mam tez funkcję wylogowania przez:



Ale załóżmy, że mnie zalogowało i przy odświeżaniu strony nic się nie dzieje. Gdy kliknę w pasek adresu i kliknę Enter to powraca mi do formularza gdzie się logowałem, czy coś zrobiłem nie tak ? Dodam że korzystałem ze skryptu z tego forum: http://forum.php.pl/index.php?showtopic=64512 trochę go zmodyfikowałem i dodałem to polacz.php i wyloguj.php

Jestem początkujący .. od 2lat* zajmuję się PHP + MySQL, ale nie ćwiczyłemz rok... laugh.gif

Dodam, że potzrebuje to do głównego katalogu ... więc w index.php mam tak:

  1.  
  2. <?php
  3. include("logowanie.php");
  4.  
  5. if (isset($_SESSION['nazwa_uzytkownika'])) {
  6. echo $print;
  7. } else {
  8. echo $print;
  9. }
  10.  
  11. if ($tworzenie_form==true){
  12. include("form.php");
  13. }
  14.  
  15. if ($_SESSION['nazwa_uzytkownika']=='nick użytkownika') {
  16. echo "Masz dostęp do tego katalogu";
  17. } else {
  18. echo "Brak uprawnień";
  19. }
  20. ?>
  21.  
  22.  




Ten post edytował darophp 13.02.2010, 20:22:12


--------------------
Fotografia, projektowanie stron WWW | web-coding.pl - HTML 5 i CSS 3 - już w krótce ;)
Go to the top of the page
+Quote Post
paBlas16
post 13.02.2010, 20:45:25
Post #2





Grupa: Zarejestrowani
Postów: 45
Pomógł: 3
Dołączył: 27.09.2009
Skąd: Toruń

Ostrzeżenie: (0%)
-----


Ale pokaż cały kod bo masz problem z sesjami. Pewnie gdzieś źle coś zapisałeś. A na początku masz session_start(); ?
Go to the top of the page
+Quote Post
darophp
post 13.02.2010, 20:53:31
Post #3





Grupa: Zarejestrowani
Postów: 309
Pomógł: 20
Dołączył: 13.02.2010
Skąd: Kęty

Ostrzeżenie: (0%)
-----


logowanie.php

  1. <?php
  2.  
  3. if (isset($_POST['login']) && isset($_POST['haslo'])) {
  4. $login = $_POST['login'];
  5. $haslo = $_POST['haslo'];
  6.  
  7. //sprawdzamy czy mamy użytkownika w bazie
  8.  
  9. $mysql_host = "localhost";
  10. $mysql_login = "...";
  11. $mysql_haslo = "...";
  12. $mysql_baza = "...";
  13.  
  14. $link = mysql_connect($mysql_host, $mysql_login, $mysql_haslo);
  15. if (!$link) {
  16. die('Nie połączono : ' . mysql_error());
  17. }
  18.  
  19. $db_selected = mysql_select_db($mysql_baza, $link);
  20. if (!$db_selected) {
  21. die ('Nie można ustawić foo : ' . mysql_error());
  22. }
  23.  
  24. $md5 = md5($haslo);
  25. $zapytanie = "SELECT * FROM pa WHERE login='$login' AND haslo='$md5';";
  26. $wykonaj = mysql_query($zapytanie);
  27. $wiersz = mysql_fetch_array($wykonaj);
  28.  
  29. {
  30. $_SESSION['nazwa_uzytkownika']=$login; //zapisujemy kto się zalogował (później wykorzystamy do kontroli dostępu do katalogów)
  31. }
  32. }
  33.  
  34. if (isset($_SESSION['nazwa_uzytkownika']))
  35. {
  36. $print = "Zalogowany użytkownik.<br />Witaj :<strong>".$_SESSION['nazwa_uzytkownika']."</strong><a href="/wyloguj.php">Wyloguj</a>";
  37. }
  38. else
  39. {
  40. if (isset($login)) //jezeli proba lgogowania sie nie powiodla
  41. {
  42. $print = "<strong>Nieudane logowanie!</strong>";
  43. }
  44. else //nie bylo proby logowania lub nastapilo wylogowanie
  45. {
  46. $print = "Niezalogowany(a)</strong>";
  47. }
  48. //tworzenie formularza logowania
  49. $tworzenie_form=true;
  50. }
  51. ?>


index.php

  1. <?php
  2. include("logowanie.php");
  3.  
  4. if (isset($_SESSION['nazwa_uzytkownika'])) {
  5. echo $print;
  6. } else {
  7. echo $print;
  8. }
  9.  
  10. if ($tworzenie_form==true){
  11. include("form.php");
  12. }
  13.  
  14. if ($_SESSION['nazwa_uzytkownika']=='nick użytkownika') {
  15. echo "Masz dostęp do tego katalogu";
  16. } else {
  17. echo "Brak uprawnień";
  18. }
  19. ?>
  20.  
  21. + kod strony ...


form.php

  1. <form name="logowanie" method="post" action="index.php">
  2. <input type="text" name="login" title="Pole loginu"> <br />
  3. <input type="password" name="haslo" title="Pole hasła"> <br />
  4. <input type="submit" name="submit" value="Loguj" title="Zaloguj">
  5. </form>


wyloguj.php

  1. <?php
  2. $_SESSION = array();
  3.  
  4. if (isset($_COOKIE[session_name()])) {
  5. setcookie(session_name(), '', time()-42000, '/');
  6. }
  7.  
  8.  
  9. ?>


Ten post edytował darophp 13.02.2010, 20:55:03


--------------------
Fotografia, projektowanie stron WWW | web-coding.pl - HTML 5 i CSS 3 - już w krótce ;)
Go to the top of the page
+Quote Post
futura
post 13.02.2010, 21:08:36
Post #4





Grupa: Zarejestrowani
Postów: 39
Pomógł: 4
Dołączył: 4.01.2010

Ostrzeżenie: (0%)
-----


Do każdego pliku na samym początku, jak korzystasz ze zmiennych sesyjnych, musisz dodać session_start();
Go to the top of the page
+Quote Post
darophp
post 13.02.2010, 21:13:14
Post #5





Grupa: Zarejestrowani
Postów: 309
Pomógł: 20
Dołączył: 13.02.2010
Skąd: Kęty

Ostrzeżenie: (0%)
-----


Wielkie dzięki podziałało... ale mam jeszcze jedno pytanko, bo mam plik index.php i jest jakiś sposób, żeby rozdzielić formularz z loginem i hasłem a ta resztę stronki, która się pojawi po zalogowaniu. Można to np dać w

  1. echo <<<KONIEC
  2. ... tresc tej strony html i body
  3. KONIEC;


hmm ?


--------------------
Fotografia, projektowanie stron WWW | web-coding.pl - HTML 5 i CSS 3 - już w krótce ;)
Go to the top of the page
+Quote Post
erix
post 13.02.2010, 21:49:37
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Kurs PHP przeczytany? Samodzielnie spróbowałeś?

Chce Ci się do WC, najpierw nas zapytasz, czy opuścić deskę, czy po prostu sprawdzisz, czy się da?


--------------------

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!
Go to the top of the page
+Quote Post
futura
post 13.02.2010, 22:38:21
Post #7





Grupa: Zarejestrowani
Postów: 39
Pomógł: 4
Dołączył: 4.01.2010

Ostrzeżenie: (0%)
-----


Generalnie schemat powinien wyglądać tak:

1) index.php -> formularz logowania (<form>)
2) Postem przesyłasz do pliku np: walidacja.php dane (login i hasło) i sprawdzasz czy zgadzają się z wpisem w bazie danych
3) Jeśli zgadza się to dajesz session_start(); $_SESSION["zalogowany"] = "zalogowany"; oraz header("Location: zalogowany.php");
4) W zalogowany.php na początku sprawdzasz czy jest ustawiona zmienna sesji, czyli: if(isset($_SESSION["zalogowany"])). Jeśli tak to wyświetlasz stronę z danymi a jeśli nie to dajesz jakiś komunikat i header("Refresh: 5;url=logowanie.php");

Jeśli pomogłem to daj "pomógł" winksmiley.jpg

Ten post edytował futura 13.02.2010, 22:39:59
Go to the top of the page
+Quote Post
korey
post 14.02.2010, 00:12:26
Post #8





Grupa: Zarejestrowani
Postów: 122
Pomógł: 2
Dołączył: 14.08.2009
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Rozumiem ze wyloguj.php nie działa tak jak powinno. ja bym zrobił tak:

zamienił tekst:
  1. $print = "Zalogowany użytkownik.<br />Witaj :<strong>".$_SESSION['nazwa_uzytkownika']."</strong><a href="/wyloguj.php">Wyloguj</a>";

na
  1.  
  2. echo 'Zalogowany użytkownik.<br />Witaj :<strong>".$_SESSION['nazwa_uzytkownika']."</strong>';
  3. echo '<br />';
  4. echo '<href="index.php?action=logof">wyloguj</a>';
  5. if($_GET['action'] == 'logog'){
  6.  
  7. sesion_unset();
  8. echo 'Zostałeś pomyślnie wylogowany';
  9. // ewentualnie funkcja wyswietlająca formularz logowania
  10. }
  11. else{
  12. echo 'dalsza treść';
  13. }
  14.  


Jeśli dobrze cie zrozumiałem to powyższy kod powinien byc odpowiedni.


--------------------
”Jestem nędzarzem, mam tylko marzenia.
Rozsyłam je u twych stóp,
Stąpaj lekko, gdyż stąpasz po mych marzeniach„
Go to the top of the page
+Quote Post
darophp
post 14.02.2010, 12:45:21
Post #9





Grupa: Zarejestrowani
Postów: 309
Pomógł: 20
Dołączył: 13.02.2010
Skąd: Kęty

Ostrzeżenie: (0%)
-----


Wielkie dzięki wszystkim za pomoc smile.gif Pokombinowałem trochę i udało się ... teraz dostrajam ją designersko biggrin.gif


--------------------
Fotografia, projektowanie stron WWW | web-coding.pl - HTML 5 i CSS 3 - już w krótce ;)
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 Wersja Lo-Fi Aktualny czas: 26.06.2025 - 23:51