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

Člen

Zobrazeno 39 zpráv z 39.
//= 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.
hodně ti dá, když si přečteš tento tutorial http://www.itnetwork.cz/php/mvc
Myslím že je to v OPP ktoré ja zatiaľ vedieť nechcem z osobných dvôvodou
nie je na skodu sa naucit OOP, lebo v OOP existuju vynimky, OOP pouziva aj novy ovladac pre databazy
áno viem o tom Je tu
niekto kto by mi vedel poradiť ?
No bez OOP toho moc nenakódiš... Prečo sa nechceš naučiť jeden z najdôležitejších princípov v programovaní, na ktorom je založené takmer všetko? http://www.itnetwork.cz/…php-tutorial Prečítaj si ten seriál, nie je to riešené objektovo.
Určite to pôjde bez OPP
Myslím si že je to podstatne ťahšie a jeden slúsený programátor mi
poradil pomaličky prejsť na OPP keĎ sa zoznámim s funkciami
Mám stejný dotaz, OOP zatím není můj kamarád. Pokud by někdo byl hodný a
poradil, byl bych vděčný, na OOP jsem se už koukál, a ztratil jsem se už
asi v 2 díle
NERS som čítal a odtiaľ ťahám inšpiráciu
Pro jednoduché weby se nemusí používat OOP.
Presne s tebou súhlasim
Nájde sa tu niekto kto pomôže ?
Zkus google a hledej "php nice url htaccess"
No pokud jsem to správně pochopil, mám dojem, že se ti to asi nepovede. Pokud je to opravdu v databázi, přistoupíš k tomu třeba takhle:
xxxx.sk/clanok.php?url=tomas-se-hraje
V clanok.php si pak z proměnné $_GET['url'] najdeš článek v databázi a vypíšeš ho. Pokud opravdu trváš ta této adrese, musíš si vytvořit soubor .htaccess s řádkem
RewriteRule clanok.php?tomas-se-hraje /clanok.php?url=tomas-se-hraje [L,QSA]
A mimochodem - OOP se určitě nauč a taky si ošetři ty vstupy Co kdyby někdo použil SQL
injection?
Samozrejme ošetrovať to budem na konci No http://www.itnetwork.cz/…php-tutorial tu je to pekne
spravené všimni si posledný img url hore
a žiadny rewrite tam nevidím
osetrovat vstup od uzivatelov, ci uz z formulara, alebo z adresoveho riadka by si mal hned a nie az na konci, aby si na to nezabudol
Jo samozřejmě Tak teda
.htaccess nepotřebuješ, ale já v tom posledním img vidím
neco.cz/editor.php?**URL**=navod
Důležité je tam to URL - značí přiřazení GET proměnné. Ty chceš
clanok.php?tomas-se-hraje
Tedy bez přiřazení nějaké proměnné. Chápeme se?
áno
metody (částečně i neobjektové) jsou popsané v tom tutorialu na který jsem uváděl odkaz, asi 2 díl.
Tak prima Klidně se ptej,
od toho tu jsme
A jak píše mkub, vstupy hned jak píšeš kód, zapomíná se na to a nějaký
zmetek ti může smazat celou databázi Bylo by taky dobré ošetřit,
jestli zadaná URL náhodou v databázi neexistuje
Pracujem na localhoste Tak
hneď ťa teda trošku "zneužijem" rád by som spravil to že po zapíse do
databázy sa mi v url podľa tej akú som zverejnil ukáže text čo som zadal
do inputov
Tak pokud chceš teda adresu clanok.php?url=tomas-se-hraje v tou souboru clanok.php můžeš použít tento jednoduchý script
<?php
require_once 'connect.php';
$_GET['url'] = addslashes(htmlspecialchars(strip_tags($_GET['url'])));
$query = mysqli_query($connect, "SELECT * FROM articles WHERE article_url='$_GET['url']'" );
$data = $query->fetch_object();
echo $data->article_title;
echo $data->article_content;
echo $data->article_url;
echo $data->article_description;
Samozdřejmě bys měl taky ošetřit jestli záznam v DB existuje atd.
Stačí keď nahradím môj code tým tvojim ?
Nevím, jestli jsem to pochopil správně To co jsem posílal dej do toho
souboru clanok.php - tím zajistíš výpis textu zadaného do inputu
Pokud se chceš přesměrovat na tu URL hned po odeslání článku dej pod
svůj kód
header("location: neco.cz/clanok.php?url=".$_POST['url']);
Jsem už dost nechápavý, to pivo dělá divy
v clanky.php som mal code ktorý som vložil do príspevku jedna ak ho nahradím tvojim stále to niako nefunguje
http://cubiq.org/…rl-generator
tu máš funkci, takže to url dej to toho toAscii() a budeš mit to co
chceš
Počkám na radu ConflictBoy a potom to možno skúsim
Ten kód co jsi posílal ty je na psaní článku. Kód co jsem posílal já
je na jejich výpis. Pokud chceš vypisovat ty články pod url
neco.cz/clanok.php?URL=nejaky-url tak ten můj kód hoď do souboru
clanok.php
A jak nefunguje? Vypisuje se nějaká chyba?
Při zápisu clanok.php?tomas-se-hraje stačí použít pro získání tomas-se-hraje
$_SERVER["QUERY_STRING"]
Pravda, to mě nenapadlo
Když už jsme u toho, tak jak pomocí GETka najdu v DB zápis, když je přefiltrovanej funkci např.:
toAscii($string);
?
Např. v DB je name=Dobrý večer, z toho mi funkce udělá v url
name=dobry-vecer.
Přes GET['name'] mi to samozřejmě vezme dobry-vecer, takže v DB mi to už
nic nenajde
Díky
Hmm no pokud jsem to pochopil správně, tak bys asi musel projet v DB
všechny názvy a hledat, kde se url rovná s názvem po projetí funkce
toAcii();
Neříkám, že je to nejlepší řešení, ale jak říkám, chlastám a už mi
to nemyslí
To mě taky napadlo, ale netuším jak projet všechny záznamy v DB funkci
toAscii() při hledání.
Klidně to počká, už se s tím patlám dlouho, takže není problém
počkát ještě
Jinak užij si to
Poměrně jednoduše
$nalez = array();
$query = SQL("SELECT id,name FROM articles");
while ($data = $query->fetch_object()){
if(toAscii($data->name)===$_GET['url']){
$nalez() = $data->id;
}
for($i=0;$i<count($nalez);$i++){
echo $nalez($i);
}
//for je pro tebe pro případ, že by tam bylo víc článků se stejným názvem.
Jinak teda by bylo asi nejlepší vytvořit v databázi nový sloupec s url
adresami, vytvořit podobný script a naflákat tam url adresy podle názvu,
protože pokaždé prohledávat celou databázi je trochu nepraktické
Zítra mě možná napadne něco lepšího a dám vědět
A když už se to řeší tak prasácky, není lepší ukládat to do souboru pak je načítat?
V DB si udělej sloupec třeba url
a do něj ukládej ty hodnoty
jako "dobry-vecer".
To mě napadlo jako první, ale zdálo se mi to nějak zbytečné, proto jsem hledal jinou možnost, pak mě napadlo prohledat celý sloupec name v DB, ale nevěděl jsem jak to udělat, díky ConflictBoy který mi ukázal jak to prohledat mi to funguje.
Tohle je asi nejlepší neobjektová možnost. Asi se budu muset opravdu
začít pořádně učit OOP i když mi vůbec nejde
to, čo ti ukázal ConflictBoy funguje, ale vyberá to každý jeden riadok. V prípade, že by ich tam bolo 5000+ mohol by sa ti spomaliť web. Ideálne riešenie, tak ako to riešia všetky stránky s touto funkciou, je další stĺpec, do ktorého by si ukladal hodnotu toho url
Určitě nevybírej všechny řádky jen proto, abys použil jeden. Řešení
s přidáním nového sloupce je jednak mnohem méně zátěžové na server,
tak i jednodušší pro tebe (místo procházení pole a používání různých
funkcí ti bude stačit jeden SELECT a jeden fetch)
Teď mi to myslí lip než v 1 noci
Jop vyřeším to tím dalším sloupcem Díky
Zobrazeno 39 zpráv z 39.