Avatar billede vixmix Nybegynder
20. maj 2004 - 00:31 Der er 6 kommentarer og
2 løsninger

Fejl i delete billeder

Hej eksperter
jeg håber i kan hjælpe mig
jeg har scriptet:

<?php

$dir = "../../../sten/herre/eks/";

function GetFileName($file) {
$part = explode(".", $file);
$file = "";

for($i=0;$i<count($part)-1;$i++) {
  $file = $file . $part[$i];
}

return $file;
}

if($_GET["action"] == "delpic") {
if(file_exists($dir . $_GET["name"])) {
  unlink($dir . $_GET["name"]);
  //header("Location: slet.php");
}
}

?><table cellpadding="0" cellspacing="0" width="100%">
                                          <?

if ($handle = opendir($dir)) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != ".." && $file != "Thumbs.db" && $file != "thumbs" && $file != "") {
            $files[] = $file;
           
        }
    }
    closedir($handle);
}
$td = 0;
sort($files);
  foreach($files as $file){
        $td++;
        if($td == 1) {echo "<tr>\n"; }
        ?>
                                          <td align="center" width="25%">&nbsp; </td>
                                          <?
        if($td == 4) {echo "</tr>\n"; $td = 0;}
}
?>
                                          <table cellpadding="0" cellspacing="0" align="center" class="tekst_link">
                                            <tr>
                                              <td align="center" style="border: 1px solid #ffffff;"><img src="<? echo $dir.$file; ?>" alt="" width="99" height="86"><br>
                                              </td>
                                            </tr>
                                            <tr>
                                              <center>
                                                <td class="tekst_normal">
                                                  <div align="center"> <?php echo GetFileName($file); ?> - <a href="slet.php?action=delpic&name=<?php echo $file?>">Slet</a> </div></td>
                                              </center>
                                            </tr>
                                          </table>

på linjer:

sort($files);
  foreach($files as $file){

er der fejl :///

(Warning: sort() expects parameter 1 to be array, null given in /customers/hedensted-betonvarefabrik.dk/hedensted-betonvarefabrik.dk/httpd.www/heden/adm/sten/herre/slet.php on line 181

Warning: Invalid argument supplied for foreach() in /customers/hedensted-betonvarefabrik.dk/hedensted-betonvarefabrik.dk/httpd.www/heden/adm/sten/herre/slet.php on line 182)
Avatar billede detox Nybegynder
20. maj 2004 - 00:46 #1
Det er formentlig fordi den ikke finder nogen filer der matcher dine betingelser. Prøv at pakke det ind i en if betingelse:

if is_array($files) {
  $td = 0;
  sort($files);
  osv...
}
Avatar billede coderdk Praktikant
20. maj 2004 - 00:48 #2
Først kan jeg ikke se hvad du skal bruge GetFileName() til? Er det til at få kun filnavnet? I så fald kan du bruge basename() - http://dk.php.net/basename

Denne:

if ($handle = opendir($dir)) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != ".." && $file != "Thumbs.db" && $file != "thumbs" && $file != "") {
            $files[] = $file;
         
        }
    }
    closedir($handle);
}

Og alt nedenunder bør rettes til noget a la:

if (!($handle = opendir($dir)))
{
    die("Kunne ikke åbne $dir!");
}

while ($file = readdir($handle))
{
    if (!in_array($file,array(".", "..", "Thumbs.db", "thumbs", ""))
    {
        $files[] = $file;
    }
}
closedir($handle);

sort($files);
foreach ($files as $file)
{
    // osv dernedaf hvad du har
}
Avatar billede coderdk Praktikant
20. maj 2004 - 00:49 #3
Og det ville være godt at bruge is_array før du prøver at sortere, som detox skriver! :)
Før sort();

if (!is_array($files))
{
    die("Ingen filer");
}
Avatar billede vixmix Nybegynder
20. maj 2004 - 01:26 #4
for at være helt ærlig er det er script som jeg har lavet for lang tid siden, og taget ind på en ny side.. men som desværre ikke virker så godt der :/.. kan det være fordi den ikke kan tage gif filer ?
Avatar billede coderdk Praktikant
20. maj 2004 - 01:47 #5
Jeg tror næppe det er pga gif ;)
Forresten så glem det med is_array(), i stedet før din while-løkke, initialisér den:

files = array();
Avatar billede henriktha Nybegynder
20. maj 2004 - 03:26 #6
<?php

$dir = "../../../sten/herre/eks/";

if($_GET["action"] == "delpic") {
if(file_exists($dir . $_GET["name"])) {
  unlink($dir . $_GET["name"]);
  //header("Location: slet.php");
}
}

?><table cellpadding="0" cellspacing="0" width="100%">
<?
    if (@$handle = opendir($dir) or die("Kunne ikke åbne din billed mappe")) {
    $files = array();
        while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != ".." && $file != "Thumbs.db" && $file != "thumbs" && $file != "") {
            $files[] = $file;
        }
    }
    closedir($handle);
}
if (is_array($files)) {
$td = 0;
sort($files);
  foreach($files as $file){
        $td++;
        if($td == 1) {echo "<tr>\n"; }
        ?>
                                          <td align="center" width="25%">&nbsp; </td>
                                          <?
        if($td == 4) {echo "</tr>\n"; $td = 0;}

?>
                                          <table cellpadding="0" cellspacing="0" align="center" class="tekst_link">
                                            <tr>
                                              <td align="center" style="border: 1px solid #ffffff;"><img src="<? echo $dir.$file; ?>" alt="" width="99" height="86"><br>
                                              </td>
                                            </tr>
                                            <tr>
                                              <center>
                                                <td class="tekst_normal">
                                                  <div align="center"> <?php echo $file; ?> - <a href="?action=delpic&name=<?php echo $file?>">Slet</a> </div></td>
                                              </center>
                                            </tr>
                                          </table>
                                          <? } }?>


Følgende er testet OK !!, det eneste der kan gå galt nu er at din $dir er angivet forkert !!
Avatar billede vixmix Nybegynder
20. maj 2004 - 10:06 #7
kanon .det virker perfekt nu .. i får lige lidt points
Avatar billede vixmix Nybegynder
20. maj 2004 - 10:22 #8
-lukket-
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester