Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][MySQL][PHP]Kod z książki nie działa, Kod z książki nie działa - Biała strona
filip3712
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.11.2017

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


Witam, kilka dni temu zakupiłem książkę *takie cudo* zacząłem robić krok po kroku tak jak jest w książce napisane, przepisywałem kod linijka po linijce niestety strona nie działa
"Ta strona nie działa
HTTP ERROR 500"

Pobrałem nawet kod ze strony(była podana w książce) nadal nie działa...

Strona z której ściągałem: *ciach*
Dodam, że gdy odpalam cały kod przy pomocy "WebServ"(localhost) to wywala takie błędy:
CODE
Strict Standards: Non-static method Page::getInstanceBySpecial() should not be called statically in C:\WebServ\httpd\index.php on line 17

Fatal error: Call to a member function fetch() on a non-object in C:\WebServ\httpd\ww.incs\basics.php on line 23


Znowu jak użyję Xampp`a albo mojego prywatnego serwera VPS to jest biała strona i 0 błędów (lub błąd 500):/

Pozdrawiam.
Go to the top of the page
+Quote Post
markuz
post
Post #2





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


Przeczytaj: Temat: Jak poprawnie zadac pytanie oraz przygotowac srodowisko pracy (Przygotuj właściwie swoje środowisko pracy)


--------------------
Go to the top of the page
+Quote Post
filip3712
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.11.2017

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


Dodałem do index.php
  1. ini_set('display_errors','1');


I nadal biała strona :/
Go to the top of the page
+Quote Post
viking
post
Post #4





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Zależy od konfiguracji serwera. Ustaw w php.ini. same komunikaty błędów chyba były bardzo czytelne.


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





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


Cytat(filip3712 @ 30.11.2017, 17:10:41 ) *
Znowu jak użyję Xampp`a albo mojego prywatnego serwera VPS to jest biała strona i 0 błędów (lub błąd 500):/


To oznacza że jest taki sam błąd jak powyżej. Pokaż kod.

Swoją drogą:
Data wydania książki to 11/2011, więc upewnij się jaką wersję PHP używasz, a jaką wersję zalecali w książce.

Ten post edytował Tomplus 1.12.2017, 09:30:52
Go to the top of the page
+Quote Post
filip3712
post
Post #6





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.11.2017

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


Cytat(Tomplus @ 1.12.2017, 09:28:43 ) *
więc upewnij się jaką wersję PHP używasz, a jaką wersję zalecali w książce.


Użyłem PHP 5.2 wersje taką jaka jest napisana w książce i również nie działa( ohno-smiley.gif )

Błędy:
CODE

Notice: Undefined variable: instancesBySpecial in C:\xampp\htdocs\ww.php_classes\Page.php on line 51
Warning: array_key_exists() expects parameter 2 to be array, null given in C:\xampp\htdocs\ww.php_classes\Page.php on line 51

(Ten {codebox} coś szwankuje sam dodaje spacje)

Page.php:

  1. <?php
  2. ini_set('display_errors','1');
  3. class Page{
  4. static $instances = array();
  5. static $instancesByName = array();
  6. static $instancesBySpecial = array();
  7. function __construct($v,$byField=0,$fromRow=0,$pvq=0){
  8. # byField: 0=ID; 1=Name; 3=special
  9. if (!$byField && is_numeric($v)){ // wg identyfikatora
  10. $r=$fromRow?$fromRow:($v?dbRow("select * from pages where id=$v limit 1"):array());
  11. }
  12. else if ($byField == 1){ // wg nazwy
  13. $name=strtolower(str_replace('-','_',$v));
  14. $fname='page_by_name_'.md5($name);
  15. $r=dbRow("select * from pages where name like '".addslashes($name)."' limit 1");
  16. }
  17. else if ($byField == 3 && is_numeric($v)){ // wg pola special
  18. $fname='page_by_special_'.$v;
  19. $r=dbRow("select * from pages where special&$v limit 1");
  20. }
  21. else return false;
  22. if(!count($r || !is_array($r)))return false;
  23. if(!isset($r['id']))$r['id']=0;
  24. if(!isset($r['type']))$r['type']=0;
  25. if(!isset($r['special']))$r['special']=0;
  26. if(!isset($r['name']))$r['name']='NO NAME SUPPLIED';
  27. foreach ($r as $k=>$v) $this->{$k}=$v;
  28. $this->urlname=$r['name'];
  29. $this->dbVals=$r;
  30. self::$instances[$this->id] =& $this;
  31. self::$instancesByName[preg_replace('/[^a-z0-9]/','-',strtolower($this->urlname))] =& $this;
  32. self::$instancesBySpecial[$this->special] =& $this;
  33. if(!$this->vars)$this->vars='{}';
  34. $this->vars=json_decode($this->vars);
  35. }
  36. public static function getInstance($id=0,$fromRow=false,$pvq=false){
  37. if (!is_numeric($id)) return false;
  38. if (!array_key_exists($id,self::$instances)) self::$instances[$id]=new Page($id,0,$fromRow,$pvq);
  39. return self::$instances[$id];
  40. }
  41. public static function getInstanceByName($name=''){
  42. $name=strtolower($name);
  43. $nameIndex=preg_replace('#[^a-z0-9/]#','-',$name);
  44. if(array_key_exists($nameIndex,self::$instancesByName))return self::$instancesByName[$nameIndex];
  45. self::$instancesByName[$nameIndex]=new Page($name,1);
  46. return self::$instancesByName[$nameIndex];
  47. }
  48. public static function getInstanceBySpecial($sp=0){
  49. if (!is_numeric($sp)) return false;
  50. if (!array_key_exists($sp,$instancesBySpecial)) $instancesBySpecial[$sp]=new Page($sp,3);
  51. return $instancesBySpecial[$sp];
  52. }
  53. }



Go to the top of the page
+Quote Post
viking
post
Post #7





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Definicja tego w pobranym kodzie
  1. function getInstanceBySpecial($sp=0){
  2. if (!is_numeric($sp)) return false;
  3. if (!@array_key_exists($sp,$instancesBySpecial))
  4. $instancesBySpecial[$sp]=new Page($sp,3);
  5. return $instancesBySpecial[$sp];
  6. }

Ja tu nie widzę nigdzie static. Ten kod to jedno wielkie nieporozumienie. Jeśli chcesz się nauczyć nowoczesnego programowania to zapomnij o tym. A pracowanie na php 5.2 w momencie gdy wydane zostało 7.2 powinno tez ci coś pokazać.


--------------------
Go to the top of the page
+Quote Post
Tomplus
post
Post #8





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


Suma summarum... schowaj książkę do archiwum i kup taką o PHP która uczy używać PHP 7.
Go to the top of the page
+Quote Post
filip3712
post
Post #9





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.11.2017

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


W takim razie temat można zamknąć.

Dzięki za wszelaką pomoc smile.gif

Pozdrawiam.
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: 22.08.2025 - 05:24