Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] sesje trace nadzieje :[, na localhoscie dziala bez zadnych problemow :/
piotrekkr
post
Post #1





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

Ostrzeżenie: (0%)
-----


Witam mam problem ktory jak dal mnie zadziwiajacy jest i wogole kosmiczny. Napisałem taka klase:
  1. <?php
  2. require_once('class.DB.php');
  3. require_once('class.validator.php');
  4. require_once('class.config.php');
  5.  
  6. class login{
  7.  
  8. protected $login = '';
  9. protected $password = '';
  10. protected $old_password = '';
  11. protected $new_password1 = '';
  12. protected $new_password2 = '';
  13.  
  14. protected static $instance;
  15.  
  16. protected function __construct(){
  17. $config = config::singleton();
  18. session_set_cookie_params($config->sessionLifetime);
  19. session_cache_limiter("private_no_expire");
  20. if(!empty($_POST['login'])) $this->login = $_POST['login'];
  21. if(!empty($_POST['password'])) $this->password = mysql_escape_string($_POST['password']);
  22. if(!empty($_POST['old_password'])) $this->old_password = mysql_escape_string($_POST['old_password']);
  23. if(!empty($_POST['new_password1'])) $this->new_password1 = mysql_escape_string($_POST['new_password1']);
  24. if(!empty($_POST['new_password2'])) $this->new_password2 = mysql_escape_string($_POST['new_password2']);
  25. }else{
  26. if(!empty($_POST['password'])) $this->password = $_POST['password'];
  27. if(!empty($_POST['old_password'])) $this->old_password = $_POST['old_password'];
  28. if(!empty($_POST['new_password1'])) $this->new_password1 = $_POST['new_password1'];
  29. if(!empty($_POST['new_password2'])) $this->new_password2 = $_POST['new_password2'];
  30. };
  31. }
  32.  
  33. public static function singleton(){
  34. if (!isset(self::$instance)) {
  35. $c = __CLASS__;
  36. self::$instance = new $c();
  37. }
  38. return self::$instance;
  39. }
  40.  
  41. public function checkLoginData(){
  42. $validator = validator::singleton();
  43. if(!$validator->validatePassword($this->password)){
  44. return false;
  45. }else if(!$validator->validateLogin($this->login)){
  46. return false;
  47. }else{
  48. $db = DB::singleton();
  49. $pass = md5(stripslashes($this->password));
  50. if(strtolower($this->login) == 'admin'){
  51. $query = "SELECT COUNT(*) AS COUNT FROM `ADMIN` WHERE `PASSWORD` = '$pass'";
  52. }else if($validator->validatePESEL($this->login)){
  53. $query = "SELECT COUNT(*) AS COUNT FROM `STUDENTS` WHERE `PESEL` = '$this->login' AND `PASSWORD` = '$pass'";
  54. }else{
  55. $query = "SELECT COUNT(*) AS COUNT FROM `TEACHERS` WHERE LOWER(`NAME`) = LOWER('$this->login') ";
  56. $query .= "AND `PASSWORD` = '$pass'";
  57. };
  58. $db->send_query($query);
  59. $error = $db->isQueryError();
  60. if($error === false){
  61. $row = $db->getRow();
  62. if($row['COUNT'] == 1){
  63. return true;
  64. }else{
  65. return false;
  66. };
  67. }else{
  68. return $error;
  69. };
  70. };
  71. }
  72.  
  73. public function login(){
  74. $data = $this->checkLoginData();
  75. $validator = validator::singleton();
  76. if($data === true){
  77. if(strtolower($this->login) == 'admin'){
  78. $_SESSION['logged'] = true;
  79. $_SESSION['user_login'] = 'Admin';
  80. header('Location: index.php?p=0');
  81. }else if($validator->validatePESEL($this->login)){
  82. $_SESSION['logged'] = true;
  83. $_SESSION['user_login'] = $this->login;
  84. header('Location: index.php?p=0');
  85. }else{
  86. $db = DB::singleton();
  87. $query = "SELECT * FROM `TEACHERS` WHERE LOWER(`NAME`) = LOWER('$this->login')";
  88. $db->send_query($query);
  89. $row = $db->getRow();
  90. if($db->isQueryError() === false){
  91. $_SESSION['logged'] = true;
  92. $_SESSION['user_login'] = $row['NAME'];
  93. $_SESSION['SCHOOL_ID'] = $row['SCHOOL_ID'];
  94. $_SESSION['CLASS_ID'] = $row['CLASS_ID'];
  95. $_SESSION['TEACHER_ID'] = $row['TEACHER_ID'];
  96. header('Location: index.php?p=0');
  97. }else{
  98. return $db->isQueryError().$this->showLoginForm();
  99. };
  100. };
  101. }else if($data === false){
  102. return '<div class="error">Niepoprawne dane. Spróbuj ponownie.</div>'.$this->showLoginForm();
  103. }else{
  104. return $data.$this->showLoginForm();
  105. };
  106. }
  107.  
  108. public function isStudent(){
  109. $validator = validator::singleton();
  110. if(!empty($_SESSION['logged']) && $validator->validatePESEL($_SESSION['user_login'])) return true; else return false;
  111. }
  112.  
  113. public function logout(){
  114. $_SESSION = array();
  115. }
  116.  
  117. public function getLogin(){
  118. return $_SESSION['user_login'];
  119. }
  120.  
  121. public function getTeacherId(){
  122. return $_SESSION['TEACHER_ID'];
  123. }
  124.  
  125. public function isAdmin(){
  126. if(!empty($_SESSION['user_login']) && $_SESSION['user_login'] == 'Admin' && $_SESSION['logged'] === true) return true; else return false;
  127. }
  128.  
  129. public function isTeacher(){
  130. if(!empty($_SESSION['user_login']) && $_SESSION['logged'] == true && !empty($_SESSION['SCHOOL_ID']) && !empty($_SESSION['CLASS_ID']) 
  131. && !empty($_SESSION['TEACHER_ID'])){
  132. return true;
  133. }else{
  134. return false;
  135. };
  136. }
  137.  
  138. public function showAccount(){
  139. if($this->isTeacher()){
  140. $teacher_id = $this->getTeacherId();
  141. $query = "SELECT `SCHOOL_NAME`, `CLASS_NAME` FROM `SCHOOLS`,`CLASSES` WHERE `SCHOOLS`.`SCHOOL_ID` = 
  142. ".$_SESSION['SCHOOL_ID']." AND CLASSES.CLASS_ID = ".$_SESSION['CLASS_ID'];
  143. $db = DB::singleton();
  144. $db->send_query($query);
  145. $error = $db->isQueryError();
  146. if($error === false){
  147. $row = $db->getRow();
  148. return '<div class="center">
  149. <table style="margin:10px auto;">
  150. <tr><td><div class="right">Szkoła: </div></td><td><div class="left">'.$row['SCHOOL_NAME'].'</div></td></tr>
  151. <tr><td><div class="right">Wychowawca(czyni) klasy: </div></td><td><div class="left">'.$row['CLASS_NAME'].'</div></td></tr>
  152. </table>
  153. <br /><br />
  154. <a href="index.php?p=1&amp;action=change_pass_form">Zmiana hasła</a>
  155. </div>';
  156. }else{
  157. return $error;
  158. };
  159. }else if($this->isAdmin()){
  160. return '<br /><br /><div class="center"><a href="index.php?p=1&amp;action=change_pass_form">Zmiana hasła</a></div>';
  161. }else{
  162. return '<div class="error">Nie jesteś zalogowany(a) jako nauczyciel</div>';
  163. };
  164. }
  165.  
  166. public function showLoginForm(){
  167. return '
  168. <div class="center">
  169. <form action="index.php?p=1&amp;action=login" method="post">
  170. <table style="margin:50px auto;">
  171. <tr><td class="right">Login: </td><td><input type="text" maxlength="30" name="login" class="login" /></td></tr>
  172. <tr><td class="right">Hasło: </td><td><input type="password" maxlength="30" name="password" class="login" /></td></tr>
  173. <tr><td colspan="2" class="right"><input type="submit" value="Zalogój" class="submit" /></td></tr>
  174. </table>
  175. </form>
  176. </div>';
  177. }
  178.  
  179.  
  180. };
  181. ?>

