Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z Logowaniem
Sillence
post 4.06.2014, 14:21:48
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 4.06.2014

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


Witam. Otóż posiadam problem z logowaniem. Polega on na tym że jak kliknę przycisk loguj to 'loguje' mnie nawet jak nie ma wpisanych danych.

login.php:
  1. <?php
  2. //8
  3. if( $_GET['action']=="login" )
  4. {
  5.  
  6. //9
  7. $login = $_POST['username'];
  8. $pass = $_POST['pass'];
  9.  
  10. //10
  11. $db = mysql_connect( "46.4.177.235" , "Starve", "......." );
  12. mysql_select_db( "........" );
  13. $query = "SELECT `Haslo` FROM `mapa_players` WHERE `Nick`='$login'";
  14. $query = mysql_query( $query );
  15. $haslo = mysql_fetch_row( $query );
  16.  
  17. //11
  18. if( $haslo[0]==$pass )
  19. {
  20. echo"DZIAŁA !";
  21. }
  22. else{ echo"Zły login lub hasło!"; }
  23.  
  24. }
  25. ?>


A to index.php
  1. <!DOCTYPE html>
  2. <html>
  3.  
  4. <head>
  5. <meta charset="UTF-8">
  6. <title>Login Form - CodePen</title>
  7. <link rel="stylesheet" href="css/style.css" media="screen" type="text/css" />
  8. </head>
  9.  
  10. <body>
  11.  
  12. <div id="login">
  13. <h1>Logowanie do Panelu Gracza</h1>
  14. <form action="login.php?action=login" method=post>
  15. <input type="text" id="username" placeholder="Nick" />
  16. <input type="password" id="password" placeholder="Haslo" />
  17. <input type="submit" value="Log in" />
  18. </form>
  19. </div>
  20.  
  21. <script src='http://codepen.io/assets/libs/fullpage/jquery.js'></script>
  22. <script src="js/index.js"></script>
  23.  
  24. </body>
  25. </html>
  26.  
  27. <?php
  28. //12
  29. include("sessions.php");
  30.  
  31. //13
  32. if($_SESSION["USER_AUTH"]==TRUE){ include("panel.php"); }
  33. else{ include("login.php"); }
  34. ?>
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
Forti
post 4.06.2014, 14:34:12
Post #2





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


Dlaczego sessions masz w odzielnym pliku? Pokaz kod.


Dlaczego na koncu dokumentu, po /html masz warunek sprawdzenia sesji? Jestem na telefonie wiec nie pomoge, ale dla mnoe to wywal co wszystko i napisz od nowa. Calosc jest jeden wielki bajzel. Wiem ze nie ponagam za bardzo, ale jak dla mnie to tu jest za duzo bledow.

Ten post edytował Forti 4.06.2014, 14:41:40


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
Turson
post 4.06.2014, 15:07:16
Post #3





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Inputom trzeba nadać name wink.gif

Ten post edytował Turson 4.06.2014, 15:07:44
Go to the top of the page
+Quote Post
Sillence
post 4.06.2014, 15:23:03
Post #4





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 4.06.2014

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


A posiadacie może jakiś poprawnie działający prosty system logowania i rejestracji ? smile.gif
Go to the top of the page
+Quote Post
Forti
post 4.06.2014, 15:28:44
Post #5





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


p-programowanie.pl/php/system-logowania-i-rejestracji/

Nie wiem czy moge tak podac linka, bodajze 4 link z gory. Masz dokladny opis co i jak i z czym.


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
kartin
post 4.06.2014, 16:14:15
Post #6





Grupa: Zarejestrowani
Postów: 246
Pomógł: 79
Dołączył: 25.05.2010

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


