Diskuze: MVC - Na localhostu ok, na produkci cyklické presmerování
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 11 zpráv z 11.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
za prvé Options skús ešte pridať
Options +FollowSymLinks
inak ako prvé ma napadlo, že tvoje php skripty nemusia mať prístup do zložky v ktorej sú kontrolery... ale to asi bude hlúposť, lebo by sa ti nenačítal ani RouterKontroler
nemáš nejakú chybu v podmienke na kontrolu existencie Kontrolerov?
Som zvedavý čím to je
Náhodou jsem přesně tento problém také teďka řešil, takže díky za
radu.
Jsem tu přepsal snad všechny soubory, přenastavoval server... Chjo. Ještě že mám ty gity a umí
mi to přepsat na jedno kliknutí zase do původního stavu, hah...
Ahoj, dik za rýchlu reakciu Nepomohlo...popravde seriem sa stým dnes už celý deň a
vyskúšal som toho už dosť. No čo som asi zistil že v Kontroler.php je tá
podmienka ktorá by mala z 1 parametru v URL spraviť kontroler a keď sa jej to
nedarí tak presmeruje na chybu...ale skúšal som aj celý kontroler
prekopírovať na ten z tutoriálov a nič...ide ma z toho už poraziť
public function spracuj($parametre)
{
$naparsovanaURL = $this->parsujURL($parametre[0]);
if (empty($naparsovanaURL[0]))
$this->presmeruj('clanok');
// kontroler je 1. parametr URL
$triedaKontroleru = $this->pomlckyDoTavejNotacie(array_shift($naparsovanaURL)) . 'Kontroler';
if (file_exists('kontrolery/' . $triedaKontroleru . '.php'))
$this->kontroler = new $triedaKontroleru;
else
$this->presmeruj('chyba');
// Volání controlleru
$this->kontroler->spracuj($naparsovanaURL);
// Nastavení proměnných pro šablonu
$this->data['titulok'] = $this->kontroler->hlavicka['titulok'];
$this->data['popis'] = $this->kontroler->hlavicka['popis'];
$this->data['klucove_slova'] = $this->kontroler->hlavicka['klucove_slova'];
$this->data['spravy'] = $this->vratSpravy();
// Nastavení hlavní šablony
$this->pohlad = 'layout';
}
Paco:
$naparsovanaURL = $this->parsujURL($parametre[0]);
by nemala byť
$naparsovanaURL = $this->parsujURL($parametre);
alebo mi napíš čo vlastne máš v tej premennej $parametre (alebo $parametre[0]) z ktorej chceš naparsovať url.
Honza Bittner: Takže tebe som pomohol?
aha už viem že tam je $_SERVER['REQUEST_URI'] pretože pri spustani Routeru je toto
$smerovac->zpracuj(array($_SERVER['REQUEST_URI']));
ale, ako tak pozerám na ten kód tak tam fakt nevidím dôvod prečo by to
na localhoste malo ísť, ale na serveri nie isto si uploadol všetky
súbory? pozri sa cez ftp či tam naozaj máš napr. ChybaKontroler.php a
podobne
Isto všetko nič
nechýba neviem čo stým..už som na prášky z toho..najlepšie natom je že
to ladím všetko LIVE
Tak si vypni ten redirect a vypiš si hodnoty proměnných.
Máš tam ten chyba kontroler?
EDIT: Ještě mě napadá jestli se nejmenuje jinak (malá/velká písmena). Na localu ti to na winech půjde, ale na linuxu na produkci ti to hodí že neexistuje.
Vieš anglicky? Dúfam že hej
About file_exists() Php.net states that
This function returns FALSE for files inaccessible due to safe mode restrictions. However these files still can be included if they are located in safe_mode_include_dir.
This could explain the fact the the inclusion works and the existance check doesn't.
http://www.php.net/…e-exists.php
Takže: Môže byť, že tie súbory existujú, ale sú inaccessible -
nedostupné a tak ti funkcia file_exists() stále vracia false. Takéto súbory
sa ale dajú naincludovať, preto ti funguje autoloader. Z toho mi vyplýva že
máš zle nastavený hosting? asi?
Aha, Dejv nato kápnul...púvodne jsem měl kontrolery pojmenované takhle -
chybaKontroler...skusil jsem to přepsat na ChybaKontroler a všechno
velbloudí notací a šlape to... uf to byl ale headache díky hoši za Váš čas a
ochotu
Zobrazeno 11 zpráv z 11.