Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Gdzie robię błąd - logowanie sesja
Turson
post
Post #1





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

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


Form
  1. <?PHP
  2. echo '<div class="newsinfo">
  3. <span class="title">Logowanie</span></div>';
  4. if(($_SESSION["zalogowany"])==0){
  5. echo "<table><form action=index.php?id=login2 method=post>";
  6. echo "<tr><td>Login:</td> <td><input type=text maxlength=15 name=login class=in></td></tr><br>";
  7. echo "<tr><td>Hasło:</td> <td><input type=password name=haslo maxlength=15 class=in></td></tr><br>";
  8. echo "<input type=hidden value=1 name=send><br></table><br>";
  9. echo "<input type=submit value='Zaloguj się' class=button>";}
  10. else echo "Jesteś zalogowany!";
  11. ?>

Logowanie
  1. <?PHP
  2. if($_POST["send"]==1){
  3. if(!empty($_POST["login"]) && !empty($_POST["haslo"])){
  4. if(mysql_num_rows(mysql_query("select * from users where user_login = '".htmlspecialchars($_POST["login"])."' AND user_haslo = '".htmlspecialchars(md5($_POST["haslo"]))."'"))){
  5. echo 'Zalogowano poprawnie jako '.$_POST["login"].'. <a href=index.php>Przejdz na strone główna</a>';}
  6.  
  7. $_SESSION["zalogowany"]=true;
  8. $haslo = @mysql_query("SELECT user_id FROM users WHERE user_id='$_POST[login]'");
  9. while ($wiersz2 = mysql_fetch_array($haslo)) {
  10. $_SESSION["id"] = $wiersz2[0]; }
  11.  
  12. }
  13. else echo ("Podano złe dane!!!");
  14. }
  15. else echo "Pole loginu i hasła nie zostało uzupełnione.";
  16. }
  17. else{
  18. $haslo = @mysql_query("SELECT admin FROM users WHERE user_id='$_POST[login]'");
  19. while ($wiersz = mysql_fetch_array($haslo)) {
  20. if($wiersz[0] == 1) {
  21. $_SESSION["admin"]=1; }}
  22. ?>


Komunikaty nie są wyświetlane tak jak powinny
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
krzywy36
post
Post #2





Grupa: Zarejestrowani
Postów: 370
Pomógł: 43
Dołączył: 1.12.2007
Skąd: Kędzierzyn Koźle

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


w czym problem...? Na szybko, usuń @ z komend mysql bo Ci ukrywa błędy


--------------------
pretty as a shit.
Go to the top of the page
+Quote Post
Turson
post
Post #3





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

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


Ogólnie mam pomieszany kod i wywala syntax, unexpected } na 16 linii, nie mgoe sobie poradzic
Wcześniej gdy sie zalogowalem dobrze to wywalo, iz podano zle dane..

Ten post edytował TursoN 5.04.2011, 20:33:06
Go to the top of the page
+Quote Post
Fifi209
post
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Ogólnie forum to nie parser. smile.gif


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Turson
post
Post #5





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

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


Wiem, wrzuciłem zły kod z syntaxem. Poprawię na ten co miałem źle i wrzuce jeszcze raz.
Chwila:)

  1. <?PHP
  2. if($_POST["send"]==1){
  3. if(!empty($_POST["login"]) && !empty($_POST["haslo"])){
  4. if(mysql_num_rows(mysql_query("select * from users where user_login = '".htmlspecialchars($_POST["login"])."' AND user_haslo = '".htmlspecialchars(md5($_POST["haslo"]))."'"))){
  5. echo 'Zalogowano poprawnie jako '.$_POST["login"].'. <a href=index.php>Przejdz na strone główna</a>';}
  6.  
  7. $_SESSION["zalogowany"]=true;
  8. $haslo = mysql_query("SELECT user_id FROM users WHERE user_id='$_POST[login]'");
  9. while ($wiersz2 = mysql_fetch_array($haslo)) {
  10. $_SESSION["id"] = $wiersz2[0]; }
  11.  
  12. }
  13. else echo ("Podano złe dane!!!");
  14. }
  15.  
  16.  
  17. else{
  18. $haslo = mysql_query("SELECT admin FROM users WHERE user_id='$_POST[login]'");
  19. while ($wiersz = mysql_fetch_array($haslo)) {
  20. if($wiersz[0] == 1) {
  21. $_SESSION["admin"]=1; }}}
  22. ?>

