Bonjour à tous,
J'aurais bien besoin d'aide.
Alors j'ai voulu fusionner sur un site un formulaire très simple d'inscription à newsletter, qui gère également la desisncription en lien avec la base Mysql.
mais voilà mon client voudrait en plus que l'internaute au moment de son inscription puisse donner plus d'informations (non-obligatoires) qui lui serait envoyées par mail.
Mon serveur est encore en PHP4, je sais c'est pas terrible, mais tous le back a été developpé en php4, et la montée de version va être longue.
j'ai utilisé un script jquery pour le formulaire, qui verifie en javascript que le mail a bien été envoye, et d'un autre côté, j'ai sur le même bouton sbmit, des infos à envoyé à la base de donnée pour inscrire ou desinscrire l'internaute en php.
Je ne sais pas comment faire fusionner les deux, ni même si c'est possible....
Voici plusieurs fichiers :
1/ les commandes php pour la base de données, que je ne sais pas ou déplacer...
2/le formulaire
3/ le fichier send qui récupère les infos supplémentaires pour les envoyer par mail
4/ le fichier jquery qui pilote l'envoie du formulaire par mail ( c'est là qu'il faudrait que je puisse insérer, avant d'envoyer le mail, de se connecter avec la base de donnée pour inscrire ou desinscrire l'internaute)
P.S Dans tout ça je sais que j'ai deux vérifications différentes une via ma commande php, et une via le script de jquery, je ne sais pas laquelle supprimer
1/
<?php
$msg='';
if(isset($_POST['email']))
{
if(!empty($_POST['email']))
{
$email = mysql_real_escape_string(htmlspecialchars($_POST['email']));
function VerifierAdresseMail($email)
{
$Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#';
if(preg_match($Syntaxe,$email))
return true;
else
return false;
}
if(VerifierAdresseMail($email))
{
$sql = mysql_query("SELECT prenom,nom,id FROM tbl_contact WHERE email='$email'");
$found = mysql_num_rows($sql);
if ($found==0)
{
$sql = mysql_query("SELECT email FROM tbl_newsl_from_site WHERE email='$email'");
$found = mysql_num_rows($sql);
if ($found!=0)
{
if ($action=='') {
$del="DELETE FROM tbl_newsl_from_site WHERE email='$email'";
mysql_query($del);
if ($lang=='fr') {
$msg= "Désabonnement pris en compte";
} else {
$msg= "You successfully unsuscribed";
};
}
else
{
if ($lang=='fr') {
$msg= "Vous êtes déjà inscrit";
} else {
$msg= "you have already subscribed";
};
};
}
else
{
if ($action=='')
{
if ($lang=='fr') {
$msg= "Cette adresse n'est pas inscrite";
} else {
$msg= "Not suscribed yet";
};
}
else
{
mysql_query("INSERT INTO tbl_newsl_from_site SET email='$email'");
if ($lang=='fr') {
$msg= "Abonnement pris en compte";
} else {
$msg= "You successfully suscribed";
};
};
};
}
else
{
$row=mysql_fetch_array($sql);
extract($row);
mysql_query("UPDATE tbl_contact SET newsletter='$action' WHERE email='$email'");
$msg="Votre modification a été prise en compte";
};
}
else
{
if ($lang=='fr') {
$msg= "L'email rentré n'est pas valide";
} else {
$msg= "Your email is not correct";
};
}
}
elseif(empty($_POST['email']))
{
if ($lang=='fr') {
$msg= "Veuillez rentrer une adresse mail";
} else {
$msg= "Please, give an email";
};
};
}
?>
2/
<form method='POST' action='/site/galerie/send.php' id='contact_form' >
<p class="champ"> Abonnement
<div>
<input type="radio" value="on" checked name='abonnement' id='abonnement'>
</div>
</p>
<div class="clear"></div>
<p class="champ">Désabonnement
<div>
<input type="radio" value='' name='Désabonnement' id='Désabonnement'>
</div>
</p>
<div class="clear"></div>
<p class="champ"> Email *
<div id='email_error' class='error'><img src='/site/galerie/formulaireContact/images/error.png'><?php echo $msg;?></div>
<div>
<input type='text' name='email' id='email'>
</div>
</p>
<div class="clear"></div>
<p class="champ"> Nom
<div>
<input type='text' name='name' id='name'>
</div>
</p>
<div class="clear"></div>
<p class="champ">Prénom
<div>
<input type='text' name='firstname' id='firstname'>
</div>
</p>
<div class="clear"></div>
<p class="champ"> Profession
<div>
<input type='text' name='profession' id='profession'>
</div>
</p>
<div class="clear"></div>
<p class="champ"> Institution
<div>
<input type='text' name='institution' id='institution'>
</div>
</p>
<div class="clear"></div>
<p class="champ"> Adresse
<div>
<input type='text' name='adresse' id='adresse'>
</div>
</p>
<div class="clear"></div>
<p class="champ">Code postal
<div>
<input type='text' name='code' id='code'>
</div>
</p>
<div class="clear"></div>
<p class="champ">Ville
<div>
<input type='text' name='ville' id='ville'>
</div>
</p>
<div class="clear"></div>
<p class="champ">Pays
<div>
<input type='text' name='pays' id='pays'>
</div>
</p>
<div class="clear"></div>
<div id='mail_success' class='success'><img src='/site/galerie/formulaireContact/images/success.png'> <?php if ($lang=='fr') {echo "Merci, votre message a bien été envoyé";}?></div>
<div id='mail_fail' class='error'><img src='/site/galerie/formulaireContact/images/error.png'><?php if ($lang=='fr') {echo "Votre message n'a pas été envoyé, veuillez réessayer plus tard.";}?></div>
<p id='cf_submit_p'>
<input type='submit' id='send_message' value='<?php if ($lang=='fr') {echo "Envoyer";}?>'>
</p>
</form>
</div>
<div class="retour"></div>
3/
<?php
//IMPORTANT!!
//Put in your email address below:
$to = 'emi.rolland@gmail.com';
//User info (DO NOT EDIT!)
$email = stripslashes($_POST['email']); //sender's email
$name = stripslashes($_POST['name']); //sender's name
$firstname = stripslashes($_POST['firstname']); //sender's email
$profession = stripslashes($_POST['profession']); //sender's email
$adresse = stripslashes($_POST['adresse']);
$code = stripslashes($_POST['code']);
$ville = stripslashes($_POST['ville']);
$pays = stripslashes($_POST['pays']);
//The subject
$subject = "Newsletter - Nouvel abonnement "; //The default subject. Will appear by default in all messages. Change this if you want.
//The message you will receive in your mailbox
//Each parts are commented to help you understand what it does exaclty.
//YOU DON'T NEED TO EDIT IT BELOW BUT IF YOU DO, DO IT WITH CAUTION!
$msg = "From : $name \r\n"; //add sender's name to the message
$msg = "From : $firstname \r\n"; //add sender's name to the message
$msg .= "e-Mail : $email \r\n"; //add sender's website to the message
$msg .= "$subject \r\n\n"; //add subject to the message (optional! It will be displayed in the header anyway)
$msg .= "---Infos--- \r\n\n";
$msg .= "Profession : $profession \r\n";
$msg .= "Institution : $institution \r\n";
$msg .= "Adresse : $adresse \r\n";
$msg .= "Code : $code \r\n";
$msg .= "Ville : $ville \r\n";
$msg .= "Pays : $pays \r\n";
//Extras: User info (Optional!)
//Delete this part if you don't need it
//Display user information such as Ip address and browsers information...
$msg .= "---Contact Newsletter form from Website--- \r\n\n"; //Title
$msg .= "Page : ".$_SERVER["HTTP_REFERER"]; //Referrer
// END Extras
if (mail($to, $subject, $msg, "From: $email\r\nReply-To: $email\r\nReturn-Path: $email\r\n")){
echo "sent";
}else{
echo "echoue";
}
?>
4/
jQuery(document).ready(function(){
jQuery('#send_message').click(function(e){
e.preventDefault();
var error = false;
var email = $('#email').val();
if(email.length == 0 || email.indexOf('@') == '-1'){
var error = true;
jQuery('#email_error').fadeIn(1000);
}
if(error == false){
jQuery('#send_message').attr({'disabled' : 'true', 'value' : 'Envoi en cours...' });
jQuery.post("/site/galerie/send.php", jQuery("#contact_form").serialize(),function(result){
if(result == 'sent'){
jQuery('#cf_submit_p').remove();
jQuery('#mail_success').fadeIn(1000);
}else{
jQuery('#mail_fail').fadeIn(1000);
jQuery('#send_message').removeAttr('disabled').attr('value', 'Message envoyé');
}
});
}
});
});
J'espère avoir été claire, un grand merci pour votre aide...