Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL] Logowanie - problem, nie sprawdza danych z bazy
Niemanikowdlalud...
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 18.02.2011
Skąd: Warszawa

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


Witam.
Mam problem ze skryptem logowania, mianowicie
napisałem sobie taki oto skrypcik:

  1. <?php
  2. include_once ('database/database.connect.php');
  3. include_once ('function.php');
  4.  
  5. $login=$_POST['login'];
  6. $pass=hasz ($_POST['pass']);
  7.  
  8. $rezultat = mysql_query("select * FROM uzytkownicy WHERE 'login'='$login'");
  9.  
  10. if (!empty ($_POST['login']) && !empty ($_POST['pass']))
  11. {
  12.  
  13. if (@mysql_num_rows($rezultat))
  14. {
  15. echo ("Udało ci się zalogować i jest za**** : D");
  16. }
  17. else
  18. {
  19. echo ("Podany login jest nieprawidłowy.");
  20. }
  21.  
  22. //wpisy diagnostyczne
  23.  
  24. /*echo ("<br />".$pass);
  25.   echo ("<br />".$login);
  26.   echo ("<br /><br />".mysql_error());*/
  27. }
  28.  
  29. else
  30. {
  31. echo ('Wpisz login i hasło');
  32. }
  33.  
  34. ?>


I problem jest w tym że w żaden sposób nie mogę sprawdzić czy istnieje wpis z wpisanym w formie loginem.
Przy obecnym ustawieniu zawsze wyrzuca mi że nie udało się zalogować.
Próbowałem z różnymi funkcjami, próbowałem wczytywać dane do tablicy i je porównywać ale nic z tego.

Może ktoś z was ma jakiś pomysł jak to rozwiązać?
Go to the top of the page
+Quote Post
pyro
post
Post #2





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


Zamień:

  1. $rezultat = mysql_query("select * FROM uzytkownicy WHERE 'login'='$login'");


na:

  1. if(!$rezultat = mysql_query("select * FROM uzytkownicy WHERE 'login'='$login'"))
  2. {
  3. echo 'Błędne zapytanie :]?';
  4. }


I kombinuj co jest nie tak.
Go to the top of the page
+Quote Post
kadlub
post
Post #3





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

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


po co ci te apostrofy przy login w zapytaniu ?
i włącz sobie raportowanie o błędach

Go to the top of the page
+Quote Post
Niemanikowdlalud...
post
Post #4





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 18.02.2011
Skąd: Warszawa

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


nie wyrzuca mi błędu zapytania bo już trochę kombinowałem z tym żeby mysql nie wyrzucał żadnych błędów.
męczę się z tym już od kilku dni.
najpierw na apache wyrzucało mi jakieś niezrozumiałe błędy w mysql to przeniosłem na darmowy hosting. zmieniłem tak że nie ma błędów mysql ale teraz zawsze wyrzuca mi że niepoprawne dane

@kadlub

Bo jak nie było tych apostrofów to mysql miał jakiś problem ^^

Konkretnie coś takiego
Unknown column 'to co wpisałem w formie' in 'where clause'
Go to the top of the page
+Quote Post
kadlub
post
Post #5





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

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


a jakie masz kolumny w tabeli w której masz zapisany ten login?
Go to the top of the page
+Quote Post
Niemanikowdlalud...
post
Post #6





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 18.02.2011
Skąd: Warszawa

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


Tylko 'id', 'login' i 'pass'.
Rejestracja działa pięknie, ładnie, a z tym się już dłuższy czas męczę i nie chce to pójść na żadne sposób.
Go to the top of the page
+Quote Post
pyro
post
Post #7





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


Sorry mój ostatni post był nieco zbędny bo niby składnia jest prawidłowa, ale ten już nie będzie:

  1. // to zwroci wynik tylko wtedy jak ktos będzie miał login "login"
  2. $rezultat = mysql_query("select * FROM uzytkownicy WHERE 'login'='$login'");


to to samo co:

  1. $rezultat = mysql_query("select * FROM uzytkownicy WHERE 1=1");


i to samo co:

  1. [php]
  2. $rezultat = mysql_query("select * FROM uzytkownicy WHERE 'cos' = 'cos'");

[/php]

I teraz się zastanów czemu.

Ten post edytował pyro 18.02.2011, 21:49:50
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%)
-----


u mnie twój skrypt działa po usunięciu apostrofu może masz coś z połączeniem z bazą danych sprawdź ścieżke do pliku z
połączeniem
Go to the top of the page
+Quote Post
Niemanikowdlalud...
post
Post #9





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 18.02.2011
Skąd: Warszawa

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


Właśnie na razie chciałem to sprowadzić do jak najprostszej formy.
Tylko teraz powinno być tak że jak wpisuje login, powiedzmy Tost to powinno mi zwrócić wynik pozytywny jak już ktoś taki się zarejestrował wcześniej i taki rekord jest w bazie.
A tu jest problem że nawet jak login = login i jest taki rekord to wyświetla że nie udało się zalogować
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%)
-----


