Autor | Zpráva | ||
---|---|---|---|
hrac Profil * |
#1 · Zasláno: 9. 10. 2009, 19:36:07
4aute prosímvás mám udělán script na vípis souborů ale když kliknu na otevřát adresář tak to začne psát chyby :( ale poprvé nic kod ma tady
<?php if($dir=="") $dir="./"; $nas_sou="admin.php"; $handle=opendir("$dir"); $i=0; $j=0; while (false!==($file = readdir($handle))) { if ($file!="."&&$file!=".."&&!is_dir($file)&&$file!=$nas_sou) { $soubor[$i]="$file"; $velikost[$i]=filesize ($file); $zmena[$i]=date("H:i:s d.m.Y ",filemtime($file)); $i++; } if ($file != "." && is_dir($file)) { $adresar[$j]="$file"; $j++; } } closedir($handle); function vypis($s,$v,$z) { echo "<table>\n"; for($i=0;$i<count($s);$i++) { echo "<tr><td width=150>"; echo '<a href="'.$s[$i].'">'.$s[$i].'</a>'; echo "</td><td width=60>$v[$i]"; echo "</td><td>$z[$i]"; echo "</td></tr>\n"; } echo "</table>\n"; } function vypis_slozek($s,$v,$z) { echo "<table>\n"; for($i=0;$i<count($s);$i++) { echo "<tr><td width=150>"; echo '<a href="?dir='.$s[$i].'">'.$s[$i].'</a>'; echo "</td><td width=60>$v[$i]"; echo "</td><td>$z[$i]"; echo "</td></tr>\n"; } echo "</table>\n"; } echo "Adresáře:\n"; vypis_slozek($adresar,"",""); echo "Soubory:\n"; vypis($soubor,$velikost,$zmena); ?> nevím čím to může bžýt prostě kliknu na složku a bum chyby :(díky za radu |
||
Joker Profil |
#2 · Zasláno: 9. 10. 2009, 19:50:06 · Upravil/a: Joker
Mám nápad, udělám si šablonu a budu jí kopírovat.
Dotaz na problém s kódem- ocitujte prosím následující text a odpovězte na otázky: 1. Co očekáváte, že daný kód udělá (co by měl dělat)? 2. Jak se liší skutečné chování od očekávaného? Pokud je výsledkem chybová hláška, zkopírujte text hlášky. |
||
hrac Profil * |
#3 · Zasláno: 9. 10. 2009, 19:52:47
no ten kod udělá to že vypíše soubory a složky a na složky udělá odkaz aby to šlo dal otevírat
chyb kod je Warning: filesize(): Stat failed for edit.gif (errno=2 - No such file or directory) in /3w/wz.cz/b/blogcz/admin/vypis_souboru.php on line 13 Warning: filemtime(): Stat failed for edit.gif (errno=2 - No such file or directory) in /3w/wz.cz/b/blogcz/admin/vypis_souboru.php on line 14 Warning: filesize(): Stat failed for alert.gif (errno=2 - No such file or directory) in /3w/wz.cz/b/blogcz/admin/vypis_souboru.php on line 13 Warning: filemtime(): Stat failed for alert.gif (errno=2 - No such file or directory) in /3w/wz.cz/b/blogcz/admin/vypis_souboru.php on line 14 Warning: filesize(): Stat failed for ukaz.gif (errno=2 - No such file or directory) in /3w/wz.cz/b/blogcz/admin/vypis_souboru.php on line 13 Warning: filemtime(): Stat failed for ukaz.gif (errno=2 - No such file or directory) in /3w/wz.cz/b/blogcz/admin/vypis_souboru.php on line 14 Warning: filesize(): Stat failed for smaz.gif (errno=2 - No such file or directory) in /3w/wz.cz/b/blogcz/admin/vypis_souboru.php on line 13 Warning: filemtime(): Stat failed for smaz.gif (errno=2 - No such file or directory) in /3w/wz.cz/b/blogcz/admin/vypis_souboru.php on line 14 Warning: filesize(): Stat failed for info.gif (errno=2 - No such file or directory) in /3w/wz.cz/b/blogcz/admin/vypis_souboru.php on line 13 Warning: filemtime(): Stat failed for info.gif (errno=2 - No such file or directory) in /3w/wz.cz/b/blogcz/admin/vypis_souboru.php on line 14 Warning: filesize(): Stat failed for error.gif (errno=2 - No such file or directory) in /3w/wz.cz/b/blogcz/admin/vypis_souboru.php on line 13 Warning: filemtime(): Stat failed for error.gif (errno=2 - No such file or directory) in /3w/wz.cz/b/blogcz/admin/vypis_souboru.php on line 14 a to píše u všech souborů |
||
Joker Profil |
#4 · Zasláno: 9. 10. 2009, 20:00:47
hrac:
No prosím, hned je to jasnější: Soubor nenalezen. Problém je v tom, že cesta k souboru není $file, ale $dir."/".$file - možná bez toho lomítka uprostřed, podle toho, jestli v $dir je název adresáře s lomítkem nebo bez. |
||
hrac Profil * |
#5 · Zasláno: 9. 10. 2009, 20:03:02
„hrac:
No prosím, hned je to jasnější: Soubor nenalezen. Problém je v tom, že cesta k souboru není $file, ale $dir."/".$file - možná bez toho lomítka uprostřed, podle toho, jestli v $dir je název adresáře s lomítkem nebo bez.“ No prosímtě teď sem tě nepochopil mohl bys mi ten kód opravit prosím :) |
||
hrac Profil * |
#6 · Zasláno: 10. 10. 2009, 09:09:04
prosím nevíte jak to myslel já sem něco skoušel ale nevyšlo mi to :(
|
||
Alphard Profil |
#7 · Zasláno: 10. 10. 2009, 10:30:11
Myslel to tak, že např. na řádku
$velikost[$i]=filesize ($file); předkládáte funkci filesize název souboru, ale už ne celou cestu k němu. Zkuste: $velikost[$i]=filesize ((substr($dir, -1)=="/"?$dir:$dir."/").$file); |
||
hrac Profil * |
#8 · Zasláno: 10. 10. 2009, 10:47:51
díky to mi jde ale nejde to další prosím jak mám udělat i to
$soubor[$i]="$file"; $zmena[$i]=date("H:i:s d.m.Y ",filemtime($file)); |
||
Alphard Profil |
#9 · Zasláno: 10. 10. 2009, 10:50:00
hrac:
Úplně stejně, trochu vlastní iniciativy (stačí to zkopírovat). |
||
hrac Profil * |
#10 · Zasláno: 10. 10. 2009, 10:50:42
tak už jen to
$soubor[$i]="$file"; |
||
hrac Profil * |
#11 · Zasláno: 10. 10. 2009, 10:51:08
tkj skusím nějak tak stejně :-D
|
||
hrac Profil * |
#12 · Zasláno: 10. 10. 2009, 10:53:10
jo ale vážně nevím jak udělat aby se mi zobrazilo jméno toho souboru a odkaz na něho byl i celí a ne jen to jméno :( jakože jméno je file.php a odkaz by byl slozka/file.php
|
||
Alphard Profil |
#13 · Zasláno: 10. 10. 2009, 10:57:12 · Upravil/a: Alphard
Tak to uděláme jinak:
while (false!==($file = readdir($handle))) { $cesta = (substr($dir, -1)=="/"?$dir:$dir."/").$file; if ($file!="."&&$file!=".."&&!is_dir($cesta)&&$file!=$nas_sou) { $soubor[$i]=$file; V $file máte název a v $cesta celou cestu, stačí? |
||
hrac Profil * |
udělal sem to tak jak ste napsal a píše to
Parse error: parse error in /3w/wz.cz/b/blogcz/admin/vypis_souboru.php on line 10 a to je toto $cesta = (substr($dir, -1)=="/"?$dir:$dir."/").$file); celí kód je <?php if($dir=="") $dir="./"; $nas_sou="admin.php"; $handle=opendir("$dir"); $i=0; $j=0; while (false!==($file = readdir($handle))) { $cesta = (substr($dir, -1)=="/"?$dir:$dir."/").$file; if ($file!="."&&$file!=".."&&!is_dir($cesta)&&$file!=$nas_sou) { $soubor[$i]=$file; $souboro[$i]=$cesta; $velikost[$i]=filesize ($cesta); $zmena[$i]=date("H:i:s d.m.Y ",filemtime($cesta); $i++; } if ($file != "." && is_dir($file)) { $adresar[$j]="$file"; $adresaro[$j]="$cesta"; $j++; } } closedir($handle); function vypis($s,$v,$z,$o) { echo "<table>\n"; for($i=0;$i<count($s);$i++) { echo "<tr><td width=150>"; echo '<a href="'.$o[$i].'">'.$s[$i].'</a>'; echo "</td><td width=60>$v[$i]"; echo "</td><td>$z[$i]"; echo "</td></tr>\n"; } echo "</table>\n"; } function vypis_slozek($s,$v,$z,$o) { echo "<table>\n"; for($i=0;$i<count($s);$i++) { echo "<tr><td width=150>"; echo '<a href="?dir='.$o[$i].'">'.$s[$i].'</a>'; echo "</td><td width=60>$v[$i]"; echo "</td><td>$z[$i]"; echo "</td></tr>\n"; } echo "</table>\n"; } echo "Adresáře:\n"; vypis_slozek($adresar,"","",$adresaro); echo "Soubory:\n"; vypis($soubor,$velikost,$zmena,$souboro); ?> |
||
Alphard Profil |
#15 · Zasláno: 10. 10. 2009, 11:13:24
Ta poslední závorka byla navíc, opravil jsem váš kód [#14].
|
||
hrac Profil * |
#16 · Zasláno: 10. 10. 2009, 11:28:39
:-D teď zase to píše toto
Parse error: parse error in /3w/wz.cz/b/blogcz/admin/vypis_souboru.php on line 16 a to je toto $zmena[$i]=date("H:i:s d.m.Y ",filemtime($cesta); |
||
Alphard Profil |
#17 · Zasláno: 10. 10. 2009, 12:18:22
$zmena[$i]=date("H:i:s d.m.Y ",filemtime($cesta)); Tady zase jedna závorka chybí. Skutečně není snadné psát tady na diskusi kódy bez obarvení a dalších funkcí IDE. Ale parse errory by měli být tazatelé schopní opravit sami. Ušetřil byste si skoro hodinu, než jsem se vrátil k PC. |
||
hrac Profil * |
#18 · Zasláno: 10. 10. 2009, 12:23:48
jj už dávno sem to opravil :-D jenom my to zlobí koukněte sám http://www.blogcz.wz.cz/admin/vypis_souboru.php?dir=./
když kliknete na podřazenou složku pořád to připisuje k tomu dir takže když je dir=../ tak když kliknu na složku dir=../slozka/ a když kliknu zase ne ../ tak dir=../slozka/../ |
||
Alphard Profil |
#19 · Zasláno: 10. 10. 2009, 12:38:06
Buď si to musíte sám parsovat, nebo by možná šlo použít realpath() nebo něco příbuzného. Z absolutní adresy se pak už dá docela lehce udělat relativní. Ale tenhle kód už se mi psát nechce :-).
|
||
hrac Profil * |
#20 · Zasláno: 10. 10. 2009, 13:13:56
:-D nevadí ale moc díky aspoň tak
|
||
Časová prodleva: 14 let
|
0