Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: skrypt logowania
Forum PHP.pl > Forum > PHP
Artu123
  1. <?php
  2.  
  3. // wykonawca skryptu : Artu123
  4. // W razie problemów gg: 7211515
  5.  
  6.  
  7. mysql_connect("localhost","root","");
  8. mysql_select_db("ciasteczka");
  9.  
  10. $login = mysql_real_escape_string(strip_tags($_POST['login']));
  11. $haslo = mysql_real_escape_string(strip_tags($_POST['haslo']));
  12. $_GET['akcja'] = mysql_real_escape_string(strip_tags($_GET['akcja']));
  13. $_SESSION['login'] = mysql_real_escape_string(strip_tags($_SESSION['login']));
  14.  
  15. if ($_GET['akcja'] == "wyloguj") {
  16.  
  17. if ($_COOKIE['haslo']==true && $_COOKIE['login']==true) {
  18.  
  19. setcookie("login", "", time() - 7200);
  20. setcookie("haslo", "", time() - 7200);
  21.  
  22. echo '<meta http-equiv="refresh" content="2; url=index.php">
  23. Zostałeś pomyślne wylogowany!';
  24.  
  25. } else {
  26.  
  27. echo '<meta http-equiv="refresh" content="2; url=index.php">Zostałeś niepomyślne wylogowany!';
  28.  
  29. }
  30.  
  31. } else {
  32.  
  33. if ($_COOKIE['login']==true && $_COOKIE['haslo']==true && mysql_num_rows(mysql_query("SELECT id,login,haslo FROM users WHERE login = '".$_COOKIE['login']."' AND haslo = '".md5($_COOKIE['haslo'])."' AND login = '".$_SESSION['login']."' AND haslo = '".$_SESSION['haslo']."'"))) {
  34.  echo 'Witaj '.$_COOKIE['login'].'! <a href="?akcja=wyloguj">Wyloguj się [x]</a>';
  35.  } else {
  36. if (empty($_POST['submit'])) {
  37.  ?>
  38.    
  39. <form action='' method='post'>
  40. Login: <input type='text' name='login' value=''><br>
  41. Hasło: <input type='password' name='haslo' value=''><br>
  42. <input type='submit' name='submit' value='Zaloguj'>
  43. </form>
  44.  
  45. <?php
  46. } else {
  47. if (mysql_num_rows(mysql_query("SELECT id,login,haslo FROM users WHERE login = '".$_POST['login']."' AND haslo = '".md5($_POST['haslo'])."'"))) {
  48.  
  49. setcookie("login",$login,time()+60*60*2);
  50. setcookie("haslo",$haslo,time()+60*60*2);
  51.  
  52. $_SESSION['haslo'] = ''.$haslo.'';
  53. $_SESSION['login'] = ''.$login.'';
  54.  
  55. echo '<meta http-equiv="refresh" content="2; url=">Zostałeś zalogowany';
  56. } else {
  57. echo '<meta http-equiv="refresh" content="2; url=index.php">Podałeś złe dane!';
  58. }
  59. }
  60. }
  61. }
  62.  
  63. echo $_SESSION['login'];
  64.  
  65. ?>


Tworzę w ramach treningu skrypt logowania i mam problem.

  1. <?php
  2. $_SESSION['haslo'] = ''.$haslo.'';
  3. $_SESSION['login'] = ''.$login.'';
  4. ?>


Nie chce tych danych zapisać do sesji .

  1. <?php
  2.  
  3.  
  4. if ($_GET['akcja'] == 'dodaj') {
  5.  
  6. $_SESSION['login'] = 'costam';
  7.  
  8. }
  9.  
  10. echo $_SESSION['login'];
  11.  
  12. ?>


Taki oto skrypt działa. Po wejściu na stronę ?akcja=dodaj później wszędzie wyświetla się costam . Proszę o pomoc
erix
Na chorobę Ci to:
  1. <?php
  2. $_SESSION['haslo'] = $haslo;
  3. ?>

Róznica? Owszem - w szybkości. Apostrofy są tu zbędne.

  1. <?php
  2. setcookie("login",$login,time()+60*60*2);
  3. setcookie("haslo",$haslo,time()+60*60*2);
  4. ?>

Nigdy nie zapisuj takich danych w ciastkach.

Cytat
Nie chce tych danych zapisać do sesji .

Sprawdź sobie $login, $haslo, bo jak są puste, to wiadomo, że ich nie zapisze. tongue.gif
Artu123
Cytat(erix @ 17.12.2008, 16:10:49 ) *
Na chorobę Ci to:
  1. <?php
  2. $_SESSION['haslo'] = $haslo;
  3. ?>

