Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Logowanie PHP
Forum PHP.pl > Forum > Przedszkole
micgok
Mam taki problem ...
nie wiem dlaczego to nie działa ... ;/

  1. <?php
  2. if (isset($_POST['user'])) {
  3. $username="uuuu";
  4. $password="pppp";
  5. $database="nnn";
  6. $servername="xxx";
  7.  
  8. mysql_connect($servername,$username,$password);
  9. @mysql_select_db($database) or die("Nie odnaleziono bazy danych");
  10.  
  11.  
  12. $login=$_POST['user']; //odczytuje login z formularza
  13. $haslo=$_POST['pass']; //odczytuje hasło
  14.  
  15. $query = "SELECT `Password` FROM `users` WHERE `Login` = '$login'";
  16. $result = mysql_query($query);
  17.  
  18. if (!mysql_num_rows($result)) {
  19. echo 'Nie ma takiego użytkownika!';
  20.  } else {
  21. $savedpass=mysql_result($result,"Password");
  22. if ($savedpass==$haslo) {
  23. echo 'Logowanie udane!';
  24. } else {
  25. echo 'Nieprawidłowe hasło!';
  26. }
  27.  }
  28.  
  29.  
  30. }
  31.  
  32. header("Location: Start.php");
  33.  
  34.  
  35. ?>



no i wyświetla mi, że jest błąd w linijce 8


oczywiście powinno mi po zalogowaniu w osobnym pliku form.htm przenosić do tego Start.php
Daimos
  1. <?php
  2. mysql_connect($servername,$username,$password);
  3. @mysql_select_db($database) or die("Nie odnaleziono bazy danych");
  4. ?>

zamien na
  1. <?php
  2. mysql_connect($servername,$username,$password) or die(mysql_error());
  3. @mysql_select_db($database) or die("Nie odnaleziono bazy danych");
  4. ?>

i daj znac co sie dzieje

tak wogole to nie mow ze jest blad w tej linijce, tylko pokaz komunikat bledu - Dokladny
micgok
zamieniłem tak jak mówiłeś... jednak dalej nie działa ...

proszę oto ten komunikat:

Kod
Warning: mysql_connect() [function.mysql-connect]: Access denied for user: 'xxx@xxx.xxx.com.pl' (Using password: YES) in /xxx/xxx/xxx/public_html/12345/Login.php on line 8
Access denied for user: 'user@xxx.xxx.com.pl' (Using password: YES)
Cienki1980
Cytat(micgok @ 26.10.2007, 19:59:19 ) *
zamieniłem tak jak mówiłeś... jednak dalej nie działa ...

proszę oto ten komunikat:

Kod
Warning: mysql_connect() [function.mysql-connect]: Access denied for user: 'xxx@xxx.xxx.com.pl' (Using password: YES) in /xxx/xxx/xxx/public_html/12345/Login.php on line 8
Access denied for user: 'user@xxx.xxx.com.pl' (Using password: YES)

Jak mówi komunikat nie masz odpowiednich danych do łączenia się do bazy. Sprawdź czy wpisujesz poprawne hasło/login/host.
micgok
ok ok już lepiej... tylko teraz inny błąd ;p:

Kod
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/xxx/xx/public_html/123456/Login.php on line 18
Nie ma takiego użytkownika!
Warning: Cannot modify header information - headers already sent by (output started at /xxx/xxxx/xxx/public_html/123456/Login.php:18) in /home/xxx/xxx/public_html/123456/Login.php on line 33
Cienki1980
Cytat(micgok @ 26.10.2007, 21:06:56 ) *
ok ok już lepiej... tylko teraz inny błąd ;p:

Kod
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/xxx/xx/public_html/123456/Login.php on line 18
Nie ma takiego użytkownika!
Warning: Cannot modify header information - headers already sent by (output started at /xxx/xxxx/xxx/public_html/123456/Login.php:18) in /home/xxx/xxx/public_html/123456/Login.php on line 33

Teraz błędem jest niepoprawne zapytanie sql. skorzystaj z mysql_error" title="Zobacz w manualu PHP" target="_manual po wywołaniu mysql_query .. lub wyświetl zapytanie ( echo $query; ) a będziesz wiedział co jest nie tak.

Może złe nazwy kolumn .. może $_POST['login'] nie ma odpowiedniej wartości.
micgok
Kurde albo coś z tym errorem zle robie albo nie wiem :