a pokarz plik rejestracji
Go to the top of the page
+Quote Post
Niemanikowdlalud...
post
Post #11





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 18.02.2011
Skąd: Warszawa

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


Cytat(kadlub @ 18.02.2011, 21:53:41 ) *
u mnie twój skrypt działa po usunięciu apostrofu może masz coś z połączeniem z bazą danych sprawdź ścieżke do pliku z
połączeniem


Skrypt łączy się z bazą bo wyświetla mi błędy mysql z wpisu diagnostycznego.
Poza tym plik rejestracyjny includuje ten sam plik łączący sie z bazą i ten plik działa.


Proszę : D

  1. <?php
  2. include_once ("database/database.connect.php");
  3.  
  4. if ($_GET["reg"]!="index" && $_GET["reg"]!="ok")
  5. {
  6. $_GET["reg"]="index";
  7. }
  8.  
  9. //formularz rejestracyjny
  10.  
  11. if ($_GET["reg"]=="index")
  12. {
  13. echo ("
  14. <form method='post' action='index.php?opcje=register&reg=ok'>
  15. Witaj na stronie rejestracji.<br />
  16. Podaj swój:<br /><br />
  17. - Login<br />
  18. <input type='text' name='log'><br />
  19. - Hasło<br />
  20. <input type='password' name='pass'><br />
  21. <input type='submit' value='REJESTRUJ MNIE!'>
  22. ");
  23. }
  24.  
  25. //rejestracja użytkownika, dodanie go do MySQL
  26.  
  27. if ($_GET["reg"]=="ok")
  28. {
  29. include_once ("include/function.php");
  30.  
  31. if ((mysql_query("INSERT INTO uzytkownicy (login, pass) VALUES ('".$_POST['log']."', '".hasz ($_POST['pass'])."')"))==TRUE)
  32. {
  33. echo ("Udało ci się pomyślnie zarejestrować");
  34. }
  35. else
  36. {
  37. echo ("Nie udało się zalogować! <br />
  38. Jakiś błąd!");
  39. }
  40.  
  41. //wpis diagnostyczny
  42.  
  43. /*echo ("<br /><br />".mysql_error());*/
  44. }
  45.  
  46. ?>
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%)
-----


hmmm to pokarz jeszcze formularz logowania
może tam jest jakiś błąd
ja muszę akurat wybyć więc nie będe mógł odpisać

Ten post edytował kadlub 18.02.2011, 22:11:14
Go to the top of the page
+Quote Post
Niemanikowdlalud...
post
Post #13





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 18.02.2011
Skąd: Warszawa

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


Ehh... No dobra...

  1. <?php
  2. include_once ('database/database.connect.php');
  3.  
  4. $login='lol';
  5.  
  6. if (empty ($_SESSION['zalogowany']))
  7. {
  8. echo ("
  9. <form method='post' action='index.php?opcje=log'>
  10. Login:<br />
  11. <input type='text' name='login'>
  12. Passy:
  13. <input type='password' name='pass'><br />
  14. <center>
  15. <input type='submit' value=' Loguj '>
  16. </center>
  17. </form>
  18. <a href='index.php?opcje=register'>Nie masz konta?</a>
  19. ");
  20. }
  21.  
  22. if ($_SESSION["log"]=="$login")
  23. {
  24. echo ("Witaj $login");
  25. }
  26.  
  27. if ($_GET["opcje"]=="wylog")
  28. {
  29. }
  30.  
  31. ?>



Ten plik na razie jest taki trochę nieuporządkowany... Jeszcze nie ma sesji, itd...
Chodź nie wiem akurat czy formularz ma z tym problemem coś wspólnego, ale ok.
Wiem że login i hasło przesyła poprawnie bo można je wyświetlić w pliku logowania.

Ten post edytował Niemanikowdlaludzi 18.02.2011, 22:15:18
Go to the top of the page
+Quote Post
homik363
post
Post #14





Grupa: Zarejestrowani
Postów: 56
Pomógł: 1
Dołączył: 23.11.2009

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


Jeden malutki błąd
zamiast
  1. $rezultat = mysql_query("select * FROM uzytkownicy WHERE 'login'='$login'");

Daj
  1. $rezultat = mysql_query("select * FROM uzytkownicy WHERE login='$login'");

U mnie działa bez problemu
Go to the top of the page
+Quote Post
Niemanikowdlalud...
post
Post #15





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 18.02.2011
Skąd: Warszawa

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


Kurde, działa.....
I nawet nie wiem dlaczego bo próbowałem milionem sposobów i nagle działa (IMG:style_emoticons/default/biggrin.gif)

Dobra dzięki wszystkim za pomoc, dla wszystkich leci pomógł ^^
Go to the top of the page
+Quote Post
kadlub
post
Post #16





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

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


Cytat(Niemanikowdlaludzi @ 18.02.2011, 22:45:16 ) *
Kurde, działa.....
I nawet nie wiem dlaczego bo próbowałem milionem sposobów i nagle działa (IMG:style_emoticons/default/biggrin.gif)

Dobra dzięki wszystkim za pomoc, dla wszystkich leci pomógł ^^



eh było to pisane na samym początku
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 15:42