Upload script werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Hans -

Hans -

11/12/2012 09:09:32
Quote Anchor link
Beste mensen,

na enige tijd debuggen kom ik er niet uit.. ik ben met een upload script bezig die een plaatje moet uploaden in een map op de ftp. De website geeft aan dat het aan het uploaden is en dat het succesvol gelukt is, maar als ik in de map kijk dan staat er geen plaatje.. Ik gebruik het goede bestandsformaat met het plaatje.

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
<?php
session_start();
$userSes = $_SESSION['username'];
if(isset($_POST['submit']))
{

    echo "<h2></h2>";
    echo "
    <form action='index.php?pagina=addKlus' method='post' enctype='multipart/form-data'>
        <table>
            <input type='hidden' name='user' value='"
.$userSes."'/>
            <tr><td>Afbeelding: </td><td><input type='file' name='file' id='file'></td></tr>
            <tr><td>Naam: </td><td><input type='text' name='naam' value='"
.$_POST['naam']."'/></td></tr>
            <tr><td>Plaats: </td><td><input type='text' name='plaats' value='"
.$_POST['plaats']."'/></td></tr>
            <tr><td>Onderwerp: </td><td><input type='text' name='onderwerp' value='"
.$_POST['onderwerp']."'/></td></tr>
            <tr><td>Budget: </td><td><input type='text' name='prijs' placeholder='Heel getal'/><font size='1'>*U kunt ze ook een prijs laten geven, dmv geen prijs in te vullen!</font></td></tr>
            <tr><td valign='top'>Omschrijving over de klus: </td><td><textarea name='omschrijving' style='width: 400px; height: 200px;'></textarea></td></tr>
            <tr><td>&nbsp;</td></tr>
            <tr><td>Overige informatie: </td><td><textarea name='info' style='width: 200px; height: 100px;'></textarea></td></tr>
            <tr><td></td><td><input type='submit' name='klus' value='Plaats klus' class='buttonStyle' /></td></tr>
        </table>
    </form>"
;
}


if(isset($_POST['klus']))
{

    if ((($_FILES["file"]["type"] == "image/jpg")
    || (
$_FILES["file"]["type"] == "image/jpeg")
    || (
$_FILES["file"]["type"] == "image/pjpeg")
    || (
$_FILES["file"]["type"] == "image/png")
    || (
$_FILES["file"]["type"] == "image/PNG"))
    && (
$_FILES["file"]["size"] < 26214400))
      {

      if ($_FILES["file"]["error"] > 0)
        {

        $error = "Error code: " . $_FILES["file"]["error"] . "<br />";
        }

      else
        {
            
        if (file_exists("upload/" . $_FILES["file"]["name"]))
          {

          $error = $_FILES["file"]["name"] . " bestaat al. ";
          }

        else
          {
          move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $_FILES["file"]["name"]);
          
          $afbeelding_naam = $_FILES["file"]["name"];
          $afbeelding = 'http://www.klusdeals.nl/ingame/pagina/upload/' . $_FILES["file"]["name"];
          
          $tekst    = "Bestand succesvol geupload";
          }
        }
      }

    else
      {
      $error = "Verkeerd bestandformaat, jpg &amp; png bestanden zijn toegestaan tot 1mb";
      }


    echo "Uw klus is succesvol geplaatst!";
}

?>
 
PHP hulp

PHP hulp

25/12/2024 06:03:09
 
Chris PHP

Chris PHP

11/12/2012 09:17:03
Quote Anchor link
Waarom draait iedereen altijd de quotes om? Het is enkel ' voor echo's en dubbel " voor HTML.

Tevens zou ik het hele HTML stuk escapen en gewoon als HTML weergeven en geen php voor gebruiken. Is onnodige belasting van je server.

Ook controleer je niet met isset, maar met if ($_SERVER['REQUEST_METHOD'] == "POST")
Gewijzigd op 11/12/2012 09:20:06 door Chris PHP
 
Hans -

Hans -

11/12/2012 09:20:17
Quote Anchor link
Maar daar kan nu op dit moment de fout niet liggen lijkt mij, aangezien ik in mijn andere bestand de quotes al heb geprobeerd om te draaien, maar hetzelfde resultaat
 
Erwin H

Erwin H

11/12/2012 09:25:31
Quote Anchor link
Om te beginnen zou ik controleren wat move_uploaded_file() aangeeft. Die functie geeft een boolean terug om aan te geven of het copieren gelukt is.
 
Hans -

Hans -

11/12/2012 09:34:38
Quote Anchor link
Hoe kan ik dat controleren?
 
Chris PHP

Chris PHP

11/12/2012 09:35:55
Quote Anchor link
Nee maar het is wel ongelofelijk lastig troubleshooten zo. Alles is als echo weergegeven dus een tikfout is zo gemaakt. Nogmaals het is ook onnodige belasting van de server om client side code te laten uitvoeren door de server.