mam teraz taki wynik:


Kod
0: 0:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /xxx/xxx/xxx/xxx/123456/Login.php on line 22
Nie ma takiego użytkownika!
Warning: Cannot modify header information - headers already sent by (output started at /xxx/xxx/xxx/xxxl/123456/Login.php:10) in /xxx/xxx/xxx/xxx/123456/Login.php on line 38


i kod mam taki :

  1. <?php
  2. if (isset($_POST['user'])) {
  3. $username="xxx";
  4. $password="xxxx";
  5. $database="xxx";
  6. $servername="xxx.xxx.xxxx.pl";
  7.  
  8.  mysql_connect($servername,$username,$password) or die(mysql_error());
  9. @mysql_select_db($database) or die("Nie odnaleziono bazy danych");
  10. echo mysql_errno() . ": " . mysql_error(). "\n";
  11.  
  12.  
  13. $login=$_POST['user']; //odczytuje login z formularza
  14. $haslo=$_POST['pass']; //odczytuje hasło
  15.  
  16. $query = "SELECT `Password` FROM `users` WHERE `Login` = '$login'";
  17. echo mysql_errno() . ": " . mysql_error() . "\n";
  18. $result = mysql_query($query);
  19.  
  20. if (!mysql_num_rows($result)) {
  21. echo 'Nie ma takiego użytkownika!';
  22.  } else { 
  23. $savedpass=mysql_result($result,"Password");
  24. if ($savedpass==$haslo) {
  25. echo 'Logowanie udane!';
  26. } else {
  27. echo 'Nieprawidłowe hasło!';
  28. }
  29.  }  
  30.  
  31.  
  32. }
  33.  
  34.  
  35. header("Location: Start.php");
  36.  
  37.  
  38. ?>
Cienki1980
Najpierw wykonaj mysql_query a dopiero potem mysql_error - powinno być trochę lepiej.
micgok
no i zrobiłem i taki problem wyskoczył

Kod
1054: Unknown column 'Password' in 'field list'
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /xxx/xxx/xxx/xxx/123456/Login.php on line 21
Nie ma takiego użytkownika!
Warning: Cannot modify header information - headers already sent by (output started at /xxx/xxx/xxx/xxx/123456/Login.php:19) in /xxx/xxx/xxx/xxx/123456/Login.php on line 37
-piotrek-
Cytat
Warning: Cannot modify header information - headers already sent by (output started at /xxx/xxx/xxx/xxx/123456/Login.php:19) in /xxx/xxx/xxx/xxx/123456/Login.php on line 37


<?php
ob_start()
?>
-piotrek-
oczywiście to
<?php
ob_start()
?>
dajesz na samym początku pliku przed wszystkimi innymi poleceniami.
micgok
nic to nie daje cały czas ten sam problem...

prosze o pomoc ;|
novy85
mysql_num_rows zwraca ile znaleziono wierszy w tabeli a nie zwraca flase czy true, wiec zamiast

if (!mysql_num_rows($result)) {
echo 'Nie ma takiego użytkownika!';
}

wpisz tak

if (mysql_num_rows($result)==0) {
echo 'Nie ma takiego użytkownika!';
}

powinno zadziałać
micgok
po tych zmianach mam taki blad ;|

Kod
Parse error: syntax error, unexpected '}' in /xxx/xxx/xxx/xxx/123456/Login.php on line 40
novy85
wklej kod, ale najprawdopodobnie gdzieś masz zamało albo za dużo } sprawdź sam, albo wklej kod
micgok
  1. <?php
  2. ?>
  3.  
  4. <?php
  5. if (isset($_POST['user'])) {
  6. $username="xxx";
  7. $password="yyy";
  8. $database="zzz";
  9. $servername="aaa.bbb.ccc.pl";
  10.  
  11.  mysql_connect($servername,$username,$password) or die(mysql_error());
  12. @mysql_select_db($database) or die("Nie odnaleziono bazy danych");
  13.  
  14.  
  15.  
  16. $login=$_POST['user']; //odczytuje login z formularza
  17. $haslo=$_POST['pass']; //odczytuje hasło
  18.  
  19. $query = "SELECT `Password` FROM `users` WHERE `Login` = '$login'";
  20.  
  21. $result = mysql_query($query);
  22. echo mysql_errno() . ": " . mysql_error() . "\n";
  23.  
  24. if (mysql_num_rows($result)==0) {
  25. echo 'Nie ma takiego użytkownika!';
  26. } 
  27.  } else { 
  28. $savedpass=mysql_result($result,"Password");
  29. if ($savedpass==$haslo) {
  30. echo 'Logowanie udane!';
  31. } else {
  32. echo 'Nieprawidłowe hasło!';
  33. }
  34.  }  
  35.  
  36.  
  37. }
  38.  
  39.  
  40. header("Location: Start.php");
  41.  
  42.  
  43. ?>
