Ik heb nu dat als iemand naar download.php?bestand=iets gaat dat hij het bestand kan downloaden.
Nu wil ik dat inplaats van het downloaden het bestand word gemailt in een bijlage naar $email
Iemand die me kan helpen?
download.php
PHP Code:
<?php
include("includes/includes.php");
$time3 = mysql_fetch_assoc(mysql_query("SELECT * FROM gekocht WHERE ip='".$_SERVER['REMOTE_ADDR']."' AND bestand='".$_GET['bestand']."'"))OR DIE(mysql_error());
$time2 = $time3['time'];
$time1 = time();
if($time2 > $time1){
// 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 kan het script maar 24 uur downloaden nadat je het gekocht hebt.";
}
?>
- Bijlage bij email
-
24-01-2010, 10:39 #1
- Berichten
- 214
- Lid sinds
- 17 Jaar
Bijlage bij email
-
In de schijnwerper
LPplaten.nl - Prachtige EMD - 2.4k EMD zoekvolume p.mndDomein te koopErvaren WordPress & WooCommerce Developer – Pixel-perfect & Whitelabel maatwerk!Freelance / WerkKant en klare website - VoetbalticketsEngeland.nl - Te KoopWebsite te koopDegelijke Affiliate Zorgverzekeringswebsite | Hoge commissie per saleWebsite te koop -
24-01-2010, 10:55 #2
- Berichten
- 126
- Lid sinds
- 15 Jaar
Om te mailen kun je het gratis script PHP-mailer gebruiken.
Attachments zijn toe te voegen via de functie 'AddAttachment', die in deze class zit.
-
24-01-2010, 11:21 #3
- Berichten
- 1.483
- Lid sinds
- 16 Jaar
Zoals Ewout al zegt, download de gratis PHPmailer class. Hier zit elke mail functionaliteit in die je je maar kan wensen.
Aanvullend bericht:
In de PFZ wiki staat wat informatie over PHPmailer. Er staat ook een voorbeeld om een bijlage toe te voegen aan de e-mail:
http://wiki.phpfreakz.nl/PhpmailerLaatst aangepast door Arek van Schaijk : 24-01-2010 om 11:23 Reden: Automatisch samengevoegd.
-
24-01-2010, 12:46 #4
- Berichten
- 214
- Lid sinds
- 17 Jaar
Kan ik niet gewoon bij dit:
PHP Code:<?php
include("includes/includes.php");
$time3 = mysql_fetch_assoc(mysql_query("SELECT * FROM gekocht WHERE ip='".$_SERVER['REMOTE_ADDR']."' AND bestand='".$_GET['bestand']."'"))OR DIE(mysql_error());
$time2 = $time3['time'];
$time1 = time();
if($time2 > $time1){
// 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
{
$header = "From: ".$sitenaam." < ".$sitemail." >";
mail($mailto, $onderwerp], $bericht, $header);
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 kan het script maar 24 uur downloaden nadat je het gekocht hebt.";
}
?>
Want ik weet wel hoe ik een mail script maak maar niet hoe ik een bijlage erbij doe.
-
24-01-2010, 13:02 #5
- Berichten
- 330
- Lid sinds
- 18 Jaar
Ik wil je toch echt aanraden om bijv. PHPmailer te gebruiken en de documentatie (zie post Arek) door te nemen, want een bijlage toevoegen is echt niet moeilijk met dit pakket (volgens mij kan je direct het bestand wat je wil toevoegen als bijlage (ook al zit deze in een beveiligde map). Zo hoef je geen gebruik te maken van je php bestand dat het beveiligde bestand opent. PHP kan (volgens mij) namelijk in de meeste gevallen wel bij een beveiligd bestand (serverside).
Het klinkt ingewikkelder dan het is, maar lees de documentatie maar eens aandachtig door en dan zul je zien dat het een eitje is.
Mocht je er daarna echt niet uit komen, laat dan zien wat je gedaan hebt (zodat wij ook zien dat je de documentatie hebt doorgenomen) en dan willen wij je graag helpen.
-
24-01-2010, 15:26 #6
- Berichten
- 214
- Lid sinds
- 17 Jaar
Mail doet het :)
Maar zodra ik de attachment toevoeg komt hij toch met:
Could not access file: /scripts/Dark.zip
Dus heb script wel nodig.
Ga ik nu maar even testen. Maar bedankt :)
-
24-01-2010, 18:17 #7
SoloHosting | SoloICT
- Berichten
- 194
- Lid sinds
- 19 Jaar
-
24-01-2010, 18:59 #8
- Berichten
- 1.483
- Lid sinds
- 16 Jaar
Gewoon PHPmailer gebruiken, met een minimale kennis van die class stuur je een HTML e-mail inclusief bijlage na 2 minuten tijd implementatie.
-
24-01-2010, 19:35 #9
- Berichten
- 214
- Lid sinds
- 17 Jaar
De bestanden die ik wil dat er naar de email worden gestuurd zijn beveiligt.
Ik wil dat alleen als ze via download.php?bestand=contact.zip gaan dat het wel kan.
Ik heb nu:
PHP Code:<?php
include("includes/includes.php");
require_once($_SERVER['DOCUMENT_ROOT'].'/class/class.phpmailer.php');
$time3 = mysql_fetch_assoc(mysql_query("SELECT * FROM gekocht WHERE ip='".$_SERVER['REMOTE_ADDR']."' AND bestand='".$_GET['bestand']."'"))OR DIE(mysql_error());
$time2 = $time3['time'];
$time1 = time();
if($time2 > $time1){
$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
{
$row = mysql_fetch_assoc(mysql_query("SELECT * FROM `users` WHERE `user`='".$_SESSION['myusername']."'"))OR DIE(mysql_error());
$email = $row['email'];
$user = $_SESSION['myusername'];
$mailer = new PHPMailer();
$mailer->From = 'info@cheap-scripts.nl';
$mailer->Subject = 'Gekocht script';
$mailer->Body = 'Je hebt een script gekocht op cheap-scripts.nl!<br> Kijk bij de bijlage.';
$mailer->AddAttachment('/scripts/'.$_GET['bestand'].'', $_GET['bestand']);
$mailer->AddAddress($email, $user);
$mailer->Send();
}
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
}
}else{
echo 'Je hebt het script 24 uur geleden gekocht. je kan het script niet meer ontvangen.';
}
?>
Iemand een idee?
-
24-01-2010, 20:18 #10
- Berichten
- 1.483
- Lid sinds
- 16 Jaar
Goed dat je PHPmailer hebt geinstalleerd.
Deze fout ligt wel degelijk bij jezelf. Via de eerste / (slash) geef je namelijk aan dat je het bestand zoekt vanaf de root, gebruik deze niet of ../ om een folder terug te gaan.
/scripts/contact.zip
-
24-01-2010, 20:30 #11
- Berichten
- 214
- Lid sinds
- 17 Jaar
Nog 1 vraag:
ik krijg nu mail van:
"Root User" <info@cheap-scripts.nl>
Hoe verader ik root user?
-
24-01-2010, 20:34 #12
- Berichten
- 1.483
- Lid sinds
- 16 Jaar
$mailer->From = 'info@cheap-scripts.nl';
door:
$mailer->SetFrom('name@yourdomain.com', 'First Last');
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