[PHP] Uploaden werkt niet

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Beekforel
  • Registratie: November 2001
  • Laatst online: 22:59

Beekforel

Is eigenlijk geen vis

Topicstarter
Ik ben een simpel scriptje aan het maken om een foto up-te-loaden. Maar op één of andere manier werkt het niet...

Formuliertje
HTML:
1
2
3
4
<form method='POST' action=add_therapeut.php enctype='multipart/form-data'>
  <input type=file name=foto class='formulier' />
  <input type=submit value=Invoeren class='button' />
</form>


PHP Verhaaltje
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?
if (!file_exists ('/fotos/' . $foto)) {
  if (is_uploaded_file($_FILES['foto']['tmp_name']))
  {
    $full_name = '/fotos/' . $_FILES['foto']['name'];
    echo $full_name . "<br />";
    move_uploaded_file ($_FILES['foto']['tmp_name'], $full_name);
  }
}
else { echo "Foto bestaat al."; }
?>


Ik krijg de volgende melding:
Notice: Undefined index: foto in /wcms/add_therapeut.php on line 83

Regel 83 is hier regel 3.

Ik heb al een hele rij "kant en klare" scriptjes geprobeerd, maar ook daar kom ik niks verder mee.
PHP versie is 4.3.3 en file_uploads staat op On.

De map fotos is geCHMOD met 777, en staat in dezelfde map als waar het scriptje staat.

Er komt dus niets in de map met foto's te staan.

Ik snap het niet meer ;(

[ Voor 40% gewijzigd door Beekforel op 18-11-2003 14:45 ]


Acties:
  • 0 Henk 'm!

  • me1299
  • Registratie: Maart 2000
  • Laatst online: 21:55

me1299

$ondertitel

Doe eens phpinfo() en kijk eens of de file in daad werkelijk wel geupload is.

Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen


Acties:
  • 0 Henk 'm!

  • Beekforel
  • Registratie: November 2001
  • Laatst online: 22:59

Beekforel

Is eigenlijk geen vis

Topicstarter
DeathKnight schreef op 18 november 2003 @ 14:24:
Doe eens phpinfo() en kijk eens of de file in daad werkelijk wel geupload is.
Vergeten te vermelden, er verschijnt geen bestand in de map fotos.
Hoe wil jij aan phpinfo(); kunnen zien of het bestand wordt geupload? :?

Acties:
  • 0 Henk 'm!

  • -=bas=-
  • Registratie: Oktober 2000
  • Laatst online: 22-04 02:56
Check eens welke data er in de variabele 'foto' staat als PHP hem aangereikt krijgt.
De melding is dat hij ongedefinieerd is. :)

Daar zal het dus wel op fout lopen.
Was er ook niet zo'n probleem met het gebruikt van POST en GET?
Niet op elke server werkte GET geloof ik.
Blijkbaar krijgt je script niet de waarde van 'foto' doorgegeven.

[ Voor 23% gewijzigd door -=bas=- op 18-11-2003 14:31 ]

Senile! Senile Oekaki


Acties:
  • 0 Henk 'm!

  • Banpei
  • Registratie: Juli 2001
  • Laatst online: 25-10-2022

Banpei

Hachiroku on this touge?

Beekforel schreef op 18 november 2003 @ 14:27:
Vergeten te vermelden, er verschijnt geen bestand in de map fotos.
Hoe wil jij aan phpinfo(); kunnen zien of het bestand wordt geupload? :?
Als ie al niet in je tempfolder staat zal ie ook niet naar de map fotos gekopieerd worden.

Met phpinfo kun je direct aan de _GET en _POST data zien of hier een bestand in staat (lot of garbage ;) )

Edit: wat is je maximale upload voor files?

[ Voor 5% gewijzigd door Banpei op 18-11-2003 14:33 ]

AE86 gevonden! | So what I thought I'd do was, I'd pretend to be one of those deaf-mutes.


Acties:
  • 0 Henk 'm!

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

Ik neem aan dat dit een typfout is, maar ik zie in je formulier staan "add_therapeut.php" als action. En in je error staat alleen "add.php".

Maar wordt de $full_name (regel 6) wel geprint?

[ Voor 8% gewijzigd door OkkE op 18-11-2003 14:35 ]

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Bekijk even puntje 2 van deze FAQ.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

  • Beekforel
  • Registratie: November 2001
  • Laatst online: 22:59

Beekforel

Is eigenlijk geen vis

Topicstarter
Als ik voor dat ie gaat uploaden echo $foto; doe, krijg ik gewoon de bestandsnaam van de te uploaden foto te zien, zou goed zijn toch?