Darti
WYwal ostatni } (tutaj wiersz 39)
Cienki1980
Cytat(micgok @ 30.10.2007, 22:33:43 ) *
no i zrobiłem i taki problem wyskoczył

Kod
1054: Unknown column 'Password' in 'field list'
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /xxx/xxx/xxx/xxx/123456/Login.php on line 21
Nie ma takiego użytkownika!
Warning: Cannot modify header information - headers already sent by (output started at /xxx/xxx/xxx/xxx/123456/Login.php:19) in /xxx/xxx/xxx/xxx/123456/Login.php on line 37


Ludzie zwracajcie uwagę na błędy. Napisałeś że pokazuje Ci się powyższy błąd. Znaczy on dokładnie, że w w tabeli nie masz kolumny Password. To jest główną przyczyną pierwszych błędów. Niech ten błąd zostanie poprawiony a wtedy będzie można sprawdzać dalej.
micgok
ok...
wykasowalem ten pierwszy blad ( } )
i ten drugi z tym ze nie ma w tabeli...
ale teraz jest inny... :|

Kod
0:
Warning: Cannot modify header information - headers already sent by (output started at /xxx/xxx/xxx/xxx/123456/Login.php:2) in /xxx/xxx/xxx/xxx/123456/Login.php on line 43
pioch
Wstaw na poczatku

session_start();
micgok
no dodałem i tylko następny błąd wyskoczył ;/

oto kod po zmianach:
  1. <?php
  2. ?>
  3.  
  4. <?php
  5.  
  6.  
  7. if (isset($_POST['user'])) {
  8. $username="xxx";
  9. $password="xxx";
  10. $database="xxx";
  11. $servername="xxx.xxx.xxx.pl";
  12.  
  13.  mysql_connect($servername,$username,$password) or die(mysql_error());
  14. @mysql_select_db($database) or die("Nie odnaleziono bazy danych");
  15.  
  16.  
  17.  
  18. $login=$_POST['user']; //odczytuje login z formularza
  19. $haslo=$_POST['pass']; //odczytuje hasło
  20.  
  21. $query = "SELECT `pass` FROM `users` WHERE `user` = '$login'";
  22.  
  23. $result = mysql_query($query);
  24. echo mysql_errno() . ": " . mysql_error() . "\n";
  25.  
  26. if (mysql_num_rows($result)==0) {
  27. echo 'Nie ma takiego użytkownika!';
  28. } 
  29.  } else { 
  30. $savedpass=mysql_result($result,"Password");
  31. if ($savedpass==$haslo) {
  32. echo 'Logowanie udane!';
  33. } else {
  34. echo 'Nieprawidłowe hasło!';
  35. }
  36.  }  
  37.  
  38.  
  39.  
  40.  
  41.  
  42. header("Location: Start.php");
  43.  
  44.  
  45. ?>


Kod
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /xxx/xxx/xxx/xxx/123456/Login.php:2) in /xxx/xxx/xxx/xxx/123456/Login.php on line 8
0:
Warning: Cannot modify header information - headers already sent by (output started at /xxx/xxx/xxx/xxx/123456/Login.php:2) in /xxx/xxx/xxx/xxx/123456/Login.php on line 46


prosze o szybka pomoc
Cienki1980
Wyrzuć raportowanie błędów z MySQL'a .. czyli linijki w których masz mysql_error();

Albo ustaw je tak, że dopiero jak będzie jakiś błąd w MySQL to pojawi się komunikat błędu i zatrzyma się wykonywanie skryptu.

PS. Popraw też 32 linijkę bo chcesz odczytać pole 'Password' którego jak dobrze wiesz nie masz w tej tabeli.
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.