Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP]Problem z bazą danych, skrypt logowania
Sheo
post 25.03.2010, 17:55:02
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 6.03.2009

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


Cześć,

Stawiam swoje pierwsze kroki w PHP, znalazłem jakiś tutorial na youtubie z tworzeniem skryptu logowania, błąd mam przy wybieraniu tabeli. Oto błąd jaki mi wyrzuca : 
Cytat
Could not select MySQL database. MySQL returned:
Access denied for user 'sheo'@'%' to database 'users'


Oto zawartość pliku login.php :

  1. <?php
  2.  
  3.  
  4. $username = $_POST['username'];
  5. $password = $_POST['password'];
  6.  
  7. if($username&&$password)
  8. {
  9.  
  10. mysql_connect('host mojej bazy','login','mojehasło') or die('Could not connect to MySQL Server. MySQL returned: <br />' . mysql_error());
  11. mysql_select_db('users') or die('Could not select MySQL database. MySQL returned: <br />' . mysql_error());
  12.  
  13.  
  14. $query = mysql_query("SELECT * FROM users WHERE username='$username'");
  15. $numrows = mysql_num_rows($query);
  16.  
  17. if ($numrows!=1)
  18. {
  19. //kod do logowania
  20. while ($row = mysql_fetch_assoc($query));
  21. {
  22. $dbusername = $row['username'];
  23. $dbpassword = $row['password'];
  24. }
  25. if ($username==$dbusername&&$password==$dbpassword)
  26. {
  27. echo "Zalogowałeś się! <a href='member.php'>Kliknij TU</a> aby przejść do strony";
  28. $_SESSION['username']==$dbusername;
  29. }
  30. else
  31. echo "Nieprawidłowe hasło!";
  32.  
  33. }
  34. else
  35. die("Użytkownik nie istnieje");
  36. echo $numrows;
  37.  
  38. }
  39.  
  40. else
  41. die("Podaj login i haslo");
  42.  
  43.  
  44. ?>
Go to the top of the page
+Quote Post
Rysh
post 25.03.2010, 18:06:40
Post #2





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Błąd mówi wyraźnie:
Access denied for user 'sheo'@'%' to database 'users'

Dostęp zabroniony dla użytkownika sheo do bazy 'users'


--------------------
Go to the top of the page
+Quote Post
Sheo
post 25.03.2010, 18:19:11
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 6.03.2009

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


Cytat(Rysh @ 25.03.2010, 18:06:40 ) *
Błąd mówi wyraźnie:
Access denied for user 'sheo'@'%' to database 'users'

Dostęp zabroniony dla użytkownika sheo do bazy 'users'

Tyle to sam zrozumiałem...
Go to the top of the page
+Quote Post
sadistic_son
post 25.03.2010, 18:49:45
Post #4





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Sprawdz czy w funkcji łączącej się z bazą masz tą samą nazwę usera, hasło i host co w ustawieniach serwera mysql. Zwróć uwagę czy w obu przypadkach jest np. localhost. Jeśli to nie pomoże to przydziel temu użytkownikowi wszystkie prawa, jeśli masz taką możliwość. A przynajmniej przydziel mu prawo do wglądu do Twojej bazy.

Twój user - sheo ma teraz ustawiony w pliku php host dowolny. Daję głowę że na serwerze ma localhost i to jest problem.

Ten post edytował sadistic_son 25.03.2010, 18:52:50


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
Sheo
post 25.03.2010, 18:52:45
Post #5





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 6.03.2009

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


Dane wszystkie są prawidłowe. Gdzie przydzielić te prawa ?
Go to the top of the page
+Quote Post
sadistic_son
post 25.03.2010, 18:54:10
Post #6





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Najpierw to sprawdź:
Cytat(sadistic_son @ 25.03.2010, 18:49:45 ) *
Twój user - sheo ma teraz ustawiony w pliku php host dowolny. Daję głowę że na serwerze ma localhost i to jest problem.
Jakiego serwera używasz? Lokalnie, na Twoim kompie? Czy zdalnie?


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
Sheo
post 25.03.2010, 19:08:45
Post #7





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 6.03.2009

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


