Probeer dit eens:
Aanvullend bericht:PHP Code:
<?php
include("includes/includes.php");
if(session_is_registered(myusername)){
// begin download script
$dir = 'scripts/'; //geef een map aan met eindslash (. voor deze map)
if(isset($_GET['bestand'])) //als ?bestand= bestaat
{
if(eregi('../', $_GET['bestand']) == FALSE) //als er geen ../ in de bestandsnaam voorkomt, dus geen upmap wordt aangevraagd
{
if(file_exists($dir.$_GET['bestand'])) //en ?bestand=.. is ook nog eens een bestaand bestand is
{
$file = urldecode($dir.$_GET['bestand']);
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
else //als het bestand niet bestaat
{
echo 'bestand bestaat niet'; //echo dat
}
}
else //als er wel ../ in de bestandsnaam voorkomt
{
echo 'Deze map is niet toegankelijk'; //echo dat dat niet mag
}
}
else //als ?bestand= niet is opgegeven
{
echo 'Geen bestand opgegeven'; //echo dat
}
// end download script
}else{
echo "je bent niet ingelogt";
}
?>
Volgens mij heeft het gewoonweg te maken dat je een CHMOD 600 uitvoert op de bestanden (betekent dat bestand alleen toegankelijk is voor de beheerder en niemand anders).
Wat veel makkelijker / beter is, is om je bestanden intact te laten (dus geen chmod) en de gehele map waar de bestanden in staan te beveiligen middels htaccess. Niemand kan er dan direct bij, maar je kan dan wel met behulp van php (zoals in bovenstaande code) de bestanden downloaden. Lijkt mij een veel betere oplossing.
- tijdens uploaden chmodden
-
20-01-2010, 15:28 #16
- Berichten
- 330
- Lid sinds
- 18 Jaar
Laatst aangepast door Arjen Rademaker : 20-01-2010 om 15:39 Reden: Automatisch samengevoegd.
-
20-01-2010, 15:45 #17
- Berichten
- 2.392
- Lid sinds
- 17 Jaar
Houd er rekening mee dat Eregi is verouderd..
-
20-01-2010, 17:29 #18
- Berichten
- 214
- Lid sinds
- 17 Jaar
Maar met htaccess kan ik weer niet uploaden...
Heb dit in me htaccess staan:
order allow,deny
deny from all
-
20-01-2010, 17:40 #19
- Berichten
- 330
- Lid sinds
- 18 Jaar
Je kan wel degelijk uploaden als je een map beveiligd. Je dient een .htaccess en .passwd aanmaken en de htaccess moet iets zijn zoals hieronder:
AuthName "Beveiliging"
AuthUserFile c:\domains\domein.nl\.htpasswd
Require user
Zie ook: http://www.htaccesstools.com/htaccess-authentication/
Op google is hier genoeg over te vinden maar het uploaden moet gewoon goed gaan (het is overigens beter om een absoluut pad te gebruiken bij het uploaden, dus iets als $_SERVER['DOCUMENT_ROOT'].'/scripts/' ).
-
20-01-2010, 17:58 #20
- Berichten
- 214
- Lid sinds
- 17 Jaar
Warning: move_uploaded_file(scripts/Dark.zip) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/robxqecw/domains/opensourcescript.nl/public_html/verkoop.php on line 42
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpI1PjAx' to 'scripts/Dark.zip' in /home/robxqecw/domains/opensourcescript.nl/public_html/verkoop.php on line 42
het bestand kan niet worden verplaatst
:|
-
20-01-2010, 18:17 #21
- Berichten
- 330
- Lid sinds
- 18 Jaar
Het is zo heel moeilijk te achterhalen waar de fout ligt (htaccess, permissies, scripting, etc.). Misschien dat je de complete scripting (pagina) kan posten.
-
20-01-2010, 18:44 #22
- Berichten
- 214
- Lid sinds
- 17 Jaar
:P wist niet dat dit zo moeilijk was. maarja heb het nodig.
Hier alle bestandjes:
Upload (/verkoop.php)
PHP Code:<?php
include("includes/includes.php");
site_header("Home","home");
sidebar();
content("Foto's uploaden");
$locatie="scripts/";
$toegestaan = "zip, rar";
$max_size = 15000000;
set_time_limit(0);
if(isset($_POST['upload']))
{
if(file_exists($locatie.$_FILES['bestand']['name'])) {
echo 'Bestandnaam bestaat al!';
} else {
if(is_uploaded_file($_FILES['bestand']['tmp_name']))
{
$extensie_bestand = pathinfo($_FILES['bestand']['name']);
$extensie_bestand = $extensie_bestand[extension];
$extensies_toegestaan = explode(", ", $toegestaan);
for($i = 0; $i < count($extensies_toegestaan); $i++)
{
if($extensies_toegestaan[$i] == "$extensie_bestand")
{
$ok = 1;
}
}
if($ok == 1)
{
if($_FILES['bestand']['size']>$max_size)
{
echo "Het bestand is te groot, de maximale grootte is: <b>$max_size</b>";
exit;
}
if(!move_uploaded_file($_FILES['bestand']['tmp_name'],
$locatie.$_FILES['bestand']['name']))
{
echo "het bestand kan niet worden verplaatst";
exit;
}
echo "Het bestand ".$_FILES['bestand']['name']." is geupload<br>s
<a href='".$locatie."".$_FILES['bestand']['name']."' target='_blank'>Klik hier om het te bekijken</a>";
}
else
{
echo "Verkeerde extentie, de toegestane extensies zijn: <b>$toegestaan</b>";
}
}
else
{
echo "Het uploaden is mislukt";
}
}
}
?>
<br><br>
<form method="post" action="<?=$_SERVER['PHP_SELF']?>" enctype="multipart/form-data">
<input type="file" name="bestand"><br>
<input type="submit" name="upload" value="uploaden">
</form>
<?
footer();
?>
PHP Code:<?php
include("includes/includes.php");
if(session_is_registered(myusername)){
// begin download script
$dir = 'scripts/'; //geef een map aan met eindslash (. voor deze map)
if(isset($_GET['bestand'])) //als ?bestand= bestaat
{
if(eregi('../', $_GET['bestand']) == FALSE) //als er geen ../ in de bestandsnaam voorkomt, dus geen upmap wordt aangevraagd
{
if(file_exists($dir.$_GET['bestand'])) //en ?bestand=.. is ook nog eens een bestaand bestand is
{
$file = urldecode($dir.$_GET['bestand']);
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
else //als het bestand niet bestaat
{
echo 'bestand bestaat niet'; //echo dat
}
}
else //als er wel ../ in de bestandsnaam voorkomt
{
echo 'Deze map is niet toegankelijk'; //echo dat dat niet mag
}
}
else //als ?bestand= niet is opgegeven
{
echo 'Geen bestand opgegeven'; //echo dat
}
// end download script
}else{
echo "je bent niet ingelogt";
}
?>
Code:AuthType Basic AuthName "Code nodig" AuthUserFile /scripts/ Require valid-user
Code:rubixcube:$apr1$aEhqB/..$WoujF6O7a1biAjSAUkaAI/
-
20-01-2010, 18:54 #23
- Berichten
- 330
- Lid sinds
- 18 Jaar
Probeer het eens in een andere map te uploaden. Heb je de map "scripts" wel geCHMOD naar 777 ?
-
20-01-2010, 19:08 #24
- Berichten
- 214
- Lid sinds
- 17 Jaar
Dankje dankje dankje dankje dankje dankje dankje :)
Was inderdaad geen 777. had ik getest maar dus niet terug gezet :|
Alles werkt nu! uploaden en downloaden.
Heel erg bedankt :DLaatst aangepast door ilja m : 24-01-2010 om 10:35 Reden: Automatisch samengevoegd.
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic