[PHP] Error 6 bij uploaden file. Hoe temp dir instellen?

Pagina: 1
Acties:
  • 265 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • wcduck
  • Registratie: September 2000
  • Niet online
Hallo allemaal.

Ik heb sinds enkele dagen een probleem met het uploaden van een bestand naar een script. In mijn zoektoch waar de fout zat heb ik even een standaard script bij w3schools.com gehaald en dit geprobeerd. Bij deze het script:

code:
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
<?php
if ($_FILES["file"]["error"] > 0)
  {
  echo "Error: " . $_FILES["file"]["error"] . "<br />";
  }
else
  {
  echo "Upload: " . $_FILES["file"]["name"] . "<br />";
  echo "Type: " . $_FILES["file"]["type"] . "<br />";
  echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
  echo "Stored in: " . $_FILES["file"]["tmp_name"];
  }
?>

<html>
<body>

<form action="test2.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" /> 
<br />
<input type="submit" name="submit" value="Submit" />
</form>

</body>
</html>


Wanneer ik nu een bestand upload, krijg ik error 6. Volgens de error lijst betekent dit:
"Value: 6; Missing a temporary folder. Introduced in PHP 4.3.10 and PHP 5.0.3."
Er is dus iets met met de tijdelijke map waarin het wordt opgeslagen. In de php.ini schijnt alles (volgens de beheerder) alles goed ingesteld te zijn.

Verdere info: het script werkt wel gewoon op een ander domein, en heeft ook altijd gewerkt op mijn eigen domein. Tot ineens een paar dagen geleden.

Geprobeerde oplossingen:
Je schijnt de php.ini instellingen ook met een .htaccess te kunnen bepalen. In mijn zoektocht bleek php_flag upload_tmp_dir het goede commando te zijn, gevolgd door een mapnaam. Ik heb een map aangemaakt en deze ingevuld, zowel /temp als /domein/subdomein/public_html/etc , maar de hele pagina wordt dan niet meer toegankelijk (error 500). Heeft iemand een oplossing?

Alvast bedankt.

I don't suffer from insanity, I enjoy every minute of it.


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Configureren is wat anders dan programmeren, zie ook Waar hoort mijn topic?

PRG>>DTE

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Misschien heb je hier iets aan

http://nl3.php.net/manual/nl/features.file-upload.php

Ik denk dat je tmp folder moet wijzigen in je php.ini file om file uploads te kunnen gebruiken.

Acties:
  • 0 Henk 'm!

  • wcduck
  • Registratie: September 2000
  • Niet online
Ik heb alleen geen toegang tot de php.ini. Volgens de beheerder staat alles goed ingesteld (op /tmp ).

I don't suffer from insanity, I enjoy every minute of it.


Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
In de handleiding vallen mij twee dingen op:
You will need "AllowOverride Options" or "AllowOverride All" privileges to do so.
en
php_flag name on|off
Used to set a boolean configuration directive. Can be used only with PHP_INI_ALL and PHP_INI_PERDIR type directives.
Beide kunnen de 500-melding verklaren.

In phpinfo kun je trouwens kijken of de admin echt de upload_tmp_dir goed heeft staan. Ook kun je kijken of je wijziging via .htaccess effect heeft.

Acties:
  • 0 Henk 'm!

  • wcduck
  • Registratie: September 2000
  • Niet online
Bedankt. Die phpinfo tip was goed. Er blijk "no value" te staan achter upload_tmp_dir. Dat lijkt me toch niet goed?
Verder begrijp ik dat ik php_value moet gebruiken. Wanneer ik dit in een .htaccess bestand zet krijg ik alsnog de foutmelding en is de site niet meer beschikbaar. Blijkbaar heb ik die "allowoverride options" nodig. Staan die in de php.ini? Ik neem aan dat ik die niet mijzelf toe kan kennen.

