Fotogaleria v PHP

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Odpovědět
moravcik10
Začátečník
Začátečník
Uživatelský avatar
Registrován: 21. pro 2005
Bydliště: Pártizánske , Slovensko
Kontaktovat uživatele:

Fotogaleria v PHP

Příspěvek 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-)
CPU: DualCore Intel Core 2 Duo E6550, 3009 MHz (7 x 429), RAM: Corsair 2048 MB (DDR2-800 DDR2 SDRAM) MB: MSI P35 NEO VGA: NVIDIA GeForce 8800 GS (384 MB), HDD: SATA Maxtor 160GB, SATA Samsung 400GB, SATA Samsung 500GB, OS: WinXP Pro CZ
[CZ]Airwolf[OC]
Začátečník
Začátečník
Registrován: 23. říj 2006

Příspěvek od [CZ]Airwolf[OC] »

URL> velkyobrazek.php?id=XX

Kód: Vybrat vše

<img src="'.echo("$id").'.jpg" dalsi_parametry>
moravcik10
Začátečník
Začátečník
Uživatelský avatar
Registrován: 21. pro 2005
Bydliště: Pártizánske , Slovensko
Kontaktovat uživatele:

Příspěvek 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
CPU: DualCore Intel Core 2 Duo E6550, 3009 MHz (7 x 429), RAM: Corsair 2048 MB (DDR2-800 DDR2 SDRAM) MB: MSI P35 NEO VGA: NVIDIA GeForce 8800 GS (384 MB), HDD: SATA Maxtor 160GB, SATA Samsung 400GB, SATA Samsung 500GB, OS: WinXP Pro CZ
[CZ]Airwolf[OC]
Začátečník
Začátečník
Registrován: 23. říj 2006

Příspěvek 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...
moravcik10
Začátečník
Začátečník
Uživatelský avatar
Registrován: 21. pro 2005
Bydliště: Pártizánske , Slovensko
Kontaktovat uživatele:

Příspěvek od moravcik10 »

Galeriu robil kamarat v CSS
CPU: DualCore Intel Core 2 Duo E6550, 3009 MHz (7 x 429), RAM: Corsair 2048 MB (DDR2-800 DDR2 SDRAM) MB: MSI P35 NEO VGA: NVIDIA GeForce 8800 GS (384 MB), HDD: SATA Maxtor 160GB, SATA Samsung 400GB, SATA Samsung 500GB, OS: WinXP Pro CZ
malidian
Mírně pokročilý
Mírně pokročilý
Registrován: 14. led 2006

Příspěvek 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...
Poslední věc, která mě zajímá, jsou PC. Časy se hold mění. :-)
sovicka
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 17. pro 2003
Bydliště: východní prágl
Kontaktovat uživatele:

Příspěvek 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 ;)
Francie ... sladká Francie
[CZ]Airwolf[OC]
Začátečník
Začátečník
Registrován: 23. říj 2006

Příspěvek 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.
sovicka
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 17. pro 2003
Bydliště: východní prágl
Kontaktovat uživatele:

Příspěvek 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.
Francie ... sladká Francie
[CZ]Airwolf[OC]
Začátečník
Začátečník
Registrován: 23. říj 2006

Příspěvek 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.
matajon
Začátečník
Začátečník
Uživatelský avatar
Registrován: 22. lis 2005
Bydliště: Dobruška
Kontaktovat uživatele:

Příspěvek 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:
Smith
Pokročilý
Pokročilý
Uživatelský avatar
Registrován: 11. úno 2004
Bydliště: někde u UH
Kontaktovat uživatele:

Příspěvek 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.
# Desktop [Ryzen 9 7950X, 128 GB RAM, GeForce GTX 1660 Ti, 4x SSD, 3x Dell UP2716D(A), W11 Pro]
# Notebook Dell XPS 13 [i7-7500U, 16 GB RAM, 512 GB SSD, W11 Pro], Apple MacBook Air 13" [M2, 16 GB RAM, 512 GB SSD]
# Home Server [2x E5-2630 v3, 128 GB RAM, WS2019] # Storage Synology DS1815+ [24 TB RAID6], Synology DS1819+ [24 TB RAID6, 10 GbE]
# Samsung Galaxy S23 Ultra # Canon EOS R5, Canon EOS 3, Canonet QL17 G-III, Bronica SQ-A # www.photosmith.cz
[CZ]Airwolf[OC]
Začátečník
Začátečník
Registrován: 23. říj 2006

