Autor | Zpráva | ||
---|---|---|---|
Janča38 Profil * |
#1 · Zasláno: 20. 5. 2009, 19:14:36
chtěla bych poprosit o radu s nasledujici věcí... Chtěla bych vytvořit jednoduchou fotogalerii s možností výběru fotky přes <select> a zároveň s tlačítky pro tlačítka "Další fotka" a "Předchozí fotka". Povedlo se mi udělat ten formulář, kterým vyvolám fotku. Ale jsem bezradná, co se týče těch navigačních tlačítek pro výběr další a předchozí fotky, aby si skript pamatoval zobrazenou fotku, ať už byla zvolena přes <select> nebo dále pak přes tlačítko další-předchozí. Zde je kod. Děkuji moc za rady...
<?php $galerie = array(-1=> "Jihlava", "Brno", "Český ráj", "Praha", "Olomouc", "Šumava", "Ostrov"); ?> <link href="styl.css" rel="stylesheet" type="text/css"> <body> <div id="hlavni"> <div id="menu"> Přejít na stránku: <form method="POST" action="<?echo $_SERVER["PHP_SELF"]?>"> <? $nahled=$_POST["fotka"]; echo "<SELECT name=\"fotka\">\n"; for ($i=-1;$i<=count($galerie)-2;$i++) if ($nahled == $i) { echo "\t<OPTION VALUE=\"$i\" selected=\"selected\">".$galerie[$i]."</OPTION>\n";} else {echo "\t<OPTION VALUE=\"$i\">".$galerie[$i]."</OPTION>\n"; } echo "</SELECT>\n"; ?> <br><br> <input name="odeslat" value="Odeslat" type="submit"> </form> <br><br><br> </div> <?php if ((empty ($_POST["odeslat"]))) { $obrazek="fotky/1.jpg"; } else $obrazek="fotky/".$_POST["fotka"].".jpg"; echo (" <div id=\"obsah\"><img src=\"$obrazek.\" alt=\"Titulka\" title=\"galerie\">"); ?> </div> |
||
AM_ Profil |
#2 · Zasláno: 21. 5. 2009, 09:37:02
Takže za prvé,
„else $obrazek="fotky/".$_POST["fotka"].".jpg";“ tady si koleduješ o XSRF útok; měla bys ošetřit, aby se takto daly zobrazit pouze fotky z daného adresáře. třeba: $fotka = preg_replace('/[\\?\\/\\\\]/', '', $_POST['fotka']); $obrazek = "fotky/$fotka.jpg"; „$obrazek="fotky/1.jpg";“ Vždycky se bude první fotka jmenovat takto? Pokud máš prostě fotky očíslované, není problém navigační tlačítka udělat jako odkazy na: ($fotka+1).jpg ($fotka-1).jpg jinak můžeš využívat funkce glob(), která vrací všechny soubory podle určitého vzorce, tedy třeba glob("fotky/*.jpg"). Dále by mě zajímalo, proč pole galerií indexuješ od mínus jedné - možná to funguje, ale je to takové dost divné a nevidím důvod to dělat, člověk by se měl v programování držet nějakých konvencí |
||
Janča38 Profil * |
#3 · Zasláno: 21. 5. 2009, 10:50:14
nevím, jak mám udělat odkaz na další a předchozí fotku. jestli pomocí <a href> nebo pomocí dalšího formuláře.
jak pomocí a href dosáhnu toho, aby se nahrála stránka s fotkou+1 ?Protože do a href dám <a href="index.php">, ale jak tady předám tu proměnnou ? S tímhle si fakt nevím rady. Fotky budou číslovány 1-xxx. A s tou -1 ani nevím, asi jsem to viděla někde na netu :-) |
||
Kajman_ Profil * |
#4 · Zasláno: 21. 5. 2009, 12:22:20
Výsledný odkaz by mohl vypadat např.
<a href="index.php?fotka=5"> Číslo pak nebude v $_POST ale v $_GET['fotka']. |
||
Časová prodleva: 15 let
|
0