Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Problem z systemem logowania
Forum PHP.pl > Forum > Przedszkole
kamilkomo
Witam

Mam problem z systemem logowania, po wpisaniu poprawnych danych znajdujacych sie w bazie login i haslo wyskakuje komunikat "bledny login lub haslo" chociaz dane sa poprawne . Moze ktos znajdzie blad w moim kodzie

  1.  
  2. define('INCLUDE_CHECK',true);
  3. error_reporting(E_ALL ^ E_NOTICE);
  4. require 'connect.php';
  5. require 'functions.php';
  6.  
  7.  
  8. session_name('tzLogin');
  9.  
  10.  
  11.  
  12.  
  13. if($_SESSION['id'] && !isset($_COOKIE['tzRemember']) && !$_SESSION['rememberMe'])
  14. {
  15.  
  16. $_SESSION = array();
  17. }
  18.  
  19.  
  20. if(isset($_GET['logoff']))
  21. {
  22. $_SESSION = array();
  23.  
  24. header("Location: index.php");
  25. }
  26.  
  27. if($_POST['submit']=='Loguj')
  28. {
  29.  
  30. $err = array();
  31.  
  32. if(!$_POST['username'] || !$_POST['password'])
  33. $err[] = 'Wszystkie pola muszą być wypełnione!';
  34.  
  35. if(!count($err))
  36. {
  37. $_POST['username'] = mysql_real_escape_string($_POST['username']);
  38. $_POST['password'] = mysql_real_escape_string($_POST['password']);
  39. $_POST['rememberMe'] = (int)$_POST['rememberMe'];
  40.  
  41.  
  42. //$row = mysql_fetch_assoc(mysql_query("SELECT id,usr FROM tz_members WHERE 'usr'= '".$login."' AND pass='".md5($_POST['password'])."'"));
  43. $row = mysql_query("SELECT `id`,`usr` FROM `tz_members` WHERE `usr`='".$_POST['username']."' LIMIT 1") or die (mysql_error());
  44.  
  45. if($row['usr'])
  46. {
  47.  
  48. $_SESSION['usr']=$row['usr'];
  49. $_SESSION['id'] = $row['id'];
  50. $_SESSION['rememberMe'] = $_POST['rememberMe'];
  51.  
  52. setcookie('tzRemember',$_POST['rememberMe']);
  53. }
  54. else $err[]='Błędny login lub hasło!';
  55. }
  56.  
  57. if($err)
  58. $_SESSION['msg']['login-err'] = implode('<br />',$err);
  59.  
  60. header("Location: index.php");
  61. }
  62. else if($_POST['submit']=='Rejestruj')
  63. {
  64.  
  65. $err = array();
  66.  
  67. if(strlen($_POST['username'])<4 || strlen($_POST['username'])>32)
  68. {
  69. $err[]='Login musi się składać z min 3 znaków, i nie możę przekroczyć 32!';
  70. }
  71.  
  72. if(preg_match('/[^a-z0-9\-\_\.]+/i',$_POST['username']))
  73. {
  74. $err[]='Wykryto niedozwolone znaki!';
  75. }
  76.  
  77. if(!checkEmail($_POST['email']))
  78. {
  79. $err[]='Wpisz e-mail poprawnie!';
  80. }
  81.  
  82. if(!count($err))
  83. {
  84. $pass = substr(md5($_SERVER['REMOTE_ADDR'].microtime().rand(1,100000)),0,6);
  85.  
  86. $_POST['email'] = mysql_real_escape_string($_POST['email']);
  87. $_POST['username'] = mysql_real_escape_string($_POST['username']);
  88.  
  89. mysql_query("INSERT INTO tz_members (usr,pass,email,regIP,dt)
  90. VALUES(
  91.  
  92. '".$_POST['username']."',
  93. '".md5($pass)."',
  94. '".$_POST['email']."',
  95. '".$_SERVER['REMOTE_ADDR']."',
  96. NOW()
  97.  
  98. )");
  99.  
  100. if(mysql_affected_rows($link)==1)
  101. {
  102. $to = $_POST['email'];
  103. $subject = 'System rejestracji serwisu ecoBooks.com.pl';
  104. $message = 'Your password is: '.$pass;
  105. $headers = 'From: rejestracja@********';
  106.  
  107. mail($to, $subject, $message, $headers);
  108.  
  109. $_SESSION['msg']['reg-success']='Właśnie wysłaliśmy do Ciebie maila z nowym hasłem do systemu!';
  110. }
  111. else $err[]='Ta nazwa urzytkownika jest zajęta!';
  112. }
  113.  
  114. if(count($err))
  115. {
  116. $_SESSION['msg']['reg-err'] = implode('<br />',$err);
  117. }
  118.  
  119. header("Location: index.php");
  120. }
  121.  
  122. $script = '';
  123.  
  124. if($_SESSION['msg'])
  125. {
  126.  
  127. $script = '
  128. <script type="text/javascript">
  129.  
  130. $(function(){
  131.  
  132. $("div#panel").show();
  133. $("#toggle a").toggle();
  134. });
  135.  
  136. </script>';
  137.  
  138. }
  139. ?>
  140.  


system rejestracji dziala poprawnie chodzi mi tylko o logowanie
bede wdzieczny za wszelkie uwagi
pozdrawiam
nospor
Czy tak ciężko napisać:
"Błąd polega na tym, że ...."
?
kamilkomo
faktycznie sorki posmiech smile.gif
nospor
$row = mysql_query()
if($row['usr'])
mysql_query nie zwraca rekordu. Wypadałoby zajrzec do manuala i doczytać co zwraca rekord
Rysh
  1. $row = mysql_query("SELECT `id`,`usr` FROM `tz_members` WHERE `usr`='".$_POST['username']."' LIMIT 1") or die (mysql_error());
  2.  
  3. if($row['usr'])
  4. {
  5.  
  6. $_SESSION['usr']=$row['usr'];
  7. $_SESSION['id'] = $row['id'];
  8. $_SESSION['rememberMe'] = $_POST['rememberMe'];
  9.  
  10. setcookie('tzRemember',$_POST['rememberMe']);
  11. }
  12. else $err[]='Błędny login lub hasło!';
  13. }

