Avatar billede vifa Novice
18. april 2010 - 13:14 Der er 2 kommentarer og
1 løsning

Problemer med If Else

Hej,

Jeg har stirret mig blind på den her :(
Jeg har et script der uploader billeder, og et til at slette dem med igen.

Upload:
--------------------------------------
                    <form action="adminside.php?page=personale" method="post" enctype="multipart/form-data">
           
   
<pre>
   
<b>Tilføj</b>
   
Stilling: <input type="text" name="stilling">
Navn:    <input type="text" name="navn">
Tlf:      <input type="text" name="tlf">
E-mail:  <input type="text" name="email">
Billede:  <input type="file" name="profilbillede[]">
</pre>
   
   
                        <center>
               
                        <input type="submit" value="Tilføj" name="udfortilfoj">
                       
                        </center>
               
               
                    </form>
                </td>
            </tr>
       
            </table>   
           
   
            <?php
            }
            ?>       
       
       
       
        <?php
               
        if (isset($_POST["udfortilfoj"]))
        {
       
       

       
                    //var_dump($_FILES);
                foreach($_FILES["profilbillede"]["error"] as $key => $error)
                {
                    //print $error;
                    if($error == UPLOAD_ERR_OK)
                    {
                        $uploadPlace = "../profilbilleder/";
                        move_uploaded_file($_FILES["profilbillede"]["tmp_name"][$key], $uploadPlace . $_FILES["profilbillede"]["name"][$key]);
                        $fileName = explode(".", $_FILES["profilbillede"]["name"][$key]);
                        $fileType = array_pop($fileName);
                        $fileName = implode(".", $fileName);
                        list($width, $height) = getimagesize($uploadPlace . $_FILES["profilbillede"]["name"][$key]);
                        createThumb($uploadPlace, $fileName, $fileType, $width, $height, "150", "150");
                    }
                    else
                    {
                        print 'Upload fejl';
                    }
                }   
           
                   
                   
        $stilling         = $_POST['stilling'];
        $navn             = $_POST['navn'];
        $tlf            = $_POST['tlf'];
        $email            = $_POST['email'];
        $profilbillede    = $fileName . "." . $fileType;;
               
        $tilfoj         = "INSERT INTO personale (stilling, navn, tlf, email, profilbillede) VALUES ('" . $stilling . "', '" . $navn . "', '" . $tlf . "', '" . $email . "', '" . $profilbillede . "')";
               
               
        $udfortilfoj     = mysql_query($tilfoj) or die(mysql_error());
                   
       
        echo "<b>Oplysninger tilføjet</b>";
                   
        }
        ?>
--------------------------------------

De gange hvor der ikke er et billede der skal tilføjes, vil jeg gerne at den springer det stykke over hvor den uploader billedet - så den ikke skriver 'Upoad fejl' hver gang. Har rodet med en masse if sætninger - men nu har jeg virkelig stirret mig blind på det.




Ligeledes har jeg et problem når jeg vil slette én igen.

Slet:
---------------------------------------------
        <?php
                   
        if (isset($_POST['udforslet']))
        {
                   
            $hentperson             = $_POST['slet1'];
                   
                   
            $sletprofilbillede         = "SELECT * FROM personale WHERE noegle = '" . $hentperson . "'";
                   
            $udforsletprofilbillede = mysql_query($sletprofilbillede) or die(mysql_error());
                   
            $row                     = mysql_fetch_assoc($udforsletprofilbillede);
                   
            if($row['profilbillede'] != '')
            {
                unlink("../profilbilleder/$row[profilbillede]");
            }
               
                   
            $sletperson             = "DELETE FROM personale WHERE noegle = '" . $hentperson . "'";
                   
            $udforsletperson        = mysql_query($sletperson);
                       
            echo "<b>Oplysninger slettet</b>";
                       
        }
               
        ?>
               
---------------------------------------------

Her har jeg lavet en if($row['profilbillede'] != '') så skal den unlinke. Det virker også fint nok, men når der ikke er et billede tilknyttet den pågældende kontakt så prøver den stadig på at unlinke.


