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 8-)

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:

Kód: Vybrat vše

<?php include "generator.php"; ?>
A tímto potom vyvoláš náhled obrázku:

Kód: Vybrat vše

<?php ShowImage("obrazek.jpg"); ?>
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 :roll:

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íš :wink:

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 :roll:
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.

Kód: Vybrat vše

<?php ShowImage("obrazek.jpg"); ?>
Mu asi tezko rekne, co ma dat misto "obrazek.jpg", o pristupu pres pole promennych tez ani slovo.

Takze :whaasup:

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 :lol: 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 ;)