cba.pl
Go to the top of the page
+Quote Post
sadistic_son
post 25.03.2010, 19:18:12
Post #8





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


To w funkcji łączącej z bazą hosta podmień na localhost (linijka 11).

Ten post edytował sadistic_son 25.03.2010, 19:18:52


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
Sheo
post 25.03.2010, 21:42:49
Post #9





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 6.03.2009

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


jak napisałem na początku, jestem początkujący. W którym miejscu mam to podmienić, bo chyba nie zamiast hosta.

Już wiem jaki błąd zrobiłem. Pomyliłem po prostu nazwę tabeli z nazwą bazy danych. Problem kolejny mam teraz z zalogowaniem się. Skrypt wypluwa mi że podaje nieprawidłowe hasło.
Go to the top of the page
+Quote Post
Rysh
post 25.03.2010, 21:45:10
Post #10





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Jeśli by miał złe wpisane dane, w ogóle by się nie połączył i miał przerwanie skryptu już w chwili:
  1. mysql_connect('host mojej bazy','login','mojehasło') or die('Could not connect to MySQL Server. MySQL returned: <br />' . mysql_error());


Zaloguj się do phpmyadmin i sprawdz po lewej stronie z rozwijanej listy jak nazywa się Twoja baza danych i wstaw ją w 12 linijkę.

[edit]:
Założyłem konto i powinno działać tak:
  1. mysql_connect('mysq.cba.pl','rysh','haslo') or die('Could not connect to MySQL Server. MySQL returned: <br />' . mysql_error());
  2. mysql_select_db('rysh_cba_pl') or die('Could not select MySQL database. MySQL returned: <br />' . mysql_error());


mysql.cba.pl - zostawiasz
rysh - zmieniasz na użytkownika którego utworzyłeś (o ile utworzyłeś) w Panelu CBA.
haslo - domyśl się

i druga linijka:
rysh_cba_pl - zmieniasz na sheo_cba_pl

Ten post edytował Rysh 25.03.2010, 21:52:01


--------------------
Go to the top of the page
+Quote Post
Sheo
post 25.03.2010, 21:56:52
Post #11





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 6.03.2009

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


Napisałem już wcześniej że działa i łączy się z bazą, tylko teraz nie chce mi się zalogować, każdy login i hasło błędne.
Go to the top of the page
+Quote Post
gizmo1985
post 25.03.2010, 22:41:42
Post #12





Grupa: Zarejestrowani
Postów: 48
Pomógł: 1
Dołączył: 19.01.2010

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


A sprawdzałeś , cze masz identyczną bazę na serwerze jak u siebie na kompie questionmark.gif wiem że to głupie, ale też miałem tak błahy problem, a szukałem i szukałem winksmiley.jpg
Go to the top of the page
+Quote Post
Rysh
post 25.03.2010, 22:47:19
Post #13





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Poznasz głupiego po czynach jego... tak było w Forrest Gump.
Skoro masz błąd, że nie może Ci wybrać bazy danych to jak ma Ci pobrać LOGIN i HASŁO!?

[edit]:
I nic Ci się nie łączy, bo dopiero rozpoczynasz połączenie z bazą danych w chwili kiedy dane w formularzu zostaną uzupełnione.

Ten post edytował Rysh 25.03.2010, 22:48:30


--------------------
Go to the top of the page
+Quote Post
Sheo
post 25.03.2010, 23:33:24
Post #14





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 6.03.2009

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


Cytat(Rysh @ 25.03.2010, 22:47:19 ) *
Poznasz głupiego po czynach jego... tak było w Forrest Gump.
Skoro masz błąd, że nie może Ci wybrać bazy danych to jak ma Ci pobrać LOGIN i HASŁO!?