A skąd skrypt ma wiedzieć co to jest $row['usr']? Przecież mysql_query wykonuje tylko zapytanie.
kamilkomo
przerobilem na

  1.  
  2. $row = mysql_query("SELECT `id`,`usr` FROM `tz_members` WHERE `usr`='".$_POST['username']."' LIMIT 1") or die (mysql_error());
  3.  
  4. if(mysql_num_rows($row))
  5. {
  6.  
  7. $_SESSION['usr']=$row['usr'];
  8. $_SESSION['id'] = $row['id'];
  9. $_SESSION['rememberMe'] = $_POST['rememberMe'];
  10.  
  11. setcookie('tzRemember',$_POST['rememberMe']);
  12. }
  13. else $err[]='Błędny login lub hasło!';
  14. }


i chyba juz jest ok, nie wyskakuje komunikat o blednym loginie i hasle, ale nadal mam Witaj Gosciu a powinno byc Witaj [nazwa usr]
Rysh
Nie co powinno być, tylko czego brakuje. I tak brakuje mysql_fetch_assoc.
Niktoś
Nie wiem ,czemu kolejny forumowicz dodaje apostrofy do nazw tabel i kolumn.Normalnie fenomenalne zjawisko.
nospor
@Niktos "fenomenalny" to ty masz albo wzrok albo wiedzę.... gdzie ty tu widzisz apostrofy? Jak nie odróżniasz ` od ' to się nie wypowiadaj albo dokształć.
Niktoś
Cytat
@Niktos "fenomenalny" to ty masz albo wzrok albo wiedzę.... gdzie ty tu widzisz apostrofy? Jak nie odróżniasz ` od ' to się nie wypowiadaj albo dokształć.

Nie muszę bo za równo to ,czy tamto w tym przypadku jest zbędne.
nospor
Oj, chyba jednak musisz....

Bo to ` jest poprawne. I tak, akurat w tym dokładnie przypadku nie musi występować. Co nie oznacz, że jest zbędne. Może ale nie musi
Zaś to ' (notabene to jest właśnie apostrof) w tym przypadku by spowodowało błąd. I tak, to akurat jest zbędne.
Więc nie mąć ludziom w głowach i nie wyskakuj z jakimś "fenomenalnym zjawiskiem" bo jest to całkiem normalna praktyka.
Rysh
Cytat(Niktoś @ 14.03.2012, 14:34:29 ) *
Nie wiem ,czemu kolejny forumowicz dodaje apostrofy do nazw tabel i kolumn.Normalnie fenomenalne zjawisko.

Ja też swego czasu używałem `` w zapytaniach. Z czasem czytając forum zrozumiałem, że są zbędne. Dlaczego je stawiałem? Bo phpmyadmin zawsze ich używa, jak ktoś ma małą wiedzę w MySQL to często tam tworzy zapytania, a dopiero potem przenosi je do php. Taki mały off.
nospor
Nie, nie są zbędne.... zrozumcie to wkońcu....
A wiecie czemu nie są zbędne? To weźcie zróbcie takie zapytanie z tabeli update i kolumnie też o nazwie update.
  1. SELECT UPDATE FROM UPDATE

Życzę powodzenia bez waszych zbędnych "apostrofów"...
Niktoś
SELECT [UPDATE] FROM [UPDATE] -można tak-i wydaje mi się to bardziej poprawnym sposobem.
Znajdź mi proszę jeden przykład na:
http://dev.mysql.com/doc/refman/5.0/en/select.html gdzie używają ``.
nospor
Patrz mój poprzedni post.... Niktoś, dla takiego HAKERA jak ty to są podstawy a pytasz się o to jak małe dziecko...

Cytat
SELECT [UPDATE] FROM [UPDATE] -można tak-i wydaje mi się to bardziej poprawnym sposobem.
Proszę Cię, nie pogrążaj się już....

Od czasu do czasu dochodzi między nami do sporów na poziomie MYSQL a tylko i wyłącznie dlatego, że tobie sie wydaje, że znasz mysql..... nie, nie znasz. No, może podstawy. Przyjmij to wkońcu do wiadomości.
jackraymund
Cytat(Niktoś @ 14.03.2012, 14:34:29 ) *
Nie wiem ,czemu kolejny forumowicz dodaje apostrofy do nazw tabel i kolumn.Normalnie fenomenalne zjawisko.

pomyśl, niektórzy jak ja niepotrzebują znać mysql, bo wystarcza phpmyadmin, i on je generuje można zobaczyć że ryhs użył tego patrząc bynajmiej na Limit 1(zazwyczaj phpmyadmin zazwyczaj to dodaje)
http://screenshooter.net/2977083/kvfwubc
btw. offtop
Niktoś
Ech ja się nie udzielam już w MySQL, bo ja na MSSQL działam.
I czytam:
Cytat
it uses the same syntax as MySQL, column names should go in backquotes. SQL Server uses square brackets.

I kolejna różnica ,którą zauważyłem,więc nie będę pomagał nikomu z MYSQL jedynie w MSSQL.

Cytat
Od czasu do czasu dochodzi między nami do sporów na poziomie MYSQL

PS.Te spory,nie są głupie-znowu się czegoś nauczyłem.
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.