Avatar billede rhandersen Nybegynder
14. marts 2005 - 19:20 Der er 9 kommentarer og
1 løsning

Submit er underlig

Hej Alle

Jeg har lavet et bette script der skal skifte et billede ud med et andet, det kan enten være et extra billede (ex1,ex2,ex3,ex4) eller et hovedbilleder med både thumb og stort billede(ex0).
Men problemet er at når jeg trykker submit står den og arbejder i lang tid før den går tilbage til formen igen.
Her kommer lidt kode:

<?
include("dbcon.php");
$id = $_GET['ID'];
$ex = $_GET['ex'];
$opret = $_POST['rettype'];
if($opret = "ny"){
if($ex = "0"){
$uploaddir = "inc/galleri/full/"; // din mappe til billeder
$thumbnail_dir = "inc/galleri/thumb/"; // din mappe til thumbnails
function tjektype($type) {
    $tilladt = array('image/x-png', 'image/png', 'image/pjpeg', 'image/jpeg');
    if(!in_array($type, $tilladt)) {
        return false;
    }else{
        return true;
    }
}

function tjekfilnavn($filnavn) {
    $i = 0;
    $ext = strrchr($filnavn, '.');
    $navn = substr($filnavn, 0, -strlen($ext));
    while (is_file($filnavn)) {
        $i++;
        $filnavn = $navn . "_" . sprintf("%03u", $i) . $ext;
    }
    return $filnavn;
}

if (isset($_POST['submit']) && $_POST['submit'] == "Upload" && $_POST['rettype'] == "ny") {
    $billede = $_FILES['nyhedsBillede']['name'];
    $billede = strtolower($billede);// ændre alt til små bogstaver
    $type = strrchr($billede, ".");// For at finde filtypen til tjek af jpeg kontra jpg 
    $dest = $uploaddir . $billede;// Stien til det store billede
    $dest = tjekfilnavn($dest);
    $dato_array = getdate();
    $oprettelsesdato = $dato_array['mday'] . "-" . $dato_array['mon'] . "-" . $dato_array['year'];
$dato = $dato_array['seconds'] . "-" .$dato_array['minutes'] . "-" .$dato_array['hours'] . "-" .$dato_array['mday'] . "-" . $dato_array['mon'] . "-" . $dato_array['year'];
    $source = $_FILES['nyhedsBillede']['tmp_name'];
    if (is_uploaded_file($source)) {
        if (tjektype($_FILES['nyhedsBillede']['type'])) {
            if (move_uploaded_file($source, $dest)) {
              list($width, $height) = getimagesize($dest);
                $new_width = 450;
                $krympefaktor = $new_width/$width;
                $new_height = round($height * $krympefaktor);
                $destinationImage = imagecreatetruecolor($new_width, $new_height);
                if ($type == ".jpeg" || $type == ".jpg") {
                    $sourceImage = imagecreatefromjpeg($dest);
                    imagecopyresampled($destinationImage, $sourceImage, 0, 0, 0, 0, $new_width, $new_height, imagesx($sourceImage), imagesy($sourceImage));
                    $dest = $uploaddir . $dato . "_fuld" . $type;
                    imagejpeg($destinationImage, $dest);
                } elseif ($type == ".png") {
                    $sourceImage = imagecreatefrompng($dest);
                    imagecopyresampled($destinationImage, $sourceImage, 0, 0, 0, 0, $new_width, $new_height, imagesx($sourceImage), imagesy($sourceImage));
                    imagepng($destinationImage, $dest);
                } 
                if($height <= $width){
                    $new_width = 100;
                } else {
                    $new_width = 82;
                }
                $krympefaktor = $new_width/$width;
                $new_height = round($height * $krympefaktor);
                $destinationImage = imagecreatetruecolor($new_width, $new_height);
                if ($type == ".jpeg" || $type == ".jpg") {
                    $sourceImage = imagecreatefromjpeg($dest);
                    imagecopyresampled($destinationImage, $sourceImage, 0, 0, 0, 0, $new_width, $new_height, imagesx($sourceImage), imagesy($sourceImage));
                    $thumbnail = $thumbnail_dir.basename($dato, $type)."_thumb".$type;// Stien til thumbnail
                    imagejpeg($destinationImage, $thumbnail);
                } elseif ($type == ".png") {
                    $sourceImage = imagecreatefrompng($dest);
                    imagecopyresampled($destinationImage, $sourceImage, 0, 0, 0, 0, $new_width, $new_height, imagesx($sourceImage), imagesy($sourceImage));
                    $thumbnail = $thumbnail_dir.basename($dato, $type)."_thumb".$type;
                    imagepng($destinationImage, $thumbnail);
                }                   
            }
$select = "SELECT * FROM galleri WHERE ID = '$id'";
$selected = mysql_query($select) or die(mysql_error());
while($gal = mysql_fetch_array($selected)){
unlink("/home/web/web36045/adm/" . $gal['thumbnail']);
unlink("/home/web/web36045/adm/" . $gal['dest']);
}
              mysql_query("UPDATE galleri SET dest='$dest', thumbnail = '$thumbnail' WHERE ID = $id") or die(mysql_error());
                mysql_close();
                $besked = "<span class=menu><br><br>Billedet er opdateret!</span>";
        } else {
                $besked = "<span class=menu><br><br>Der opstod en ukendt fejl</span><br><a href=\"index.php?ID=" . $id . "&page=galleriskift&ex=0\" class=\"linkS\">Prøv igen</a>";
        }
    } else {
            $besked = "<span class=menu><br><br>Du prøvede at gemme et billedeformat som ikke er tilladt. Du kan gemme billeder i JPEG og PNG formaterne.</span><br><a href=\"index.php?ID=" . $id . "&page=galleriskift&ex=0\" class=\"linkS\">Skift</a>Prøv igen</a>";
    }
echo $besked;
}
elseif($ex == "1" || $ex == "2" || ex == "3" || $ex == "4"){
$thumbnail_dir = "inc/galleri/extra/"; // din mappe til thumbnails
function tjektype($type) {
    $tilladt = array('image/x-png', 'image/png', 'image/pjpeg', 'image/jpeg');
    if(!in_array($type, $tilladt)) {
        return false;
    }else{
        return true;
    }
}

function tjekfilnavn($filnavn) {
    $i = 0;
    $ext = strrchr($filnavn, '.');
    $navn = substr($filnavn, 0, -strlen($ext));
    while (is_file($filnavn)) {
        $i++;
        $filnavn = $navn . "_" . sprintf("%03u", $i) . $ext;
    }
    return $filnavn;
}

if (isset($_POST['submit']) && $_POST['submit'] == "Upload" && $_POST['rettype'] == "ny") {
    $billede = $_FILES['nyhedsBillede']['name'];
    $billede = strtolower($billede);// ændre alt til små bogstaver
    $type = strrchr($billede, ".");// For at finde filtypen til tjek af jpeg kontra jpg 
    $dest = $uploaddir . $billede;// Stien til det store billede
    $dest = tjekfilnavn($dest);
    $dato_array = getdate();
    $oprettelsesdato = $dato_array['mday'] . "-" . $dato_array['mon'] . "-" . $dato_array['year'];
$dato = $dato_array['seconds'] . "-" .$dato_array['minutes'] . "-" .$dato_array['hours'] . "-" .$dato_array['mday'] . "-" . $dato_array['mon'] . "-" . $dato_array['year'];
    $source = $_FILES['nyhedsBillede']['tmp_name'];
    if (is_uploaded_file($source)) {
        if (tjektype($_FILES['nyhedsBillede']['type'])) {
            if (move_uploaded_file($source, $dest)) {
              list($width, $height) = getimagesize($dest);
               
                } 
                if($height <= $width){
                    $new_width = 100;
                } else {
                    $new_width = 82;
                }
                $krympefaktor = $new_width/$width;
                $new_height = round($height * $krympefaktor);
                $destinationImage = imagecreatetruecolor($new_width, $new_height);
                if ($type == ".jpeg" || $type == ".jpg") {
                    $sourceImage = imagecreatefromjpeg($dest);
                    imagecopyresampled($destinationImage, $sourceImage, 0, 0, 0, 0, $new_width, $new_height, imagesx($sourceImage), imagesy($sourceImage));
                    $thumbnail = $thumbnail_dir.basename($dato, $type)."_extra".$type;// Stien til thumbnail
                    imagejpeg($destinationImage, $thumbnail);
                } elseif ($type == ".png") {
                    $sourceImage = imagecreatefrompng($dest);
                    imagecopyresampled($destinationImage, $sourceImage, 0, 0, 0, 0, $new_width, $new_height, imagesx($sourceImage), imagesy($sourceImage));
                    $thumbnail = $thumbnail_dir.basename($dato, $type)."_extra".$type;
                    imagepng($destinationImage, $thumbnail);
                }                   
            }
            // her til
$select = "SELECT * FROM galleriextra WHERE GALID = '$id'";
$selected = mysql_query($select) or die(mysql_error());
while($gal = mysql_fetch_array($selected)){
if($ex == "1"){
unlink("/home/web/web36045/adm/" . $gal['extra']);
}
elseif($ex == "2"){
unlink("/home/web/web36045/adm/" . $gal['extrato']);
}
elseif($ex == "3"){
unlink("/home/web/web36045/adm/" . $gal['extratre']);
}
elseif($ex == "4"){
unlink("/home/web/web36045/adm/" . $gal['extrafire']);
}
}
if($ex == "1"){
mysql_query("UPDATE galleriextra SET extra='thumbnail' WHERE ID = $id") or die(mysql_error());
}
elseif($ex == "2"){
mysql_query("UPDATE galleriextra SET extrato='thumbnail' WHERE ID = $id") or die(mysql_error());
}
elseif($ex == "3"){
mysql_query("UPDATE galleriextra SET extratre='thumbnail' WHERE ID = $id") or die(mysql_error());
}
elseif($ex == "4"){
mysql_query("UPDATE galleriextra SET extrafire='thumbnail' WHERE ID = $id") or die(mysql_error());
}
                mysql_close();
                $besked = "<span class=menu><br><br>Billedet er opdateret!</span>";
        } else {
                $besked = "<span class=menu><br><br>Der opstod en ukendt fejl</span><br><a href=\"index.php?ID=" . $id . "&page=galleriskift&ex=0\" class=\"linkS\">Prøv igen</a>";
        }
    } else {
            $besked = "<span class=menu><br><br>Du prøvede at gemme et billedeformat som ikke er tilladt. Du kan gemme billeder i JPEG og PNG formaterne.</span><br><a href=\"index.php?ID=" . $id . "&page=galleriskift&ex=0\" class=\"linkS\">Skift</a>Prøv igen</a>";
    }
echo $besked;
}
} else {
    ?>
    <div style="text-align:center" class="normtext"><br><br><br><br><br><form name="admin"  method="post" action="<? echo "index.php?page=gallery&galleripage=skift&ex=$ex&ID=$id"; ?>" enctype="multipart/form-data">
    <table><tr>
    <td><span class="normtext">Billede:</span></td><td colspan="3"><input name="nyhedsBillede" type="file" size="20"></td>
    </tr>
    <tr>
    <td><input name="rettype" type="hidden" value="ny"><input name="submit" type="submit" value="Upload"></td>
    </tr></table></form>
<?
}}
?>

