Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z wcześniej zdefiniowanym obiektem
brzoza91
post
Post #1





Grupa: Zarejestrowani
Postów: 39
Pomógł: 4
Dołączył: 9.05.2012

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


Witam
Przerabiam książkę i jest tam taka klasa, która trochę zmieniłem. Lecz po uruchomieniu wyskakuje mi wiele błędów. Co robię nie tak, że mam tyle błędów. Np. W 164 LINI wyskakuje taki błąd

Undefined variable: objDB in C:\wamp\www\lookbook\class\class.UserSession.php on line 164

linia ta zawiera taki kod:
  1. $row=$objDB->select($sql);

a gdy zamienie to na:
  1. $row=Datebase::select($sql);



to działa dobrze. Gdzie jest tu błąd skoro w konstruktorze stworzyłem taki obiekt.
?
a to reszta błędów:

1.Undefined index: HTTP_USER_AGENT in C:\wamp\www\lookbook\class\class.UserSession.php on line 27
2.PHPSESSID in C:\wamp\www\lookbook\class\class.UserSession.php on line 28
3.HTTP_USER_AGENT in C:\wamp\www\lookbook\class\class.UserSession.php on line 158
4.Undefined variable: objDB in C:\wamp\www\lookbook\class\class.UserSession.php on line 164
5.Call to a member function select() on a non-object in C:\wamp\www\lookbook\class\class.UserSession.php on line 164

  1. <?php
  2.  
  3. require_once('class.User.php');
  4. require_once('class.Datebase.php');
  5.  
  6. class UserSession extends User{
  7. private $php_sesion_id;
  8. private $native_session_id;
  9. private $dbhandle;
  10. private $logged_in;
  11. private $session_tieout = 600;
  12. private $session_lifespan =3600;
  13.  
  14. public function __construct() {
  15. $objDB= new Datebase();
  16. //$dbhandle=$objDB->connect();
  17.  
  18. array(&$this, '_session_open_method'),
  19. array(&$this, '_session_close_method'),
  20. array(&$this, '_session_read_method'),
  21. array(&$this, '_session_write_method'),
  22. array(&$this, '_session_destroy_method'),
  23. array(&$this, '_session_gc_method')
  24. );
  25.  
  26. $strUserAgent = $GLOBALS["HTTP_USER_AGENT"];
  27. if ($_COOKIE["PHPSESSID"]){
  28. $this->php_sesion_id=$_COOKIE["PHPSESSID"];
  29. $sql = "SELECT session_id FROM session_user
  30. WHERE session_id_ascci = '" . $this->php_session_id .
  31. "' AND ((now() - session_when_start) < ' " . $this->session_lifespan . " seconds')
  32. AND session_user_agent='" . $strUserAgent . "'
  33. AND ((now() - session_last_impress) <= '".$this->session_timeout." seconds'
  34. OR session_last_impress IS NULL)";
  35.  
  36. $result=$objDB->select($sql);
  37. if($objDB->dbNumRows==0) {
  38. $failed =0;
  39. $sql ="DELETE FROM session_user
  40. WHERE (session_id_ascci = '". $this->php_session_id . "')
  41. OR (now() - session_when_start) > $maxlifetime)";
  42. $result =$objDB->delete($sql);
  43.  
  44. $sql="DELETE FROM session_user
  45. WHERE session_id
  46. NOT IN (SELECT session_id FROM session_user)";
  47. $result=$objDB->delete($sql);
  48. unset($_COOKIE["PHPSESSID"]);
  49. };
  50. };
  51. session_set_cookie_params($this->session_lifespan);
  52. return $objDB;
  53. }
  54.  
  55. public function Impress() {
  56. if ($this->native_session_id) {
  57. $sql="UPDATE session_user
  58. SET session_last_impress = now()
  59. WHERE session_id = " . $this->native_session_id;
  60. $result = $objDB->update($sql);
  61. }
  62. }
  63.  
  64. public function IsLoggedIn() {
  65. return($this->logged_in);
  66. }
  67.  
  68. public function GetUserID(){
  69. if ($this->logged_in){
  70. return($this->user_id);
  71. } else {
  72. return(false);
  73. }
  74. }
  75.  
  76. /*public function GetUserObject() {
  77.   if($this->logged_in){
  78.   if (class_exists("User")) {
  79.   $objUser = new User($this->user_id);
  80.   return($objUser);
  81.   } else {
  82.   return(false);
  83.   }
  84.   }
  85.   }*/
  86.  
  87. public function GetSessionIndentifier() {
  88. return($this->php_sesion_id);
  89. }
  90.  
  91. public function Login($strUsername, $strUserPassword){
  92. $strUserPasswordSHA1= sha1($strUserPassword);
  93. $sql="SELECT user_id FROM user
  94. WHERE user_name = '$strUsername'
  95. AND user_password = '$strUserPasswordSHA1'";
  96.  
  97. $row=$objDB->select($sql);
  98. if ($objDB->dbNumRows>0) {
  99. $this->user_id=$row['session_user_id'];
  100. $this->logged_in =true;
  101. $sql="UPDATE session_user
  102. SET session_logged = true, session_user_id = " . $this->user_id . "
  103. WHERE session_id = " . $this->native_session_id;
  104. $objDB->update($sql);
  105. return(true);
  106. } else {
  107. return(false);
  108. }
  109. }
  110.  
  111. public function LogOut() {
  112. if ($this->logged_in== true) {
  113. $sql="UPDATE session_user
  114. SET session_logged = false, session_user_id = 0
  115. WHERE session_id = " . $this->native_session_id;
  116. $objDB->update();
  117. $this->logged_in=false;
  118. $this->user_id=0;
  119. return(true);
  120. } else {
  121. return(false);
  122. }
  123. }
  124.  
  125. public function _get($nm) {
  126. $sql="SELECT wartosc_zmiennej
  127. FROM zmienna_sesji
  128. WHERE identyfikator_sesji = " . $this->native_session_id . "
  129. AND nazwa_zmiennej = '" . $nm . "'";
  130. $row=$objDB->select($sql);
  131. if ($objDB->dbNumRows>0) {
  132. returnunserialize($row["wartosc_zmiennej"]);
  133. } else {
  134. return(false);
  135. }
  136. }
  137.  
  138. public function _set($nm, $val) {
  139. $strSer = serialize($val);
  140. $sql="INSERT INTO zmienna_sesji(identyfikator_sesji, nazwa_zmiennej, wartosc_zmiennej)
  141. VALUES(" . $this->native_session_id . ", '$nm', '$strSer')";
  142. $objDB->insert($sql);
  143.  
  144. }
  145.  
  146. private function _session_open_method($save_path, $session_name){
  147. return(true);
  148. }
  149.  
  150. private function _session_close_method() {
  151. //mysql_close($this->dbhandle);
  152. return(true);
  153. }
  154.  
  155. private function _session_read_method($id) {
  156. $strUserAgent= $GLOBALS["HTTP_USER_AGENT"];
  157. $this->php_session_id = $id;
  158. $failed=1;
  159. $sql="SELECT *
  160. FROM session_user
  161. WHERE session_id_ascii = '$id'";
  162. $row=Datebase::select($sql);
  163. if ($objDB->dbNumRows>0) {
  164. $this->native_session_id = $row['session_id'];
  165. if ($row['session_logged']=="t") {
  166. $this->logged_in=true;
  167. $this->user_id = $row["session_user_id"];
  168. } else {
  169. $this->logged_in = false;
  170. }
  171. } else {
  172. $this->logged_in = false;
  173. $sql="INSERT INTO session_user(session_user_ascii, session_logged, session_user_id, session_when_start, session_user_agent)
  174. VALUES ('$id','f',0,now(),'$strUserAgent')";
  175. $objDB->insert($sql);
  176.  
  177. $sql="SELECT session_id from \"session_user\"
  178. WHERE session_id_ascii = '$id'";
  179. $row=Datebase::select($sql);
  180. $this->native_session_id = $row["session_id"];
  181.  
  182. }
  183. return("");
  184. }
  185.  
  186. private function _session_write_method($id, $sess_data) {
  187. return(true);
  188. }
  189.  
  190. private function _session_destroy_method($id) {
  191. $sql="DELETE FROM session_user
  192. WHERE session_id_ascii = '$id'";
  193. $result=Datebase::delete($sql);
  194. return($result);
  195. }
  196.  
  197. private function _session_gc_method($maxlifetime) {
  198. return(true);
  199. }
  200. }
  201.  
  202.  
  203. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bastard13
post
Post #2





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


Jak użyjesz http://translate.google.pl/ to większość z tych błędów będzie dla Ciebie zrozumiała. Angielski to podstawa, jeżeli chcesz być programistą, więc im szybciej sam zaczniesz walczyć z takimi prostymi rzeczami (gdzie rozwiązanie wynika bezpośrednio ze zdania), to naprawdę zaprocentuje na przyszłość. Tym bardziej, że po pewnym czasie do takich błędów się przyzwyczaisz, bo przynajmniej na początkach często się powtarzają(IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 6.10.2025 - 04:31