Tevens heb je hier een fout gemaakt.

Eerst zeg je if(isset($_POST['submit'])) //Klopt niet want je submit name is klus niet submit

en hier zeg je if(isset($_POST['klus']))

Ook zet je alle foto's in 1 map, maar hoe controleer je of de afbeeldingsnaam al niet voorkomt? Bijvoorbeeld afb001.jpg?
Gewijzigd op 11/12/2012 09:38:41 door Chris PHP
 
Hans -

Hans -

11/12/2012 09:37:30
Quote Anchor link
Chris, ik maak wel gebruik van de Submit, maar dat is op de vorige pagina. ;) Dus dat is gewoon correct.
ik zoek enkel de fout waarom hij niet upload..
 
Erwin H

Erwin H

11/12/2012 09:40:21
Quote Anchor link
Jeremy Evers op 11/12/2012 09:34:38:
Hoe kan ik dat controleren?

Pardon? Dat zeg ik. Het is een functie en die geeft een boolean terug.
 
Chris PHP

Chris PHP

11/12/2012 09:40:31
Quote Anchor link
Jeremy Evers op 11/12/2012 09:37:30:
Chris, ik maak wel gebruik van de Submit, maar dat is op de vorige pagina. ;) Dus dat is gewoon correct.
ik zoek enkel de fout waarom hij niet upload..


Dat is niet correct, POST wordt niet onthouden wanneer je op die pagina nomgaals een submit doet (je upload form). Dan wordt je eerste $_POST variabel leegemaakt en krijg je die van je formulier.

Gebruik hier dan $_GET voor.
Volgens mij maak je ook verkeerd gebruik van tmp_name en name, echo beide is en kijk eens of ze geven wat je verwacht.
Gewijzigd op 11/12/2012 09:42:00 door Chris PHP
 
Erwin H

Erwin H

11/12/2012 09:41:39
Quote Anchor link
Chris NVT op 11/12/2012 09:35:55:
Ook zet je alle foto's in 1 map, maar hoe controleer je of de afbeeldingsnaam al niet voorkomt? Bijvoorbeeld afb001.jpg?

Dat doet hij wel:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if (file_exists("upload/" . $_FILES["file"]["name"]))
          {

          $error = $_FILES["file"]["name"] . " bestaat al. ";
          }

?>
 
Chris PHP

Chris PHP

11/12/2012 09:42:26
Quote Anchor link
Erwin H op 11/12/2012 09:41:39:
Chris NVT op 11/12/2012 09:35:55:
Ook zet je alle foto's in 1 map, maar hoe controleer je of de afbeeldingsnaam al niet voorkomt? Bijvoorbeeld afb001.jpg?

Dat doet hij wel:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if (file_exists("upload/" . $_FILES["file"]["name"]))
          {

          $error = $_FILES["file"]["name"] . " bestaat al. ";
          }

?>




Ja klopt, zag het te laat ;)
 
Hans -

Hans -

11/12/2012 09:47:37
Quote Anchor link
Hmm. nog steeds geen resultaat als ik het op GET zet..
 
Chris PHP

Chris PHP

11/12/2012 09:50:52
Quote Anchor link
Jeremy Evers op 11/12/2012 09:47:37:
Hmm. nog steeds geen resultaat als ik het op GET zet..


je weet dat $_GET met je url meegezonden moet worden he? Dus het is niet een questie van $_POST veranderen in $_GET.

Tevens zie ik dat je alles in je index.php doet, endus zal je sessie niet goed werken aangezien session_start() niet bovenaan de pagina staat.

Tevens, heeft je map 'upload' wel de 777 rechten?
Gewijzigd op 11/12/2012 09:52:43 door Chris PHP
 
Hans -

Hans -

11/12/2012 10:03:37
Quote Anchor link
Chris, de sessies werken perfect, het is met een pagina systeem ;)

Upload map is 777

Ja en dat over de GET begrijp ik, maar omdat ik met een pagina systeem werk, en dus de pagina in de url zet, werkt de get niet helemaal goed nu. maar hij moet het toch ook gewoon doen met de POST?
 
Erwin H

Erwin H

11/12/2012 10:25:17
Quote Anchor link
En zeker nog steeds niet gechecked of het copieren van het bestand wel lukt... lijkt me toch het eerste wat je doet. Daarnaast ook nog foutmeldingen aan zetten, helpt soms ook wel om te ontdekken wat er dan fout gaat.
 
Hans -

Hans -

13/12/2012 15:36:45
Quote Anchor link
Update van het script:

Het werkt nog steeds niet, ik heb hem even gebruikt op een andere pagina, gewoon nieuw bestand aangemaakt, een test.php en dit getest. Hij deed het prima, toen heb ik hem weer terug gezet precies hoe hij het deed, maar in die pagina doet hij het niet.. hoe kan dit nou..
 



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.