Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: logowanie obiektowo - problem z sesjami
Forum PHP.pl > Forum > PHP > Object-oriented programming
MitS
witam!

mam kolejny problem z obiektowością biggrin.gif
otóż mam sobie taki kod klasy:

  1. <?php
  2.  
  3.  
  4. class Auth{
  5. private $_db_server, $_db_login, $_db_pass, $_base_name, $_data, $_default_section;
  6. private $_dbh, $_user, $_pass;
  7.  
  8. public function __construct($db_server, $db_login, $db_pass, $db_name, $d_section, $user, $pass){
  9.  
  10. $this->_db_server= $db_server;
  11.  
  12. $this->_db_login = $db_login;
  13.  
  14. $this->_db_pass = $db_pass;
  15.  
  16. $this->_base_name= $db_name;
  17.  
  18. $this->_default_section= $d_section;
  19. $this->_user = $user;
  20.  
  21. $this->_pass = $pass;
  22.  
  23. }
  24.  
  25. private function connect(){
  26.  $driver = mysql_connect($this->_db_server, 'root', '')
  27. or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());
  28.  
  29. $this->_dbh = mysql_select_db('piaskownica', $driver)
  30. or die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error());
  31.  
  32. }
  33.  
  34. private function sign_in($login, $haslo){
  35. if ($login != '' && $haslo != ''){
  36. $haslo = md5($haslo);
  37. $baza = $this->connect();
  38.  
  39. if($baza){
  40. if(mysql_select_db($this->_base_name)) {
  41. $wynik = mysql_query("SELECT * FROM $mysql_tabela WHERE login='$login' and haslo='$haslo' and status=5");
  42.  
  43. if(mysql_num_rows($wynik) == 1){
  44. $dane=mysql_fetch_array($wynik);
  45.  
  46. $_SESSION["zalogowany"] = "tak";
  47. $_SESSION["login"] = $dane["login"];
  48. $_SESSION["imie"] = $dane["imie"];
  49. $_SESSION["email"] = $dane["email"];
  50.  
  51. $zalogowany = 1;
  52. } 
  53. }
  54. else{
  55. echo "Nie można połączyć się z bazą!";
  56. $zalogowany = 0;
  57. }
  58. mysql_close($baza);
  59. }
  60. }
  61. return $zalogowany;
  62. }
  63.  
  64.  
  65. public function init(){
  66. try{
  67. $this->connect();
  68. $this->sign_in($user, $pass);
  69.  
  70. if ($zalogowany) echo 'tak';
  71. else echo 'nie';
  72. }
  73. catch(Exception $e) {
  74.  
  75. //print_r($e, 1);
  76.  
  77. }
  78. }
  79.  
  80. }
  81.  
  82. ?>


mam też taki index.php w ktorym mam:

  1. <?php
  2.  
  3. $db_host = 'localhost';
  4.  
  5. $db_user = 'aaa';
  6.  
  7. $db_password = 'zzz';
  8.  
  9. $db_name = 'piaskownica';
  10.  
  11. $d_section = 'authorization';
  12.  
  13. $user  = $_POST["login"];
  14. $rpass = $_POST["haslo"];
  15.  
  16. $signin = new Auth($db_server, $db_login, $db_pass, $base_name, $d_section, $user, $pass);
  17.  
  18. $logowanie = $signin->init();
  19.  
  20. echo $logowanie;
  21.  
  22. echo '
  23. <form action="index.php" method="post">
  24. login:&nbsp;<input class="txt" type="text" name="login" /><br />
  25. hasło:&nbsp;<input class="txt" type="password" name="haslo" /><br />
  26. <input type="submit" value="zaloguj" />
  27. </form>
  28. <br />
  29. <a href="index.php?mod=auth&amp;todo=recovery">przypomnij hasło</a> &nbsp;&nbsp; | &nbsp;&nbsp;
  30. <a href="index.php?mod=auth&amp;todo=register">zarejestruj się</a>';
  31. ?>


i teraz pytanie co źle zrobilem że po uzupelnieniu poprawnie formularza i kliknieciu submit w klasie nie ustawia mi dobrze sesji i nie pokazuje jej w indexie jak np. chcem zrobić print_r($_SESSION); questionmark.gif

Bede wdzieczny za pomoc smile.gif
UDAT
Włącz wypisywanie backtrace'a wyjątków

I co robią tam wywołania funkcji die?? Powinieneś rzucić wyjątkiem a nie kill'ować skrypt
MitS
ok zrobilem co napisaleś.
Ale niestety to nic nie dalo.

jakieś pomysly questionmark.gif
Turgon
Robisz zmienną rpass, a przekazuje pass.
Dla mnie ta klasa jest bez sensu.
kriqs
i po co 2 razy connect questionmark.gif
Turgon
Kolejny błąd znalazłem. Zwracasz do zmiennej $baza efekt funkcji connect(), a ona nic nie zwraca winksmiley.jpg
MitS
:/ za duzo tych bledow porobilem ... od początku pisze biggrin.gif dzieki za odpowiedzi smile.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.