Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Klasa weryfikacji
Forum PHP.pl > Forum > Przedszkole
dyktek
Witam, napisałem klase weryfikacji użytkownika, kodzik działa prawie smile.gif problem polega na tym że gdy wywołam klase i chce odwołać się do zmiennych to one są puste a po poprawnym zalogowaniu nie powinny być puste

$_SESSION['login'] i $_SESSION['pass']

  1. <?php
  2. /***
  3. * @ weryfikacja użytkowików
  4. * @ 03 marca 2006
  5. */
  6.  
  7. class Weryfikacja {
  8.  
  9.  
  10. var $user;
  11. var $pass;
  12. var $id_usera;
  13. var $polaczenie;
  14. var $_SESSION;
  15.  
  16.  
  17. function Sprawdz_Dane(){
  18.  
  19.  if ((ereg("^([a-zA-Z0-9]+)$", $this->user)) && (ereg("^([a-zA-Z0-9]+)$", $this->pass))) {
  20.  
  21.  
  22.  if ($this->Polacz()){
  23.  
  24.  if($this->Sprawdz_Baza()){
  25.  
  26.  $this->Logi('logowanie', $this->id_usera);
  27.  
  28.  $this->Wyczysc_Bledy();
  29.  
  30.  
  31.  // $this->Zamknij_Polaczenie();
  32.  
  33.  if(isset($_SESSION)){
  34.  }
  35.  
  36.  
  37.  $this->_SESSION['login'] = $this->user;
  38.  
  39.  $this->_SESSION['pass'] = $this->pass;
  40.  
  41.  
  42.  return true;
  43.  
  44. }
  45. else{
  46.  
  47. return false;
  48. }
  49.  
  50.  
  51.  
  52.  }
  53.  else{
  54. return false;
  55.  }
  56.  
  57.  }
  58.  else{
  59.  return false;
  60. }
  61.  
  62.  
  63. }
  64.  
  65.  
  66. function Ustaw($user, $pass){
  67.  
  68. $this->user = $user;
  69. $this->pass = $pass;
  70.  
  71. }
  72.  
  73. function Polacz(){
  74.  
  75. $mysql_host = 'tralalala';
  76. $mysql_baza = 'tralalala';
  77. $mysql_user = 'tralalala';
  78. $mysql_haslo = 'tralalala';
  79. $this->polaczenie = mysql_connect($mysql_host, $mysql_user, $mysql_haslo);
  80. $baza = mysql_select_db($mysql_baza);
  81.  
  82. if (!$this->polaczenie){
  83. return false;
  84. }
  85. else
  86. {
  87. return true;
  88. }
  89.  
  90.  
  91.  
  92. }
  93.  
  94. function Sprawdz_Baza(){
  95.  
  96.  
  97. $query = mysql_query("SELECT tralalala FROM tralalala WHERE user = '$this->user' AND pass = md5('$this->pass')");
  98.  $login = mysql_fetch_array($query);
  99.  
  100.  if (mysql_num_rows($query) != 1){
  101.  
  102. return false;
  103. }
  104. else{
  105.  
  106. $this->id_usera = $login['id_usera'];
  107.  
  108. return true;
  109.  
  110. }
  111.  
  112. }
  113.  
  114.  
  115. function Logi($Wpis, $User_Id){
  116.  
  117.  
  118.  
  119.  if (!isset($User_Id)){
  120. $User_Id = 0;
  121.  }
  122.  
  123.  $Time = date("Y-m-d G:i:s");
  124.  
  125.  
  126.  
  127.  $log = mysql_query("INSERT INTO `mod_logs` (`user` , `akcja` , `data`)
  128.  VALUES ('".$User_Id."', '".$Wpis."', '".$Time."')") or die(mysql_error());
  129.  
  130.  
  131.  
  132.  }
  133.  
  134.  
  135.  function Wyczysc_Bledy(){
  136.  
  137. $ip = $_SERVER["REMOTE_ADDR"];
  138.  
  139. $zabe = mysql_query("SELECT * FROM mod_zab WHERE ip = '$ip'");
  140. $roo = mysql_fetch_array($zabe);
  141.  
  142. if ($roo['prob'] > 0){
  143. mysql_query("UPDATE mod_zab SET prob='0' WHERE ip='$ip' LIMIT 1");
  144. }
  145.  
  146.  }
  147.  
  148.  /*
  149.  
  150.  function Zamknij_Polaczenie(){
  151.  
  152.  mysql_close($this->polaczenie);
  153.  
  154.  }
  155.  
  156.  
  157.  
  158.  function Sprawdz_Sesje(){
  159.  
  160.  if (isset($_SESSION['login'])){
  161.  
  162. return true;
  163. }
  164. else{
  165.  
  166. return false;
  167. }
  168.  
  169.  
  170.  }
  171.  */
  172.  
  173. }
  174. ?>


wijet
Sprawdzasz zawartosc $_SESSION a ładujesz dane usera do zmiennych obiektu $_SESSION.

  1. <?php
  2.  
  3. $this->_SESSION['login'] = $this->user;
  4.  
  5. $this->_SESSION['pass'] = $this->pass;
  6.  
  7. ?>


Może spróbuj

  1. <?php
  2.  
  3.  
  4. $_SESSION['login'] = $this->user;
  5.  
  6. ?>
dyktek
edit-----------

w sumie już dałem rady, a mam pytanie jeszcze dotyczące sesji chodzi o to że w tej chwili kod zrobiony mam tak że jeśli istnieje $_SESSION['login'] to sprawdzanie w bazie nie następuje i user przenoszony jest od razu do części właściwej i teraz czy takie rozwiązanie jest bezpieczne ohmy.gif ?
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.