Stránka 1 z 1
Fotogaleria v PHP
Napsal: úte 30. led 2007, 12:12
od moravcik10
Potreboval by som pomoct zo skriptom na PHP.
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

Napsal: úte 30. led 2007, 12:31
od [CZ]Airwolf[OC]
URL> velkyobrazek.php?id=XX
Kód: Vybrat vše
<img src="'.echo("$id").'.jpg" dalsi_parametry>
Napsal: úte 30. led 2007, 12:47
od moravcik10
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">
?>
Poprosim poopravit kod lebo v php som neni manik
Napsal: úte 30. led 2007, 13:03
od [CZ]Airwolf[OC]
Jezis jaky je rozdil mezi HTML a PHP kodem ? Jak se mezi sebou prepinaji ? Jak jsi pak mohl udelat nahledovou galerii ? ...
a]
echo "<img src=\"".echo("$id").".jpg\"> ";
b]
<img src="<?php echo("$id");?>.jpg">
c]
echo "<img src=\"$id.jpg\">";
Moznosti je spousta.
www.php.net je tvuj pomocnik...
Napsal: úte 30. led 2007, 13:05
od moravcik10
Galeriu robil kamarat v CSS
Napsal: úte 30. led 2007, 13:54
od malidian
A nechceš použít tohle? Stvořil to sovicka, než-li jsem přešel na redakční systém, tak jsem to používal...
Snad proti tomu nic mít sovicka nebude.
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:
Zde je kód souboru generator.php:
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";
}
}
?>
Má to pár nastavení (vrchní řádky), ale taky dost neodladěností se kterými se mi nechtělo camrat:
-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...
Napsal: úte 30. led 2007, 18:02
od sovicka
[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...
verntom: jo, sice jsi mu poradil dobře, ale tohle byl pouze "rychlobastl" pro tvoje potřeby, ale jak to tak zpětně prohlížím, mohlo by to fungovat i tady
moravcik10: můžeš zkusit ten můj skript co sem nadhodil verntom, pokud ti bude vyhovovat, klidně ho používej - pokud ne, stačí se porozhlédnout třeba zde
http://www.hotscripts.com/PHP/Scripts_a ... index.html
pečlivě si to projdi - je jich tam více než dost - pro tovji potřebu bude imho nejlepší malý skriptík o pár souborech než velká galerie typu coppermine

Napsal: úte 30. led 2007, 18:48
od [CZ]Airwolf[OC]
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...
Podivej se na co se zeptal. Na to dostal odpoved.
Neslo by to nejakym peknym php skriptom ktory bude mat jednu stalu stranku a do nej vlozi fotku na ktoru bol kliknuty odkaz?
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.
Napsal: úte 30. led 2007, 19:01
od sovicka
[CZ]Airwolf[OC] píše:URL> velkyobrazek.php?id=XX
Kód: Vybrat vše
<img src="'.echo("$id").'.jpg" dalsi_parametry>
ne, nedostal, toto co jsi mu plácnul jako odpoveď vůbec nic neřeší.
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.
Napsal: úte 30. led 2007, 19:11
od [CZ]Airwolf[OC]
sovicka píše:[CZ]Airwolf[OC] píše:URL> velkyobrazek.php?id=XX
Kód: Vybrat vše
<img src="'.echo("$id").'.jpg" dalsi_parametry>
ne, nedostal, toto co jsi mu plácnul jako odpoveď vůbec nic neřeší.
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.
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.
Napsal: úte 30. led 2007, 19:58
od matajon
[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.
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

Napsal: úte 30. led 2007, 20:09
od Smith
[CZ]Airwolf[OC] píše:Vzdyt pouzivam globalni promennou.
Používání globálních proměnných je jedna z největších prasáren a ty mu to ještě radíš
díky bohu, že v PHP6 nic jako globálná proměnné nebudou.
Napsal: úte 30. led 2007, 20:14
od [CZ]Airwolf[OC]
matajon píše:[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.
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

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.
Mimochodem, v sovickove skriptu od verntoma vubec neni ukazano, jak to ma tazatel pouzit.
Mu asi tezko rekne, co ma dat misto "obrazek.jpg", o pristupu pres pole promennych tez ani slovo.
Takze
Ad Smith> Fakt ? Forum tez pouziva globalni promenne. Takze forum je prasarna prvniho stupne ?
BTW> jakkykoli skript/program nefunguje jen na lokalnich promennych. A jak jsem rekl, to ze PHP se snazi maskovat globalni promenne specialnim polem, radsi nebudu komentovat.
Napsal: úte 30. led 2007, 20:21
od matajon
To je sice hezky, ale kdyz budou vyply register_globals, tak ti je promenna $id celkem na hovno ...
Napsal: úte 30. led 2007, 20:33
od Smith
[CZ]Airwolf[OC] píše:Ad Smith> Fakt ? Forum tez pouziva globalni promenne. Takze forum je prasarna prvniho stupne ?
cokoliv co používá register_globals je prasárna
Napsal: úte 30. led 2007, 22:52
od moravcik10
heh

ako pozeram rozbehol sa tu nejaky pokec ale skoda ze tomu co tu pisete nerozumiem.
Pomohol mi:
Kód: Vybrat vše
<img src="<?php echo("$id");?>.jpg">
O ostatnom nemam ani sajny.
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.
Napsal: úte 30. led 2007, 23:25
od Smith
moravcik10 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.
CMS Faethon Blog Edition
Napsal: čtv 31. kvě 2007, 16:42
od moravcik10
Zdravim znova
Chcel by som pomoct este s jednym skriptom
Rozmery flashov by som potreboval spravit tak ze pokial nieje v adrese zadane inak tak velkost bude 800x600
Pokial je zadane takto tak sa velkost zmeni
Kód: Vybrat vše
galeria.php?obrazok=obrazok&site=adresar&sirka=1024&vyska=768
a pokial takto tak ostava 800x600
Kód: Vybrat vše
galeria.php?obrazok=obrazok&site=adresar
Kod na flash je nsledujuci
Kó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>
Napsal: úte 5. čer 2007, 21:11
od Lamicz
Mmnt, to mi moc neni jasny... To tam jako budes mit tisic flashu podle nazvu tech obr?? To musis udelat IMHO jinak, predas promenny z PHP do Action scriptu a podle toho vygenerujes flash, kterej samozrejme bude jenom jeden