På forhånd tak.
Avatar billede The_Buzz Novice
18. april 2010 - 14:16 #1
foreach($_FILES["profilbillede"]["error"] as $key => $error)
                {
                    //print $error;
                    if($error == UPLOAD_ERR_OK)
                    {
                        $uploadPlace = "../profilbilleder/";
                        move_uploaded_file($_FILES["profilbillede"]["tmp_name"][$key], $uploadPlace . $_FILES["profilbillede"]["name"][$key]);
                        $fileName = explode(".", $_FILES["profilbillede"]["name"][$key]);
                        $fileType = array_pop($fileName);
                        $fileName = implode(".", $fileName);
                        list($width, $height) = getimagesize($uploadPlace . $_FILES["profilbillede"]["name"][$key]);
                        createThumb($uploadPlace, $fileName, $fileType, $width, $height, "150", "150");
                    }
                    else
                    {
                        print 'Upload fejl';
                    }
                }   

evt replace med

                foreach($_FILES["profilbillede"]["error"] as $key => $error)
                {
                    //print $error;
                    if($error == UPLOAD_ERR_OK)
                    {
                        $uploadPlace = "../profilbilleder/";
                        move_uploaded_file($_FILES["profilbillede"]["tmp_name"][$key], $uploadPlace . $_FILES["profilbillede"]["name"][$key]);
                        $fileName = explode(".", $_FILES["profilbillede"]["name"][$key]);
                        $fileType = array_pop($fileName);
                        $fileName = implode(".", $fileName);
                        list($width, $height) = getimagesize($uploadPlace . $_FILES["profilbillede"]["name"][$key]);
                        createThumb($uploadPlace, $fileName, $fileType, $width, $height, "150", "150");
                    }
                    else
                    {
                        if ($_FILES["profilbillede"]) {
                          print 'Upload fejl';
                        }

                    }
                }
Avatar billede FrederikBache Nybegynder
18. april 2010 - 14:19 #2
1)
Prøv evt. at lav en ekstra if sætning uden om den du allerede har:

if($_FILES["profilbillede"]["name"] != ""){
}
else{
  // Intet billede valgt
}

2)
Kan se at du oppe i tilføj scriptet sætter $profilbillede = $fileName . "." . $fileType;

Det vil blive til et punktum nede i databasen hvis ikke der er valgt et billede. Kan være der problemet ligger.
Avatar billede vifa Novice
18. april 2010 - 19:18 #3
Med hensyn til 2'eren, så havde du ret.. den satte et punktum ind i databasen.... har nu ændret dette til:

if($row['profilbillede'] != '.')

istedet for

if($row['profilbillede'] != '')

..og det virker tak.. :)


Angående 1'eren, så har jeg sat følgende ind som du forslog:

------------------------------------------------------
<?php
               
        if (isset($_POST["udfortilfoj"]))
        {
               
            if($_FILES["profilbillede"]["name"] != "")
            {
       
                    //var_dump($_FILES);
                foreach($_FILES["profilbillede"]["error"] as $key => $error)
                {
                    //print $error;
                    if($error == UPLOAD_ERR_OK)
                    {
                        $uploadPlace = "../profilbilleder/";
                        move_uploaded_file($_FILES["profilbillede"]["tmp_name"][$key], $uploadPlace . $_FILES["profilbillede"]["name"][$key]);
                        $fileName = explode(".", $_FILES["profilbillede"]["name"][$key]);
                        $fileType = array_pop($fileName);
                        $fileName = implode(".", $fileName);
                        list($width, $height) = getimagesize($uploadPlace . $_FILES["profilbillede"]["name"][$key]);
                        createThumb($uploadPlace, $fileName, $fileType, $width, $height, "150", "150");
                    }
                    else
                    {
                        print 'Upload fejl';
                    }
                }   
            }
                   
                   
        $stilling         = $_POST['stilling'];
        $navn             = $_POST['navn'];
        $tlf            = $_POST['tlf'];
        $email            = $_POST['email'];
        $profilbillede    = $fileName . "." . $fileType;;
               
        $tilfoj         = "INSERT INTO personale (stilling, navn, tlf, email, profilbillede) VALUES ('" . $stilling . "', '" . $navn . "', '" . $tlf . "', '" . $email . "', '" . $profilbillede . "')";
               
               
        $udfortilfoj     = mysql_query($tilfoj) or die(mysql_error());
                   
       
        echo "<b>Oplysninger tilføjet</b>";
                   
        }
        ?>


------------------------------------------------------


... men jeg får stadig 'Upload fejl' når jeg laver en kontakt uden et profilbillede...
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