Kan i hitte ud af det?

Mvh Rasmus
Avatar billede rhandersen Nybegynder
14. marts 2005 - 19:29 #1
Ok, forhøjer til 200 p.
Avatar billede rhandersen Nybegynder
14. marts 2005 - 19:36 #2
Det kan da også blive til mere, jeg skal bare have det problem løst!
Avatar billede detox Nybegynder
14. marts 2005 - 21:13 #3
Du må rydde fuldstændig op i det script. Du gentager jo både funktioner og kodestumper flere gange.
Avatar billede detox Nybegynder
14. marts 2005 - 21:20 #4
Og nej, 200p er max!
Avatar billede conundrum Nybegynder
14. marts 2005 - 22:10 #5
Det var dog en masse unødig kode ;-)
/Conundrum
Avatar billede rhandersen Nybegynder
15. marts 2005 - 11:07 #6
Meget af det har jeg ikke selv lavet, så har selv lidt svæt ved det:S
Avatar billede rhandersen Nybegynder
17. marts 2005 - 17:09 #7
Er der ikke nogen der vil tage sig tid til at kigge på det, jeg kan simpelthen bare IKKE hitte ud af det:S
Avatar billede detox Nybegynder
17. marts 2005 - 18:58 #8
Det bliver alt for stort arbejde at skulle rette det til. Du skulle hellere gennemtænke projektet ordentligt og omstrukturere hele din kode. Jeg ved godt det ikke er til meget hjælp, men det er mit bedste råd.
Avatar billede rhandersen Nybegynder
17. marts 2005 - 20:32 #9
Selve uploadkoden virker, det er nogle af mine if'er der er noget i vejen med, er der ingen mulighed for at i lige ivl kigge på dem?
Avatar billede rhandersen Nybegynder
26. marts 2005 - 11:22 #10
Jeg har fundet ud af det
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