To nowy kod, nie wyświetla się nic gdy wpisze poprawne dane

Ten post edytował TursoN 5.04.2011, 20:36:45
Go to the top of the page
+Quote Post
lukaskolista
post
Post #6





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

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


o ile mi wiadomo instrukcja warunkowa kieruje sie wartosciami true or false, a nie liczbami calkowitymi

  1. if (mysql_num_rows($wynik_zapytania) === 1)
Go to the top of the page
+Quote Post
Turson
post
Post #7





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

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


A poza tym? Wydaje mi się, że nieprawidłowa kolejność ułożenia { i }

refresh
Go to the top of the page
+Quote Post
kadlub
post
Post #8





Grupa: Zarejestrowani
Postów: 548
Pomógł: 105
Dołączył: 4.06.2010

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


  1. <?PHP
  2.  
  3.  
  4. if($_POST["send"]==1)
  5. {
  6.  
  7. if(!empty($_POST["login"]) && !empty($_POST["haslo"]))
  8. {
  9. if(mysql_num_rows(mysql_query("select * from users where user_login = '".htmlspecialchars($_POST["login"])."' AND user_haslo = '".htmlspecialchars(md5($_POST["haslo"]))."'"))==1)
  10. {
  11. echo 'Zalogowano poprawnie jako '.$_POST["login"].'. <a href=index.php>Przejdz na strone główna</a>';
  12.  
  13.  
  14. $_SESSION["zalogowany"]=true;
  15. $haslo = mysql_query("SELECT user_id FROM users WHERE user_login='".$_POST['login']."'");
  16. while ($wiersz2 = mysql_fetch_array($haslo)) {
  17. $_SESSION["id"] = $wiersz2[0];
  18. }
  19.  
  20. }
  21.  
  22. else {
  23. echo "Podano złe dane!!!";
  24. }
  25. }
  26.  
  27. else
  28. {
  29. $haslo = mysql_query("SELECT admin FROM users WHERE user_login='".$_POST['login']."'");
  30. while ($wiersz = mysql_fetch_array($haslo)) {
  31. if($wiersz[0] == 1) {
  32. $_SESSION["admin"]=1; }}
  33. }}
  34. ?>
  35.  

zobacz ten kod
dziwny masz warunek
user_id='$_POST[login]
trzymasz login w user_id i w user_login??
może sie pomyliłeś

ja zmieniłem na user_login=$_POST['login']

Go to the top of the page
+Quote Post
Turson
post
Post #9





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

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


Chyba problem jeszcze polega na haśle.
W rejestracji koduje na md5
  1. mysql_query("insert into users values(NULL, '".htmlspecialchars($_POST["login"])."', '".htmlspecialchars(md5($_POST["haslo"]))."', '".htmlspecialchars($_POST["mail"])."', 0)");

W logowaniu
  1. "select * from users where user_login = '".htmlspecialchars($_POST["login"])."' AND user_haslo = '".htmlspecialchars(md5($_POST["haslo"]))."'"

Wydaje mi się, że nie czyta hasła poprawnie
Go to the top of the page
+Quote Post
kadlub
post
Post #10





Grupa: Zarejestrowani
Postów: 548
Pomógł: 105
Dołączył: 4.06.2010

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


no dobrze kodujesz md5 i odczytujesz podając md5 a powiedz jaką masz wielkość pola w tabeli ustawioną na te hasło
typ to varchar ? czy w jakiś inny

Ten post edytował kadlub 6.04.2011, 14:45:52
Go to the top of the page
+Quote Post
Turson
post
Post #11





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

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


`user_haslo` VARCHAR( 30 )
Go to the top of the page
+Quote Post
kadlub
post
Post #12





Grupa: Zarejestrowani
Postów: 548
Pomógł: 105
Dołączył: 4.06.2010

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


to zmień te 30 na 200 bo ci sie cały ten krzaczek nie mieści
załóż jakieś przykładowe konto użytkownika i spróbuj zalogować sie na nie
zobaczymy czy działa
Go to the top of the page
+Quote Post
Turson
post
Post #13





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

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