Myślę, że można się zgodzić z zawartą na tej stronie informacją o wpisach "ich poziom jest bardzo różny"
  • varchar(255) dla pola w którym zawsze będą dokładnie 32 znaki
  • przechowywanie IP jako ciągu znaków
  • mysql_num_rows(mysql_query("SELECT login FROM uzytkownicy WHERE login = '".$login."';")) aby policzyć ilość wierszy, dodatkowo autor wybitnie lubi średniki
  • filtrowanie znaków w haśle, aby łatwiej było przeprowadzać ewentualne ataki brute force po wycieku bazy


--------------------
Jeśli ten post pomógł to kliknij przycisk po lewej stronie.
Nie pomagam przez PW, GG, e-mail, faks, telegram, znaki dymne, ...
Go to the top of the page
+Quote Post
Turson
post 4.06.2014, 19:20:38
Post #7





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Cytat(Sillence @ 4.06.2014, 16:23:03 ) *
A posiadacie może jakiś poprawnie działający prosty system logowania i rejestracji ? smile.gif

http://turson.pl/blog/php-mysql-prosty-skr...nych-mysql-pdo/
Go to the top of the page
+Quote Post
kartin
post 4.06.2014, 19:39:04
Post #8





Grupa: Zarejestrowani
Postów: 246
Pomógł: 79
Dołączył: 25.05.2010

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


Wyjdzie, że czepiam się wszystkiego i wszystkich, ale w jakim celu jest:
  1. $password = trim($_POST['password']);
Spacja w haśle to znak jak każdy inny, niezależnie czy jest na początku w środku czy na końcu.

Powinno się oddzielać kod PHP od HTML. Poniższe jest lekkim przegięciem.
  1. //Formularz logowania
  2. function form(){
  3. echo '
  4. <form action="" method="post">
  5. <label for="login">Login</label>
  6. <input type="text" name="login" required>
  7. <br>
  8. <label for="password">Hasło</label>
  9. <input type="password" name="password" required>
  10. <br>
  11. <input type="submit" name="wyslano" value="Zaloguj się"/>
  12. </form>
  13. ';
  14. }


--------------------
Jeśli ten post pomógł to kliknij przycisk po lewej stronie.
Nie pomagam przez PW, GG, e-mail, faks, telegram, znaki dymne, ...
Go to the top of the page
+Quote Post
Turson
post 4.06.2014, 19:44:10
Post #9





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


1. Nie spotkałem się z sytuacją jeszcze, żeby ktoś miał spację w haśle. Nie szkodzi usunąc jak komus nie pasuje
2. Owszem biggrin.gif
Go to the top of the page
+Quote Post
Sillence
post 4.06.2014, 20:14:15
Post #10





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 4.06.2014

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


Teraz mam tak:
logowanie.php
  1. <?php
  2. mysql_connect("46.4.177.235","Starve",".....");
  3. mysql_select_db(".....");
  4. ?>
  5.  
  6. <?php
  7. if (isset($_GET['wyloguj'])==1)
  8. {
  9. $_SESSION['zalogowany'] = false;
  10. }
  11. ?>
  12.  
  13. <?php
  14. function filtruj($zmienna)
  15. {
  16. $zmienna = stripslashes($zmienna); // usuwamy slashe
  17.  
  18. // usuwamy spacje, tagi html oraz niebezpieczne znaki
  19. }
  20.  
  21. if (isset($_POST['loguj']))
  22. {
  23. $login = filtruj($_POST['login']);
  24. $haslo = filtruj($_POST['haslo']);
  25. $ip = filtruj($_SERVER['REMOTE_ADDR']);
  26.  
  27. // sprawdzamy czy login i hasło są dobre
  28. if (mysql_num_rows(mysql_query("SELECT Nick, Haslo FROM mapa_players WHERE Nick = '".$login."' AND Haslo = '".$haslo."';")) > 0)
  29. {
  30. // uaktualniamy date logowania oraz ip
  31.  
  32. $_SESSION['zalogowany'] = true;
  33. $_SESSION['login'] = $login;
  34.  
  35. // zalogowany
  36.  
  37. }
  38. else echo "Wpisano złe dane.";
  39. }
  40.  
  41. if ($_SESSION['zalogowany']==true)
  42. {
  43. echo "Witaj <b>".$_SESSION['login']."</b><br><br>";
  44.  
  45. echo '<a href="?wyloguj=1">[Wyloguj]</a>';
  46. }
  47. ?>
  48.  
  49. <?php if ($_SESSION['zalogowany']==false): ?>
  50.  
  51.  
  52. <?php endif; ?>
  53.  
  54. <?php mysql_close(); ?>