uzywam jej i jak odswierzam strone to raz funkcja isAdmin() pokazuje ze admin a raz ze nie :/ wogole nie wiem jakim cudem tak moze pokazywac hosting jest na internetdsl.pl ja nie wiem podobnie mam tylko z inna strona na boo.pl trace powoli nadzieje. Na localhoscie zadnych bledow nic wszystko dzial jak powinno na hostingu nie dziala jak powinno i tez zadnych bledow. Zaraz szlak mnie trafi. Prosze o pomoc axesmiley.png
Go to the top of the page
+Quote Post
php programmer
post
Post #2





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

Ostrzeżenie: (0%)
-----


Niektóre serwery, szczególnie te darmowe,
mają wyłączoną obsługe sesji,
napisz sobie jakis mini skrypt żeby sprawdzić
Go to the top of the page
+Quote Post
piotrekkr
post
Post #3





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

Ostrzeżenie: (0%)
-----


no to nie sa darmowe serwery internetdsl to serwer dsla telekomuny a boo.pl tez jest platny ale oni cos ostatnio kombinuja z tym php :/ zupelnie nie wiem co jest zle bo na localhoscie wszystko dziala a jak wezme na serwer to i sie zalogoje i pozniej zaczynam odswierzac to raz jestem zalogowany raz nie wogole kosmos jakis jak dla mnie aha dodam ze na serwach jest php5.

