[PHP/HTML] Upload problemen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Arjan90
  • Registratie: September 2005
  • Laatst online: 20:41
Hallo jongens, ik zit met een probleem en ik kom er écht niet uit.. Ik heb lopen debuggen, van de grond af weer opbouwen, maar ik kom er niet achter waar nou precies het probleem zit.

Het probleem
Het lijkt erop dat een upload script wat elders op mijn server draait, op een andere locatie niet draait, raar zou ik zeggen, toch? Ik heb echter alles van de grond af gebouwd, en niets werkt.. Via debugging ben ik erachter gekomen dat de waarde voor $HTTP_POST_FILES['file'] gewoon "" is, ofwel niets. Ik hoop dat jullie mij verder kunnen helpen, als volgt de bestanden:

upload_form.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
$i=0;
if (isset($_GET['amount'])) {
  $amount=$_GET['amount'];
} else {
  $amount=1;
}
?>

<form method="POST" enctype="multipart/form-data" action="upload/<? echo $amount ?>">
<? echo "<input name=\"file\" type=\"file\" size=\"50\">"; ?>
<br /><br />
<input type="submit" value="Upload!" name="upload">
</form>

Niet letten op dat stukje echo bij de file input, dit stukje komt namelijk origineel uit een while functie, maar ik was te lui om hem om te zetten naar HTML (moet toch weer terug naar PHP :) )

upload_act.php (momenteel érg kaal, maar ik moet eerst zorgen dat hij überhaupt iets meestuurt.
PHP:
1
2
3
4
5
6
7
8
<?php
$folder="gallery/uploads";
$r=0;

if ($HTTP_POST_FILES['name']['file']=="") {
  echo "It's not working properly, the files are still empty!";
}
?>


Als jullie nog meer info nodig hebben, zeg het maar.. Het rare vind ik dus dat het originele script hiervan wel gewoon werkte op een andere locatie op dezelfde webserver (bijv. op www.domain.com werkt het in dit geval niet, maar op subdomain.domain.com wel), ik heb ook dit subdomein bekeken qua verschillen in script maar kan niets vinden :(

De oplossing
Ik bleek een fout te hebben in mijn script, namelijk dat $HTTP_POST_FILES['name']['file'] verkeerd geschreven was, ['name'] en ['file'] moesten namelijk omgedraaid worden. Dit was een domme fout.
Dit bleek echter niet de oplossing, het bleek namelijk dat $HTTP_POST_FILES wél werkt op mijn subdomein, maar niet op mijn gewone domein. Als oplossing hiervoor moest ik $_FILES ipv. $HTTP_POST_FILES gebruiken, dit loste het probleem voor mij op.

Het goeie script nu is dan ook:
upload_act.php
PHP:
1
2
3
4
5
6
7
8
<?php
$folder="gallery/uploads";
$r=0;

if ($_FILES['file']['name']=="") {
  echo "It's not working properly, the files are still empty!";
}
?>

[ Voor 21% gewijzigd door Arjan90 op 06-07-2007 10:56 ]

"Everybody is a genius. But if you judge a fish by its ability to climb a tree, it will live its whole life believing that it is stupid."


Acties:
  • 0 Henk 'm!

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 22-07-2024
moet
$HTTP_POST_FILES['name']['file']
niet dit zijn
$HTTP_POST_FILES['file']['name']

This message was sent on 100% recyclable electrons.


Acties:
  • 0 Henk 'm!

  • Arjan90
  • Registratie: September 2005
  • Laatst online: 20:41
Bedankt, dat was hem, hoewel ik zeker weet dat het in het originele script wel goed gaat. Ik ga even wat verder testen wat er fout ging, en dan zal ik het hier even posten (dat was namelijk niet het enige).

Ik schaam me wel voor die fout :'( Dat mag niet gebeuren, maar ja.. Shit happens. In ieder geval bedankt, ik kijk nu even of er meer fout ging! :)


EDIT:
Ik heb het gevonden, $HTTP_POST_FILES werkt wel op het subdomein, maar kennelijk dus niet op het gewone domein, erg raar, maar goed, dat is het in ieder geval. Ik ga voortaan dus gewoon $_FILES gebruiken ipv $HTTP_POST_FILES, aangezien $_FILES ook op het subdomein werkt. Hartelijk dank BasieP, jouw opmerking was erg helder, aangezien ik een domme fout had gemaakt, en daardoor kwam ik dus dit verschil tussen $HTTP_POST_FILES en $_FILES aan.

[ Voor 39% gewijzigd door Arjan90 op 06-07-2007 10:53 ]

"Everybody is a genius. But if you judge a fish by its ability to climb a tree, it will live its whole life believing that it is stupid."