I don't suffer from insanity, I enjoy every minute of it.


Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
wcduck schreef op zaterdag 24 maart 2007 @ 16:10:
Bedankt. Die phpinfo tip was goed. Er blijk "no value" te staan achter upload_tmp_dir. Dat lijkt me toch niet goed?
Verder begrijp ik dat ik php_value moet gebruiken. Wanneer ik dit in een .htaccess bestand zet krijg ik alsnog de foutmelding en is de site niet meer beschikbaar. Blijkbaar heb ik die "allowoverride options" nodig. Staan die in de php.ini? Ik neem aan dat ik die niet mijzelf toe kan kennen.
Je moet inderdaad php_value hebben, maar als die ook niet werkt, ontbreekt AllowOverride Options. Dit is een instelling in de configuratie van webserver Apache (als Apache inderdaad gebruikt wordt, maar omdat je over .htaccess begon ga ik daarvan uit). Dat kun je niet zelf doen. Maar als upload_tmp_dir op no value staat, kun je hem net zo goed vragen daar wat zinnigs in te vullen.

Acties:
  • 0 Henk 'm!

Verwijderd

ik zal het even samenvatten,

als je een bestand upload naar een php-script dat bewaart php dat bestand ergens, de zogeheten 'upload_tmp_dir'. voor veel linux servers zal dit iets van '/tmp' hebben of 'C:\temp' voor windows servers bijvoorbeeld.

dit is een instelling welke, om veiligheids redenen niet onder 'runtime' kan worden gewijziged. in andere woorden dit moet je dus in php.ini veranderen en anders mag het niet worden gewijziged. met .htaccess kun je dit dus niet veranderen. vandaar dus die 500-errors.

je zult dus contact met je beheerder moeten opnemen zodat deze een zinnige waarde zoals '/tmp' in vult bij 'upload_tmp_dir'. zijn bewering dat alles goed staat klopt dus niet.

hier de manual-pages:
http://nl2.php.net/manual/en/features.file-upload.php
http://nl2.php.net/manual/en/ini.core.php#ini.upload-tmp-dir
http://nl2.php.net/manual/en/configuration.changes.php

Acties:
  • 0 Henk 'm!

  • wcduck
  • Registratie: September 2000
  • Niet online
Hartelijk bedankt. Ik heb de beheerder hierover gemaild. Zijn antwoord over het feit dat er geen waarde was ingevuld was:
"Dit is bij alle servers bij ons zo, aangezien hij de standaard waarden aanhoud."
Als ik bij de manual kijk die jij me voorschotelde staat dit:
" upload_tmp_dir string

The temporary directory used for storing files when doing file upload. Must be writable by whatever user PHP is running as. If not specified PHP will use the system's default."

Misschien is geen waarde dan toch goed. Verder heeft de beheerder ook het script op een ander domein van dezelfde server geprobeerd. Ook hier kreeg hij de error. Volgens mij kan ik nu wel redelijk concluderen dat het aan de instellingen van de server ligt, en niet mijn slechts scriptwerk :D.

In mijn laatste mail naar de beheerder heb ik gevraagd of hij de temp dir op mijn domein wil zetten. Hopelijk lost dit het op.

Hartelijk dank voor alle reacties. Handig om te weten dat ik zelf de tijdelijke upload dir niet kan veranderen. Mocht jullie iets te binnen schieten wat ook dit probleem zou veroorzaken(de error 6) dan hoor ik het graag.

I don't suffer from insanity, I enjoy every minute of it.


Acties:
  • 0 Henk 'm!

  • wcduck
  • Registratie: September 2000
  • Niet online
Zojuist een mailtje gehad van de beheerder met de oorzaak (wellicht leuk om te weten). Ze hadden de server geupgrade een paar dagen terug. Nu hebben ze de oude versie weer terug gezet en werkt alles weer. Nogmaals bedankt voor de reacties. Ik heb in ieder geval weer een aantal nieuwe dingen geleerd.

I don't suffer from insanity, I enjoy every minute of it.

Pagina: 1