Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Błądw wyswietlaniu strony
Forum PHP.pl > Forum > Przedszkole
bosmaciej
Mam taki problem wrzuciłem wszystko na serwer baze zaimportowałem plik zmodyfikowałem configuration i mimo to pojawia sie taki komunikat proze was o pomoc

pedro84
Przy połączeniu nie wybierasz bazy.
djgarsi
Przetłumacz wyniki i wtedy szukaj odpowiedzi. Błędy są typowe i często spotykane.
klocu
Chyba wszystko ci się posypało.

Po pierwsze: Cannot modify header - było milion razy na forum: sprawdź UTF-8 czy nie ma BOM przypadkiem, czy nie wysyłasz jakichś białych znaków itd.
Po drugie: jak kolega wyżej wspomniał leży wybór bazy
Po trzecie: sprawdzasz jakie typy parametrów przekazujesz do funkcji - wyraźnie masz błąd przekazujesz >null< powinna być tablica.

Podsumowanie:
- nie wklejaj takiego dumpa jako obrazek
- czytamy to co debuger wyrzuca na ekran
- na połowę rzeczy mógłbyś sam znaleźć odpowiedź bowiem są to podstawy podstaw
bosmaciej
tylko w tej kwesti nie wiem gdzie przyczyna lezy bo siedze juz 5h i nie znajduje błedu
Shido
Na Cannot modify header pomaga:
  1. <?php
  2. //skrypty
  3. ?>
franki01
Cytat(Shido @ 16.07.2012, 15:10:53 ) *
Na Cannot modify header pomaga:
  1. <?php
  2. //skrypty
  3. ?>


Nie pomaga jeżeli ma BOM na początku pliku. On i tak jest przed <?php.
bosmaciej
mógł by ktos zdalnie poinstruować jak wyeliminowac ten błąd bo mnie juz trafia tyle godzin pracy i nic a czasami ktos popatrzy z zewnatrz i odrazu zobaczy w czym problem
Shido
Wklej tu kod, bo wróżyć jest ciężko.
bosmaciej
kod wam wkleic z których plików ??configuration index questionmark.gif

pomózcie dam plusa
!*!
Jak na kogoś kto zarejestrował się w 2009...

Tak zacznij od configuration.php i index.php
CTRL
Potrzebne są te pliki w których wyskakują błędy oczywiście smile.gif
Shido
Z tych z których wywala błąd.
Najlepiej nie cały kod, tylko kilka linijek przed i za błędem.
bosmaciej
Registry.class

  1. public static function getUrl() {
  2. global $address;
  3.  
  4. $controller = substr($address["controller"], 0, -10);
  5. $paramList = implode(CS, $address["params"]);
  6. $temp = array($controller, $address["action"], $paramList);
  7. foreach($temp as $key => $value)
  8. if(!$value)
  9. unset($temp[$key]);
  10.  
  11. return implode(CS, $temp);
  12. }
  13.  
  14. public static function goToUrl($url) {
  15. header("Location: " . $url); //34 linijka
  16. }
  17.  

adcontroler.class

  1. protected function showAdvertisement() { //16 linijka
  2. $partners = $this->partner->getPartners();
  3. $this->baners = $this->baner->getBaners();
  4. shuffle($partners);
  5.  
  6. if (count($partners) > 20)
  7. $partners = array_slice($partners, 0, 20);
  8.  
  9. global $partnersLeft;
  10. global $partnersRight;
  11. $partnersLeft[0] = array_slice($partners, 0, 5);
  12. $partnersLeft[1] = array_slice($partners, 5, 5);
  13. $partnersRight[0] = array_slice($partners, 10, 5);
  14. $partnersRight[1] = array_slice($partners, 15, 5);
  15.  
  16. $this->displayUrl = ROOT . DS . 'application' . DS . 'view' . DS . 'advertisement.phtml';
  17. }
  18.  
  19.  
  20. } //35 linijka


index.php


  1. //Main Controler
  2. $controllers["MainController"] = new $address["controller"]($address["action"], $address["params"]);
  3. //Right Controlles




dysciplinemodel.class


  1.  
  2. public function getDiscipline($disciplineId) {
  3. $disciplineInfo = $this->db->select("SELECT * FROM disciplines WHERE discipline_id = " . $disciplineId);
  4. return array_shift($disciplineInfo);
  5. }
  6.  