Róznica? Owszem - w szybkości. Apostrofy są tu zbędne.

  1. <?php
  2. setcookie(&#092;"login\",$login,time()+60*60*2);
  3. setcookie(&#092;"haslo\",$haslo,time()+60*60*2);
  4. ?>

Nigdy nie zapisuj takich danych w ciastkach.


Sprawdź sobie $login, $haslo, bo jak są puste, to wiadomo, że ich nie zapisze. tongue.gif


1 pogrubienie. Miałem tak ale zmieniłem na ''..'' bo próbuje to naprawić na różne sposoby tongue.gif

2 pogrubienie. To gdzie mam zapisywać? Po za tym zapisuję jeszcze w sesjach i w bazie danych ip będzie zapisywało

3 pogrubienie. Nie są puste, ponieważ gdy zaloguję się to piszę na dole mój login. Ale gdy już się strona odświeży to nic nie ma .

  1. <?php
  2. echo $_SESSION['login'];
  3. ?>
erix
Cytat
2 pogrubienie. To gdzie mam zapisywać? Po za tym zapisuję jeszcze w sesjach i w bazie danych ip będzie zapisywało

Sama sesja wystarczy. Nic więcej, ciastka zostaw w spokoju i wtedy daj znać. Jeśli zapisujesz login + hasło w ciastku i np. nie wylogujesz się w bibliotece, to wyciągnę sobie Twoje hasło bez problemu.

Cytat
3 pogrubienie. Nie są puste, ponieważ gdy zaloguję się to piszę na dole mój login. Ale gdy już się strona odświeży to nic nie ma .

Bo jest wtedy pusty formularz.
Artu123
Cytat(erix @ 17.12.2008, 16:41:15 ) *
Bo jest wtedy pusty formularz.


no właśnie. Czyli pole nie jest puste, bez powodu nie chce dodawać do sesji. Z tego co czytałem inni twierdzą, że ciastka są bezpieczniejsze.

Edit://

Cytat(erix @ 17.12.2008, 16:41:15 ) *
Jeśli zapisujesz login + hasło w ciastku i np. nie wylogujesz się w bibliotece, to wyciągnę sobie Twoje hasło bez problemu.


No to hasło w ciastkach będę zapisywał w md5 . I nikt nie wyciągnie hasła tongue.gif
nospor
Cytat
No to hasło w ciastkach będę zapisywał w md5 . I nikt nie wyciągnie hasła
tja... a świstak siedzi i zawija sreberka... tongue.gif
Jak ci bardziej doswiadczona osoba mowi: "Nie zapisuj haseł w ciachach" to znaczy: nie zapisuj hasel w ciachach, nie zapisuj w ciachach md5() z hasel bo już dawno można takie hasło zgadnąc z hasha.
http://forum.php.pl/index.php?showtopic=44...t=0&start=0
Artu123
Cytat(nospor @ 17.12.2008, 16:52:31 ) *
tja... a świstak siedzi i zawija sreberka... tongue.gif
Jak ci bardziej doswiadczona osoba mowi: "Nie zapisuj haseł w ciachach" to znaczy: nie zapisuj hasel w ciachach, nie zapisuj w ciachach md5() z hasel bo już dawno można takie hasło zgadnąc z hasha.
http://forum.php.pl/index.php?showtopic=44...t=0&start=0


No dobra, wy tutaj piszecie jakieś rzeczy nie na temat, a ja chce tylko wiedzieć dlaczego to nie działa .
#luq
Nie przechowuj takich danych w ciasteczkach, możesz mieć jakąś lukę i XSS`em będzie można ukraść ciasteczka innych userów.

@nospor
Cytat
bo już dawno można takie hasło zgadnąc z hasha.

Nie żebym się czepiał, ale termin zgadnąć, raczej tutaj nie pasuje winksmiley.jpg Raczej przeszukać i znaleźć w bazę hashy, tablicą tęczową lub znaleźć kolizję.

Szczerze to ciężko się połapać w twoim kodzie. Podziel wszystko na funkcje, login(), logout() + jakiś register() itp.
nospor
Cytat
Nie żebym się czepiał
A jednak czepiasz się winksmiley.jpg
Zapomnialem slowo "zgadnac" wziąść w apostrofy

Cytat
wy tutaj piszecie jakieś rzeczy nie na temat,
sam zaczales wygadywac herezje to sie nie dziw ze ludzie na to reagują. zamiast marudzic to lepiej podziekuj za dobre rady, nawet jak teraz nie skorzystasz to moze gdy dorosniesz zrozumiesz o czym byla mowa winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.