Co ty pleciesz ? Napisałem że wszystko z bazą ok, tylko nie chce się zalogować.
Go to the top of the page
+Quote Post
Rysh
post 25.03.2010, 23:40:55
Post #15





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


No dobra, jak chcesz.

Kiedy dostajesz komunikat z pierwszego postu? Po wypełnieniu formularza czy za każdym razem? Skąd masz pewność, że połączenie zostało ustanowione?


--------------------
Go to the top of the page
+Quote Post
Sheo
post 25.03.2010, 23:52:02
Post #16





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 6.03.2009

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


Założyłem tak, gdyż nie wywala żadnego błędu z bazą, tylko wyskakuje
Cytat
?Nieprawidłowe hasło!
czyli tak jak powinno być

Ten post edytował Sheo 25.03.2010, 23:52:23
Go to the top of the page
+Quote Post
Rysh
post 26.03.2010, 00:13:53
Post #17





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


OK, już się pogubiłem. Pisałeś, że dostajesz komunikat z pierwszego postu...

Ale lecimy dalej, w zły sposób sprawdzasz czy użytkownik się zaloguje.
Lepiej wysyłać zapytanie w stylu:
  1. $sql = mysql_query("SELECT `id` FROM users WHERE `username`='". $username ."' AND `password`='". $password ."'") or die (mysql_error());
  2. if (mysql_num_rows($sql) == 1) {
  3. //zalogowany.
  4. }


Nie musisz pobierać danych do php żeby sprawdzić czy użytkownik istnieje. Możesz przecież sprawdzić to jeszcze w bazie danych.


--------------------
Go to the top of the page
+Quote Post
Sheo
post 27.03.2010, 13:49:35
Post #18





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 6.03.2009

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


Po zamianie kawałka kodu który mi podałeś, wypluwa to :
Cytat
Parse error: syntax error, unexpected T_ELSE in /var/www/virtual/sheo.cba.pl/login.php on line 37


nikt nie da rady pomóc ?

Ten post edytował Sheo 26.03.2010, 00:28:47
Go to the top of the page
+Quote Post
mortus
post 27.03.2010, 13:55:07
Post #19





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


To znaczy, że źle pozamykałeś nawiasy. Wklej tutaj aktualny kod.
Go to the top of the page
+Quote Post
Sheo
post 27.03.2010, 14:42:38
Post #20





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 6.03.2009

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


  1. <?php
  2.  
  3.  
  4. $username = $_POST['username'];
  5. $password = $_POST['password'];
  6.  
  7. if($username&&$password)
  8. {
  9.  
  10.  
  11. mysql_connect('mysql.cba.pl','sheo','damian123') or die('Could not connect to MySQL Server. MySQL returned: <br />' . mysql_error());
  12. mysql_select_db('sheo_cba_pl') or die('Could not select MySQL database. MySQL returned: <br />' . mysql_error());
  13.  
  14.  
  15.  
  16. $sql = mysql_query("SELECT `id` FROM users WHERE `username`='". $username ."' AND `password`='". $password ."'") or die (mysql_error());
  17.  
  18. if (mysql_num_rows($sql) == 1) {
  19.  
  20. {
  21. //kod do logowania
  22. while ($row = mysql_fetch_assoc($query));
  23. {
  24. $dbusername = $row['username'];
  25. $dbpassword = $row['password'];
  26. }
  27. if ($username==$dbusername&&$password==$dbpassword)
  28. {
  29. echo "Zalogowałeś się! <a href='member.php'>Kliknij TU</a> aby przejść do strony";
  30. $_SESSION['username']==$dbusername;
  31. }
  32. else
  33. echo "Nieprawidłowe hasło!";
  34.  
  35. }
  36. else
  37. die("Użytkownik nie istnieje");
  38. echo $numrows;
  39.  
  40. }
  41.  
  42. else
  43. die("Podaj login i haslo");
  44.  
  45.  
  46. ?>
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: 18.07.2025 - 06:53