In phpinfo(); kan ik niks vinden... En de /var/tmp map is ook leeg.

Acties:
  • 0 Henk 'm!

  • Beekforel
  • Registratie: November 2001
  • Laatst online: 22:59

Beekforel

Is eigenlijk geen vis

Topicstarter
Die zijn goed volgens mij. Was een van de eerste dingen die ik bekeken heb.
Vanuit phpinfo(); :
file_uploads On
upload_max_filesize 2M
upload_tmp_dir no value
post_max_size 8M
OkkE schreef op 18 november 2003 @ 14:34:
Ik neem aan dat dit een typfout is, maar ik zie in je formulier staan "add_therapeut.php" als action. En in je error staat alleen "add.php".

Maar wordt de $full_name (regel 6) wel geprint?
Dat van add.php is een typfout inderdaad, dat is wel gewoon goed.

$full_name wordt niet geprint.

[ Voor 14% gewijzigd door Beekforel op 18-11-2003 14:44 ]


Acties:
  • 0 Henk 'm!

  • Obliterator
  • Registratie: November 2000
  • Laatst online: 08-07 15:12
probeer eens een

code:
1
print_r($_FILES);


Dan kun je precies zien wat je hebt gekregen.

Acties:
  • 0 Henk 'm!

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

Beekforel schreef op 18 november 2003 @ 14:40:
[...]

Die zijn goed volgens mij. Was een van de eerste dingen die ik bekeken heb.
Vanuit phpinfo(); :
file_uploads On
upload_max_filesize 2M
upload_tmp_dir no value
post_max_size 8M


[...]

Dat van add.php is een typfout inderdaad.

$full_name wordt niet geprint.
Moet dit:

upload_tmp_dir no value

Niet juist WEL een waarde hebben.. 8)7

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Acties:
  • 0 Henk 'm!

  • Beekforel
  • Registratie: November 2001
  • Laatst online: 22:59

Beekforel

Is eigenlijk geen vis

Topicstarter
Obliterator schreef op 18 november 2003 @ 14:41:
probeer eens een

code:
1
print_r($_FILES);


Dan kun je precies zien wat je hebt gekregen.
Hm.. dan krijg ik alleen Array ( ) te zien... Wat betekend dit?
OkkE schreef op 18 november 2003 @ 14:45:
[...]
Moet dit:

upload_tmp_dir no value

Niet juist WEL een waarde hebben.. 8)7
Voor zover ik weet is dit geen probleem, hij pakt nu de default waarde van de servert.

[ Voor 34% gewijzigd door Beekforel op 18-11-2003 14:47 ]


Acties:
  • 0 Henk 'm!

  • Obliterator
  • Registratie: November 2000
  • Laatst online: 08-07 15:12
De $FILES array is dus niet gevuld. Dat zou toch aan de PHP configuratie moeten liggen denk ik.

Als $foto wel werkt, dan kun je die ook gebruiken. Hoe was het ook al weer...
$foto_name zou dan moeten werken.

Zie ook http://www.php.net/manual/en/features.file-upload.php
The Variables defined for uploaded files differs depending on the PHP version and configuration. The autoglobal $_FILES exists as of PHP 4.1.0 The $HTTP_POST_FILES array has existed since PHP 4.0.0. These arrays will contain all your uploaded file information. Using $_FILES is preferred. If the PHP directive register_globals is on, related variable names will also exist. register_globals defaults to off as of PHP 4.2.0.

[ Voor 44% gewijzigd door Obliterator op 18-11-2003 14:58 ]


Acties:
  • 0 Henk 'm!

  • Mentalist
  • Registratie: Oktober 2001
  • Laatst online: 30-08 02:04

Mentalist

[avdD]

PHP:
1
$foto=$_POST[foto];


Toevoegen of register_globals aanzetten :?

En moet

code:
1
<input type=file name=foto class='formulier' />


Niet

code:
1
<input type=file name="foto" class='formulier' />


Worden :? (weet niet of dat noodzakelijk is, ik ben ook maar een n00b hiermee :+)

Anders heb ik hier nog wel de file uploader die ik gebruik, die werkt (bij mij) wel :

PHP:
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
<FORM ENCTYPE="multipart/form-data" ACTION="woei.php" METHOD="POST">
<INPUT TYPE="file" NAME="userfile">
<INPUT TYPE="submit" VALUE="klik">
</FORM>

<?php

// Image file upload by Bloody
// http://www.bloodys.com/
// email: info@bloodys.com
// If you use this script, please put a link back to http://www.bloodys.com/

