Vytvoril som galériu s nahladmi na fotky. Lenze ku kazdemu nahladu pmam zvlast stranku s velkou fotkou. Neslo by to nejakym peknym php skriptom ktory bude mat jednu stalu stranku a do nej vlozi fotku na ktoru bol kliknuty odkaz?
Dakujem


Kód: Vybrat vše
<img src="'.echo("$id").'.jpg" dalsi_parametry>
Parse error: syntax error, unexpected '<' in /mnt/storage/users/l/u/b/luboss/gallery/showfoto.php on line 3
Kód: Vybrat vše
<?
<img src="'.echo("$id").'.jpg">
?>


sovicka píše:Tak jsem přeci jenom nezapoměl
Tohle si umísti na začátek stánky, kde budeš chtít náhledy používat:A tímto potom vyvoláš náhled obrázku:Kód: Vybrat vše
<?php include "generator.php"; ?>Zde je kód souboru generator.php:Kód: Vybrat vše
<?php ShowImage("obrazek.jpg"); ?>Má to pár nastavení (vrchní řádky), ale taky dost neodladěností se kterými se mi nechtělo camrat:Kód: Vybrat vše
<?php function ShowImage($file) { $orig_path = "photos"; // adresar s obrazky $thumb_path = "thumb"; // adresar s nahledy $thumb_height = 200; // max vyska nahledu $quality = 100; // nastaveni kvality jpeg souboru (0-100) $orig_img = "".$orig_path."/".$file.""; $thumb_img = "".$thumb_path."/".$file.""; if(is_file($orig_img)) { //existuje vubec soubor? $orig_dimensions = getimagesize($orig_img); if(is_file($thumb_img)) { //nemame uz nahled hotovy? echo "<img src="".$thumb_img."" alt="">\n"; } else { //kdyz ne tak si ho vytvorime $expl = explode(".",$file); //rozdelime si nazev a priponu $ext = $expl[1]; //vezmeme si priponu switch ($ext) { //podle pripony pouzijeme funkci case "jpg": case "jpeg": $big = imagecreatefromjpeg($orig_img); break; case "png": $big = imagecreatefrompng($orig_img); break; case "gif": $big = imagecreatefromgif($orig_img); break; } $bw = imagesx($big); $bh = imagesy($big); $ratio = $bw / $bh; //spocitame si pomer stran $sw = $thumb_height * $ratio; //zjistime sirku maleho obrazku $sh = $thumb_height; $small = imagecreatetruecolor($sw,$sh); //vytvorime si truecolor sablonu imagecopyresampled($small,$big,0,0,0,0,$sw,$sh,$bw,$bh); //zmensime obrazek imagejpeg($small,$thumb_img,$quality); //ulozime obrazek ImageDestroy($small); //uvolnime misto v pameti ImageDestroy($big); echo "<img src="".$thumb_img."" alt="">\n"; } } else { echo "Nenalezeno!\n"; } } ?>
-veškeré soubory se převedou na jpeg formát a proto např. png nebo gif ztratí průhlednost (stejně jako u minulého skriptu)
-soubory menší než maximální rozměr se zvětší na jeho velikost (dtto)
-pokud změníš obrázek, musíš smazat i jeho náhled, aby se taky změnil (to není chyba, to je featura)
-jelikož nyní budeš zapisovat soubory, dej si pozor na nastavení správných práv (CHMOD 777) na FTP k adresáři, do kterého chceš náhledy ukládat
A pár vylepšení oproti starému skriptu:
-menší zátěž (skript je volán jen jednou a poté se provádí jen jeho vnořená funkce) + (skript si odkládá náhledy, pokud už náhled existuje, nový nevytváří = menší zátěž serveru)
-nastavuje se max výška a ne šířka (většinou ti strukturu stránky rozbije soubor moc vysoký než moc široký)
-místo černého čtverce o při nenalezeném souboru vypíše "nenalezeno!" - dá se vyměnit třeba za defultní obázek - viz konec skriptu.
-příponu nezjišťuje z posledních tří znaků, ale z textu za tečkou - takže už můžeš používat .jpg i .jpeg (jak je to správně neDOSově), ale na oplátku nesmíš ve jménech souborů používat tečku, jinak se vystavuješ riziku chyby...


Podivej se na co se zeptal. Na to dostal odpoved.sovicka píše:[CZ]Airwolf[OC]: to jsi se zbláznil? takhle zmatkovitý post který vůbec nepomáhá tématu jsem dlouho neviděl! Pokud máš nedostatek příspěvků, běž si to nahonit třeba na smetiště. A rady tipu "php.net ti poradí" jsou člověku, který očividně v životě nedělal s PHP úplně k ničemu...
Cili vlozi fotku podle odkazu. O kompletni galerii vcetne generovani thumbnailu tam nebyla rec. Takze bys mel trosku v tech emocich dost pribrzdit. Dostal odpoved na svou otazku, nic vic, nic min.Neslo by to nejakym peknym php skriptom ktory bude mat jednu stalu stranku a do nej vlozi fotku na ktoru bol kliknuty odkaz?

ne, nedostal, toto co jsi mu plácnul jako odpoveď vůbec nic neřeší.[CZ]Airwolf[OC] píše:URL> velkyobrazek.php?id=XXKód: Vybrat vše
<img src="'.echo("$id").'.jpg" dalsi_parametry>

Vzdyt pouzivam globalni promennou. Tak proc na ni odkazujes ? Vis snad, ze ma treba zakazany "register_globals" ? Ten uryvek kodu je funkcni, priklad jeho pouziti jsem doplnil v 2.postu.sovicka píše:ne, nedostal, toto co jsi mu plácnul jako odpoveď vůbec nic neřeší.[CZ]Airwolf[OC] píše:URL> velkyobrazek.php?id=XXKód: Vybrat vše
<img src="'.echo("$id").'.jpg" dalsi_parametry>
dotaz je jasný, hledá skript který by mu odstranil přehršle html souborů ze statické galerie (která se většinou sestává z náhledů a poté miliardy samostatných stránek s velkou fotkou uprostřed) a chtěl to vyřešít php skriptem.
Tím, že mu tady plácneš úryvek kódu, který navíc nebude fungovat (slyšel jsi třeba o globálních proměných?) bez jakéhokoliv vysvětlení nikomu nepomůžeš.
Já jsem v emocích stále klidný, jen ti tu dokazuji, že tvoje posty mají nulovou informační hodnotu.

Ne, nepoužíváš globální proměnnou, používáš proměnnou $id, která je závislá na nastavení register_globals na ON .... byt tebou tak se naucim pouzivat superglobalni pole $_GET (nebo podle typu odeslani $_POST), protoze register_globals na on ti nikdo na hostingu nezaruci a krome toho PHP6 nebude mit register_globals vubec[CZ]Airwolf[OC] píše:Vzdyt pouzivam globalni promennou. Tak proc na ni odkazujes ? Vis snad, ze ma treba zakazany "register_globals" ? Ten uryvek kodu je funkcni, priklad jeho pouziti jsem doplnil v 2.postu.
Btw: hledal skript na zobrazeni jedne fotky dle url == 1 radek. Ne skript na celou galerii.
Mimochodem, tvuj skript pochopi jeste hur nez muj.

Používání globálních proměnných je jedna z největších prasáren a ty mu to ještě radíš[CZ]Airwolf[OC] píše:Vzdyt pouzivam globalni promennou.

Superglobalni pole $_GET, cili $id je stale globalni. Je globalni, pokud neni definovana pouze v funkci. To, ze PHP mrsi vyznam mezi globalni/lokalni, je vec jina, to se tu resit nebude, takze skript jsem mel spravne.matajon píše:Ne, nepoužíváš globální proměnnou, používáš proměnnou $id, která je závislá na nastavení register_globals na ON .... byt tebou tak se naucim pouzivat superglobalni pole $_GET (nebo podle typu odeslani $_POST), protoze register_globals na on ti nikdo na hostingu nezaruci a krome toho PHP6 nebude mit register_globals vubec[CZ]Airwolf[OC] píše:Vzdyt pouzivam globalni promennou. Tak proc na ni odkazujes ? Vis snad, ze ma treba zakazany "register_globals" ? Ten uryvek kodu je funkcni, priklad jeho pouziti jsem doplnil v 2.postu.
Btw: hledal skript na zobrazeni jedne fotky dle url == 1 radek. Ne skript na celou galerii.
Mimochodem, tvuj skript pochopi jeste hur nez muj.
Kód: Vybrat vše
<?php ShowImage("obrazek.jpg"); ?>

cokoliv co používá register_globals je prasárna[CZ]Airwolf[OC] píše:Ad Smith> Fakt ? Forum tez pouziva globalni promenne. Takze forum je prasarna prvniho stupne ?

Kód: Vybrat vše
<img src="<?php echo("$id");?>.jpg">
CMS Faethon Blog Editionmoravcik10 píše:PS: Bude to asi off topic ale nevedeli by ste o niecom takom co by som mohol vlozit na stranku ako dennicek (Dana osoba sa prihlasi, napise si nejaku spravu a ta sa ulozi do MySQL a bude tam)? Len nie zas mega projety typu wordpress a tak.

Kód: Vybrat vše
galeria.php?obrazok=obrazok&site=adresar&sirka=1024&vyska=768Kód: Vybrat vše
galeria.php?obrazok=obrazok&site=adresarKód: Vybrat vše
<object classid="clsid:D27CDB6E-AE6D-11CF-96B8-444553540000" id="obj1" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" border="0" height="800" width="600" >
<param name="movie" value="<?php echo $_GET['site'] ?>/<?php echo $_GET['obrazok'] ?>.swf">
<param name="quality" value="High">
<embed src="<?php echo $_GET['site'] ?>/<?php echo $_GET['obrazok'] ?>.swf" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" name="obj1" height="800" width="600" ></object>