Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Logowanie - problem
Forum PHP.pl > Forum > Przedszkole
Niemanikowdlaludzi
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ć?
pyro
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.
kadlub
po co ci te apostrofy przy login w zapytaniu ?
i włącz sobie raportowanie o błędach

Niemanikowdlaludzi
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'
kadlub
a jakie masz kolumny w tabeli w której masz zapisany ten login?
Niemanikowdlaludzi
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.
pyro
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.
kadlub
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
Niemanikowdlaludzi
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ć
kadlub
a pokarz plik rejestracji
Niemanikowdlaludzi
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. ?>
kadlub
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ć
Niemanikowdlaludzi
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.
homik363
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
Niemanikowdlaludzi
Kurde, działa.....
I nawet nie wiem dlaczego bo próbowałem milionem sposobów i nagle działa biggrin.gif

Dobra dzięki wszystkim za pomoc, dla wszystkich leci pomógł ^^
kadlub
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 biggrin.gif

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



eh było to pisane na samym początku
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.