roy - 17/01/2005 22:02 (laatste wijziging 01/03/2005 18:43)
PHP gevorderde
Hallo,
Dit soort bestanden moeten worden geupload:
CycleDream-'spring rd 3'-Roy de Kleijn(Tacx) 20-03-2004.im (met aanhalingstekens)
En het bestand moet dezelfde naam houden.
Ik heb zelf een uploadsysteem gemaakt en dat werkt voor alle andere bestanden, behalve voor dit soort met aanhalingstekens.
Weet iemand hier raad mee? Stuur dan een e-mail, als het werkt wil ik er best wat voor betalen. rdekleijn@zonnet.nl
ps. ik heb de connectie hieronder uitgehaald, en ook alle opties uit de meerkeuze lijstjes, ander zou het heeel lang worden.
<html>
<head>
<meta http-equiv="Content-Language" content="nl">
<title></title>
</head>
<base target="_self">
<BODY text=black vLink=navy aLink=blue link=blue background="" bgproperties="fixed">
<?
mysql_connect(); //Connecten met DB
mysql_select_db();
?>
<form method="POST" enctype="multipart/form-data" title="Om kans te maken op een prijs">
<hr>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
<tr>
<td width="13%" align="right"><b><font size="2">Name:</font></b></td>
<td width="87%"> <input type="text" name="name" size="20"></td>
</tr>
<tr>
<td width="13%" align="right"><b><font size="2">E-mail:</font></b></td>
<td width="87%"> <input type="text" name="mail" size="20"></td>
</tr>
<tr>
<td width="13%" align="right"><b><font size="2">Country:</font></b></td>
<td width="87%"> <select size="1" name="country">
<option value="Select Here...">Select Here...</option>
<option value="Afghanistan">Afghanistan</option>
<option value="Zimbabwe">Zimbabwe</option>
</select></td>
</tr>
<tr>
<td width="13%" align="right"><b><font size="2">Date:</font></b></td>
<td width="87%"> <select size="1" name="Dd">
<option value="01" selected>01</option>
<option value="02">02</option>
<option value="31">31</option>
</select> - <select size="1" name="Dm">
<option value="01" selected>01</option>
<option value="02">02</option>
<option value="12">12</option>
</select> -
<select size="1" name="Dy">
<option selected value="2002">2002</option>
<option value="2009">2009</option>
<option value="2010">2010</option>
</select></td>
</tr>
<tr>
<td width="13%" align="right"><b><font size="2">Time:</font></b></td>
<td width="87%"> <select size="1" name="Th">
<option selected value="00">00</option>
<option value="01">01</option>
</select>
:
<select size="1" name="Tm">
<option selected value="00">00</option>
<option value="01">01</option>
</select>
:
<select size="1" name="Ts">
<option selected value="00">00</option>
</select></td>
</tr>
<tr>
<td width="13%" align="right"><b><font size="2">Terrain:</font></b></td>
<td width="87%"> <select size="1" name="parcours">
<option selected value="Select Here">Select Here</option>
</select>
</td>
</tr>
<tr>
<tr>
<td width="13%" align="right"><b><font size="2">Parcours:</font></b></td>
<td width="87%"> <input name="terrein" type="text" id="terrein"> </td>
</tr>
<tr>
<td width="13%" align="right"><b><font size="2">Distance:</font></b></td>
<td width="87%"> <input name="afstand" type="text" id="terrein"> </td>
</tr>
<tr>
<td width="13%" align="right"><b><font size="2">File:</font></b></td>
<td width="87%">
<input type="file" name="file" size="20"></td>
</tr>
<tr>
<td width="13%" align="right"> </td>
<td width="87%">
</td>
</tr>
<tr>
<td width="13%" align="right"> </td>
<td width="87%">
<input type="submit" value="Submit" name="B1"></td>
</tr>
</table>
<hr>
</form>
<?
?>
<?
//vars:
$query_nhon = mysql_query("SELECT * FROM tacx") or die(mysql_error());
$npics = mysql_num_rows($query_nhon)or die(mysql_error()); // AANTAL FOTO'S
$max = $npics; //MAXIMALE FOTOGETAL
$id = $max+1; //VOLGEND GETAL
$toegelaten = "im ca";
$toegelaten = explode(" ",strtolower($toegelaten));
//toegelaten bestandsextensies(in een array), als je er geen wilt, comment je deze twee lijnen uit!
$locatie = "files/tacx/"; //zie info hierboven
$maxgrootte = "1000"; //aantal Kilobytes (1000 KB != 1MB!!!!! onthoud dit!!!, omdat ik lui ben, beweer ik dat het wel zo is ;)
//als je je afvraag vanwaar dit komt, in 1 byte gaan er 8 bits, in 2 kilobyte, gaan er dus 1600 bits enzovoorts
$maxgrootte .= "000"; //ik voeg er 3 nulletjes aan toe, om er kilobytes van te maken (denk ik, ik HAAT bestandsgrootes op computers)
$geldig_bestand = false;
//het bestand moet juist zijn, indien het uit de temporary dir naar de uiteindelijke locatie bewaard moet worden
if ($REQUEST_METHOD == 'POST') {
//heb ik al een suitgelegd
if($file) {
//logisch
$image = $HTTP_POST_FILES[file][name];
// Filename + extensie van geuploade bestand
//$grootte = $HTTP_POST_FILES[file][size];
//geeft de grootte in een array, [0] = breedte en [1] = hoogte
$extentie = substr($image, -2);
//neem de extensie van het bestand
mysql_query("INSERT INTO tacx (id,name,mail,country,Dd,Dm,Dy,Th,Tm,Ts,terrein,parcours,image,afstand) VALUES ('" . $id . "','" . $name . "','" . $mail . "','" . $country . "','" . $Dd . "','" . $Dm . "','" . $Dy . "','" . $Th . "','" . $Tm . "','" . $Ts . "','" . $terrein . "','" . $parcours . "','" . $image . "','" . $afstand . "')") or die(mysql_error());
if ($grootte <= $maxgrootte) {
//indien de bestandsgrootte al niet klopt, is het onnuttig van de rest te controleren
for ($i=0;$i<sizeof($toegelaten);$i++) {
//herhaal zoveel keer als er toegelaten bestandsextensies zijn
if ($extensie = $toegelaten[$i]) {
//$afmetingen = getimagesize($image);
//if ($plaatje[0] <= $width || $plaatje[1] <= $height) //gn accolade, want mr 1 opdracht!
$geldig_bestand = true; //aangezien ik gn accolade gebruik gebruik ik geen tab vooraan, dit zou alles onduidelijk maken!
//alle voorwarden gaven direct een true, en dus het bestand is door alle beproengen geraakt
break;
//fuck die for loop, het bestand is toch al goed
//als ik dit niet zet, zal het script nog x keren door de lus gaan, wat de uitvoer een paar microseconden vertraagt
//en dus ook de server ook een beetje meer belast! probeer dus altijd zo braaf mogelijk te zijn voor de server
}
}
}
if ($geldig_bestand = true)
copy($file, $locatie . $image);
//copieer van het temporary dir naar de uiteindelijke dir!
$plaats = "";
echo "";
exit();
//stoppen, anders toot hij het formuliertje!
?>
<?
}
}
?>
</body>
</html>
mysql_query("INSERT INTO tacx (id,name,mail,country,Dd,Dm,Dy,Th,Tm,Ts,terrein,parcours,image,afstand) VALUES ('".$id."','".$name."','".$mail."','".$country."','".$Dd."','".$Dm."','".$Dy."','".$Th."','".$Tm."','".$Ts."','".$terrein."','".$parcours."','".$image."','".$afstand."')") or die(mysql_error());
if($grootte<=$maxgrootte){
//indien de bestandsgrootte al niet klopt, is het onnuttig van de rest te controleren
for($i=0;$i<sizeof($toegelaten);$i++){
//herhaal zoveel keer als er toegelaten bestandsextensies zijn
bedoel je dat hij een bestand met quotes in de bestands naam niet upload? Want kan je dan niet gewoon met addslashes() doen?
roy - 18/01/2005 15:59 (laatste wijziging 18/01/2005 18:49)
PHP gevorderde
Ja de bestands naam wordt anders. zo moet het worden:
CycleDream-'spring rd 3'-Roy de Kleijn(Tacx) 20-03-2004.im en zo is het:
'-Roy de Kleijn(Tacx) 20-03-2004.im
Hoe kan ik ervoor zorgen dat de naam hetzelfde blijft?
Het zou leuk zijn als iemand hier het antwoord op weet, ben er al zo lang naar opzoek.
Met Vriendelijk Groet,
R. de Kleijn
Thomas - 18/01/2005 19:37 (laatste wijziging 18/01/2005 19:37)
Moderator
Kijk eens met phpinfo() of magic_quotes_gpc aan staat, anders moet je misschien addslashes gebruiken, of htmlentities ofzo ? Zodat die ' geslashed wordt of naar een 'veiliger karakter' vertaald wordt ?
roy - 18/01/2005 21:09 (laatste wijziging 19/01/2005 15:02)
PHP gevorderde
Ja maar de hele bestandsnaam moet hetzelfde blijven. het is namelijk voor een programma die het anders niet kan lezen.
hoe gebruik je addslashes dan?
Zo?
de wijziging staat onder het formulier.
Ik krijg nu volgense de foutmelding:
Warning: copy(files/tacx/): failed to open stream: Is a directory in /var/www/html/tacx/load.php on line 578
<html>
<head>
<meta http-equiv="Content-Language" content="nl">
<title></title>
</head>
<base target="_self">
<BODY text=black vLink=navy aLink=blue link=blue background="" bgproperties="fixed">
<?
mysql_connect(); //Connecten met DB
mysql_select_db();
?>
<form method="POST" enctype="multipart/form-data" title="Om kans te maken op een prijs">
<hr>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
<tr>
<td width="13%" align="right"><b><font size="2">Name:</font></b></td>
<td width="87%"> <input type="text" name="name" size="20"></td>
</tr>
<tr>
<td width="13%" align="right"><b><font size="2">E-mail:</font></b></td>
<td width="87%"> <input type="text" name="mail" size="20"></td>
</tr>
<tr>
<td width="13%" align="right"><b><font size="2">Country:</font></b></td>
<td width="87%"> <select size="1" name="country">
<option value="Select Here...">Select Here...</option>
<option value="Afghanistan">Afghanistan</option>
<option value="Zimbabwe">Zimbabwe</option>
</select></td>
</tr>
<tr>
<td width="13%" align="right"><b><font size="2">Date:</font></b></td>
<td width="87%"> <select size="1" name="Dd">
<option value="01" selected>01</option>
<option value="02">02</option>
<option value="31">31</option>
</select> - <select size="1" name="Dm">
<option value="01" selected>01</option>
<option value="02">02</option>
<option value="12">12</option>
</select> -
<select size="1" name="Dy">
<option selected value="2002">2002</option>
<option value="2009">2009</option>
<option value="2010">2010</option>
</select></td>
</tr>
<tr>
<td width="13%" align="right"><b><font size="2">Time:</font></b></td>
<td width="87%"> <select size="1" name="Th">
<option selected value="00">00</option>
<option value="01">01</option>
</select>
:
<select size="1" name="Tm">
<option selected value="00">00</option>
<option value="01">01</option>
</select>
:
<select size="1" name="Ts">
<option selected value="00">00</option>
</select></td>
</tr>
<tr>
<td width="13%" align="right"><b><font size="2">Terrain:</font></b></td>
<td width="87%"> <select size="1" name="parcours">
<option selected value="Select Here">Select Here</option>
</select>
</td>
</tr>
<tr>
<tr>
<td width="13%" align="right"><b><font size="2">Parcours:</font></b></td>
<td width="87%"> <input name="terrein" type="text" id="terrein"> </td>
</tr>
<tr>
<td width="13%" align="right"><b><font size="2">Distance:</font></b></td>
<td width="87%"> <input name="afstand" type="text" id="terrein"> </td>
</tr>
<tr>
<td width="13%" align="right"><b><font size="2">File:</font></b></td>
<td width="87%">
<input type="file" name="file" size="20"></td>
</tr>
<tr>
<td width="13%" align="right"> </td>
<td width="87%">
</td>
</tr>
<tr>
<td width="13%" align="right"> </td>
<td width="87%">
<input type="submit" value="Submit" name="B1"></td>
</tr>
</table>
<hr>
</form>
<?
?>
<?
$file1=$file1;
$file = Addslashes($file1);
//vars:
$query_nhon = mysql_query("SELECT * FROM tacx") or die(mysql_error());
$npics = mysql_num_rows($query_nhon)or die(mysql_error()); // AANTAL FOTO'S
$max = $npics; //MAXIMALE FOTOGETAL
$id = $max+1; //VOLGEND GETAL
$toegelaten = "im ca";
$toegelaten = explode(" ",strtolower($toegelaten));
//toegelaten bestandsextensies(in een array), als je er geen wilt, comment je deze twee lijnen uit!
$locatie = "files/tacx/"; //zie info hierboven
$maxgrootte = "1000"; //aantal Kilobytes (1000 KB != 1MB!!!!! onthoud dit!!!, omdat ik lui ben, beweer ik dat het wel zo is ;)
//als je je afvraag vanwaar dit komt, in 1 byte gaan er 8 bits, in 2 kilobyte, gaan er dus 1600 bits enzovoorts
$maxgrootte .= "000"; //ik voeg er 3 nulletjes aan toe, om er kilobytes van te maken (denk ik, ik HAAT bestandsgrootes op computers)
$geldig_bestand = false;
//het bestand moet juist zijn, indien het uit de temporary dir naar de uiteindelijke locatie bewaard moet worden
if ($REQUEST_METHOD == 'POST') {
//heb ik al een suitgelegd
if($file) {
//logisch
$image = $HTTP_POST_FILES[file][name];
// Filename + extensie van geuploade bestand
//$grootte = $HTTP_POST_FILES[file][size];
//geeft de grootte in een array, [0] = breedte en [1] = hoogte
$extentie = substr($image, -2);
//neem de extensie van het bestand
mysql_query("INSERT INTO tacx (id,name,mail,country,Dd,Dm,Dy,Th,Tm,Ts,terrein,parcours,image,afstand) VALUES ('" . $id . "','" . $name . "','" . $mail . "','" . $country . "','" . $Dd . "','" . $Dm . "','" . $Dy . "','" . $Th . "','" . $Tm . "','" . $Ts . "','" . $terrein . "','" . $parcours . "','" . $image . "','" . $afstand . "')") or die(mysql_error());
if ($grootte <= $maxgrootte) {
//indien de bestandsgrootte al niet klopt, is het onnuttig van de rest te controleren
for ($i=0;$i<sizeof($toegelaten);$i++) {
//herhaal zoveel keer als er toegelaten bestandsextensies zijn
if ($extensie = $toegelaten[$i]) {
//$afmetingen = getimagesize($image);
//if ($plaatje[0] <= $width || $plaatje[1] <= $height) //gn accolade, want mr 1 opdracht!
$geldig_bestand = true; //aangezien ik gn accolade gebruik gebruik ik geen tab vooraan, dit zou alles onduidelijk maken!
//alle voorwarden gaven direct een true, en dus het bestand is door alle beproengen geraakt
break;
//fuck die for loop, het bestand is toch al goed
//als ik dit niet zet, zal het script nog x keren door de lus gaan, wat de uitvoer een paar microseconden vertraagt
//en dus ook de server ook een beetje meer belast! probeer dus altijd zo braaf mogelijk te zijn voor de server
}
}
}
if ($geldig_bestand = true)
copy($file, $locatie . $image);
//copieer van het temporary dir naar de uiteindelijke dir!
$plaats = "";
echo "";
exit();
//stoppen, anders toot hij het formuliertje!
?>
<?
}
}
?>
</body>
</html>
mysql_query("INSERT INTO tacx (id,name,mail,country,Dd,Dm,Dy,Th,Tm,Ts,terrein,parcours,image,afstand) VALUES ('".$id."','".$name."','".$mail."','".$country."','".$Dd."','".$Dm."','".$Dy."','".$Th."','".$Tm."','".$Ts."','".$terrein."','".$parcours."','".$image."','".$afstand."')") or die(mysql_error());
if($grootte<=$maxgrootte){
//indien de bestandsgrootte al niet klopt, is het onnuttig van de rest te controleren
for($i=0;$i<sizeof($toegelaten);$i++){
//herhaal zoveel keer als er toegelaten bestandsextensies zijn
@Tuinstoel, hij heeft heel duidelijk gezegd dat dat niet mocht
Roy; geef wat meer info rond je probleem!
Dat bestand staat nu op je (windows)computer
Je wilt het uploaden naar een web-server of naar een andere computer?
Zou de mogelijkheid bestaan om het bestand een andere naam te geven; maar de originele naam wordt bewaard?
Of bijvoorbeeld dat het bestand upgeload wordt naar de server en pas daar zijn definitieve naam krijgt met een rename-commando?
Indien het op een webserver wordt geplaatst en dat mensen het moeten downloaden, lijkt het me perfect mogelijk om de naam op de webserver te vervangen, maar als er gedownload wordt, de originele naam te geven.
Andere vraag;
Als je het bestand upload; wat staat er in $_FILES['uploadveldnaam']['name']
De juiste naam of de verkeerde naam?
roy - 20/01/2005 21:29 (laatste wijziging 21/01/2005 12:41)
PHP gevorderde
Het bestand staat inderdaad op mijn computer en moet geupload worden naar de webserver.
het maakt mij inderdaad niet zoveel uit hoe het bestad heet op de webserver, maar als ze het gaan downloaden dan moet het dezelfde naam hebben als hoe het werd geupload.
wat bedoel je precies met die andere vraag?
ja als ik het echo dan is het de juiste naam, want hij moet het ook in een database opslaan en daar komt ook de goede naam.
Het wordt absoluut afgeraden om bestandsnamen na het uploaden te behouden (ivm overschrijving, verwarring, etc.). Je kunt er beter een volgnaam/nummer aan geven.
ok, roy, ik denk dat we in de buurt van een mogelijke oplossing zitten:
Je maakt je uploadformuliertje, en je upload het bestand, dat je een unieke naam geeft (bv. 20050121164912; jaarmaanddaguurminutenseconden)
Maar in een tabel in je database link je die nieuwe naam aan de originele naam! (dus maak een tabel met de velden 'origineel' en 'uniek')
in het veld 'origineel' steek je de naam van je bestand; MAAR je MOET addslashes gebruiken.
Wanneer je het er terug uithaald, dan gebruik je stripslashes!
Wanneer iemand het download, maak je daar een phpscript voor (die alle downloads in een lijstje zet, en aanklikbaar maakt.)
Dan heb je een scriptje dat de download forceert; je begint je phpscript met deze lijnen: (dit komt uit een script van mij)
in de eerste lijn moet je $mimetype[ext] veranderen naar wat je ziet bij een upload in
$_FILES['upload_veld_naam']['type']
Tweede lijn; $dir verander je in de naam die je bestand zal krijgen (de originele moeilijke naam)
derde lijn verander je $dir in de hele pad naar je bestand met de unieke naam (dus DOCUMENT_ROOT en dan nog een paar subdirs)
(die lijn is gewoon om je downloaders blij te maken, eigenlijk is het overbodig)
laatste lijn, zelfde als hierboven.
Let us know if it worked!
roy - 21/01/2005 21:00 (laatste wijziging 21/01/2005 23:40)
PHP gevorderde
Ik heb gedaan wat je zei, een kolom unieke namen en een kolom met originele namen.
Dat staat allemaal goed.
Maar ik begrijp niet hoe het downloaden werkt. Een bestand downloaden en dan meteen de bestandsnaam veranderen, dat is voor mij echt abbacadabra.
Zou je er nog eens naar willen kijken. Als je een vergoeding wil, moet je maar even een e-mail sturen: rdekleijn@zonnet.nl
je moet download.php dan wel in dezelfde dir hebben staan als de downloads.
ook moet je zodra je de file in de db zet in de extra kolom 'ext' de waarde $_FILES['upload_veld_naam']['type'] zetten.
hierbij moet je 'upload_veld_naam' wel ff aanpassen.
Ik hoop dat het werkt
roy - 22/01/2005 11:36 (laatste wijziging 22/01/2005 12:14)
PHP gevorderde
helaas dat werkt niet, elke download krijgt dan de bestandsnaam "download" in plaats van de originele naam en hij download een leeg bestand. Ik heb met een echo gekeken en $image1 is wel de goede naam. Hij zet hem alleen verkeerd neer...
En waarom moet er een kolom met de extensie worden toegevoegd? die staat toch al in de originele naam?
ja, het download file staat waar ook de bestanden staan..
Als het voor professionele doeleinden is (dat jij er geld uit gaat verdienen) dan wil ik wel een vergoeding, als het als hobby of om mensen een dienst aan te bieden is, dan interesseert een vergoeding me niet. (aaaah, jeugdig enthousiasme )
<?
function uitlezen($dir){
//$dir is de directory dat 'm moet uitlezen
$uitlees=opendir($dir);
//open de directory
$bestanden=array();
//maak vd var bestanden een array waarin de hele directory inhoud komt (ook verborgen bestanden)
while(($dit_bestand = readdir($uitlees))!==false){
//zolang hij een bestand uitleest uit $uitlees, zal hij doorgaan
/*wanneer je een while loop uitvoert,
zet php de pointer (waar hij ergens is) naar het volgende ding, dus hij heeft alle bestanden "opgeslagen" in uitlees
en dan in de while loop gaat hij ze een voor een af, tot hij eens krijgt dat er een bestand niet bestaat
*/
$bestanden[] = $dit_bestand;
//voeg dit_bestand toe aan de array
}
closedir($uitlees);
//voor de schoonheid, sluit de directory
return $bestanden;
//en stuurt het resultaat terug
}
//naar db connecteren
$arree = uitlezen("/user/downloadsysteem/bestanden/");
foreach ($arree as $url) {
$basename = basename($url);
$q = mysql_query("SELECT origineel FROM downloads WHERE uniek='".$basename."'") or die (mysql_errro());
if (mysql_num_rows($q) == 1) {
$a = mysql_fetch_array($q)
echo "<a href=bestand.php?bestand=".$basename.">".$a[0]."</a><br>";
}
}
?>
<?
//deze pagina wordt ingeroepen vanuit een andere pagina.
//op die andere pagina staat een lijst met alle downloadbare bestanden
//dus je leest de directory met alle downloads (ik heb hier een scriptje voor gemaakt, tss snippets of handige scripts ofzo: "dir uitlezen")
//en dit bestand wordt zo opgeroepen:
// download.php?bestand=20050122123001
$download_dir = "/users/downloadsysteem/bestanden";
//in deze dir zitten de bestanden; met als naam 20050122123001
//die string is de datum als date('YmdHis')
mysql_connect() or die('gn connectie');
mysql_select_db('jfoprae') or die ('gn database');
$tabelnaam = "downloads"; //naam vd tabel
$origineel = "origineel"; //tabelveld met originele naam
$uniek = "uniek"; //tabelveld met unieke naam
$type = "type"; //tabelveld met het type bestand
//vanaf nu zou je niets meer moeten editen denk ik...
$sendfile = $download_dir.$_GET['bestand'];
if (!is_numeric($_GET['bestand'] || !file_exists($sendfile)) {
die('verkeerde bestandsnaam');
} //dit is een minimum aan veiligheid, ik raad je aan het te verbeteren.
$q = "SELECT ".$origineel.", ".$type." FROM ".$tabelnaam." WHERE ".$uniek."='".$_GET['bestand']."' LIMIT 1";
$query = mysql_query($q) or die("foute query".$q);
if (mysql_num_rows($query) == 1) {
$a = mysql_fetch_array($query);
header('Content-type: application/'.$a[1].'\n');
header('Content-Disposition: attachment; filename="'.$a[0].'"\n');
header("Content-length: " . filesize($sendfile) . "\n");
readfile($sendfile);
} else {
die("gn rijen");
}
?>
<?
//deze pagina wordt ingeroepen vanuit een andere pagina.
//op die andere pagina staat een lijst met alle downloadbare bestanden
//dus je leest de directory met alle downloads (ik heb hier een scriptje voor gemaakt, tss snippets of handige scripts ofzo: "dir uitlezen")
//en dit bestand wordt zo opgeroepen:
// download.php?bestand=20050122123001
$download_dir="/users/downloadsysteem/bestanden";
//in deze dir zitten de bestanden; met als naam 20050122123001
(hehehe, Henry gaat gek worden als hij mijn varnamen ziet! in dit geval heeft hij wel volledig gelijk: gebruik nooit dergelijke namen )
het is allemaal maar heel rap gecoded, maar op het eerste zicht werkt het op mijn computer.
Ik heb er wat veiligheid aan toegevoegd, maar je zou het zelf strenger moeten maken!!!!
ok, ik heb wat geknoeid aan het einde om de sql er nog bij te krijgen (die was ik vergeten) dus dat is dan ongetest...
als het niet werkt zal ik het properkes hermaken!
roy - 22/01/2005 15:03 (laatste wijziging 22/01/2005 15:11)
PHP gevorderde
Ik heb gedaan zoals je schreef, mijn extensie er neerzetten dat is .im
en dan geeft hij de melding "verkeerd bestandstype" dat is overigens ook als ik een jpg-plaatje upload.
Nee ik verdien er geen geld mee, het is puur voor de hobby.
Als je niet wilt checken op bestandstype (in het begin als je test is dat makkelijker, je wilt nu eerst dat het werkt, en dan dat het veilig werkt)
Doe je volgende lijnen weg:
$toegelaten = Array('gif', 'jpg', 'jpeg', 'png', 'pdf', 'dot', 'doc', 'tpl', 'htm', 'html'); //toegelaten bestandsextensies! (jij moet daar .msi in zetten!)
$extensie = array_pop( explode( "/" , $_FILES['bestand']['type'] ) );
[...]
if (in_array($extensie, $toegelaten) ) {
echo "juiste extensie<br>";
o ja, dat van die check voor de filesize lijkt mij zo niet helemaal meer juist!
Als ik me just vergis moet je de grootte vermenigvuldigen met 1024 en niet 1000000 zoals ik heb gedaan ;)
@roy: als het niet werkt, dan code ik het deze avond werkend terug, en contacteer ik je per pm om de scripts door te sturen, we zijn deze topic wat aan het opblazen!
Als er andere mensen dit een interessante discussie vinden en willen volgen, laat me iets weten!