IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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.

Aktivity
Avatar
Paco
Člen
Avatar
Paco:7.1.2015 19:19

Zdravím hoši, mám takový delikátní problém. Predelal sem web na MVC architekturu, na localhostu šlape perfektne, ale když to nahraju a vyťukám URL http://victorygym.sk/, dojde k cyklickému presmerování na http://victorygym.sk/chyba a pořád dokola chyba. MVC je deláno podle zdejších tutoriálú. A nevím teď jestli to bude chyba v .htaccess s BASE nebo na hostingu nebo ve smerovaci. Vypadá to že to nemúže najít kontrolery. Nevíte v čem by to mohlo být? Tady je když tak .htacces a kdyz tak přidám další zdrojáky..teď nevím co konkrétního sem mám linknout :D

Options -Indexes

RewriteEngine On
RewriteBase /

# front controller
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]

AddType application/x-httpd-php .php .phtml
Odpovědět
7.1.2015 19:19
Gdy Ci smutno, gdy Ci źle. Jebnij format dysku C.
Avatar
Odpovídá na Paco
Matúš Petrofčík:7.1.2015 19:31

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 :)

Nahoru Odpovědět
7.1.2015 19:31
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na Matúš Petrofčík
Honza Bittner:7.1.2015 19:37

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. :D Ještě že mám ty gity a umí mi to přepsat na jedno kliknutí zase do původního stavu, hah... :D

Nahoru Odpovědět
7.1.2015 19:37
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Paco
Člen
Avatar
Odpovídá na Matúš Petrofčík
Paco:7.1.2015 19:40

Ahoj, dik za rýchlu reakciu :) Nepomohlo...po­pravde 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';
}
Editováno 7.1.2015 19:41
Nahoru Odpovědět
7.1.2015 19:40
Gdy Ci smutno, gdy Ci źle. Jebnij format dysku C.
Avatar
Odpovídá na Paco
Matúš Petrofčík:7.1.2015 19:57

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? :D

Nahoru Odpovědět
7.1.2015 19:57
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Odpovídá na Paco
Matúš Petrofčík:7.1.2015 20:04

aha už viem že tam je $_SERVER['REQU­EST_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 :D isto si uploadol všetky súbory? pozri sa cez ftp či tam naozaj máš napr. ChybaKontroler.php a podobne :D

Nahoru Odpovědět
7.1.2015 20:04
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Paco
Člen
Avatar
Odpovídá na Matúš Petrofčík
Paco:7.1.2015 20:15

Isto všetko :D 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 :D

Nahoru Odpovědět
7.1.2015 20:15
Gdy Ci smutno, gdy Ci źle. Jebnij format dysku C.
Avatar
Odpovídá na Paco
Michal Žůrek - misaz:7.1.2015 21:45

Tak si vypni ten redirect a vypiš si hodnoty proměnných.

 
Nahoru Odpovědět
7.1.2015 21:45
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Paco
David Hartinger:7.1.2015 22:29

Máš tam ten chyba kontroler? :D

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.

Editováno 7.1.2015 22:30
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
7.1.2015 22:29
New kid back on the block with a R.I.P
Avatar
Odpovídá na Paco
Matúš Petrofčík:7.1.2015 22:31

Vieš anglicky? Dúfam že hej :D

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_inclu­de_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? :)

Nahoru Odpovědět
7.1.2015 22:31
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Paco
Člen
Avatar
Odpovídá na David Hartinger
Paco:8.1.2015 15:21

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 díky hoši za Váš čas a ochotu :)

Nahoru Odpovědět
8.1.2015 15:21
Gdy Ci smutno, gdy Ci źle. Jebnij format dysku C.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 11 zpráv z 11.