PHP, obrazky ze slozky
Ahoj, přítel mi nedávno napsal kód na galerii.
<?php
$slozka=opendir('.');
while($objekt=readdir($slozka))
{
if($objekt=="."||$objekt==".."||$objekt=="index.php")continue;
$soubor[]=$objekt;
}
if(!isset($_GET["strana"]))
{$_GET["strana"]=0;}
echo "<img src=\"".$soubor[$_GET["strana"]]."\" border=\"0\"><br>";
if(($_GET["strana"])!=0)
{echo "<a href=\"index.php?strana=".($_GET["strana"]-1)."\">zpet</a><br>";}
if(count($soubor)>($_GET["strana"]+1))
{echo "<a href=\"index.php?strana=".($_GET["strana"]+1)."\">dalsi</a><br>";}
?>
Je z něj vidět, že soubory se načítají z adresáře jako je php soubor.
Avšak, jak se snažím, nemůžu příjít na to, jak to udělat, aby se načítaly ze složky SOUBORY...
Jsem asi blbej
(začínám s php.)
?
Ahoj, to jsem samozřejmě zkoušel, zas takový začátečník v tomto oboru nejsem.
Nicméně, soubory, to načte, ale nezobrazí to obrázky - ale takový ten error(nevím jak to nazvat)
Koukni sem -
ERROR
Tak máš nesprávne nastavený atribút src elementu img. Doplň pred názov súboru to meno složky a pôjde to.
podívej se sem http://pc.poradna.net/q/view/848615-php-galerka?pa ge=r849181#r849181
Tuším že se jedná o úplně stejnou věc
Koukám, koukám, ale stále nechápu, co je tam špatně... ?
achjo :)
Děkuji, ale v čem je problém v kódu v otázce?
Chci to pochopit :D :)
abych pravdu řekl, moc jsem ho neštudoval, stačilo mi vidět
;) .. opendir ti navrací úplně celý obsah, zatímco pomocí glob() si můžeš filtrovat ;)
No, děkuji za radu a informaci, ale já bych raději proštudoval ,,můj,, kód
dej sem přímej odkaz na tento skript
Myslíš to takhle :
http://pc.poradna.net/q/view/850794-php-promenna-z -html-kodu?page=r850985#r850985
aha :) .. já myslel že má alespoň nějakej link, kde můžeme vidět výsledek :)
Adresu kde to tvoří, nalezneš zde:
http://pc.poradna.net/q/view/850441-php-rada-jedno ducha?page=r850495#r850495
Bohužel my se mu na tu jeho adresu nedostaneme .
Jak zde už napsal los:
Takže to napíšu znova pro lepší pochopení s analýzou jak dané chybě dospět, i když je vidět na první pohled.
Když ten kód trochu ořežu, aby po (prvním) načtení stránky fungoval, tak z něj zbude (plus doplním komentáře):
Po vygenerovaní stránky se koukni na zdrojový HTML kód, co to vygenerovalo a zkontroluj ho, kde jsou chyby.
(Pro ulehčení práce přiložím vygenerovaný zdrojový kód stránky:)
Opět si ho oříznu na to nejpodstatnější:
A zde mi už musí být jasné, kde je chyba => Cesta uvedená v src neobsahuje danou složku.
Takže pouze jenom do cesty doplním danou složku, změny ve zdrojovém kódu jsou tučně:
(Bohužel mě to nešlo vypsat jako php syntaxi se ztučněnými výrazy.)
Doufám, že jsi pochopil, kde je problém v kódu.
podívej se na glob() - navrací pole s adresami na soubory, které splňují kritérium v parametru. V tomto případě by to vypadalo takto
více info
stackoverflow
cowburn.info
Podíval jsem se na tu tvoji modifikaci a bohužel mi to nějak nefungovalo. Tak jsem to ještě jednou zmodifikoval:
tu mou verzi jsem neměl odzkoušenou na 100%...
Ovšem toto mi příjde lepší než opendir a readdir. (glob toto řeší za tebe a ještě filtruje)
Asi máš pravdu, ale tazatel:
Tak jsem rozepisoval ten starý kód, abych ho nepletl zase něčím jiným, a aby pochopil jak číst (jakékoliv) chybové hlášení a věděl, kde tam byla chyba.
(
)
Mimochodem jsem tam zapomněl v tom svém (tazatele) kódu nakonec napsat ještě příkaz closedir .
I když by teď měl být kód vyladěn, tvojí zásluhou, tak praxi zase nebude (teoreticky) fungovat, když uživatel použije třeba v názvu obrázku diakritiku, mezery, malá a velká písmena, a kdo ví co ještě. A zase je třeba to modifikovat (nebo zbuzerovat uživatele ).
Aby se toto ošetřilo (neberu jen diakritiku), tak je to otázka na mnohem více času a řádků než tu je ;). Osobně diakritiku a všechny znaky odstraňuju při nahrávání na web, takže při výpisu nemusím nic kontrolovat ani nic řešit. Prostě jen vypíšu
Již to není sice aktuální a už to mám celkem upravené, ale např.
v9pumnHS
Přesně víš o čem mluvím. Tenkrát, když jsem zplodil ten kód, tak jsem chtěl, aby to bylo co nejjednodušší na pochopení (a plně funkční po všech stránkách, což je celkem velký protiklad).
Škoda, že tak to nedělá i zákazník.
proto jim nedávám přístup na FTP a dám jim jen odkaz na formuláře kde si ty soubory můžou nahrát :D
Pak zpracovávám viz pastebin
Dělal jsem takový malý jednoduchý webík (nějaký obrázky texty, nic spešl) pro zákazníka, který už měl doménu a všechny náležitosti (kromě zdrojového kódu). Zákazník mi poskytl potřebné přistupovací údaje a já to vytvořil k jeho obrazu. Po pár měsících mi píše, že jsem mu to udělal špatně, a že mu to nefunguje. Neměl jsem páru o tom, že zákazník bude zkoumat můj jednoduchý zdrojový kód a pochopí ho natolik, aby dokázal tam změnit nějaké ty cesty. Cesty napsal správně, to mu nemohu křivdit, ale ta diakritika v nich můj systém zhroutila. Přitom tam stačilo jenom zakomponovat kódovaní řetězců do URL adres. Říkal mi, že dělal aktualizaci webu a třeba soubor "logo.jpg" přejmenoval (přes FTP) z důvodu, aby jeho nové jméno vystihovalo více jeho smysl na "Logo stránky.JPG".
To jen na vysvětlení na co jsem narazil.
na to není co říct
Hoši, děkuji, ještě bych měl prosbu, při zkoumání kódu
která z prom. je název aktuálního obrázku??
využij toto
Mrkám na to, když ,,vyechuji,, $soubor píše to chybu
Znamená to že mám prom. $soubor převést z array na string?
co máš v
V tom je číslo stránky (pořadí)
- je adresa s názvem obrázku, takže když použiju explode funkci (a jakoby to oříznu) tak to mám..
Nebo to jde jednodušeji ? :D
namísto
dej jen
a pošli sem výsledek
Děkuji Vám oboum za rady, už to jakš, takš, chápu :)
Notice: Undefined variable: soubor in C:\Program Files (x86)\EasyPHP-12.0\www\index.php on line 126
NULL
ok, chyba je v
Je to tím, že tam nic není. ve složce "soubor" je absolutně prázdno ;)
Aha, děkuji, každopádně jsem pochopil vše co jsem chtěl.
Děkuji moc, )
Ahoj, děkuji za radu, samozřejmě jsem zkoumal HTML kód který přehraje a viděl jsem <img src="family019.jpg" border="0"><br>.
Ale nenapadlo mě co s tím, děkuji za vysvětlení..