Ik wil een scriptje hebben dat iemand van mijn site .zip of .rar bestanden kan uploaden op me site. Dit lukt me niet.
Ook wat ik wil is dat wanneer er van iemands saldo op de site geld is afgehaald hij dit bestand pas kan downloaden. Is dit wel mogenlijk?
Dus dat ze niet gewoon naar site.nl/downloads/blabla.zip gaan en het bestand krijgen.
Alvast bedankt!
- Betand uploaden
-
17-01-2010, 14:18 #1
- Berichten
- 214
- Lid sinds
- 17 Jaar
Betand uploaden
-
In de schijnwerper
-
17-01-2010, 17:03 #2
- Berichten
- 394
- Lid sinds
- 16 Jaar
Heb je uberhaupt al een scriptje gemaakt? Wat lukt er niet?
-
17-01-2010, 17:10 #3
- Berichten
- 392
- Lid sinds
- 15 Jaar
Bedoel je zoiets als Mollie?
-
17-01-2010, 17:22 #4
- Berichten
- 214
- Lid sinds
- 17 Jaar
Ik had van iemand zo'n upload scriptje gekregen:
PHP Code:if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$tekens = rand(5,7);
$code = '';
for($i = 1; $i <= $tekens; $i++)
{
$code .= $chr = strtolower(chr(rand(65, 90)));
}
//Locatie waar het bestand moeten staan
$locatie = '../scripts/';
if(
$_FILES['foto']['name'] == '' ||
!move_uploaded_file($_FILES['foto']['tmp_name'],$locatie.$code.'_'.$_FILES['foto']['name'])
)
{
//Als er iets fout is
$iets_fout = 'ja';
echo '<span class="rood">Bij het toevoegen van het bestand is het volgende fout gegaan:</span><br />
<ul>';
if($_FILES['foto']['name'] == '')
{
echo '<li><span class="rood">U heeft geen bestand geselecteerd.</span></li>';
}
if(!move_uploaded_file($_FILES['foto']['tmp_name'],$locatie.$code.'_'.$_FILES['foto']['name']))
{
echo '<li><span class="rood">Het uploaden van het bestand is mislukt.</span></li>';
}
echo '</ul><br />
<br />';
}
else
{
$filename = $locatie.$code.'_'.$_FILES['foto']['name'];
$path_info = pathinfo($filename);
$ext = $path_info['extension'];
$iets_fout = 'nee';
//In de database zetten
mysql_query("
INSERT INTO
pdf
(
naam,
bestand
)
VALUES
(
'jeeh',
'".$code.'_'.$_FILES['foto']['name']."',
);
") or die(mysql_error());
echo '<strong>Het bestand is succesvol toegevoegd.</strong><br />
<br />';
}
}
?>
<form method="post" action="" enctype="multipart/form-data">
Bestand:<br />
<input type="file" name="foto" size="40" /><br />
<br />
<input type="submit" name="toevoegen" value="Foto Toevoegen" />
</form>
Krijg ook heel wat foutmeldingen:
Warning: move_uploaded_file(../scripts/ztivcpe_dltrade.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/robxqecw/domains/opensourcescript.nl/public_html/verkoop.php on line 26
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/php1EVacw' to '../scripts/ztivcpe_dltrade.jpg' in /home/robxqecw/domains/opensourcescript.nl/public_html/verkoop.php on line 26
Bij het toevoegen van het bestand is het volgende fout gegaan:
- Warning: move_uploaded_file(../scripts/ztivcpe_dltrade.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/robxqecw/domains/opensourcescript.nl/public_html/verkoop.php on line 45
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/php1EVacw' to '../scripts/ztivcpe_dltrade.jpg' in /home/robxqecw/domains/opensourcescript.nl/public_html/verkoop.php on line 45 - Het uploaden van het bestand is mislukt.
-
17-01-2010, 17:24 #5
- Berichten
- 394
- Lid sinds
- 16 Jaar
Je moet wel de goede pad meegeven bij move_uploaded_file() en je moet de map waarin de files komen te staan chmodden naar 777
-
17-01-2010, 17:27 #6
- Berichten
- 330
- Lid sinds
- 18 Jaar
Ik denk dat het beter is om hier eens te kijken en goed door te nemen: http://nl2.php.net/function.move-uploaded-file.
Het probleem kan verschillende oorzaken hebben, maar meestal duidt dit erop dat je het pad naar de betreffende map niet goed hebt staan. Het is ook beter om een absoluut pad te gebruiken, dus zoiets als:
PHP Code:<?
$locatie = $_SERVER['DOCUMENT_ROOT'].'/scripts/';
?>
-
17-01-2010, 17:27 #7
- Berichten
- 275
- Lid sinds
- 15 Jaar
En dan even verwijzen naar de map, en dan komen de afbeedlingen er in.
-
17-01-2010, 17:36 #8
- Berichten
- 214
- Lid sinds
- 17 Jaar
Ik heb nu:
PHP Code:$locatie = $_SERVER['DOCUMENT_ROOT'].'/scripts/';
Nu krijg ik:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 11
-
17-01-2010, 17:37 #9
- Berichten
- 330
- Lid sinds
- 18 Jaar
En wat ook belangrijk is: Je gaat je bestand nu 2x uploaden, aangezien je 2x in een if statement de move_uploaded_file gebruikt. Je kan beter 2 losse if statements gebruiken om te controleren of er wel een bestand is geselecteerd en of de upload is gelukt (aangezien wanneer er geen bestand is geselecteerd in dit geval nog wel getracht wordt om het bestand te uploaden).
Dus:
PHP Code:<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$tekens = rand(5,7);
$code = '';
for($i = 1; $i <= $tekens; $i++)
{
$code .= $chr = strtolower(chr(rand(65, 90)));
}
//Locatie waar het bestand moeten staan
$locatie = $_SERVER['DOCUMENT_ROOT'].'/scripts/';
$fouten = array();
if($_FILES['foto']['name'] == '') {
$iets_fout = 'ja';
$fouten[] = '<li><span class="rood">U heeft geen bestand geselecteerd.</span></li>';
} elseif(!move_uploaded_file($_FILES['foto']['tmp_name'],$locatie.$code.'_'.$_FILES['foto']['name'])) {
$iets_fout = 'ja';
$fouten[] = '<li><span class="rood">Het uploaden van het bestand is mislukt.</span></li>';
}
if(count($fouten) > 0) {
echo '<span class="rood">Bij het toevoegen van het bestand is het volgende fout gegaan:</span><br />
<ul>';
for($i=0;$i<count($fouten);$i++) {
echo '<li>'.$fouten[$i].'</li>';
}
echo '</ul>';
} else {
$filename = $locatie.$code.'_'.$_FILES['foto']['name'];
$path_info = pathinfo($filename);
$ext = $path_info['extension'];
$iets_fout = 'nee';
//In de database zetten
mysql_query("
INSERT INTO
pdf
(
naam,
bestand
)
VALUES
(
'jeeh',
'".$code.'_'.$_FILES['foto']['name']."'
);
") or die(mysql_error());
echo '<strong>Het bestand is succesvol toegevoegd.</strong><br />
<br />';
}
}
?>
<form method="post" action="" enctype="multipart/form-data">
Bestand:<br />
<input type="file" name="foto" size="40" /><br />
<br />
<input type="submit" name="toevoegen" value="Foto Toevoegen" />
</form>
En CHMOD is inderdaad de rechten van de map die je op 777 moet zetten. Als de map "script" in de root van je server staat dan klopt bovenstaande code waarschijnlijk, echter staat die in een andere (sub)map dan moet je dat even aanpassen bij $locatie.
-
17-01-2010, 17:41 #10
- Berichten
- 275
- Lid sinds
- 15 Jaar
http://www.mijnbestand.nl/Bestand-FW3PKSPPLW6U.txt deze werkt wel goed ff het bovenste stukje aanpassen : $locatie="vul de map naam in/"; map naam invulllen de / laten staan.
-
17-01-2010, 17:47 #11
- Berichten
- 214
- Lid sinds
- 17 Jaar
http://www.mijnbestand.nl/Bestand-FW3PKSPPLW6U.txt deze werkt wel goed ff het bovenste stukje aanpassen : $locatie="vul de map naam in/"; map naam invulllen de / laten staan.
Nu nog 1 vraag:
Is er een manier dat ik bijvoorbeeld alleen dat ip adres hem kan laten downloaden als het een .zip/.rar is?
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