$path = "c:/Program Files/Apache group/Apache/www/upload/files/";

if (!isset($HTTP_POST_FILES['userfile'])) exit;

if (is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'])) {

if (($HTTP_POST_FILES['userfile'])) {

if (file_exists($path . $HTTP_POST_FILES['userfile']['name'])) { echo "The file already exists<br>\n"; exit; }

$res = copy($HTTP_POST_FILES['userfile']['tmp_name'], $path .
$HTTP_POST_FILES['userfile']['name']);
if (!$res) { echo "upload failed!<br>\n"; exit; } else { echo "upload sucessful<br>\n"; }

echo "File Name: ".$HTTP_POST_FILES['userfile']['name']."<br>\n";
echo "File Size: ".$HTTP_POST_FILES['userfile']['size']." bytes<br>\n";
echo "File Type: ".$HTTP_POST_FILES['userfile']['type']."<br>\n";
} else { echo "Wrong file type<br>\n"; exit; }

}

?>


Origineel alleen een image uploader (inclusief beperkingen op filesize etc), maar ik heb 'm een beetje verbouwt voor eigen gebruik zodat ik alles kan uploaden :P. Misschien zie je hier iets in :)

Verstuurd vanaf mijn Computer®


Acties:
  • 0 Henk 'm!

  • eborn
  • Registratie: April 2000
  • Laatst online: 19:03
W3ird_N3rd schreef op 18 november 2003 @ 15:02:
Origineel alleen een image uploader (inclusief beperkingen op filesize etc), maar ik heb 'm een beetje verbouwt voor eigen gebruik zodat ik alles kan uploaden :P. Misschien zie je hier iets in :)
Als je dan toch bezig bent, maak dan van HTTP_POST_FILES meteen FILES :) Of doe een check of de huidige PHP versie als je nog wel eens van server switcht.

Acties:
  • 0 Henk 'm!

  • Beekforel
  • Registratie: November 2001
  • Laatst online: 22:59

Beekforel

Is eigenlijk geen vis

Topicstarter
Ok. Heb het nog es anders geprobeerd. Gewoon de standaard php.net methode.
HTML:
1
2
3
4
5
<form enctype="multipart/form-data" action="upload.php" method="post">
 <input type="hidden" name="MAX_FILE_SIZE" value="1000">
 Upload dit bestand: <input name="userfile" type="file">
 <input type="submit" value="Upload!">
</form>

PHP:
1
2
3
4
5
6
7
8
9
10
<?php
    // Voor PHP 4.1.0 moet $HTTP_POST_FILES gebruikt worden in plaats van $_FILES.
    if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
        copy($_FILES['userfile']['tmp_name'], "/map/");
    } else {
        echo "Mogelijke aanval gespot: " . $_FILES['userfile']['name'];
    }
    /* ...of... */
    move_uploaded_file($_FILES['userfile']['tmp_name'], "/map/");
?>

Dan krijg ik:
Warning: copy(): SAFE MODE Restriction in effect. The script whose uid is 563 is not allowed to access / owned by uid 0 in /upload/upload.php on line 4

Warning: copy(/map/): failed to open stream: No such file or directory in /upload/upload.php on line 4

Warning: move_uploaded_file(): SAFE MODE Restriction in effect. The script whose uid is 563 is not allowed to access / owned by uid 0 in /upload/upload.php on line 9

[ Voor 99% gewijzigd door Beekforel op 18-11-2003 16:12 ]


Acties:
  • 0 Henk 'm!

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

Zoals je melding zegt, php draaid in SAFE MODE, hierdoor kun je een aantal functies nier gebruiken. Waaronder dus die met uploaden te maken hebben, waardoor je server wel veiliger is. Het is dus een instelling van je php-server, die volgens mij alleen je hoster aan kan passen. (Of draai je zelf een server?)

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Acties:
  • 0 Henk 'm!

  • Beekforel
  • Registratie: November 2001
  • Laatst online: 22:59

Beekforel

Is eigenlijk geen vis

Topicstarter
Het is een gehoste en betaalde server. Ik zal es contact opnemen met hun dan.
Is er geen mogelijkheid voor uploads in safe mode?

edit: Het is gelukt! Ik probeerde steeds naar /map/ te schrijven... :X
Naar de root dus... Dat gaat niet werken op een redelijk beveiligde servert |:(
Nu gebruik ik map/ en werkt het perfect!

[ Voor 45% gewijzigd door Beekforel op 18-11-2003 18:20 ]

Pagina: 1