hoi,
mijn upload script doet het niet.
ik heb 2 bestanden, namelijk:
upload.php (bevind zich in de map 'pages')
upload_file.php (in de root)
bij upload.php staat een form waar je je bestand up kan loaden. die actie voert hij uit op upload_file.php. maar als ik wil uploaden, zegt hij dit:
ER IS EEN FOUT OPGETREDEN
Contacteer de webmaster a.u.b. (foutcode: rechten aanmaken 3a1d226a2c map).
3a1d226a2c is steeds weer anders. een andere keer is het 4c2d116c2a.
ik snap er niks van...
Hier de codes:
Upload_file.php:
PHP
<?php
session_start();
include('settings.php');
if($_FILES['file']){
$temp_name = $_FILES['file']['tmp_name'];
$size = $_FILES['file']['size'];
$show = ($_POST['show']) ? 1 : 0;
$info = pathinfo($_FILES['file']['name']);
$extensie = strtolower($info['extension']);
$hash = substr(sha1(time()), 5, 10);
//echo "<br />Ext.: $extensie<br />Hash: $hash<br />Temp. name: $temp_name<br />Size: $size<br />{$_SERVER['DOCUMENT_ROOT']}<br />{$_FILES['file']['name']}<br />Max size: $max_size";
if($data){
$sql = "select COUNT(`id`) from `files` where (`userid`='{$data['userid']}' or `IP`='$clientIP') and `time`LIKE'".date("Y-m-d")."%'";
$query = mysql_query($sql);
$aantal_uploads_vandaag = mysql_result($query, 0);
$laatste_upload = $data['last_upload'];
} else {
$sql = "select COUNT(`id`) from `files` where `IP`='$clientIP' and `time`LIKE'".date("Y-m-d")."%'";
$query = mysql_query($sql);
$aantal_uploads_vandaag = mysql_result($query, 0);
$sql = "select unix_timestamp(`time`) from `files` where `IP`='$clientIP' order by `time` desc limit 1";
$query = mysql_query($sql);
$laatste_upload = mysql_result($query, 0);
}
if(preg_match("/^[A-Za-z0-9]{10}$/", $_POST['usehash'])){ // wanneer een premium zijn plaatje 'bewerkt'
check_login(); // controleren of je ingelogd bent zodat je geen image van een andere kan bewerken
$sql = "select `id`, `filename` from `files` where `userid`='{$data['id']}' and `hash`='{$_POST['usehash']}' limit 1";
$query = mysql_query($sql);
$edit = mysql_fetch_assoc($query);
if($edit && $account_type == 'gold') // controle of het bestand gevonden is en of je een premium member bent
$hash = $_POST['usehash']; // $hash wordt gewijzigd naar de $_GET['usehash'];
}
$msg = -1;
if($aantal_uploads_vandaag >= $max_uploads_per_day)
$msg = 1;
else if(time() <= ($laatste_upload+$waittime_upload) && !$edit['id']) // bij bewerken gaan we vermeiden dat we deze error krijgen
$msg = 2;
else if($size == 0)
$msg = 3;
else if($size > $max_size)
$msg = 4; // zoveel kan er niet geupload worden
else if(!in_array($extensie, $allowed_extensions))
$msg = 5; // verkeerde extensie aan het uploaden
else if(strlen($_FILES['file']['name']) > 100)
$msg = 6; // te lange bestandsnaam
else if(!@mkdir("{$_SERVER['DOCUMENT_ROOT']}/upload/$hash") && !$edit['id']) // bij bewerken gaan we vermeiden dat we deze error krijgen
$msg = 7;
else if(!@move_uploaded_file($_FILES['file']['tmp_name'], "{$_SERVER['DOCUMENT_ROOT']}/upload/$hash/{$_FILES['file']['name']}"))
$msg = 8;
if($msg == -1){
if($edit['id']){
@unlink("{$_SERVER['DOCUMENT_ROOT']}/upload/$hash/{$edit['filename']}"); // maakt niet echt uit of die nu wordt gedelete, normaal lukt het wel als de rest hierboven ook lukt.
mysql_query("update `files` set `filename`='{$_FILES['file']['name']}', views='0' where `id`='{$edit['id']}' limit 1");
} else {
mysql_query("insert into `files` (`userid`, `IP`, `time`, `filename`, `hash`, `show_in_list`) values ('{$data['id']}', '$clientIP', NOW(), '{$_FILES['file']['name']}', '$hash', '$show')");
if($data)
mysql_query("update `users` set `last_upload`=NOW() where `id`='{$data['id']}' limit 1");
}
header("location: upload/$hash/{$_FILES['file']['name']}");
exit;
} else {
$error = array('', 'Je hebt vandaag al '.$max_uploads_per_day.' bestanden geupload, wil je meer bestanden kunnen uploaden, upgrade je account dan.', 'Je kan pas een nieuw bestand uploaden binnen '.(($laatste_upload+$waittime_upload)-time()).' seconden', 'Onbekende grootte van het bestand, probeer opnieuw.', 'Je gaat over je maximale uploadlimiet van '.($max_size/1024/1024).'Mb heen!', 'Je upload een onjuiste extensie.', 'Je bestandsnaam mag maar 100 karakters lang zijn. Wijzig de bestandsnaam a.u.b.', 'Contacteer de webmaster a.u.b. (foutcode: rechten aanmaken '.$hash.' map).', 'Contacteer de webmaster a.u.b. (foutcode: geuploade bestand kan niet verplaatst worden).');
$_SESSION['message'] = $error[$msg];
header("location: pages/error.html");
}
}
?>
Toon Meer
upload.php:
PHP
<?php
$hash = $_GET['usehash'];
?>
<h1>UPLOAD EEN BESTAND</h1>
<form action="/upload_file.php" method="post" enctype="multipart/form-data">
<p>Bestand: <input name="file" size="40" type="file"><br />
<i>(enkel .gif, .jpg, .jpeg en .png)</i><br />
<?php
if(!$hash){
if($data)
echo '<input name="show" type="checkbox" value="1" checked /> Mijn upload weergeven in de laatste 5 uploads.<br />';
else
echo '<input name="show" type="checkbox" value="1" disabled /> Mijn upload weergeven in de laatste 5 uploads.<br />';
} else {
print <<<END
<b>Je gaat het volgende plaatje verplaatsen met het plaatje dat je gaat uploaden.</b><br />
<input name="usehash" type="hidden" value="$hash" />
<img src="/img={$hash}/overzicht" /><br />
END;
}
?>
<input type="submit" name="submit" value="Upload bestand"></p>
</form>
<h1>UITLEG</h1>
<p>
<strong>Als bezoeker uploaden heeft u het volgende:</strong><br />
5 keer per dag uploaden<br />
U kunt per 1 uur één keer uploaden.<br />
Maximale grootte bestand 1 MB (Megabyte)<br />
Reclame op uw image<br />
Geen overzicht over uw bestanden</p>
<p>
<strong>Als geregistreerde lid heeft u het volgende</strong>:<br />
10 keer per dag uploaden<br />
U kunt per 10 minuten één keer uploaden.<br />
Maximale grootte bestand 2 MB (Megabyte)<br />
Geen reclame op uw image<br />
Overzicht over uw bestanden (<strong>verwijderbaar</strong>)<br />
</p>
<p><strong><u>Als Premium lid heeft u het volgende:</u></strong><br />
Onbeperkt uploaden<br />
Geen wachttijd<br />
Maximale grootte bestand 10 MB (Megabyte)<br />
Geen reclame op uw image<br />
Beter overzicht over uw bestanden (<strong>bewerkbaar</strong> en <strong>verwijderbaar</strong>)
<br /><br />
Let op: Voor een Premium lid moet u 1,30 euro betalen. Hiermee heeft u vele voordelen. Uw premium lidmaatschap duurt 20 dagen per betaling (1,30).<br />
Na 20 dagen wordt u automatisch een normale lid.
</p>
Toon Meer