// edit
rozwiazalem problem przez zalozenie na ovh.pl darmowego konta. Polecam jesli ktos bedzie mial podobny problem

Ten post edytował piotrekkr 23.10.2006, 18:15:44
Go to the top of the page
+Quote Post
1010
post
Post #4





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

Ostrzeżenie: (0%)
-----


Napisz do administracji z pytaniem o obsługę sesji.


--------------------
Go to the top of the page
+Quote Post
jarrod
post
Post #5





Grupa: Zarejestrowani
Postów: 312
Pomógł: 9
Dołączył: 14.10.2006
Skąd: warszawa

Ostrzeżenie: (0%)
-----


Za każdym razem jak uruchamiasz tą klasę masz tablicę POST z tymi elemetami?
Go to the top of the page
+Quote Post
piotrekkr
post
Post #6





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

Ostrzeżenie: (0%)
-----


e tam po co sie uzeraz z tymi ludzmi to jest telekomuna czemu sie dziwic pewnie i tak by nie odpisali albo odpisali po 2 tyg a tak mam dobry i darmowy hosting na ovh.pl
Go to the top of the page
+Quote Post
jarrod
post
Post #7





Grupa: Zarejestrowani
Postów: 312
Pomógł: 9
Dołączył: 14.10.2006
Skąd: warszawa

Ostrzeżenie: (0%)
-----


Cytat(piotrekkr @ 23.10.2006, 19:18:55 ) *
e tam po co sie uzeraz z tymi ludzmi to jest telekomuna czemu sie dziwic pewnie i tak by nie odpisali albo odpisali po 2 tyg a tak mam dobry i darmowy hosting na ovh.pl

Czy ten hosting na OVH taki wspaniały jest to nie wiem... Mam tam konto i czasami mam ich dosyć.
Go to the top of the page
+Quote Post
piotrekkr
post
Post #8





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

Ostrzeżenie: (0%)
-----


Cytat(jarrod @ 23.10.2006, 19:18:03 ) *
Za każdym razem jak uruchamiasz tą klasę masz tablicę POST z tymi elemetami?

tzn czasem mam czasem nie jak nie mam to wartosci domyslne sa zazwyczaj ''. To zalezy od tego do czego jej uzywam. Importuje ta klase do innego pliku:
  1. <?php
  2. require_once('class.login.php');
  3. ?>


a pozniej :
  1. <?php
  2. $login = login::singleton();
  3. ?>


ale akurat $_POST[] nie ma tutaj nic do rzeczy bo logowanie dziala samo w sobie tylko jest cos nie tak z sesja bo jak uzywam funkcji:
  1. <?php
  2. $login->isAdmin()
  3. ?>
to ona czasem zwraca true a czasem false :/ a ty zalezy tylko i wylacznie od tego czy sa ustawione konkretne zmienne sesyjne.

Cytat
Czy ten hosting na OVH taki wspaniały jest to nie wiem... Mam tam konto i czasami mam ich dosyć.

ja mam dosyc tego internetdsl.pl i boo.pl bo tam ten skrypt nie dziala i jest ten sam problem :/ a na ovh dziala bez problemow zadnych wiec jest lepszy smile.gif

Ten post edytował piotrekkr 23.10.2006, 19:20:29
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 07:00