PHP script download fil mod at oplyse email adresse

Tags:    php script

<< < 12 > >>
Jeg vil gerne ligge en ebog op på min side til frit at kunne downloades mod at jeg får en emailadresse, så jeg dels har mulighed for at se hvem der downloader og dels har muligheden for at kontakte dem.
Jeg har fundet forskellige script på dette, med ingen har virket.
På forhånd tak.




17 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
hvilke script har du fundet ??
vi skal have noget at arbejde ud fra.

men det må være noget med at brugeren skal indtaste en email addresse, der skal valideres, der herefter ligges i en database, og så sender man brugeren en mail på den mail addresse der er angivet, et midlertidigt link til download af filen.




Indlæg senest redigeret d. 18.05.2017 11:00 af Bruger #16075
der er nogle stave fejl i din thispage.php der gør det ikke virker. rettet vertion
Fold kodeboks ind/udKode 


output ligger i xampp\mailoutput som test
Fold kodeboks ind/udKode 

sansynligheden for at denne mail vil ryge i spam er temmelig stor.
sandsynligheden for at der er problemer med æøå er temmelig stor
der skal nok nogle ekstra headers på
http://dk.php.net/manual/en/function.mail.php

personlig bruger jeg mail functionen mail_utf8
herfra
https://www.computerworld.dk/eksperten/spm/961816?k=7937170

alternativ vertion bruger jeg ikke selv
http://php.net/manual/en/function.mail.php#108669



mange bruger en af følgende til at sende mail med
http://phpmailer.worxware.com/
https://mailchimp.com/


jeg tænker brugeren skal have et temporary link, da brugeren så ville kunne hente filen uden at opgive sin mail addresse, hvis han kendte linket.

ref google "php script create temporary download link"

det er et gammelt indlæg, så sql coden skal opdateres til mysqli eller pdo, og istedet for at vise linket på skærmen sender man det i en mail
https://webvamp.co.uk/blog/coding/creating-one-time-download-links/




Indlæg senest redigeret d. 18.05.2017 13:55 af Bruger #16075
Jeg har brugt dette script på siden hvor jeg henviser til min ebog:

<form action="thispage.php" method="post">
<input type="text" name="email" value="Enter your address here" />
<input type="submit" value="Get my file!" />
</form>

Og så har jeg lavet en fil ved navn thispage.php med dette script:

<<?php
//variables

//form contents
$txtName=$_POST['name'];
$txtMail=$_POST['email'];
$txtName = str_replace(array("\n","\r"),'',$txtName);
$txtEmail = str_replace(array("\n","\r"),'',$txtMail);
$txtLink = "lokalblokken.dk/content.pdf";
$Myemail="mail@lokalblokken.dk";


$message ="This is your Link :\t$txtLink\n
\n";
$subject = "Your Link is Here";
$mailheaders = "From: $Myemail <> \n";
$mailheaders .= "Reply-To: $Myemail\n\n";
$theiremail = $txtEmail;

//send mail
mail($theiremail, $subject, $message , $mailheaders);
?>

Men da jeg ikke er programmør ved jeg ikke om det er helt hen i vejret.



Hej,
Mange tak for hjælpen nu har jeg fået det til at virke. Jeg benyttede mail functionen mail_utf8 herfra
https://www.computerworld.dk/eksperten/spm/961816?k=7937170

Den lader dog stadig i uønsket post, men jeg har skrevet at man skal være opmærksom derpå.

Jeg har dog et spørgsmål som sikkert afslører mig som "Dummie" i ekstrem grad. Hvordan ser jeg hvem der er sendt mail til?

Endnu engang rigtig mange tak for hjælpen.
Med venlig hilsen
Susanne Holst
lokalblokken.dk






Hvordan ser jeg hvem der er sendt mail til?

du kunne ligge resultatet af din mail_utf8 i en variabel, som du tester på, og er det gået godt ligger du mail addressen i en database.

noget ala dette
//send mail
$sent = @mail_utf8($theiremail, $subject, $message, $Myemail);
if ($sent) {
echo "mail sendt til bruger";
// her kunne man ligge mailaddressen ind i en database, så man kan se hvem der er sendt til
exit(0);
}
else{
echo "fejl ved afsendelse af mail";
exit(1);
}



samlet eks

mail.php
Fold kodeboks ind/udKode 



thispage.php
Fold kodeboks ind/udKode 


form
Fold kodeboks ind/udKode 





Når jeg ligger dine script ind får jeg denne fejlmeddelse når jeg har indtastet min mailadresse:

Parse error: syntax error, unexpected 'exit' (T_EXIT), expecting ',' or ';' in /customers/e/b/4/lokalblokken.dk/httpd.www/thispage.php on line 30

Kan du se hvad det kan være?



else{
echo "fejl ved afsendelse af mail"; // <-- semicollon manglede
exit(1);
}



Tak! Og super fedt med dine hurtige svar.:)
Så virker de, og nu får jeg heller ikke mail i uønsket post. Men jeg er desværre stadig ikke helt med på det med at få informationer om hvem der er sendt link til. Men måske er det noget der ligger udover hvad der er muligt med min viden.:S Er det indviklet?




med at få informationer om hvem der er sendt link til.

jeg ville ligge det i databasen


test tabel
Fold kodeboks ind/udKode 



lille udvidelse af thispage.php med lidt mysqli
Fold kodeboks ind/udKode 


her kan du se i tbl_mail_list hvem der er sendt til (mail_sendt = 1) og hvem der er fejlet (mail_sendt = 0)

du kan ikke se hvem der har skrevet en mail med forkert syntax, men dem har du jo heller ikke forsøgt at sende et link til.




Okay så jeg retter thispage.php til.
Og skal jeg så oprette en ny php fil med nedenstående script eller hvad?

CREATE TABLE `tbl_mail_list` (
`id` int(11) NOT NULL,
`email` varchar(255) COLLATE utf8_danish_ci NOT NULL,
`mail_sendt` tinyint(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;


ALTER TABLE `tbl_mail_list`
ADD PRIMARY KEY (`id`),
ADD UNIQUE KEY `email` (`email`);

ALTER TABLE `tbl_mail_list`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;




<< < 12 > >>
t