Zmieniłem długośc pola do 200, zrobiłem nowe konto i komunikat 'Podano złe dane' przy wpisaniu prawidłowych.
Go to the top of the page
+Quote Post
kadlub
post
Post #14





Grupa: Zarejestrowani
Postów: 548
Pomógł: 105
Dołączył: 4.06.2010

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



a w rejestracji tam gdzie zakładasz konto daj to
  1. mysql_query("insert into users (user_login,user_haslo) values('".htmlspecialchars($_POST["login"])."', '".htmlspecialchars(md5($_POST["haslo"]))."')");
  2.  


i zobaczymy teraz bo u mnie śmiga
Go to the top of the page
+Quote Post
Turson
post
Post #15





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

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


Dalej nic, pokażę kod logowania.
  1. <?PHP
  2. function ShowLogin($komunikat=""){
  3. echo "<table><form action=index.php?id=login2 method=post>";
  4. echo '<tr><td>Login:</td> <td><input type=text maxlength=15 name=login class=in value='.$_POST[login].'></td></tr><br>';
  5. echo '<tr><td>Hasło:</td> <td><input type=password name=haslo maxlength=15 class=in value='.$_POST[haslo].'></td></tr><br>';
  6. echo "<input type=hidden value=1 name=send><br></table><br>";
  7. echo "<input type=submit value='Zaloguj się' class=button>";
  8. echo '<br><a href="index.php?id=recovery_pass">Zapomniałem hasła</a>';
  9. }
  10.  
  11.  
  12. if($_POST["send"]==1)
  13. {
  14.  
  15. if(!empty($_POST["login"]) && !empty($_POST["haslo"]))
  16. {
  17. if(mysql_num_rows(mysql_query("select * from users where user_login = '".htmlspecialchars($_POST["login"])."' AND user_haslo = '".htmlspecialchars(md5($_POST["haslo"]))."'"))==1)
  18. {
  19. echo 'Zalogowano poprawnie jako '.$_POST["login"].'. <a href=index.php>Przejdz na strone główna</a>';
  20.  
  21.  
  22. $_SESSION["zalogowany"]=true;
  23. $haslo = mysql_query("SELECT admin FROM users WHERE user_login='".$_POST['login']."'");
  24. while ($wiersz = mysql_fetch_array($haslo)) {
  25. if($wiersz[0] == 1) {
  26. $_SESSION["admin"]=1; }}
  27. $haslo = mysql_query("SELECT user_id FROM users WHERE user_login='".$_POST['login']."'");
  28. while ($wiersz2 = mysql_fetch_array($haslo)) {
  29. $_SESSION["id"] = $wiersz2[0];
  30. }
  31.  
  32. }
  33.  
  34. else {
  35. echo "Podano złe dane.Popraw je, a następnie spróbuj zalogować się ponownie.";
  36. ShowLogin();
  37. }
  38. }
  39.  
  40. else
  41. { echo "Jedno z pól nie zostało uzupełnione.Spróbuj ponownie.";ShowLogin();; }
  42.  
  43. }
  44. ?>
  45.  
