Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: logowanie problem z autoryzacja użytkowników
Forum PHP.pl > Forum > PHP
nikestylex7
Witam napisałem dosyć niedawno system logowania z autoryzacja użytkowników dzisiaj mam problem gdyż znalazłem skrypt i dość różni się od mojego możecie mi powiedzieć co po kolei on robi ?
  1. <?PHP
  2. include "baza.php";
  3. function checkPass($user, $pass){
  4. $query = "SELECT COUNT(*) FROM user WHERE user='$user' ";
  5. $query .= "AND haslo='$pass'";
  6.  
  7. if(!$result = mysql_query($query)){
  8. return 1;
  9. }
  10.  
  11. if(!$row = @mysql_fetch_row($result)){
  12. return 1;
  13. }
  14. else{
  15. if($row[0] <> 1){
  16. return 2;
  17. }
  18. else{
  19. return 0;
  20. }
  21. }
  22. }
  23.  
  24. if(isSet($_SESSION['asd'])){
  25. header("Location: index.php");
  26. }
  27. else if(!isSet($_POST["pass"]) || !isSet($_POST["login"])){
  28. $_SESSION['komunikat'] = "Wpisz login i hasło:";
  29. include('index.php');
  30. }
  31. else{
  32. $nick = mysql_real_escape_string(htmlspecialchars(mb_strtolower($_POST["login"], "utf-8")));
  33. $haslo = md5(mysql_real_escape_string(htmlspecialchars($_POST['pass'])));
  34. $val = checkPass($nick, $haslo);
  35. if($val == 0){
  36. $_SESSION['asd'] = $nick;
  37. unSet($_SESSION['komunikat']);
  38. header("Location: index.php");
  39. }
  40. else if($val == 1){
  41. $_SESSION['komunikat'] = "Błąd serwera.";
  42. include('index.php');
  43. }
  44. else if($val == 2){
  45. $_SESSION['komunikat'] = "Nieprawidłowy login lub hasło.";
  46. include('index.php');
  47. }
  48. else{
  49. $_SESSION['komunikat'] = "Błąd!";
  50. include('index.php');
  51. }
  52. }
  53. ?>
adbacz
A czy my jesteśmy od tego? Możemy pomóc jeśli nie możesz sobie poradzić z jakimś problemem ale nie będziemy za Ciebie czytać i analizować kodu. Sam powinieneś to zrobić na własną rękę.
nikestylex7

Powalczyłem trochę i teraz tak jak użytkownik nie jest aktywowany wszystko jest ok[sprawdza zawartość pola aktywacja jeśli jest różne od 1 to pokazuje że konto nie zostało aktywowane] ale jeśli już aktywujemy konto to jak chce się zalogować to jest błąd nieprawidłowy login lub hasło. Gdzie jest błąd?

  1. <?PHP
  2. include "baza.php";
  3. function checkPass($user, $pass, $aktywacja1){
  4. $query = "SELECT COUNT(*) FROM user WHERE user='$user' ";
  5. $query .= "AND haslo='$pass'";
  6. $query .= "AND aktywacja='$aktywacja1'";
  7.  
  8. if(!$result = mysql_query($query)){
  9. return 1;
  10. }
  11.  
  12. if(!$row = @mysql_fetch_row($result)){
  13. return 1;
  14. }
  15. else{
  16. if($row[0] <> 1){
  17. return 2;
  18. }
  19. else if($row[2] != 1){
  20. return 3;
  21. }
  22. else{
  23. return 0;
  24. }
  25. }
  26. }
  27.  
  28. if(isSet($_SESSION['mohergame'])){
  29. header("Location: index.php");
  30. }
  31. else if(!isSet($_POST["pass"]) || !isSet($_POST["login"])){
  32. $_SESSION['komunikat'] = "Wpisz login i hasło:";
  33. include('index.php');
  34. }
  35. else{
  36. $nick = mysql_real_escape_string(htmlspecialchars(mb_strtolower($_POST["login"], "utf-8")));
  37. $haslo = md5(mysql_real_escape_string(htmlspecialchars($_POST['pass'])));
  38. $aktywacja1 = $_POST["aktywacja"];
  39. $val = checkPass($nick, $haslo, $aktywacja1);
  40. if($val == 0){
  41. $_SESSION['mohergame'] = $nick;
  42. unSet($_SESSION['komunikat']);
  43. header("Location: index.php");
  44. }
  45. else if($val == 1){
  46. $_SESSION['komunikat'] = "Błąd serwera.";
  47. include('index.php');
  48. }
  49. else if($val == 2){
  50. $_SESSION['komunikat'] = "Nieprawidłowy login lub hasło.";
  51. include('index.php');
  52. }
  53. else if($val == 3){
  54. $_SESSION['komunikat'] = "Nie aktywowałeś konta. Możesz to zrobić za pomocą e-maila, którego Ci wysłaliśmy na podany przez Ciebie e-mail podczas rejestracji. Możesz także wysłać go jeszcze raz przechodząc <a href='kod_aktywacyjny.php'>tutaj</a>.";
  55. include('index.php');
  56. }
  57. else{
  58. $_SESSION['komunikat'] = "Błąd!";
  59. include('index.php');
  60. }
  61. }
  62. ?>
