*
Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
23 Mai 2012 à 04:55:42

Connexion avec identifiant, mot de passe et durée de la session



 

formulaire php + MySQL + envoi mail


« sujet précédent | | sujet suivant »
Pages: [1] Imprimer
Auteur Fil de discussion: formulaire php + MySQL + envoi mail  (Lu 921 fois)
emi
Nouveau membre
*

Points gagnés: 0
Messages: 2


Voir le profil
formulaire php + MySQL + envoi mail
« le: 03 Octobre 2011 à 17:45:02 »

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/
Code:
<?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&eacute;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/
Code:
<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&eacute;sabonnement
    <div>
      <input  type="radio" value='' name='D&eacute;sabonnement' id='D&eacute;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/
Code:
<?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/
Code:
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...
Journalisée
emi
Nouveau membre
*

Points gagnés: 0
Messages: 2


Voir le profil
Re : formulaire php + MySQL + envoi mail
« Répondre #1 le: 09 Octobre 2011 à 07:15:11 »

J'ai résolu mon problème...
Merci
Journalisée
mathias
Rédacteur Modérateur
Intarissable
*****

Points gagnés: 3
Messages: 1063



Voir le profil
Re : formulaire php + MySQL + envoi mail
« Répondre #2 le: 17 Octobre 2011 à 10:29:20 »

Bonjour;

Pouvez-vous nous communiquer votre solution afin que ceci puisse eventuellement servir à d'autres lecteurs ?

Merci Smile
Journalisée

Administrateur système et réseau

Webmaster
Pages: [1] Imprimer 
« sujet précédent | | sujet suivant »
Aller à:  

Powered by SMF 1.1.12 | SMF © 2006, Simple Machines LLC

Page générée en 0.192 secondes avec 18 requêtes.