8795 sujets

Développement web côté serveur, CMS

Bonjour à toutes et tous,

Je souhaiterais intégrer dans mon site un champs de formulaire, permettant aux internautes qui souhaitent recevoir une newsletter:
1/ d'inscrire leur email et que celui-ci soit stocker sur une base mysql.
2/ que la date d'inscription s'enregistre automatiquement dans ma base
3/ que si la personne souhaite se désinscrire, il n'ai qu'à re-noter son email et que la suppression se fasse directement dans la base de donnée !!

<?php

$erreur ="";
$ok ="";
	
	if(!empty($_POST)){

//J'ouvre ma base de donnée
	$dbname= 'localhost';
	$user = 'root';
	$password = '';
	$host = 'localhost';

try {
    $dbh = new PDO('mysql:host='.$host .';dbname='.$dbname, $user, $password );
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $dbh->exec("SET CHARACTER SET utf8");
} catch (PDOException $e) {
    echo "<p>Erreur : " . $e->getMessage() . "</p>";
    exit();
}

try {
    /*
     * je récupère le type et le nom du formulaire fictif : 
     */
    $mail = $dbh->quote($_POST['mail']); 
    $date_a = $dbh->quote($_POST['date_a']); 
    
    
     /* Insertion d'une ligne dans MySQL*/
    $count = $dbh->exec("INSERT INTO localhost(mail, date_a) VALUES ($mail, $date_a,)");

   
      //$count contient le nombre de ligne inséré dans la BDD.
    
    echo '<p>'.$count.' ligne(s) inserée(s)</p>';

    //ferme la base de donnée
    $dbh = null;
	}
catch(PDOException $e)
	{

	}

//ensuite je test si mes champs sont vide
	extract($_POST);
	$valid=true;
	//condition pour verifier si le champs mail correspond bien à un e-mail
if(!preg_match("/^[a-z0-9\-_.]+@[a-z0-9\-_.]+\.[a-z]{2,3}$/i",$mail)){
	$valid=false;
	$erreurmail ="votre email n'est pas valide";
}
if(empty($mail)){
	$valid=false;
		$erreurmail="Vous n'avez pas rempli votre adresse E-mail";	
	}	

if($valid==true){
		$to      = 'email-du-site@email.fr';
		$headers = 'From: ' . $name . ' ' . $prenom . ' <' . $mail . '>' . "\n";
		$ok="Vous êtes inscrit à la newsletter de Bien manger selon les saisons";
				
     mail($to, $subject, $message, $headers);
			}
			else{
				$erreur ="Vous n'êtes pas inscrit à la newsletter de Bien manger selon les saisons";
			}
	}

	
	
	
	


?>


			<div class="block2">
		<?php
		if($erreur!=""){echo $erreur;}
		if($ok!=""){echo $ok;}
		?>
			<h2 class="ribbon"><span>Newsletter</span></h2>
			<form method="post" action="">
			<p>Pour être informer des produits de saison et recevoir des recettes diététiques, inscris toi à la newsletter !</p>
			<div><input type="hidden" name="format" value="1" />
			<input type="hidden" name="liste" value="1" />
			<div class="radio_container">
			<label><input type="radio" name="action" value="inscription" checked="checked" />inscription</label>
			<label><input type="radio" name="action" value="desinscription" />désinscription</label>
			</div>
			<input name="mail" type="text" value="email" id="mail" size="18"/><?php if(isset($erreurmail))echo $erreurmail ?>
			<input type="submit" name="Submit" value="Envoyer" />
			</div>
			</form>
			</div>	



merci pour vos conseils