index.php
  1. <!DOCTYPE html>
  2. <html>
  3.  
  4. <head>
  5. <meta charset="UTF-8">
  6. <title>Login Form - CodePen</title>
  7. <link rel="stylesheet" href="css/style.css" media="screen" type="text/css" />
  8. </head>
  9.  
  10. <body>
  11.  
  12. <div id="login">
  13. <h1>Logowanie do Panelu Gracza</h1>
  14. <form method="POST" action="logowanie.php">
  15. <input type="text" name="login" placeholder="Nick" />
  16. <input type="password" name="haslo" placeholder="Haslo" />
  17. <input type="submit" value="Log in" />
  18. </form>
  19. </div>
  20.  
  21. <script src='http://codepen.io/assets/libs/fullpage/jquery.js'></script>
  22. <script src="js/index.js"></script>
  23.  
  24. </body>
  25. </html>


I niestety dalej coś nie trybi. Nie ważne co wpiszę to pokazuje się pusta strona logowanie.php.

Ten post edytował Sillence 4.06.2014, 20:16:25
Go to the top of the page
+Quote Post
Turson
post 4.06.2014, 20:19:26
Post #11





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Masz to na jakimś serwerze i adres w przeglądarce to np. 127.0.0.1/logowanie.php a nie D:/coś/tam/logowanie.php questionmark.gif
Włącz error_reporting
Go to the top of the page
+Quote Post
Sillence
post 4.06.2014, 20:26:41
Post #12





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 4.06.2014

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


Mam to na tej stronie:
http://sillence99.ct8.pl/panel/
Go to the top of the page
+Quote Post
Forti
post 4.06.2014, 20:43:36
Post #13





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


Skad ty masz ten kod? Turson podal ci bardzo dobry system logowanie i rejestracji. Wystarczy 5 minut abys to podmienil u siebie.

I wlacz raportowanie bledow (patrz post kolegi wyzej).



Jezeli przy rejestracji kodowales haslo to przy sprawdzeniu warunku z haslem, pobrania z bazy rowniez musisz je w ten sam sposob kodowac

Zamias SELECT user, pass... Wpisz SELECT * FROM...

Ten post edytował Forti 4.06.2014, 20:49:31


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
Sillence
post 4.06.2014, 21:08:18
Post #14





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 4.06.2014

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