!*!
To nie są całe pliki. Sprawdź ich kodowanie, czy nie ma białych znaków na końcu i początku.
bosmaciej
CONFIGURATION.PHP



  1. <?php
  2.  
  3. //Tablica asocjacyjna z konfiguracją
  4. $cfg['db_host'] = 'localhost';
  5. $cfg['db_user'] = 'root';
  6. $cfg['db_password'] = 'haslo';
  7. $cfg['db_database'] = 'baza ';
  8.  
  9. //Home Page
  10. define('HP', "http://localhost/");
  11. //Admin Page
  12. define('AP', "http://localhost/admin/");
  13. //Controller Separator
  14. define('CS', "_");
  15. //Subcontroller Separator
  16. define('SS', ",");
  17. //Page Currency
  18. define('PC', "bett");



usunołem zbedne linje na koncu po klamrze i spacje z hasła do bazy i teraz mam to

  1. Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\library\configuration.php:1) in C:\AppServ\www\library\Registry.class.php on line 34
  2.  
  3. Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\library\configuration.php:1) in C:\AppServ\www\library\Registry.class.php on line 34
  4.  
  5. Fatal error: Cannot instantiate abstract class Controller in C:\AppServ\www\index.php on line 25
  6.  
!*!
  1. public static function goToUrl($url) {
  2.  
  3. header("Location: " . $url); //34 linijka
  4.  
  5. }


