Diskuze: Jazykové mutace
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 21 zpráv z 21.
//= 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.
Díky, přesně tento článek jsem taky našel, zkoušel a nepovedlo se mi
to. Jako logicky mi taky přišlo dá tam druhý parametr, ale nefungovalo mi to
nebo jak by to bylo potom zapsáno v navigaci?
Když vezmu svoje české menu, tak mám jenom názvy souborů v odkazech,
takto:
<a class="uvod-nav" href="domu" >Úvod</a>
Ale jak tam potom přidám ten druhý parametr lang="it"?
Vezmu že mám url example.com/?page=reference&id=25
RewriteRule ^reference/([a-zA-Z0-9_-]+)/$ ?page=reference&id=$1
RewriteRule ^reference/([a-zA-Z0-9_-]+)$ ?page=reference&id=$1
Pak url vypadá -> example.com/reference/25
PS: Aby to fungovalo musíš zapnout Mod Rewrite:
RewriteEngine On
PS1: Doufám že jsem se nikde nesekl, jelikož jsem to použivál už docela
dávno
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^([^/]*)$ /index.php?str=$1 [nc,L,QSA]
Pak teda jak jsem psal, do href"" přijde jenom název souboru, bez koncovky
php, ale teď bych teda měl mít v href to jak jsi psal? toto například?
?page=reference&id=25
a toto je tam proč prosim tě? ^reference/([a-zA-..... to musim zapsat pro
každou podstránku?
Ano pro každou.
To ^reference ti vlastně nahradí "/?page=reference&id="
Takže místo toho máš jenom /reference/
Omlouvám se, ale pořád mi to nefunguje
Já už vyzkoušel takových verzí a funguje mi jenom ta jedna s jedním
parametrem a tohle vůbec. Nemůže to být tim, že to mám na locale?
MOhl bys mi prosím Tě ukázat jednu položku, jak by teda byla v htaccess a jak v href=""...jestli tam nedělám nějakou koninu.
Pokud máš v url vice parametru tak to dáš takto:
id=$1&id1=$2&id2=$3
v htaccess takto:
RewriteRule ^reference/([a-zA-Z0-9_-]+)/$ ?page=reference&id=$1
RewriteRule ^reference/([a-zA-Z0-9_-]+)$ ?page=reference&id=$1
v href takto>
/reference/id
Např.:
/reference/25/
Já to četl, ale ještě se v tom dost ztrácím no myslel jsem že to pomocí htacces
bude jednodušší ale jak je vidět, tak neni, protože mi to stále nefunguje
:-/
Ono to je jednoduchý, jen to musíš pochopit
1 to uděláš správně a hned se budeš smát jak je to easy.
Jinak, radši se opravdu uč OOP -> MVC -> Framework (ja použivám symfony2, ale v Česku je in asi Nette)
Pár krát si něco zkus a hned to pochopíš jelikož jen číst teorii
nestačí(většině).
Konečně se mi to asi podařilo rozchodit
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^([^/]*)$ /index.php?str=$1 [NC,L,QSA]
RewriteRule ^home/([a-zA-Z0-9_-]+)/$ ?str=home&lang=$1
RewriteRule ^home/([a-zA-Z0-9_-]+)$ ?str=home&lang=$1
RewriteRule ^chi-siamo/([a-zA-Z0-9_-]+)/$ ?str=chi-siamo&lang=$1
RewriteRule ^chi-siamo/([a-zA-Z0-9_-]+)$ ?str=chi-siamo&lang=$1
RewriteRule ^azienda/([a-zA-Z0-9_-]+)/$ ?str=azienda&lang=$1
RewriteRule ^azienda/([a-zA-Z0-9_-]+)$ ?str=azienda&lang=$1
...a tak dál
Akorát jediný co jsem musel ještě udělat, tak ve většine linků na
skripty a CSS jsem musel dát před cestu lomítko, jde to nějak řešit? než
to manuálně přidávat? Jinak už to funguje bezva, takže díky moc
Jinak MVC a OOP se učim, ale ještě v tom nejsem moc schopný něco
vytvořit. Ani neni nikdo kdo by mě trochu navedl, i když zdejší články
jsou super, ale někdy mě něco uplně nedojde a tak s tim dost bojuju,
Především se bojim zabezpečení databáze. Navíc musim pořešit nějak to,
že když spadne na serveru databáze, tak mi to vypíše hlášku a v ní jsou
přihlašovací údaje. Ale to je už OT, takže ještě jednou díky moc
Zkus nahradit:
RewriteRule ^([^/]*)$ /index.php?str=$1 [NC,L,QSA]
RewriteRule ^home/([a-zA-Z0-9_-]+)/$ ?str=home&lang=$1
RewriteRule ^home/([a-zA-Z0-9_-]+)$ ?str=home&lang=$1
RewriteRule ^chi-siamo/([a-zA-Z0-9_-]+)/$ ?str=chi-siamo&lang=$1
RewriteRule ^chi-siamo/([a-zA-Z0-9_-]+)$ ?str=chi-siamo&lang=$1
RewriteRule ^azienda/([a-zA-Z0-9_-]+)/$ ?str=azienda&lang=$1
RewriteRule ^azienda/([a-zA-Z0-9_-]+)$ ?str=azienda&lang=$1
Tímto:
RewriteEngine on
RewriteRule ^([a-zA-Z0-9_-]+)$ /?str=$1 [QSA,NC,L]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ /?str=$1&lang=$2 [QSA,NC,L]
RewriteRule ^(.+)/$ /$1 [R,L]
Poslední řádek ti zajistí, že ti to z url na konci s / přesměruje na url bez lomítka.
/home/cs/ -> /home/cs
Ahoj, tvoje řešení funguje také, paráda. Kluci díky moc
Jen že jsem zvědavý, proč najednou přestala fungovat cesta ke stylům
href="css/style.css" a musel jsem před všechny vložit lomítko?
Díky
Tys tam vypsal všechno
Prostě místo parametru dáš $1, $2, $3, atd...
Takže vlastně vše se dalo zkrátit na 2 řádky jak ti to napsal Mara
Jinak nevím proč tam musíš dávat "/" mě to šlo ok.
měl jsem to ve složce takhle takhle :
root->css
->js
->scripts
Aha no proto jsem se
ptal jestli to musim vypsat pro každou podstránku
tak jsem to vypsal no
nevadí, aspoň mám cvik
já mám taky v rootu index.php a ve složkách, CSS, JS, Images a podobně.
Všude jsem musel dát lomítko před cestu takže:
href="/css/style.css"
jinak mi naběhly stránky bez stylů
To je síla cest a není dobré ji podceňovat.
/ a bez lomítka bere cestu z aktuálního adresáře.
Když máš tedy url www.priklad.cz/home/cs tak ti to bere soubory jako s adresáře cs, který však není. Tudíž musíš říci, že musí brát soubory z nadřazenýho/výchozího adresáře, pokud se nejedná o podložky apod. ../.
EDIT: Vlastně ./ je stejné jako / či bez, aktuální adresář.
Takže ../, to říká ajko by nadřazený adresář.
Zamotal jsem se do toho..
/ není to samé, vždy odkáže na kořenový..
Jo takhle, tak už je mi to jasnější každopádně diky moc za ochotu a
trpělivost
až trochu
proniknu do OOP tak to zkusim vyřešit parsováním adresy. Asi bych věděl
trochu jak, ale zase nevim jak bych tam řešil italštinu, no prostě si v tom
OOP nejsem vubec jistý. Zatim to řeším větvením if/else.
Ještě jednou diky
Zobrazeno 21 zpráv z 21.