Archief - PHP: error upload image

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

SlashDotCom

Legacy Member
Ik heb hier dus een DVD script gevonden, maar nu zitten daar een aantal fouten in. Ik probeer ze er dan ook uit te halen om te kunne omgaan met PHP omdat ik daar nog maar een "student" in ben.

Nu zit ik met de volgende error
Warning: move_uploaded_file(): open_basedir restriction in effect. File(/drive2/fpgshttpd/plaatjes/3_2[1]9880.jpg) is not within the allowed path(s): (/home/httpd/vhosts/freepgs.com/httpdocs/cyberstek/:/tmp/:/http2/php-engine/data/pear/:/drive2/fpgshttpd/cyberstek/) in /drive2/fpgshttpd/cyberstek/dvd/add.php on line 47

En hier het stukje code:
PHP:
$naamplaatje =$_FILES['uploadbestand']['name'];
if (move_uploaded_file($_FILES['uploadbestand']['tmp_name'], $upload_dir . $_FILES['uploadbestand']['name'])) 
{ 
echo""; 
} 
else 
{ 
echo "plaatje is niet correct geupload"; 
}

zero2one

Legacy Member
om in het kort te zeggen wat de fout is:

uw script probeert de afbeelding op te slaan in een directory waar ge niet moogt

een goede hosting heeft een restrictie op de directorys waar dat ge via een php scriptje recht op hebt om in te gaan browsen. (ge wilt niet dat bij een shared hosting iedereen, via een simpel scriptje, aan de root van die server kan :naughty: )

dus als we uw foutmelding ontleden lezen we dat:

uw script uw fileke wil opslaan in de dir /drive2/fpgshttpd/plaatjes/
File(/drive2/fpgshttpd/plaatjes/3_2[1]9880.jpg) is not within the allowed path(s):

terwijl ge enkel maar toegang hebt op
/home/httpd/vhosts/freepgs.com/httpdocs/cyberstek/
en
/tmp/
en
/http2/php-engine/data/pear/
en
/drive2/fpgshttpd/cyberstek/


dit komt door een verkeerde configuratie van de open_basedir
want op php.net lezen we dat
The restriction specified with open_basedir is actually a prefix, not a directory name. This means that "open_basedir = /dir/incl" also allows access to "/dir/include" and "/dir/incls" if they exist. When you want to restrict access to only the specified directory, end with a slash. For example: "open_basedir = /dir/incl/"

ik weet niet of ge aan de config kunt van uw hosting
want daar moede uwen open_basedir aanpassen naar:
/home/httpd/vhosts/freepgs.com/httpdocs/cyberstek/:/tmp/:/http2/php-engine/data/pear/:/drive2/fpgshttpd/cyberstek

maw de laatste / weghalen bij /drive2/fpgshttpd/cyberstek/ anders moogt ge geen enkele file bewerking doen in subdirs.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan