Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem z bazą danych, skrypt logowania
Sheo
post
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
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
Rysh
post
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
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
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
Go to the top of the page
+Quote Post
Sheo
post
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
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?
Go to the top of the page
+Quote Post
Sheo
post
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
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
Go to the top of the page
+Quote Post
Sheo
post
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
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
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
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 (IMG:style_emoticons/default/questionmark.gif) wiem że to głupie, ale też miałem tak błahy problem, a szukałem i szukałem (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Rysh
post
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
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
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
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
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
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
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
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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 20:48