ciekawskiii
print_r($_POST);
raz uzywasz polskich nazw a raz angielskich. Zmienna $pass i $haslo to nie to samo tak jak i $nick i $user
nikestylex7
<?PHP
include "baza.php";
function checkPass($user, $haslo, $aktywacja1){
$query = "SELECT user, haslo, aktywacja FROM user WHERE user='$user' AND haslo='$haslo' LIMIT 1";

if(!$result = mysql_query($query)){
@mysql_close();
return 1;
}elseif(!$row = @mysql_fetch_row($result)){
@mysql_close();
return 1;
}
else{
if($row[0] <> 1){
@mysql_close();
return 2;
}
else if($row[2] <> 1){
@mysql_close();
return 3;
}
else{
@mysql_close();
return 0;
}
}
}

session_start();
if(isSet($_SESSION['mohergame'])){
header("Location: index.php");
}
else if(!isSet($_POST["haslo"]) || !isSet($_POST["user"])){
$_SESSION['komunikat'] = "Wpisz login i hasło:";
include('index.php');
}
else{
$nick = mysql_real_escape_string(htmlspecialchars(mb_strtolower($_POST["user"], "utf-8")));
$haslo = md5(mysql_real_escape_string(htmlspecialchars($_POST['haslo'])));
$aktywacja1 = $_POST["aktywacja"];
$val = checkPass($nick, $haslo, $aktywacja1);
if($val == 0){
$_SESSION['mohergame'] = $nick;
unSet($_SESSION['komunikat']);
header("Location: index.php");
}
else if($val == 1){
$_SESSION['komunikat'] = "Błąd serwera.";
include('index.php');
}
else if($val == 2){
$_SESSION['komunikat'] = "Nieprawidłowy login lub hasło.";
include('index.php');
}
else if($val == 3){
$_SESSION['komunikat'] = "Nie aktywowałeś konta. Możesz to zrobić za pomocą e-maila, którego Ci wysłaliśmy na podany przez Ciebie e-mail podczas rejestracji. Możesz także wysłać go jeszcze raz przechodząc <a href='kod_aktywacyjny.php'>tutaj</a>.";
include('index.php');
}
else{
$_SESSION['komunikat'] = "Błąd!";
include('index.php');
}
}
?>

Poprawiłem trochę kod i dalej nic wyskakuje cały czas wpisz login i haslo nie patrząc czy dobre czy złe
ciekawskiii
wywal wszystkie małpy @. Wlacz raportowanie bledow. poczytaj przypiete tematy. To nie boli
nikestylex7
cholera no robię wszystko dobrze usunąłem małpy włączyłem raportowanie i nic -.-
ciekawskiii
nie robisz bo nadal widze $user i $nick i gdybyś włączył wszystkie błędy to byś widział w czym jest problem. Poświęć na to więcej niż dwie minuty
nikestylex7
Jak nie zmieniłem wszystko dodałem
  1. <?php
  2. ini_set('display_errors', 1);
  3. ?>


i nic żadnego błedu mi nie pokazuje

Mógłby mnie ktoś nakierować potrzebuje w pliku zaloguj.php w którym mam opcje sprawdzania pasów, wstawić do tego sprawdzanie czy użytkownik ma aktywowane konto poprzez email. pass i login to wartości wprowadzane podczas logowania.Kiedy osoba kliknie w link zmienia jej się w kolumnie aktywacja z 0 na 1 i teraz musi to sprawdzać logowanie lecz pogubiłem się szukam analizuje, szukam w książce i nic nie wiem co robię źle. Próbowałem na różne sposoby bezskutecznie. oto kod

  1. <?php
  2. include "baza.php";
  3. function checkPass($login, $pass, $aktywacja){
  4. $query = "SELECT user,haslo , aktywacja FROM user WHERE user='$login'";
  5. $query .= "AND haslo='$pass'";
  6. $query .= "AND aktywacja='$aktywacja'";
  7.  
  8. if(!$result = mysql_query($query)){
  9. return 1;
  10. }
  11.  
  12. if(!$row = @mysql_fetch_row($result)){
  13. return 1;
  14. }
  15. else{
  16. if($row[0] <> 1){
  17. return 2;
  18. }else if($row[2] <>1) {
  19. return 3;
  20. }
  21. else{
  22. return 0;
  23. }
  24. }
  25. }
  26.  
  27.  
  28. if(isSet($_SESSION['mohergame'])){
  29. header("Location: index.php");
  30.  
  31. }
  32. else if(!isSet($_POST["pass"]) || !isSet($_POST["login"])){
  33. $_SESSION['komunikat'] = "Wpisz login i hasło:";
  34. include('index.php');
  35. }
  36. else{
  37. $nick = mysql_real_escape_string(htmlspecialchars(mb_strtolower($_POST["login"], "utf-8")));
  38. $haslo = md5(mysql_real_escape_string(htmlspecialchars($_POST['pass'])));
  39. $aktywacja = "SELECT aktywacja FROM user WHERE user='$_POST[login]' AND haslo='$_POST[pass]'";
  40. $val = checkPass($nick, $haslo,$aktywacja);
  41. if($val == 0){
  42. $_SESSION['mohergame'] = $nick;
  43. unSet($_SESSION['komunikat']);
  44. header("Location: index.php");
  45. }else if($val == 2){
  46. $_SESSION['komunikat'] = "Nieprawidłowy login lub hasło.";
  47. include('index.php');
  48. }else if($val == 3){
  49. $_SESSION['komunikat'] = "Nie aktywowałeś konta.";
  50. include('index.php');
  51. }
  52. else if($val == 1){
  53. $_SESSION['komunikat'] = "Błąd serwera.";
  54. include('index.php');
  55. }else{
  56. $_SESSION['komunikat'] = "Błąd!";
  57. include('index.php');
  58. }
  59. }
  60.  
  61. ?>
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.