Logowanie jest już okej, ale natomiast nie działa rejestracja. Pokazuje się okno że konto zostało założone, ale jednak w bazie danych nic nie tworzy:
  1. <?PHP
  2. //Formularz rejestracji
  3. function form(){
  4. echo '
  5. <form action="" method="post">
  6. <label for="login">Login</label>
  7. <input type="text" name="login" required>
  8. <br>
  9. <label for="password">Hasło</label>
  10. <input type="password" name="password" required>
  11. <br>
  12. <label for="password2">Powtórz hasło</label>
  13. <input type="password" name="password2" required>
  14. <br>
  15. <input type="submit" name="wyslano" value="Załóż konto"/>
  16. </form>
  17. ';
  18. }
  19.  
  20. //Połączenie z bazą danych MySQL PDO
  21. $db = new PDO('mysql:host=46.4.177.235;dbname='.....', 'Starve', '.....', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'")) or die();
  22.  
  23. if(isset($_POST['wyslano'])){ //Sprawdzamy, czy submit został wciśnięty
  24. //Usuwamy białe znaki z przesłanych danych
  25. $login = trim($_POST['login']);
  26. $password = trim($_POST['password']);
  27. $password2 = trim($_POST['password2']);
  28.  
  29. $errors = NULL; //Tworzymy zmienną przechowująca ewentualne błędy
  30.  
  31. //Sprawdzamy, czy przesłane dane mają odpowiednią ilość znaków
  32. if(strlen($login)<3) $errors .= 'Login musi zawierać co najmniej 3 znaki<br>';
  33. if(strlen($password)<6) $errors .= 'Hasło musi zawierać co najmniej 6 znaków<br>';
  34. if($password!==$password2) $errors .= 'Hasła nie są takie same<br>';
  35.  
  36. //Sprawdzamy czy użytkownik o takim samym loginie już nie istnieje
  37. $stmt = $db->prepare("SELECT COUNT(UID) FROM mapa_players WHERE Nick=:login");
  38. $stmt->bindValue(":login", $login, PDO::PARAM_STR);
  39. $stmt->execute();
  40. $row = $stmt->fetch();
  41. if($row[0]>0) $errors .= 'Konto o takim loginie już istnieje<br>';
  42.  
  43.  
  44. if(empty($errors)){ //Jeśli nie ma błędów, rejestrujemy użytkownika
  45. $password = sha1($password); //kodujemy hasło
  46. $dodaj = $db->prepare("INSERT INTO mapa_players VALUES (null, $login, $password)");
  47. $dodaj->bindValue(":login", $login, PDO::PARAM_STR);
  48. $dodaj->bindValue(":password", $password, PDO::PARAM_STR);
  49. $dodaj->execute();
  50. echo "Zarejestrowałeś się. Możesz się teraz <a href=\"login.php\">zalogować</a>";
  51. }
  52. else{
  53. echo '<div style="color:red">'.$errors.'</div>';
  54. form(); //Wyświetlamy formularz
  55. }
  56. }
  57. else form();
  58. ?>
Go to the top of the page
+Quote Post
Forti
post 4.06.2014, 21:11:47
Post #15





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


Linia 21 brak apostrofu zamykajacego. Przynajmniej dlatego calosc jest na niebiesko. Analizuje dalej.


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
Sillence
post 4.06.2014, 21:16:31
Post #16





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 4.06.2014

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


Apostrof w ten sposób ?
  1. $db = new PDO('mysql:host=46.4.177.235;dbname=BazaTestowa', 'Starve', 'swinkapepa1232', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8';")) or die();
Go to the top of the page
+Quote Post
johny_s
post 4.06.2014, 21:18:01
Post #17





Grupa: Zarejestrowani
Postów: 594
Pomógł: 122
Dołączył: 17.07.2005
Skąd: P-na

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


  1. $dodaj = $db->prepare("INSERT INTO mapa_players VALUES (null, :login, :password)");
  2. $dodaj->bindValue(":login", $login, PDO::PARAM_STR);
  3. $dodaj->bindValue(":password", $password, PDO::PARAM_STR);
Go to the top of the page
+Quote Post
Forti
post 4.06.2014, 21:20:15
Post #18





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


Kolega wyzej wyjasnil szybciej co jeszcze. Ahh ten moj telefon jest za wolny smile.gif


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
johny_s
post 4.06.2014, 21:21:46
Post #19





Grupa: Zarejestrowani
Postów: 594
Pomógł: 122
Dołączył: 17.07.2005
Skąd: P-na

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


tak z ciekawości to co wyżej to prawdziwe dane do logowania do Twojej bazy?
Go to the top of the page
+Quote Post
Sillence
post 4.06.2014, 21:28:14
Post #20





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 4.06.2014

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


Hasło nie smile.gif Pierwsze lepsze. biggrin.gif

Ale dalej coś nie pasi, bo nie tworzy konta w bazie :/
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 14.08.2025 - 08:07