Diskuze: MVC - Na localhostu ok, na produkci cyklické presmerování

PHP PHP MVC - Na localhostu ok, na produkci cyklické presmerování American English version English version

Avatar
Paco
Člen
Avatar
Paco:

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
Matúš Petrofčík
Šéfredaktor
Avatar
Odpovídá na Paco
Matúš Petrofčík:

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  +1 7.1.2015 19:31
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Honza Bittner
Redaktor
Avatar
Odpovídá na Matúš Petrofčík
Honza Bittner:

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  +1 7.1.2015 19:37
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
Paco
Člen
Avatar
Odpovídá na Matúš Petrofčík
Paco:

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
Matúš Petrofčík
Šéfredaktor
Avatar
Odpovídá na Paco
Matúš Petrofčík:

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  +1 7.1.2015 19:57
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Odpovídá na Paco
Matúš Petrofčík:

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:

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

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

Nahoru Odpovědět 7.1.2015 21:45
Nesnáším {}, proto se jim vyhýbám.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Paco
David Čápka:

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í
+1 bodů
Řešení problému
Nahoru Odpovědět  +5 7.1.2015 22:29
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Odpovídá na Paco
Matúš Petrofčík:

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 Čápka
Paco:

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.