Autor | Zpráva | ||
---|---|---|---|
patiseq Profil * |
#1 · Zasláno: 21. 2. 2012, 17:24:13 · Upravil/a: Moderátor (editace znemožněna) 21. 2. 2012, 19:00:17
<? $pripona = pathinfo($file); $adresar = 'foto'; $vypis = opendir($adresar); while (false!==($file = readdir($vypis))) { if ($file != "." && $file != "..") { echo "<a href=".$adresar."/".$file." title="zde" class='thickbox' rel='ngg-images-3'><img src=".$adresar."/".$file." title="zde" height='59' width='92'></a>\n \n"; } } closedir($vypis); ?> předem děkuji za pomoc Moderátor Petr ZZZ: Titulek „jsem začátečník“ nevystihuje podstatu dotazu. Příště zkus prosím vymyslet lepší.
|
||
Tori Profil |
#2 · Zasláno: 21. 2. 2012, 17:32:28
Název souboru z kompletní cesty získáte např. funkcí basename. Pokud mají všechny soubory stejnou koncovku, zadejte ji jako druhý parametr. Pokud různé koncovky, musíte odseknout část řetězce za poslední tečkou (viz strrpos, substr).
Mimochodem v kódu máte syntaktickou chybu - okolo toho zde mají být apostrofy (anebo uvozovky escapujte). |
||
patiseq Profil * |
#3 · Zasláno: 21. 2. 2012, 17:34:24
to vím to jsem vymazal aby ste věděli kam stím
|
||
juriad Profil |
jméno souboru s koncovkou máš v $file, můžeš použít funkci pathinfo, nebo si pročti tamější komentáře
title='".pathinfo($file, PATHINFO_FILENAME)."' |
||
patiseq Profil * |
#5 · Zasláno: 21. 2. 2012, 17:40:18 · Upravil/a: patiseq
děkuji za pomoc funguje mi to ještě mám co dohánět mockrát děkuji
a ještě jeden dotaz jak udělat aby mi to načítalo obrázky i s mezerou?? napr.: nazev obrazku.jpg |
||
Tori Profil |
#6 · Zasláno: 21. 2. 2012, 17:58:30
patiseq:
a) při výpise názvů souborů je ošetřit funkcí rawurlencode, nebo b) už při ukládání se postarat, aby názvy souborů neobsahovaly znaky s diakritikou, mezery, interpunkci atd. (buď nahradit např.podtržítkem, nebo vyhodit úplně). |
||
patiseq Profil * |
#7 · Zasláno: 21. 2. 2012, 18:15:41
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1250" /> <title>Deník</title> <link href="style.css" rel="stylesheet" type="text/css" /> <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> <link rel='stylesheet' id='NextGEN-css' href='http://www.killingfloorthegame.com/wp-content/plugins/nextgen-gallery/css/Black_Minimalism.css?ver=1.0.0' type='text/css' media='screen' /> <link rel='stylesheet' id='thickbox-css' href='http://www.killingfloorthegame.com/wp-includes/js/thickbox/thickbox.css?ver=20090514' type='text/css' media='all' /> <link rel='stylesheet' id='sociable-front-css-css' href='http://www.killingfloorthegame.com/wp-content/plugins/sociable/sociable.css?ver=3.0.4' type='text/css' media='all' /> <script type='text/javascript' src='http://www.killingfloorthegame.com/wp-includes/js/jquery/jquery.js?ver=1.4.2'></script> <script type='text/javascript' src='http://www.killingfloorthegame.com/wp-includes/js/swfobject.js?ver=2.2'></script> <link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://www.killingfloorthegame.com/xmlrpc.php?rsd" /> <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://www.killingfloorthegame.com/wp-includes/wlwmanifest.xml" /> <link rel='index' title='Killing Floor Co-Op Survival Horror' href='http://www.killingfloorthegame.com/' /> </head> <body> <script> function Show_Hide(elemid,btnid) { var elem = document.getElementById(elemid); //Načtení elementu s obsahem navíc var bttn = document.getElementById(btnid); //Načtení elementu pro ovládání (Více / Méně) elem.style.display = (elem.style.display=="none") ? "block" : "none"; //Pokud je prvek skryt (display:none), nastaví se 'block', v opačném případě 'none' bttn.innerHTML = (elem.style.display=="none") ? "Zobrazit nahrání obrázku" : "Skrýt nahrání obrázku"; //Pokud je předchozí prvek skryt, text na ovládání (<a></a> se nastaví na 'Více...', jinak 'Méně...' } </script> <center> <div id="header"> <h1>Zuzky a Patrika deníček</h1> </div> <div id="col2"> <center> <? $adresar = 'foto'; $vypis = opendir($adresar); while (false!==($file = readdir($vypis))) { if ($file != "." && $file != "..") { echo "<a href=".$adresar."/".$file." title=".$file." class='thickbox' rel='ngg-images-3'><img src=".$adresar."/".$file." title="zde popis obrázku" height='59' width='92'></a>\n \n"; } } closedir($vypis); fclose($soubor); ?> </center> <hr size="1" noshade> <form action="javascript:void(0);"> <button onclick="Show_Hide('vice','ovladani');" id="ovladani">Zobrazit formulář</button> </form> <div id="vice" style="display:none;"> Vyberte souboru: <table border="0"> <script type="text/javascript"> function odeslat(form) { var x=500; var y=260; aa = window.open('', 'upload', 'menubar=0,width=' + x + ',height=' + y); return true } </script> <form action="upload.php" method="post" enctype="multipart/form-data" onSubmit="return odeslat(this);" target="upload"> <tr><td colspan="2" align="center"><font color="red">Uveď popis fotky bez diakritiky (háčků, čárek)</font></td></tr> <tr><td>Popis obrázku: </td><td><input type="text" name="nazev"></td><td>Max. znaků: 25</td></tr> <tr><td colspan="2" align="center"><input type="file" name="soubor" /> </td></tr> <input type="hidden" name="upload" value="ok" /> <tr><td colspan="2" align="center"><button name="nahraj" value="nahraj">Nahraj</button></td></tr> </form> </table> </div> <br><br> </div> <div id="col1"> <div id="navcontainer"> <h2>Navigace</h2> <ul> <li><a href="uvod.php">Úvodní strana</a></li> <li><a href="denik.php">Deník</a></li> <li><a href="sms.php">Sms</a></li> <li><a href="foto.php">Fotogalerie</a></li> <li><a href="odhlaseni.php">Odhlásit</a></li> </ul> </div> </div></center> <div id="footer"> <script type='text/javascript'> /* <![CDATA[ */ var thickboxL10n = { next: "Další >", prev: "< Předchozí", image: "Obrázek", of: "z", close: "Zavřít", noiframes: "This feature requires inline frames. You have iframes disabled or your browser does not support them." }; try{convertEntities(thickboxL10n);}catch(e){}; /* ]]> */ </script> <script type='text/javascript' src='http://www.killingfloorthegame.com/wp-includes/js/thickbox/thickbox.js?ver=3.1-20100407'></script> <script type="text/javascript">tb_pathToImage = "http://www.killingfloorthegame.com/wp-includes/js/thickbox/loadingAnimation.gif";tb_closeImage = "http://www.killingfloorthegame.com/wp-includes/js/thickbox/tb-close.png";</script> </div><!-- Closes footer --> </div><!-- Closes wrapper --> <script type="text/javascript"> //<![CDATA[ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); //]]> </script> <script type="text/javascript"> //<![CDATA[ try { var pageTracker = _gat._getTracker("UA-384258-4"); pageTracker._trackPageview(); } catch(err) {} //]]> </script> <?php include('m.php')?> </div> </body> </html> a zde je soubor upload.php <html> <head> <title>upload</title> <meta http-equiv="content-type" content="text/html; charset=windows-1250" /> </head> <body bgcolor="black" text="white"> <center> <?php session_start(); if ($_SESSION['authuser'] != 1) { echo "<p>Nemáte oprávnění k prohlížení této stránky</p>\n"; echo "<a href='./index.php'>Přihlásit se znova</a>"; exit(); } ?> <?php $error = false; if($nazev==NULL) { echo "<font color='red'>nevyplněný název</font><br>"; $error = true; } if($error!=true) { if( is_uploaded_file($_FILES['soubor']['tmp_name']) && ($_POST['upload'] == "ok") ) if( move_uploaded_file($_FILES['soubor']['tmp_name'], "foto/"$_FILES['soubor']['name']) ) echo "Soubor <strong>" $_FILES['soubor']['name'] "</strong> byl úspěšně nahrán na server."; else echo "Při uploadu došlo k chybě."; } ?> <br><form NAME="winform"><INPUT TYPE="button" VALUE="Zavřít okno" onClick="window.close();"></form> </center> <br> </body> </html> |
||
Tori Profil |
#8 · Zasláno: 21. 2. 2012, 19:22:19
Takže potřebujete někam ukládat popisy k jednotlivým fotkám.
Databáze je flexibilnější, použila bych spíš ji. Zápis do souboru (textový nebo třeba .ini formát) je jednodušší napsat, ale zkomplikuje se další rozšíření funkčnosti (např. když budete chtít k fotkám přidávat tagy a pak vyhledat fotky podle tagu). Šlo by použít i xml soubor, ale nemám zkušenosti s řazením dat z něj získaných, takže v tom neporadím. |
||
patiseq Profil * |
#9 · Zasláno: 21. 2. 2012, 19:56:33
dobrý by bylo udělat nějakej soubor třeba popis.txt a do toho psát ty popisky a i aby se přiřadili k jednotlivým fotografiím prosím postup vůbec nevím jak se tohle dělá
|
||
Tori Profil |
#10 · Zasláno: 22. 2. 2012, 15:29:52
Můžete použít třeba stejnou syntax, jako mají .ini soubory:
popis["nazev_souboru1.jpg"] = "popis prvni fotky" popis["nazev-jineho-souboru.jpg"] = "popis druhe fotky" array( "nazev_souboru1.jpg" => "popis prvni fotky", "nazev-jineho-souboru.jpg" => 'popis druhe fotky', ); |
||
patiseq Profil * |
#11 · Zasláno: 22. 2. 2012, 15:45:31 · Upravil/a: patiseq
a když to chci přes formulář aby se popis vkládal do
<input type="text" value=""> popis["$_FILES['soubor']['name']"] = "sem dostat ten popis z formuláře??" a jestli byste mi to mohl napsat i tu zkoušku v jednom jak by to mělo být pod sebou prosím pěkně |
||
Tori Profil |
Popisy se ukládají do souboru:
$text = 'popis["'.addslashes($_FILES['soubor']['name']).'"] = "'.addslashes($_POST['popis-z-formuláře']).'"'."\n"; file_put_contents("název souboru s popisy", $text, FILE_APPEND | LOCK_EX); edit: doplněno escapování vstupů |
||
patiseq Profil * |
#13 · Zasláno: 22. 2. 2012, 18:31:37
a jak doplňit do galerie aby se to tam zobrazilo
<a href=".$adresar."/".$file." title='co vlozit sem??' class='thickbox' rel='ngg-images-3'><img src=".$adresar."/".$file." title=".$file." height='59' width='92'></a> |
||
PatiseQ Profil |
#14 · Zasláno: 23. 2. 2012, 15:35:45 · Upravil/a: Moderátor (editace znemožněna) 28. 2. 2012, 23:18:58
Moderátor Davex: Přesunuto z duplicitního tématu „popis k fotogalerii“.
soubor s formulářem a zobrazení všech fotek v adresáři <? $adresar = 'foto'; $vypis = opendir($adresar); while (false!==($file = readdir($vypis))) { if ($file != "." && $file != "..") { echo "<a href=".$adresar."/".$file." title='sem dostat aby to psalo k jednotlivým názvům fotky daný popis' class='thickbox' rel='ngg-images-3'><img src=".$adresar."/".$file." title=".$file." height='10%' width='10%'></a>\n \n"; } } closedir($vypis);?> </center> <hr size="1" noshade> Vyberte souboru: <table border="0"> <form action="upload.php" method="post" enctype="multipart/form-data" onSubmit="return odeslat(this);" target="upload"> <tr><td colspan="3" align="center"><font color="red">Uveď popis fotky bez diakritiky (háčků, čárek)</font></td></tr> <tr><td>Popis obrázku: </td><td><input type="text" name="nazev" value="popisy"></td><td><font color="red">Jedno slovný popis</font></td></tr> <tr><td colspan="3" align="center"><input type="file" name="soubor" accept="image/*"/> </td></tr> <input type="hidden" name="upload" value="ok" /> <tr><td colspan="3" align="center"><button name="nahraj" value="nahraj">Nahraj</button></td></tr> </form> <tr><td colspan="3" align="center"><button onClick="javascript:location.reload(true)">Po nahrání dej zavřít a klikne zde</button></td></tr> </table> <?php $nazev = $_POST['nazev']; $error = false; if($nazev==NULL) { echo "<font color='red'>nevyplněný název</font><br>"; $error = false; } if($error!=true) { if( is_uploaded_file($_FILES['soubor']['tmp_name']) && ($_POST['upload'] == "ok") ) if( move_uploaded_file($_FILES['soubor']['tmp_name'], "./foto/".$_FILES['soubor']['name']) ) echo "Soubor <strong>" .$_FILES['soubor']['name']. "</strong> byl úspěšně nahrán na server.<br>"; else echo "Při uploadu došlo k chybě."; $text = 'popis["'.addslashes($_FILES['soubor']['name']).'"] = "'.addslashes($_POST['nazev']).'"'."\n"; if( file_put_contents("popis.ini", $text, FILE_APPEND | LOCK_EX)) echo "Popis byl úspěšně přidán.<br>"; else echo "Nepovedl se uložit popis."; } ?> popis["fotka1.jpg"] = "popis1" popis["fotka2.jpg"] = "popis2"" Prosím poraďte mi mám z toho hlavu v kýblu |
||
Tori Profil |
#15 · Zasláno: 24. 2. 2012, 03:01:56 · Upravil/a: Moderátor (editace znemožněna) 28. 2. 2012, 23:20:27
Kód je zkopírovaný ze smazaného duplicitního vlákna popis k fotogalerii, doplněné kousky označeny.
<? $popisy = parse_ini_file("popis.ini"); $adresar = 'foto'; $vypis = opendir($adresar); while (false!==($file = readdir($vypis))) { if ($file != "." && $file != "..") { $titulek = (isset($popisy[$file]) ? $popisy[$file] : 'Popis fotky nebyl zadaný.'); echo "<a href=".$adresar."/".$file." title='$titulek' class='thickbox' rel='ngg-images-3'><img src=".$adresar."/".$file." title=".$file." height='10%' width='10%'></a>\n \n"; } } closedir($vypis);?> unset($popisy); </center> ... atd. |
||
PatiseQ Profil |
#16 · Zasláno: 24. 2. 2012, 07:27:24 · Upravil/a: PatiseQ
furt to píše že nebyl zadán žádný popis ikdyž v tom souboru je??
Už jsem na to přišel měl jsem blbej formát v souboru popis.ini děkuju mockrát nefunkční tvar: popis["nazev_souboru1.jpg"] = "popis prvni fotky" nazev-souboru1.jpg = "popis prvni fotky" |
||
Časová prodleva: 3 dny
|
|||
Tori Profil |
#17 · Zasláno: 26. 2. 2012, 23:59:16
Trochu jsem upravila původní verzi, formulář i ukládání je v jednom souboru, HTML zjednodušeno. http://pastebin.com/A43Gtmfz
Z názvů nahrávaných souborů vyhazuji znaky s diakritikou, mezery apod. - to by šlo změnit, aby se místo toho převádělo vše např. na znaky bez diakritiky a pomlčky. Taky by se dalo doplnit ukládání náhledů k obrázkům. |
||
Časová prodleva: 12 let
|
0