Uploaden met afbeelding werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Webmaster Robbe

Webmaster Robbe

05/11/2015 10:14:54
Quote Anchor link
Hallo allemaal!
Tijdje geleden ondertussen ;)

Maar ik heb een probleempje :s en Geraak er maar niet uit.. :/

Ik heb een upload script voor het bewerken van een bepaalde pagina (edit pagina).
Alles loopt goed. Tot hij moet uploaden dan gaat er iets mis.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
    if($_SERVER['REQUEST_METHOD'] == 'POST'){
        $page = $_POST['page'];
        $id = $_POST['id'];
        $onderwerp = htmlspecialchars($_POST['naam'], ENT_QUOTES);
        $inhoud = htmlspecialchars(nl2br($_POST['bericht'], ENT_QUOTES));
        date_default_timezone_set('Europe/Brussels');
        $currentdate = date("Y-m-d H:i:s");
    
    if(!empty($_FILES['uploaded']['name'])){
    
        $target = "uploads/";
        $target = $target . basename( $_FILES['uploaded']['name']) ;
        $filename = basename( $_FILES['uploaded']['name']);
        $filename_parts = explode('.',$filename);
        $count = count($filename_parts);
    if($count> 1){
        $ext = $filename_parts[$count-1];
        unset($filename_parts[$count-1]);
        $filename_to_md5 =  implode('.',$filename_parts);
        $new = md5($filename_to_md5). '.' . $ext ;
    }
else{
        $new = md5($filename);
    }

    $ok=1;
    
    //This is our size condition
    if ($uploaded_size > 350000){
        $err = "Your file is too large.<br>";
        $ok=0;
    }

    if(file_exists('uploads/' . $_FILES['uploaded']['name'])){
        $err = $err."File with that name already exists.<br>";
         $ok=0;
    }

    
    //This is our limit file type condition
    if ($uploaded_type =="text/php"){
        $err = $err."No PHP files<br>";
        $ok=0;
    }

    
     //Here we check that $ok was not set to 0 by an error
     if ($ok==0){
        $succes = "<div class='alert alert-danger'>Er ging iets mis. ". $err ."</div>";
     }
else{
    //If everything is ok we try to upload it
         if(move_uploaded_file($_FILES['uploaded']['tmp_name'], "uploads/{$new}")){
                 $image = "uploads/".$new;
                $sql = "UPDATE data SET titel = ".$onderwerp.", inhoud = ".$inhoud.", edit_date = ".$currentdate.", img = ".$image." WHERE id =".$id."";
                $retval = mysql_query($sql);
                if($retval){
                    $succes = "<div class='alert alert-danger'>Er ging duidelijk iets mis. Probeer later opnieuw.</div>";
                }
else{
                    $message .= "Dit gedeelte (". $page .") werd succesvol geupdate.";
                    $succes = "<script type='text/javascript'>alert('".$message." . ".$sorry."');</script>";
                }
         }
else{
            $succes = "<div class='alert alert-danger'>Er ging iets mis met het uploaden.</div>";
         }}}
else{
             $succes = "<div class='alert alert-danger'>Geen afbeelding gevonden.</div>";
        }
    }

?>


Iemand die weet wat ik mis doe? "<div class='alert alert-danger'>Er ging iets mis met het uploaden.</div>" dit geeft hij weer.

Ik denk dat hier het probleem zit (kan ook fout zijn):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
 if(move_uploaded_file($_FILES['uploaded']['tmp_name'], "uploads/{$new}")){
                 $image = "uploads/".$new;
                $sql = "UPDATE data SET titel = ".$onderwerp.", inhoud = ".$inhoud.", edit_date = ".$currentdate.", img = ".$image." WHERE id =".$id."";
                $retval = mysql_query($sql);
                if($retval){
                    $succes = "<div class='alert alert-danger'>Er ging duidelijk iets mis. Probeer later opnieuw.</div>";
                }
else{
                    $message .= "Dit gedeelte (". $page .") werd succesvol geupdate.";
                    $succes = "<script type='text/javascript'>alert('".$message." . ".$sorry."');</script>";
                }
         }
else{
            $succes = "<div class='alert alert-danger'>Er ging iets mis met het uploaden.</div>";
         }}

?>


Iemand die mij kan helpen? :)
Alvast bedankt :D
Gewijzigd op 05/11/2015 10:15:37 door Webmaster Robbe
 
PHP hulp

PHP hulp

24/11/2024 22:19:58
 
- Ariën  -
Beheerder

- Ariën -

05/11/2015 10:30:19
Quote Anchor link
Wat zegt een echo met: $_FILES['uploaded']['error']?

Let er ook op dat de mysql-functies verouderd zijn. Gebruik liever MySQLi of PDO.
Gewijzigd op 05/11/2015 10:32:05 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

05/11/2015 14:22:08
Quote Anchor link
- waar komt $uploaded_size vandaan?
- waar komt $uploaded_type vandaan?
Daarnaast, uitgaan van het MIME-type van $_FILES is gevaarlijk, omdat deze enkel gebaseerd is op wat de browser doorgeeft (je kunt dus een executable uploaden als textbestand of afbeelding). De browser op haar beurt baseert de MIME-type enkel op de extensie van het te uploaden bestand. Daarbij lijkt het mij ook onverstandig om een blacklist te hanteren (en ook weet ik niet of er zoiets bestaat als een text/php MIME-type?); gebruik een whitelist.
- waar is je formulier? staat enctype="multipart/form-data" in je form-tag?

Als je het melden+weergeven van fouten eens aanzet in je code, ik denk dat je dan eerst aan de slag kunt met het oplossen van enkele ongedefinieerde variabelen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.