Go to the top of the page
+Quote Post
darko
post
Post #16





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Poprawiłem formatowanie:
  1. function ShowLogin(/*$komunikat = ""*/)
  2. {
  3. return '<table><form action="index.php?id=login2" method="post">' .
  4. '<tr><td>Login:</td> <td><input type="text" maxlength="15" name="login" class="in" value="' . $_POST['login'] . '" /></td></tr><br/>' .
  5. '<tr><td>Hasło:</td> <td><input type="password" name="haslo" maxlength="15" class="in" value="' . $_POST['haslo'] . '" /></td></tr><br>' .
  6. '<input type="hidden" value="1" name="send"><br/></table><br/>' .
  7. '<input type="submit" value="Zaloguj się" class="button">' .
  8. '<br/><a href="index.php?id=recovery_pass">Zapomniałem hasła</a>';
  9. }
  10.  
  11. if($_POST["send"]==1)
  12. {
  13. if(!empty($_POST["login"]) && !empty($_POST["haslo"]))
  14. {
  15. $result = mysql_query(
  16. "select
  17. *
  18. from users
  19. where
  20. user_login = '" . htmlspecialchars($_POST["login"]) . "'
  21. AND user_haslo = '" . htmlspecialchars(md5($_POST["haslo"])) . "'") or die(mysql_error());
  22.  
  23. if(mysql_num_rows($result) == 1)
  24. {
  25. echo 'Zalogowano poprawnie jako '.$_POST["login"].'. <a href=index.php>Przejdz na strone główna</a>';
  26. $_SESSION["zalogowany"] = true;
  27. $haslo = mysql_query("SELECT user_id FROM users WHERE user_login='" . $_POST['login'] . "'");
  28. while ($wiersz2 = mysql_fetch_array($haslo))
  29. {
  30. $_SESSION["id"] = $wiersz2[0];
  31. }
  32. }
  33. else
  34. {
  35. echo "Podano złe dane. Popraw je, a następnie spróbuj zalogować się ponownie.";
  36. echo ShowLogin();
  37. }
  38. }
  39. else
  40. {
  41. $haslo = mysql_query("SELECT admin FROM users WHERE user_login='" . $_POST['login'] . "'");
  42. while ($wiersz = mysql_fetch_array($haslo))
  43. {
  44. if($wiersz[0] == 1)
  45. {
  46. $_SESSION["admin"] = 1;
  47. }
  48. }
  49. }
  50. }


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
Turson
post
Post #17





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

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


Dalej nie działa.
Chyba klamerki funkcji są nie tak
Go to the top of the page
+Quote Post
darko
post
Post #18





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Podpowiem jeszcze bardziej: gdzie zamykasz formularz?


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
kadlub
post
Post #19





Grupa: Zarejestrowani
Postów: 548
Pomógł: 105
Dołączył: 4.06.2010

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


  1. function ShowLogin(){
  2. echo '<table><form action="index.php?id=login2" method="post">';
  3. echo '<tr><td>Login:</td> <td><input type="text" maxlength="15" name="login" class="in" value='.$_POST['login'].'></td></tr><br>';
  4. echo '<tr><td>Hasło:</td> <td><input type="password" name="haslo" maxlength="15" class="in" value='.$_POST[haslo].'></td></tr><br>';
  5. echo '<input type="hidden" value="1" name="send"><br></table><br>';
  6. echo '<input type="submit" value="Zaloguj się" class="button"></form>';
  7. echo '<br><a href="index.php?id=recovery_pass">Zapomniałem hasła</a>';
  8. }
  9.  
  10.  
  11. if($_POST["send"]==1)
  12. {
  13.  
  14. if(!empty($_POST["login"]) && !empty($_POST["haslo"]))
  15. {
  16. if(mysql_num_rows(mysql_query("select * from users where user_login = '".htmlspecialchars($_POST["login"])."' AND user_haslo = '".htmlspecialchars(md5($_POST["haslo"]))."'"))==1)
  17. {
  18. echo 'Zalogowano poprawnie jako '.$_POST["login"].'. <a href=index.php>Przejdz na strone główna</a>';
  19.  
  20.  
  21. $_SESSION["zalogowany"]=true;
  22. $haslo = mysql_query("SELECT admin FROM users WHERE user_login='".$_POST['login']."'");
  23. while ($wiersz = mysql_fetch_array($haslo)) {
  24. if($wiersz[0] == 1) {
  25. $_SESSION["admin"]=1; }}
  26. $haslo = mysql_query("SELECT user_id FROM users WHERE user_login='".$_POST['login']."'");
  27. while ($wiersz2 = mysql_fetch_array($haslo)) {
  28. $_SESSION["id"] = $wiersz2[0];
  29. }
  30.  
  31. }
  32.  
  33. else {
  34. echo "Podano złe dane.Popraw je, a następnie spróbuj zalogować się ponownie.";
  35.  
  36. }
  37. }
  38.  
  39. else
  40. { echo "Jedno z pól nie zostało uzupełnione.Spróbuj ponownie.";
  41. }
  42.  
  43. }
  44. ShowLogin();


u mnie ten kod działa

Ten post edytował kadlub 6.04.2011, 16:08:36
Go to the top of the page
+Quote Post
Turson
post
Post #20





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

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


Komunikaty o błędnym haśle lub brakującym polu działają prawidłowo, jednak nawet gdy wpiszę prawidłowe, nie loguje się a wyświetla "Podano złe dane.Popraw je, a następnie spróbuj zalogować się ponownie."
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 Aktualny czas: 20.08.2025 - 05:57