NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
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í.
Funkce, kterou se snažíš použít je dostupná pouze pro registrované uživatele. Buďto se přihlas nebo si zdarma vytvoř nový účet.

Diskuze – Lekce 2 - .htaccess, autoloader a obecný kontroler

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
pemap
Člen
Avatar
Odpovídá na dusekpetrcb
pemap:2.9.2014 14:07

Ano, tak jak píšeš: Do RewriteBase píšeš cestu, kde máš uložen projekt, od kořenové složky localhostu - pro přehlednost a jednoduchost, každý projekt v jiném adresáři...

Jinak co se týká druhého dotazu, tak nevím, zda jsem tě správně pochopil správně...

Soubor .htaccess

# Zapnuti mod_rewrite
RewriteEngine On

# Adresar, ze ktereho se budou brat stranky pro mod_rewrite.
RewriteBase /app1/

Soubor index.php v adresáři app1

<?php

function getURL()
{
        return filter_input(INPUT_GET, "url");
}

$url = getURL();

if (empty($url) || ($url === NULL)) {
        echo "URL nebylo specifikovano.<br>";
} else {
        // echo "URL: " . $url . ".<br>";
        header("HTTP/1.1 301 Moved Permanently");
        header("Location: tajna.php");
        header("Connection: close");
}

Soubor tajna.php v adresáři app1, na který se dostaneš po zadání hodnoty do proměnné url v adrese [http://localhost/app1/index.php?…]

<?php
echo "Jsi na tajne strance.";
 
Odpovědět
2.9.2014 14:07
Avatar
bestatomas
Člen
Avatar
Odpovídá na Libor Šimo (libcosenior)
bestatomas:9.2.2015 22:58

Také mě to nefungovalo. Mám HTTP server Apache 2.2 a zprovoznil jsem to po odkomentování příkazu v httpd.conf. Jedná se o příkaz LoadModule rewrite_module modules/mod_rew­rite.so.
Poté mi to začlo běhat bez chyb.
Návod viz zde: http://tildemark.com/…s-on-apache/

 
Odpovědět
9.2.2015 22:58
Avatar
antoninfoltyn:13.3.2015 22:20

Zdravím,

extract($this->data);

Způsobí že proměnné z pole $thist->data můžu použít v šabloně rozlozeni.phtml ale jak docílit toho, aby stejné proměnné šly použít i ve vnořeném pohledu? Tedy když z pohledu rozlozeni.phtml voláme opět:

$this->kontroler->vypisPohled();

Už se s tím peru půl dne a nějak se ztrácím. :-)

Respektive dotaz jinak; jak předám vnořenému pohledu (napři chyba.phtml) data z jeho kontroleru (např. chybaKontroler­.php)

 
Odpovědět
13.3.2015 22:20
Avatar
Odpovídá na antoninfoltyn
Matúš Petrofčík:13.3.2015 23:10

predaj podkontroleru premenné z kontroleru, pokiaľ je premenná $this->kontroler->data dostupná z vonku (public, verejná).

$this->kontroler->data = $this->data;

ale bacha aby si si neprepísal $this->data v podkontroleru

tak to môžeš spraviť aj naopak

$this->data = $this->kontroler->data;

//edit: aha, ty sa pýtaš asi na niečo iné... :

jednoducho v chybaKontroler.php pridaj premenné do $this->data

$this->data['nazov'] = 'hodnota';

a potom sa ti extract-nu do chyba.phtml a normálne ich vypíšeš napríklad ako

<?=$nazov?>
Editováno 13.3.2015 23:12
Odpovědět
13.3.2015 23:10
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Odpovídá na Matúš Petrofčík
antoninfoltyn:14.3.2015 0:06

Díky za reakci! :-) Jednoduché jak facka ale totálně jsem se zacyklil.

Potřeboval jsem z 'SmerovacKontro­ler.php' dostat proměnné až do vnořeného pohledu 'chyba.phtml'. A díky Tobě se povedlo.

$this->kontroler->data['nazev'] = 'hodnota';

Díky!

 
Odpovědět
14.3.2015 0:06
Avatar
filipfr
Člen
Avatar
filipfr:14.3.2015 15:37

Ahoj, mě nějak uniká smysl té fce extract($this->data);

 
Odpovědět
14.3.2015 15:37
Avatar
David Hartinger
Vlastník
Avatar
Odpovědět
14.3.2015 15:53
New kid back on the block with a R.I.P
Avatar
filipfr
Člen
Avatar
Odpovídá na David Hartinger
filipfr:14.3.2015 16:23

Díky, jenom, jestli jsem to správně pochopil, tak tahle operace je tam jen proto, abych v šabloně mohl použít "</strong><?= $promenna ?>" místo "
</strong><?= data['promenna'] ?>"

 
Odpovědět
14.3.2015 16:23
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na filipfr
David Hartinger:14.3.2015 16:37

Přesně tak.

Odpovědět
14.3.2015 16:37
New kid back on the block with a R.I.P
Avatar
antoninfoltyn:15.3.2015 15:22

Ještě dotaz o_O

Vím jak předám data z 'SmerovacKontro­ler.php' nebo 'NejakyKontro­ler.php' do pohledu. Ale nedaří se mi předat / poslat data z 'SmerovacKontro­ler.php' do 'NejakyKontro­ler.php'.

Teoreticky by mělo fungovat:

V 'Kontroler.php' jsem si vytvořil další proměnnou:

protected $dataProNejakyKontroler;

A po vytvoření dané instance NejakyKontroler.php se z 'SmerovacKontro­ler.php' snažím předat 'nejake-data';

$this->kontroler->dataProNejakyKontroler = 'nejake-data';

Bohužel v 'NejakyKontro­ler.php' se k nim nemohu dostat.

Specificky potřebuji předat další části URL z 'SmerovacKontro­ler.php' příslušnému kontroleru aby s nimi mohl pracovat dál

Díky za nakopnutí. ;)

Editováno 15.3.2015 15:24
 
Odpovědět
15.3.2015 15:22
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 10 zpráv z 124.