Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Niedzialajace logowanie
Forum PHP.pl > Forum > Przedszkole
ArthaS_Delano
Witam mam skrypt logowania pt "Logownik" sciagniety z netu.. Niestety, rejestracja dziala jak nalezy, wszystko ladnie zapisuje do bazy, kiedy natomiast probuje sie zalogowac wpisujac poprawne dane owszem przenosi mnie do nastepnej strony ale wciaz jako niezalogowanego.. Szukalem juz nawet na anglojezycznych forach czy ktos mial taki blad bo to jest podobno tlumaczony na polski skrypt niestety nigdzie odpowiedzi nie znalazlem.. Prosilbym o pomoc..

Oto pliki

LOGIN.PHP

  1. <?
  2.  
  3.  
  4. echo "<font size=4>Login</font>
  5. <br>
  6. <br>";
  7.  
  8. if (isset($submit)) {
  9. include("config.php");
  10. if ($_POST['username'] == '') {
  11. echo "<font color=#ff0000>Podaj nick</font>";
  12. }
  13. else {
  14.  
  15. if ($_POST['password'] == '') {
  16. echo "<font color=#ff0000>Podaj hasło</font>";
  17. }
  18. else {
  19.  
  20. $result = mysql_query ("SELECT * FROM members WHERE username = '".$_POST['username']."'");
  21. $row = mysql_fetch_array($result) or die(mysql_error());
  22. $login = "xc732mc";
  23. $dbpass = $row['password'];
  24. $pw = md5(password);
  25. if ($dbpass == $pw) {
  26. $_SESSION['username'] = $_POST['username'];
  27. $_SESSION['dbpass'] = $dbpass;
  28. $_SESSION['login'] = 'xc732mc';
  29. echo "<font color=#000000>Zostałeś zalogowany...</font>";
  30. }
  31. else {
  32. echo "<font color=#ff0000>Złe Hasło...</font>";
  33. }
  34. }
  35. }
  36. }
  37. else {
  38. echo "<form action=index.php method=POST>
  39. nick: <input type=text name=username>
  40. <p>
  41. hasło: <input type=password name=password>
  42. <p>
  43. <input type=submit name=submit value=Login>";
  44. }
  45.  
  46. ?>