Przed wywołaniem tej metody nie możesz niczego wysyłać. żadnego echo, html, nic.
bosmaciej
  1. <?php
  2.  
  3. class Registry {
  4. private static $instance;
  5.  
  6. private function __construct() { }
  7.  
  8. public static function getInstance() {
  9. if (!self::$instance)
  10. self::$instance = new self();
  11.  
  12. return self::$instance;
  13. }
  14.  
  15.  
  16. public static function goToUrl($url) {
  17. header("Location: " . $url);
  18. }
  19.  
  20. /**
  21. * Funkcja konwertuje adres url do tablic
  22. * przekazujac podstawowe parametry:
  23. * kontroler, akcje i parametry
  24. * Adres ma postac: /KontrolerGlowny/Akcja/Tu/Jakies/Parametry
  25. **/
!*!
To dotyczy całego kodu w każdym pliku jaki jest wczytany przed.
bosmaciej
ale to działało jakis czas temu ale po przenosinach na inne serwery przesało bo przedtem miałem na serwerze home.pl ale waznosc sie skonczyła i próbowałem przeniesc na inny ale sie nie udało
!*!
Pech. Sprawdź gdzie wykonujesz Registry::goToUrl(); i wywal jakiekolwiek przesyłane znaki przed nim, zacznij od index.
bosmaciej
w index nie ma
!*!
To sprawdzaj dalej.
bosmaciej
  1.  
  2.  
  3. class Registry {
  4. private static $instance;
  5.  
  6. private function __construct() { }
  7.  
  8. public static function getInstance() {
  9. if (!self::$instance)
  10. self::$instance = new self();
  11.  
  12. return self::$instance;
  13. }
  14.  
  15. /**
  16. * Funkcja kontruuje adres na podstawie
  17. * tablicy $address, czyli na podsatwie
  18. * kontrolera, akcji i parametrow
  19. **/
  20. public static function getUrl() {
  21. global $address;
  22.  
  23. $controller = substr($address["controller"], 0, -10);
  24. $paramList = implode(CS, $address["params"]);
  25. $temp = array($controller, $address["action"], $paramList);
  26. foreach($temp as $key => $value)
  27. if(!$value)
  28. unset($temp[$key]);
  29.  
  30. return implode(CS, $temp);
  31. }
  32.  
  33. public static function goToUrl($url) {
  34. header("Location: " . $url);
  35. }
  36.  
  37. /**
  38. * Funkcja konwertuje adres url do tablic
  39. * przekazujac podstawowe parametry:
  40. * kontroler, akcje i parametry
  41. * Adres moze miec postac: /KontrolerGlowny/Akcja/Tu/Jakies/Parametry
  42. * Albo: /KontrolerBoczny/AkcjaBoczna,tu,boczne,parametry/KontrolerGlowny/Akcja/Tu/Jakies/Parametry
  43. **/
  44. public function convertAddress() {
  45. //Walidacja POST'a
  46. foreach($_POST as $key => $value) {
  47. $_POST[$key] = Validator::validate($_POST[$key]);
  48. ${$key . "Error"} = array();
  49. }
  50.  
  51. if (isset($_GET["url"]))
  52. $url = Validator::validate($_GET["url"]);
  53. else
  54. self::goToUrl(HP . "home");
  55.  
  56. $temp = explode(CS, $url);
  57. $address = array(
  58. "side_controller" => "",
  59. "side_action" => "",
  60. "side_params" => array()
  61. );
  62.  
  63. //Pobranie kontrolera
  64. $address["controller"] = ucfirst(array_shift($temp)) . "Controller";
  65.  
  66. //Sprawdz czy taki kontroler istnieje, jesli nie to idz do domyslnego -> HomeController
  67. //Sprawdza tez czy przypadkiem zapytanie nie idzie do kontrolera statycznego (nie interaktywnego)
  68. if (!class_exists($address["controller"]) || in_array("StaticController", class_implements($address["controller"])))
  69. self::goToUrl(HP . "home");
  70.  
  71. //Sprawdzanie czy przyadkiem polecenie nie idze do SideControllera
  72. if (in_array("SideController", class_implements($address["controller"]))) {
  73. //Jesli tak, to podano kontroler poboczny
  74. //Pobierz kontroler poboczny
  75. $address["side_controller"] = $address["controller"];
  76.  
  77. //Sparsuj akcje i parametry dla kontrolera pobocznego
  78. $sideAddress = array_shift($temp);
  79. $sideTemp = explode(SS, $sideAddress);
  80.  
  81. $address["side_action"] = array_shift($sideTemp);
  82. //Sprawdz czy istenieje taka akcja
  83. //if (!method_exists($address["side_controller"], $address["side_action"]))
  84. // $address["side_action"] = "";
  85.  
  86. $address["side_params"] = $sideTemp;
  87.  
  88. //Pobierz kontroler glowny
  89. $address["controller"] = ucfirst(array_shift($temp)) . "Controller";
  90. }
  91.  
  92.  
  93. //Sprawdz czy kontroler glowny jest na prawde MainController, jesli nie zaladuj domyslny
  94. if (!class_exists($address["controller"]) || !in_array("MainController", class_implements($address["controller"])))
  95. self::goToUrl(HP . "home");
  96.  
  97. $address["action"] = array_shift($temp);
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
!*!
Nie wklejaj tu plików, tylko sprawdzaj je u siebie. Nie znasz podstaw. Gdzie wywołujesz powyższą metodę?
bosmaciej
nie ma w zadnym innym pliku sprawdziłem wszystkie
!*!
Musisz mieć, nie ma innej opcji.
bosmaciej
mam w folderze admin plik index.php

  1. //Sprawdzanie upowaznienia
  2. if ($address["controller"] != "AuthorizationController" && !isset($_SESSION["admin_id"]))
  3. Registry::goToUrl(AP . "authorization");



ale przeciez ten katalog nie jest powiazany z tamtym ?
!*!
Pokaż cały plik. Bo wątpię że te spacje pomiędzy kropką mają znaczenie wink.gif

  1. Registry::goToUrl(AP."authorization");
bosmaciej
  1. <?php
  2. require("library/bootstrap.php");
  3. $registry = Registry::getInstance();
  4. $address = $registry->convertAddress();
  5.  
  6. //Sprawdzanie upowaznienia
  7. if ($address["controller"] != "AuthorizationController" && !isset($_SESSION["admin_id"]))
  8. Registry::goToUrl(AP . "authorization");
  9.  
  10.  
  11. if (isset($_SESSION["admin_id"])) {
  12. $controllers["HeadController"] = new HeadController(null, null);
  13. $controllers["MenuController"] = new MenuController(null, null);
  14. }
  15. $controllers["MainController"] = new $address["controller"]($address["action"], $address["params"]);
  16. if (isset($_SESSION["admin_id"]))
  17. $controllers["TailController"] = new TailController(null, null);
  18.  
  19.  
  20.  
  21. foreach ($controllers as $controller)
  22. $controller->__destruct();
  23.  
  24.  
  25.  
  26. ?>
!*!
  1. header("Location: " . $url);


Usuń to/zakomentuj i sprawdź co się dzieje, albo wpisz tam adres na sztywno. A jak nie to, to szukaj białych znaków, może plik masz źle zapisany, sprawdziłeś to jak przedmówcy pisali wyżej?
bosmaciej
sprawdziłem

jak zakomentowałem to sie tylko to pojawiło

  1. Fatal error: Cannot instantiate abstract class Controller in C:\AppServ\www\index.php on line 25
!*!
I dobrze, poszukaj tam dlaczego.
bosmaciej
nie mam zielonego pojecia
  1. //Main Controler
  2. $controllers["MainController"] = new $address["controller"]($address["action"], $address["params"]);
  3. //Right Controlles
!*!
Nie pokazuj linijki tylko cały kod. A resztą komunikat mówi jasno że klasa Controller jest abstrakcyjna i nie może być wywołana przez obiekt.
bosmaciej
  1. <?php
  2. require("library/bootstrap.php");
  3.  
  4. //Pobieranie podstawowych informacji o kontrolerze do zaladowania
  5.  
  6. $registry = Registry::getInstance();
  7. $address = $registry->convertAddress();
  8. $controllers = array();
  9.  
  10. $controllers["LanguageController"] = new LanguageController($address["side_action"], $address["side_params"], $address["side_controller"], $address["controller"]);
  11. $controllers["HeadController"] = new HeadController(null, null);
  12. $controllers["LoginController"] = new LoginController($address["side_action"], $address["side_params"], $address["side_controller"]);
  13. $controllers["MenuController"] = new MenuController(null, null);
  14. $controllers["AdController"] = new AdController(null, null);
  15. //Left Controllers
  16. $controllers["MenuLeftController"] = new MenuLeftController();
  17. $controllers["BookmakersLeftController"] = new BookmakersLeftController($address["side_action"], $address["side_params"], $address["side_controller"], $address["controller"]);
  18. $controllers["TypeLeftController"] = new TypeLeftController($address["controller"], $address["params"]);
  19. $controllers["RankLeftController"] = new RankLeftController($address["side_action"], $address["side_params"], $address["side_controller"], $address["controller"]);
  20. $controllers["ContestLeftController"] = new ContestLeftController($address["side_action"], $address["side_params"], $address["side_controller"], $address["controller"]);
  21. $controllers["StatsLeftController"] = new StatsLeftController(null, null);
  22. $controllers["RulesLeftController"] = new RulesLeftController(null, null);
  23. $controllers["PartnersLeftController"] = new PartnersLeftController(null, null);
  24. //Main Controler
  25. $controllers["MainController"] = new $address["controller"]($address["action"], $address["params"]);
  26. //Right Controlles
  27. $controllers["BestTypersRightController"] = new BestTypersRightController(null, null, $address["controller"]);
  28. $controllers["RankRightController"] = new RankRightController(null, null, $address["controller"]);
  29. $controllers["PopularRightController"] = new PopularRightController(null, null, $address["controller"]);
  30. $controllers["SurveysRightController"] = new SurveysRightController($address["side_action"], $address["side_params"], $address["side_controller"], $address["controller"]);
  31. $controllers["PartnersRightController"] = new PartnersRightController(null, null, $address["controller"]);
  32. $controllers["CalcController"] = new CalcController($address["side_action"], $address["side_params"], $address["side_controller"], $address["controller"]);
  33.  
  34.  
  35. $controllers["TailController"] = new TailController(null, null);
  36.  
  37. //Wyswietlanie wszystkich kontrolerow w odpowiedniej kolejnosci
  38. foreach ($controllers as $controller)
  39. $controller->__destruct();
  40. ?>
!*!
Kończę, bo za dużo spamu sie zrobiło i tak, poczytaj jakiś kurs PHP, bo brakuje Ci podstaw http://pl.wikibooks.org/wiki/Php jeśli chodzi o błąd indeksu, komunikat mówi jasno i już go wytłumaczyłem, jeśli chodzi o błędy poprzednie, to gdzieś masz białe znaki, lub źle zapisujesz plik.
bosmaciej
sprawdziłem i nie mam zielonego pijecia gdzie moz ebyc błąd

mam pytanie czy mozliwe jest ze taki błąd wyskakuje gdyż blokowany jest port 80 jeśli tak to jak odblokowac ten port questionmark.gif
Shido
Debuger wyrzuca błędy skryptu a nie "systemowe".
Gdybyś miał zablokowany port 80 to zapewne w ogóle byś strony nie widział.
!*!
Cytat
Po pierwsze: Cannot modify header - było milion razy na forum: sprawdź UTF-8 czy nie ma BOM przypadkiem, czy nie wysyłasz jakichś białych znaków itd.

A to sprawdziłeś?
bosmaciej
na postawionym serwerze wampserver strony nie widze wiec moze cos jest na rzeczy ?
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.