Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sesja + Mysql
Forum PHP.pl > Forum > Bazy danych > MySQL
JOHNY
Mam takie pytanie dlaczego nie chce tworzyc sesji wywala komunikat ze autoryzacja nieudana
  1. <?
  2. require &#092;"config.php\";
  3.  
  4. function auth_user($nick, $pass) {
  5.  $query = &#092;"SELECT * FROM admin WHERE konto_nick='$nick' AND konto_pass='$pass'\";
  6.  $wynik = mysql_query($query);
  7. if (!mysql_num_rows($wynik)) return 0;
  8. else {
  9. $query_data = mysql_fetch_row($wynik);
  10. return $query_data[0];
  11. }
  12.  }
  13.  
  14.  function login_form() {
  15.  
  16. ?>
  17.  
  18. <CENTER>
  19. <FORM ACTION=\"index.php\" METHOD=\"POST\">
  20. <TABLE>
  21. <TR>
  22. <TD align=\"right\" class=\"tekst-black-bold\">UŻYTKOWNIK:</TD>
  23. <TD><INPUT TYPE=\"text\" NAME=\"nick\" SIZE=\"10\" class=\"pole\"></TD>
  24. </TR>
  25. <TR>
  26. <TD align=\"right\" class=\"tekst-black-bold\">HASŁO:</TD>
  27. <TD><INPUT TYPE=\"password\" NAME=\"haslo\" SIZE=\"10\" class=\"pole\"></TD>
  28. </TR>
  29. <TR>
  30. <TD><INPUT TYPE=\"submit\" VALUE=\"\" class=\"zaloguj\"></TD>
  31. <TD><INPUT TYPE=\"reset\" VALUE=\"\" class=\"wyczysc\"></TD>
  32. </TR>
  33. </TABLE>
  34. </FORM></CENTER>
  35. <?
  36. $pass = md5(stripslashes($haslo));
  37. }
  38.  
  39. if(!isset($nick)) {
  40. login_form();
  41. }
  42. else {
  43. session_register(&#092;"nick\", \"pass\");
  44. $username = auth_user($nick, $pass);
  45. if(!$username) {
  46. session_unregister(&#092;"nick\");
  47. session_unregister(&#092;"pass\");
  48. echo &#092;"<CENTER><div class=\"tekst-black-bold\">AUTORYZACJA NIEUDANA</div></CENTER>\";
  49. }
  50. else echo &#092;"<CENTER><div class=\"tekst-black-bold\">$nick WITAMY, W PANELU ADMINISTRACYJNYM</div></CENTER>\";
  51. }
  52. ?>

halso mam hashowane md5
cim
a spróbuj taki kod:
  1. <?
  2. require &#092;"config.php\";
  3.  
  4. function auth_user($nick, $pass) {
  5.  $pass = md5(stripslashes($haslo));
  6.  $query = &#092;"SELECT * FROM admin WHERE konto_nick='$nick' AND konto_pass='$pass'\";
  7.  $wynik = mysql_query($query);
  8. if (!mysql_num_rows($wynik)) return 0;
  9. else {
  10. $query_data = mysql_fetch_row($wynik);
  11. return $query_data[0];
  12. }
  13.  }
  14.  
  15. function login_form() {
  16.  
  17. ?>
  18.  
  19. <CENTER>
  20. <FORM ACTION=\"index.php\" METHOD=\"POST\">
  21. <TABLE>
  22. <TR>
  23. <TD align=\"right\" class=\"tekst-black-bold\">UŻYTKOWNIK:</TD>
  24. <TD><INPUT TYPE=\"text\" NAME=\"nick\" SIZE=\"10\" class=\"pole\"></TD>
  25. </TR>
  26. <TR>
  27. <TD align=\"right\" class=\"tekst-black-bold\">HASŁO:</TD>
  28. <TD><INPUT TYPE=\"password\" NAME=\"haslo\" SIZE=\"10\" class=\"pole\"></TD>
  29. </TR>
  30. <TR>
  31. <TD><INPUT TYPE=\"submit\" VALUE=\"\" class=\"zaloguj\"></TD>
  32. <TD><INPUT TYPE=\"reset\" VALUE=\"\" class=\"wyczysc\"></TD>
  33. </TR>
  34. </TABLE>
  35. </FORM></CENTER>
  36. <?
  37. }
  38.  
  39. if(!isset($nick)) {
  40. login_form();
  41. }
  42. else {
  43. session_register(&#092;"nick\");
  44. session_register(&#092;"pass\")
  45. $username = auth_user($nick, $pass);
  46. if(!$username) {
  47. session_unregister(&#092;"nick\");
  48. session_unregister(&#092;"pass\");
  49. echo &#092;"<CENTER><div class=\"tekst-black-bold\">AUTORYZACJA NIEUDANA</div></CENTER>\";
  50. }
  51. else echo &#092;"<CENTER><div class=\"tekst-black-bold\">$nick WITAMY, W PANELU ADMINISTRACYJNYM</div></CENTER>\";
  52. }
  53. ?>


nie sprawdzałem tego, ale wydaje mi się że powinno działać - przeniosłem hash`owanie hasła
JOHNY
Właśnie najgorsze jest to że tak też próbowałem i nic
y3ti
Z tego co widze korzystasz ze zmiennych globalnych. Dla przykladu:

  1. <TR>
  2. <TD align="right" class="tekst-black-bold">UŻYTKOWNIK:</TD>
  3. <TD><INPUT TYPE="text" NAME="nick" SIZE="10" class="pole"></TD>
  4. </TR>


do pola nick powinienes sie odwolywac poprzez $_POST['nick'] nie poprzez $nick. Problem prawdopodobnie lezy w konfiguracji Twojego php. Najpawdopodobniej masz ustawione register_globals off, dlatego tez nie istnieje zmienna $nick.

Mozliwe, ze to nie to, ale na wszelki wypadek sprawdz, czy oczekiwane zmienne istnieja ew. sa niepuste
JOHNY
E no co ty w php.ini mam register na on smile.gif
OK znalazlem problem ale nie wiem jak go usunąć problem jest w przekazaniu zahashowanego hasla sad.gif

A więc takie pytanie jak przekazać hasło do www aby było odrazu zahaszowane md5 np jak mam w form GET to jest nick=lol&haslo=jakiestam a chce zeby odrazu bylo nick=lol&haslo=12493de34dker35324

Co trzeba porawić questionmark.gif
OK jak narazie zrobiłem tak i działa
  1. <?
  2. require &#092;"config.php\";
  3.  
  4. function auth_user($nick, $pass) {
  5. $pass = md5(stripslashes($_POST['haslo']));
  6.    $query = &#092;"SELECT * FROM admin WHERE konto_nick='$nick' AND konto_pass='$pass'\";
  7.    $wynik = mysql_query($query);
  8.    
  9. if (!mysql_num_rows($wynik)) return 0;
  10.   else {
  11.     $query_data = mysql_fetch_row($wynik);
  12.     return $query_data[0];
  13.       }
  14.    }
  15.  
  16.  function login_form() {
  17.  
  18. ?>
  19.  
  20.         <CENTER>
  21.             <FORM ACTION=\"index.php\" METHOD=\"POST\">
  22.             <TABLE width=\"184\">
  23.             <TR>
  24.                 <TD width=\"86\" align=\"right\" class=\"tekst-black-bold\">UŻYTKOWNIK:</TD>
  25.                 <TD width=\"86\"><INPUT TYPE=\"text\" NAME=\"nick\" SIZE=\"10\" class=\"pole\"></TD>
  26.             </TR>
  27.             <TR>
  28.                 <TD align=\"right\" class=\"tekst-black-bold\">HASŁO:</TD>
  29.                 <TD><INPUT TYPE=\"password\" NAME=\"haslo\" SIZE=\"10\" class=\"pole\"></TD>
  30.             </TR>
  31.             <TR>
  32.               <TD align=\"center\"><INPUT TYPE=\"submit\" VALUE=\"\" class=\"zaloguj\"></TD>
  33.                 <TD align=\"center\"><INPUT TYPE=\"reset\" VALUE=\"\" class=\"wyczysc\"></TD>
  34.             </TR>
  35.             </TABLE>
  36.             </FORM></CENTER>
  37. <?
  38. }
  39.  
  40. if(!isset($nick) AND !isset($pass)) {
  41.   login_form();
  42.   exit;
  43. }
  44. else {
  45.   session_register(&#092;"nick\", \"pass\");
  46.   $username = auth_user($nick, $pass);
  47.   if(!$username) {
  48.     session_unregister(&#092;"nick\");
  49.     session_unregister(&#092;"pass\");
  50.     echo &#092;"<CENTER><div class=\"tekst-black-bold\">AUTORYZACJA NIEUDANA</div></CENTER>\";
  51.     exit;
  52.   }
  53.   else echo &#092;"<CENTER><div class=\"tekst-black-bold\">$nick WITAMY, W PANELU ADMINISTRACYJNYM</div></CENTER>\";
  54. }
  55. ?>


Wywołanie buttonów z buttony.php
  1. <?
  2.  if (isset($_SESSION['nick']))
  3.  {
  4.  if ($_SESSION['nick']==$_POST['nick'])
  5.  {
  6.  echo &#092;"\";
  7.  }
  8.  }
  9. ?>
cim
spróbuj to:

  1. <?
  2. require &#092;"config.php\";
  3.  
  4. function auth_user($nick, $pass) {
  5.  $pass = md5(stripslashes($pass));
  6.  $query = &#092;"SELECT * FROM admin WHERE konto_nick='$nick' AND konto_pass='$pass'\";
  7.  $wynik = mysql_query($query);
  8. if (mysql_num_rows($wynik) == 0){ return 0; }
  9. else {
  10. $query_data = mysql_fetch_row($wynik);
  11. return $query_data[0];
  12. }
  13.  }
  14.  
  15. function login_form() {
  16.  
  17. ?>
  18.  
  19. <CENTER>
  20. <FORM ACTION=\"plik.php\" METHOD=\"POST\">
  21. <TABLE>
  22. <TR>
  23. <TD align=\"right\" class=\"tekst-black-bold\">UŻYTKOWNIK:</TD>
  24. <TD><INPUT TYPE=\"text\" NAME=\"nick\" SIZE=\"10\" class=\"pole\"></TD>
  25. </TR>
  26. <TR>
  27. <TD align=\"right\" class=\"tekst-black-bold\">HASŁO:</TD>
  28. <TD><INPUT TYPE=\"password\" NAME=\"pass\" SIZE=\"10\" class=\"pole\"></TD>
  29. </TR>
  30. <TR>
  31. <TD><INPUT TYPE=\"submit\" VALUE=\"zaloguj\" class=\"zaloguj\"></TD>
  32. <TD><INPUT TYPE=\"reset\" VALUE=\"wyczyść\" class=\"wyczysc\"></TD>
  33. </TR>
  34. </TABLE>
  35. </FORM></CENTER>
  36. <?
  37. }
  38.  
  39. if(empty($nick) && empty($pass)) {
  40. login_form();
  41. }else{
  42. session_register(&#092;"nick\");
  43. session_register(&#092;"pass\");
  44. $username = auth_user($nick, $pass);
  45. if(!$username) {
  46. session_unregister(&#092;"nick\");
  47. session_unregister(&#092;"pass\");
  48. echo &#092;"<CENTER><div class=\"tekst-black-bold\">AUTORYZACJA NIEUDANA</div></CENTER>\";
  49. }else{
  50.  echo &#092;"<CENTER><div class=\"tekst-black-bold\">$nick WITAMY, W PANELU ADMINISTRACYJNYM</div></CENTER>\";
  51. }
  52.  
  53. }
  54. ?>
JOHNY
OK poprzedni mój post i kod działa u mnie mam nadzieję że się komuś przyda i będzie mógł skorzystać bo dużo jest topików a żadnej konkretnej odpowiedzi

Dzięki za zainteresowanie

edit

Jeszcze takie pytanie jak przekazać wszystkie zmienne do sessji jakie są w tabeli admin questionmark.gif

Dlaczego mi nie chce działać wywoływanie poszczególnych stron w formie
index.php?pg=jaksstrona.php
na danej stronie mam tylko session_start(); i nie includuje tej strony tylko wywala autoryzacja nieudana a jak usune isset($_POST['nick']) to otwiera mi strone ale nie mam tam buttonow bo wszystko jest includowane w index.php
  1. <?php
  2.  
  3. if (isset($_POST['nick']) AND isset($_GET['pg'])) {
  4. $strona = $_GET['pg'] . '.php';
  5. include($strona);
  6. ?>
y3ti
Tablice do sesji jak przekazac? W sesji mozna rejestrowac nie tylko zmienne skalarne ale rownie tablice. Ew. gdy korzysta sie cookies mozna uzyc serialize()

Zamianst include, proponuje uzywac require(), lepsza obsluga bledow.

Z tym include($strona), to trzeba strasznie uwazac, poniewaz to stapanie po kruchym lodzie. Jest duze prawdopodobienstwo, ze ktos moze wykonac atak na nasza aplikacje.
JOHNY
pliki includowane zabezpieczyłem sobie tak

  1. <?php
  2.  
  3. if (isset($_SESSION['nick'])==$_SESSION['nick'] AND isset($_SESSION['pass'])==$_SESSION['pass'] AND $_SESSION['cmr3'] AND $_SESSION['upr_cmr3']==1) {
  4. return;
  5. } 
  6. elseif (!isset($_SESSION['nick']) AND !isset($_SESSION['pass']) AND $_SESSION['upr_cmr3']==0) { 
  7. echo &#092;"<p align=center class=naglowek>Nie jesteś zalogowany bądź nie masz uprawnień to tej strony</p>\"; 
  8. exit();
  9. }
  10.  
  11. ?>


$_SESSION['cmr3'] przekazana zmienna w pg= bez tego w pliku strona nawet sie nie wyświetli


Ale teraz mam inny problem jak stworzyć sprawdzanie sessji jw ale dla popup-a questionmark.gif
jak w linku przekazuje np:
  1. <?php
  2.  
  3. <a href=javascript:edytujwpisk('cmr3_editk.php?op=edytuj_k&id=\".$row['id'].\"',200,100)>
  4. ?>


Jak zrobić zeby w popup zciągnęło dane bo nic mi nie ściąga
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.