Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wybór podstrony
Forum PHP.pl > Forum > Przedszkole
sadistic_son
Cześć,

zakomentowane fragmenty zostawiłem, bo to inne próby osiągnięcia celu - a nie mam pewności że były złe (lub dobre).

config.php:
  1. // define("SUBDOMAIN", "/stronka/");
  2. // define("PRODUCT_LIST_LANDING", "localhost" . SUBDOMAIN);
  3. // define("PRODUCT_ADD_LANDING", "localhost" . SUBDOMAIN . 'add-product');
  4. define("PRODUCT_LIST_LANDING", "localhost");
  5. define("PRODUCT_ADD_LANDING", 'add-product');
  6.  
  7. include("PageDisplay.php");
  8.  
  9. $page = new PageDisplay($_SERVER['REQUEST_URI']);
  10. //$page = new PageDisplay($_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
  11. $page->processRequest();


PageDisplay.php:
  1. class PageDisplay
  2. {
  3. private $request;
  4. private $post;
  5. private $get;
  6. private $requestUri;
  7.  
  8. public function __construct($request)
  9. {
  10. $requestArray = explode("?", $request);
  11. $this->requestUri = $requestArray[0];
  12. }
  13. public function processRequest()
  14. {
  15.  
  16. if (!$this->requestUri) {
  17. return;
  18. }
  19.  
  20.  
  21. switch ($this->requestUri) {
  22. case "/":
  23. $title = 'Product List';
  24. $pageContent = "ProductList";
  25. include("ProductList.php");
  26. break;
  27. case PRODUCT_ADD_LANDING: //lub case 'add-product':
  28. $title = 'Product Add';
  29. $pageContent = "ProductAdd";
  30. include("ProductAdd.php");
  31. break;
  32. default:
  33. $title = 'Product List';
  34. $pageContent = "ProductList";
  35. include("ProductList.php");
  36. break;
  37. }
  38.  
  39. $this->displayHeader($title);
  40. require('views/' . $pageContent . '.view.php');
  41. $this->displayFooter();
  42. }

Gdy wchodzę na localhost/add-product to ni cholery nie wykonuje się drugi case tylko odwołuje do nieznanej strony. Zachowuje się to tak jakby zamiast index.php w katalogu głównym szło do index.php w podkatalogu add-product. I nawet rozumiem, że tak się dzieje, bo w .htaccess powinienem mieć zdefiniowany url. Ale zanim trochę nasmieszałem z tym switchem to i tak .htaccess nie miałem a działało...
Nie jestem już w stanie odtworzyć tego co miałem przed zmianami które mi wszystko spraprały. Ostatni backup mam z dziś rana sad.gif
Salvation
A ja mam pytanie w sumie. To jest kod do nauki i chcesz zrozumieć jak działa Request czy jak? Bo są gotowe paczki dla Routingów, np.: https://github.com/nikic/FastRoute
sadistic_son
Tak, to jest kod który muszę w pełni ogarniać. Będę po tem o nim rozmawiać a jak użyję gotowego komponentu to raz że mogą się skapnąć (na pewno) i będzie klops, a dwa, że pewnie go nie ogarnę na tylę żeby go bronić (wyjaśnić co robi każda linijka).
Salvation
No to zrób sobie die(var_dump($request, $requestArray, $this->requestUri)) w konstruktorze i zobacz co siedzi pod każdą zmienną. A najlepiej, to ogarnij xdebuga.
sadistic_son
Robiłem var_dumpy itd i nie mogłem dojść do tego. Okazuje się, że w folderze nadrzędnym domyslnie AllowOverride jest ustawione na none w httpd.conf, więc dlatego mi nie działało to przenoszenie. Ech, straciłem na to ze 2 godziny.
Dzięki za chęć pomocy.
Mam gdzieś z tyłu głowy tego xdebuga, już mi go raz ktoś polecał, chyba nawet Ty. Ale czas mnie goni i nie wiem czy nie strace za dużo czasu na ogarnianie nowego toola. A może to kwestia leanu, i zamiast próbować jeździć rowerem z kwadratowymi kołami trzeba zainwestować trochę czasu w wymianę na koła okrągłe... Sam nie wiem :|
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.