REGISTER.PHP

  1. <?
  2. echo "<font size=4>Rejestracja</font>
  3. <br>
  4. <br>";
  5.  
  6. if ($_GET['action'] == 'signup') {
  7.  
  8. include("config.php");
  9.  
  10. if ($_POST['username'] == '')
  11. {
  12. echo "<font color=#ff0000>Nie podałeś nicku</font>";
  13. }
  14. else {
  15. if ($_POST['email'] == '')
  16. {
  17. echo "<font color=#ff0000>Nie podałeś adresu email</font>";
  18. }
  19. else {
  20. if ($_POST['password'] == '')
  21. {
  22. echo "<font color=#ff0000>Nie podałeś hasła</font>";
  23. }
  24. else {
  25.  
  26. $pw = md5(password);
  27.  
  28. mysql_query("INSERT INTO members (username,email,password) VALUES ('$_POST[username]','$_POST[email]','$pw')")or die(mysql_error());
  29. mail($_POST['email'], "Zarejestrowałeś się", "Witaj ".$username." zarejestrowałeś się na <a href=\"http://TwojaStrona.pl\" target=\"_blank\">http://TwojaStrona.pl</a>! Twój nick to ".$username." a hasło to: ".$password."","Od:
  30. $emailadresr\n" ."twojemail@twojastrona.plr\n");
  31. echo "Rejestracja przebiegła prawidłowo!";
  32. }
  33. }
  34. }
  35. }
  36.  
  37. else {
  38.  
  39. echo " <form action=?action=signup method=POST>
  40. <input type=hidden name=submit value=1>
  41. nick: <input type=text name=username maxlength=10>
  42. <p>
  43. hasło: <input type=password name=password maxlength=15>
  44. <p>
  45. email: <input type=text name=email>
  46. <br>
  47. <input type=submit value=Rejestracja!>
  48. <input type=reset value=Anuluj>
  49. </form> ";
  50. }
  51. ?>


CONFIG.PHP

  1. <?
  2. mysql_connect('localhost', 'userbazy', 'haslo') or die(mysql_error());
  3. $emailadres = 'adres_email';
  4. ?>


INDEX.PHP

  1. <? 
  2.  if ($login == 'xc732mc') 
  3.  { 
  4. echo "dziala";
  5.  } 
  6.  else 
  7.  { 
  8. echo "nie dziala";
  9.  } 
  10.  ?>


Pomimo ze loguje sie prawidlowymi danymi wciaz wyswietla tylko "nie dziala"...

Bardzo prosze o pomoc, z gory bardzo dziekuje !
qqrq
W pliku INDEX.PHP powinno chyba być:

  1. <?php
  2.  if ($_SESSION['login'] == 'xc732mc') 
  3.  { 
  4. echo "dziala";
  5.  } 
  6.  else 
  7.  { 
  8. echo "nie dziala";
  9.  }
  10. ?>
ArthaS_Delano
Niestety to nie to..

Zmienilem ale i tak nie dziala..

Prosze oto linki:

Rejestracja

Logowanie

Rejestracja napewno dziala bo all zapisuje do bazy.. Moze zle odczytuje z niej ? Bo pomimo roznych prob wciaz nie chce sie zalogowac mimo podania prawidlowych danych..
qqrq
Mam prośbę. Wyrzuć na wyjście zmienną $pw przy rejestracji, tzn w linii 28 w pliku REGISTER.PHP daj:

  1. <?php
  2. var_dump($pw);
  3. ?>


bo coś mi się tu nie zgadza...
-luki100011-
  1. <?php
  2. $pw = md5(password);
  3. ?>


Raczej
  1. <?php
  2. $pw = md5($_POST['password']);
  3. ?>
ArthaS_Delano
Przy rejestracji wywalilo mi cos takiego

Kod
string(32) "5f4dcc3b5aa765d61d8327deb882cf99" Rejestracja przebiegła prawidłowo!


Przy logowaniu wciaz pisze ze nie dziala..


EDIT:


Kod
$pw = md5($_POST['password']);



dac to i w register i w login ?

EDIT:

najgorsze jest to w meilu ktory przychodzi po rejestracji pisze tylko "Twoj nick to a haslo " a powinno tam wpisywac dane z bazy.. Czyzby nie czytalo z bazy ? To mozliwe skoro zapisuje dobrze ?
qqrq
Spróbuj tak:

W LOGIN.PHP i REGISTER.PHP zamiast
  1. <?php
  2. md5(password)
  3. ?>


wpisz

  1. <?php
  2. md5($_POST['password']);
  3. ?>


(tak jak napisał kolega wyżej). Ponadto w pliku LOGIN.PHP daj jak napisałem wcześniej:

  1. <?php
  2. $_SESSION['login'] == 'xc732mc'
  3. ?>
ArthaS_Delano
Chodzi o podwojny == ?

Zeby bylo tak ?

Kod
$_SESSION['username'] = $_POST['username'];
$_SESSION['dbpass'] = $dbpass;
$_SESSION['login'] == 'xc732mc';


Prawdopodobnie zle zrozumialem..
qqrq
INDEX.PHP linijka 3:

  1. <?php
  2. if ($_SESSION['login'] == 'xc732mc')
  3. ?>


Pisałem to już
ArthaS_Delano
Dalem sobie spokoj z tamtym skryptem.. Znalazlem inny duzo wydajniejszy i juz praktycznie kompletny.. Jest jedno "ale".. Po poprawnej rejestracji przechodze do strony gdzie powinienem sie logowac czyli login.php tylko ze ta strona jest... czysta smile.gif Nic mi sie nie wyswietla i nie wiem czemu.. Przejrzalem juz ten kod kilkanascie razy ale nie wiem czemu nie widac nawet formularzy.. na stronie nie ma nic.. Prawdopodobnie musi byc jakis maly drobiazg no ale ja jako poczatkujacy nie moge go dojrzec..

Rozwiazaniem moze byc to:

Kod
Great, but when does the login form get displayed? That's all up to you. It's up to you the programmer to display the login form when the $logged_in variable is false. But wait! I have added a function that you can call that relieves you of this horrible burden. The displayLogin() function is there to check if the $logged_in variable is true or not and displays information accordingly. How to use this function is described in the Usage section.


Angielski znam ale nie wiem co autor ma na mysli piszac to pod kodem login.php..

Bardzo prosilbym o pomoc.. Dla zainteresowanych pomoca strona ze skryptem i tutorialem:

Logowanie


Bardzo prosilbym o pomoc gdyz mecze sie z tym logowaniem juz kolejny dzien, a ten skrypt pasowalby mi idealnie.. Nie wiem tylko czemu nie chce mi wyswietlic strony login.php.. Moze ktos rozumie o co chodzi autorowi w notce pod kodem login.php i moglby mnie naprowadzic czego mi brakuje..

Z gory dziekuje za pomoc jak i tym osobom ktore juz mi pomogly
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.