Script Descarcare Ghid

effecto

Active Member
Registered
Full Member
Buna ziua! Dupa cum spune titlul caut un script html care atunci cand o persoana completeaza un form cu datele personale, exemplu: nume + mail = pdf, sa se descarce automat un pdf, dar si sa primesc un raspuns pe mailul meu cu datele personale. Ma poate ajuta cineva cu acest script? Stiu ca in wordpress exista plugin-uri doar ca eu vreau sa il integrez in landing page-urile proprii.
 
html e limbaj front-end.

oricum.

zicand de wordpress am presupus ca folosesti php.

am facut un mic exemplu, basic, la subiect, mai adaugi tu ce-ti mai lipseste. in principiu face ce ai cerut. nu am folosit functii mai "new school" nicaieri, asa o sa iti mearga pe cam toate browserele si versiunile php.

incluzi asta unde vrei formul:
Cod:
<div class="email_form">
<form method="post" onsubmit="doIt(this); return false;" />
<input type="email" name="email" placeholder="Email..." required />
<input type="text" name="nume" placeholder="Nume..." required />
<button type="submit">Done</button>
</form>
</div>
<script>
var pdf_file = "/pdf file.pdf"; /* link catre fisierul tau pdf*/
function doIt(e) {
try {
if(window.XMLHttpRequest) {
var xhr = new XMLHttpRequest();
} else {
var xhr = new ActiveXObject("Microsoft.XMLHTTP"); /* pentru vechile IE. */
}
xhr.onreadystatechange = function() {
if(this.readyState == 4 && this.status == 200) {
if(this.responseText == "Success.") {
/* mail trimis, descarca fisierul */
document.querySelector(".email_form").innerText = "Success.";
window.location.href = pdf_file;
} else {
alert("Ceva eroare, reincearca.");
}
}
};
xhr.open("POST", "/sendEmail.php", true);
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xhr.send("email="+e.querySelector("[name=email]").value+"&nume="+e.querySelector("[name=nume]").value);
} catch(err) {
console.log("Eroare: "+err);
}
}
</script>

sendEmail.php:
PHP:
<?php
header("X-Robots-Tag: noindex, nofollow", true); /* nu se stie niciodata pe unde-si mai baga nasu' */
if($_SERVER["REQUEST_METHOD"] == "POST") {
if(isset($_POST["email"]) && !empty($_POST["email"]) && isset($_POST["nume"]) && !empty(preg_replace("/<[^>]+)>","",$_POST["nume"]))) {
if(filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)) {
$to = "[email protected]"; /* adresa ta de mail */
$subject = "Noi date - email";
$txt = "Date form:\r\nEmail: ".$_POST["email"]."\r\nNume: ".preg_replace("/<[^>]+)>/","",$_POST["nume"]);
$headers = "From: site@".$_SERVER["SERVER_NAME"]."\r\nReply-To: ".$_POST["email"]."\r\n";
if(mail($to,$subject,$txt,$headers)) {
echo "Success.";
exit;
}
}
}
}

am presupus ca ai instalat ceva server-mail pe serverul tau, asa ar functiona direct cu php mail. altfel, arunca un ochi peste:
.

daca folosesti php mail, atunci primul mesaj iti va intra in folderul spam, mai mult ca sigur, asa ca iti sugerez sa marchezi ca si not spam atunci cand il vezi, asa urmatoarele mesaje o sa-ti ajunga direct in folderul principal.

succes.

surse utile:
 
html e limbaj front-end.

oricum.

zicand de wordpress am presupus ca folosesti php.

am facut un mic exemplu, basic, la subiect, mai adaugi tu ce-ti mai lipseste. in principiu face ce ai cerut. nu am folosit functii mai "new school" nicaieri, asa o sa iti mearga pe cam toate browserele si versiunile php.

incluzi asta unde vrei formul:
Cod:
<div class="email_form">
<form method="post" onsubmit="doIt(this); return false;" />
<input type="email" name="email" placeholder="Email..." required />
<input type="text" name="nume" placeholder="Nume..." required />
<button type="submit">Done</button>
</form>
</div>
<script>
var pdf_file = "/pdf file.pdf"; /* link catre fisierul tau pdf*/
function doIt(e) {
try {
if(window.XMLHttpRequest) {
var xhr = new XMLHttpRequest();
} else {
var xhr = new ActiveXObject("Microsoft.XMLHTTP"); /* pentru vechile IE. */
}
xhr.onreadystatechange = function() {
if(this.readyState == 4 && this.status == 200) {
if(this.responseText == "Success.") {
/* mail trimis, descarca fisierul */
document.querySelector(".email_form").innerText = "Success.";
window.location.href = pdf_file;
} else {
alert("Ceva eroare, reincearca.");
}
}
};
xhr.open("POST", "/sendEmail.php", true);
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xhr.send("email="+e.querySelector("[name=email]").value+"&nume="+e.querySelector("[name=nume]").value);
} catch(err) {
console.log("Eroare: "+err);
}
}
</script>

sendEmail.php:
PHP:
<?php
header("X-Robots-Tag: noindex, nofollow", true); /* nu se stie niciodata pe unde-si mai baga nasu' */
if($_SERVER["REQUEST_METHOD"] == "POST") {
if(isset($_POST["email"]) && !empty($_POST["email"]) && isset($_POST["nume"]) && !empty(preg_replace("/<[^>]+)>","",$_POST["nume"]))) {
if(filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)) {
$to = "[email protected]"; /* adresa ta de mail */
$subject = "Noi date - email";
$txt = "Date form:\r\nEmail: ".$_POST["email"]."\r\nNume: ".preg_replace("/<[^>]+)>/","",$_POST["nume"]);
$headers = "From: site@".$_SERVER["SERVER_NAME"]."\r\nReply-To: ".$_POST["email"]."\r\n";
if(mail($to,$subject,$txt,$headers)) {
echo "Success.";
exit;
}
}
}
}

am presupus ca ai instalat ceva server-mail pe serverul tau, asa ar functiona direct cu php mail. altfel, arunca un ochi peste:
.

daca folosesti php mail, atunci primul mesaj iti va intra in folderul spam, mai mult ca sigur, asa ca iti sugerez sa marchezi ca si not spam atunci cand il vezi, asa urmatoarele mesaje o sa-ti ajunga direct in folderul principal.

succes.

surse utile:
Multumesc mult pentru cod!
 
Loading...
Back
Sus