Příspěvek 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.
matajon
Začátečník
Začátečník
Uživatelský avatar
Registrován: 22. lis 2005
Bydliště: Dobruška
Kontaktovat uživatele:

Příspěvek od matajon »

To je sice hezky, ale kdyz budou vyply register_globals, tak ti je promenna $id celkem na hovno ...
Smith
Pokročilý
Pokročilý
Uživatelský avatar
Registrován: 11. úno 2004
Bydliště: někde u UH
Kontaktovat uživatele:

Příspěvek 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
# Desktop [Ryzen 9 7950X, 128 GB RAM, GeForce GTX 1660 Ti, 4x SSD, 3x Dell UP2716D(A), W11 Pro]
# Notebook Dell XPS 13 [i7-7500U, 16 GB RAM, 512 GB SSD, W11 Pro], Apple MacBook Air 13" [M2, 16 GB RAM, 512 GB SSD]
# Home Server [2x E5-2630 v3, 128 GB RAM, WS2019] # Storage Synology DS1815+ [24 TB RAID6], Synology DS1819+ [24 TB RAID6, 10 GbE]
# Samsung Galaxy S23 Ultra # Canon EOS R5, Canon EOS 3, Canonet QL17 G-III, Bronica SQ-A # www.photosmith.cz
moravcik10
Začátečník
Začátečník
Uživatelský avatar
Registrován: 21. pro 2005
Bydliště: Pártizánske , Slovensko
Kontaktovat uživatele:

Příspěvek 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.
CPU: DualCore Intel Core 2 Duo E6550, 3009 MHz (7 x 429), RAM: Corsair 2048 MB (DDR2-800 DDR2 SDRAM) MB: MSI P35 NEO VGA: NVIDIA GeForce 8800 GS (384 MB), HDD: SATA Maxtor 160GB, SATA Samsung 400GB, SATA Samsung 500GB, OS: WinXP Pro CZ
Smith
Pokročilý
Pokročilý
Uživatelský avatar
Registrován: 11. úno 2004
Bydliště: někde u UH
Kontaktovat uživatele:

Příspěvek 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
# Desktop [Ryzen 9 7950X, 128 GB RAM, GeForce GTX 1660 Ti, 4x SSD, 3x Dell UP2716D(A), W11 Pro]
# Notebook Dell XPS 13 [i7-7500U, 16 GB RAM, 512 GB SSD, W11 Pro], Apple MacBook Air 13" [M2, 16 GB RAM, 512 GB SSD]
# Home Server [2x E5-2630 v3, 128 GB RAM, WS2019] # Storage Synology DS1815+ [24 TB RAID6], Synology DS1819+ [24 TB RAID6, 10 GbE]
# Samsung Galaxy S23 Ultra # Canon EOS R5, Canon EOS 3, Canonet QL17 G-III, Bronica SQ-A # www.photosmith.cz
moravcik10
Začátečník
Začátečník
Uživatelský avatar
Registrován: 21. pro 2005
Bydliště: Pártizánske , Slovensko
Kontaktovat uživatele:

Příspěvek 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>
CPU: DualCore Intel Core 2 Duo E6550, 3009 MHz (7 x 429), RAM: Corsair 2048 MB (DDR2-800 DDR2 SDRAM) MB: MSI P35 NEO VGA: NVIDIA GeForce 8800 GS (384 MB), HDD: SATA Maxtor 160GB, SATA Samsung 400GB, SATA Samsung 500GB, OS: WinXP Pro CZ
Lamicz
Začátečník
Začátečník
Uživatelský avatar
Registrován: 30. kvě 2005
Bydliště: In a galaxy far away...
Kontaktovat uživatele:

Příspěvek 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 ;)
:: DESKA :: Asus A8V-XE (VIA K8T890) :: CPU :: AMD Athlon 64 3700+ :: VGA :: ATI Asus GF7600 512MB - passive solution :: RAM :: 4x 256MB Samsung :: HDD :: 80GB Maxtor PATA ::
Odpovědět

Zpět na „Programování a web“