Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Konflikt skryptu z integracją phpbb
Forum PHP.pl > Forum > PHP
Mayka
Mam problem, znalazłem integracje strony z forum phpbb (logowanie,rejestracja,wylogowanie) i mam teraz problem. bo puki nie załącze tego skryptu to wszystko jest ok. W momencie kiedy zaczynam korzystać z tej klasy wywala mi błąd :<b>Fatal error</b>
: Call to undefined method dbal_mysqli::query() in
<b>/home/ftp/www/funkcje.php in line 61</b>
w tej linijce jest:
  1. function dbQuery($query){
  2. $db=dbInit();
  3. $q=$db->query($query);
  4. $db->num_queries++;
  5. return $q;
  6. }
a konkretniej $q=$db->query($query);

wylogowanie wygląda tak:
  1. class phpbb{
  2. //various table fields
  3. var $table_fields = array();
  4.  
  5. //constructor
  6. public function __construct($path, $php_extension = "php"){
  7. global $phpbb_root_path, $phpEx, $db, $config, $user, $auth, $cache, $template;
  8. define('IN_PHPBB', true);
  9. $phpbb_root_path = $path;
  10. $phpEx = $php_extension;
  11. }
  12. public function user_logout(){
  13. global $phpbb_root_path, $phpEx, $db, $config, $user, $auth, $cache, $template;
  14. //fail presumption
  15. $phpbb_result = "FAIL";
  16.  
  17. //general info
  18. $this->init(true);
  19.  
  20. //session management
  21. $user->session_begin();
  22. $auth->acl($user->data);
  23.  
  24. //destroy session if needed
  25. if($user->data['user_id'] != ANONYMOUS){
  26. $user->session_kill();
  27. $user->session_begin();
  28. $phpbb_result = "SUCCESS";
  29. }
  30.  
  31. return $phpbb_result;
  32. }
  33. }

No i samo wywołanie
  1. require("./phpbb.class.php");
  2. $phpbb = new phpbb("./forum/", "php");
  3. $phpbb_vars = array("username" => $email, "password" => $haselko, "user_email" => $email, "group_id" => "2");
  4. $phpbb_result = $phpbb->user_add($phpbb_vars);


Czy ktoś jest w stanie mi wytłumaczyć co to za błąd dbal_mysqli::query() ? I czemu oddziele te 2 skrypty jest wszystko tak jak powinno a jak działają wramach jednego pliku to sie pojawia ten błąd ?

matx132
Nie możesz ich użyć razem gdyż oba pliki korzystają z $db, a klasa phpbb robi global $db, dlatego jest konflikt nazw, i funkcja doQuery próbuje odwołać się dl klasy db z phpbb.

Także albo zmień nazewnictwa albo trzymaj w innych plikach
Mayka
To było pierwsze co zrobiłem:

  1. function dbQuery($query){
  2. $dbs=dbInit();
  3. $q=$dbs->query($query);
  4. $dbs->num_queries++;
  5. return $q;
  6. }


Jeśli o to Ci chodziło to niestety ale nadal jest błąd..

edit:
W inicjalizacji funkcji była linijka if(isset($GLOBALS['db']))return $GLOBALS['db'];

problem rozwiązany, matx132 dzieki za pomoc
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.