Existance d'un email. [Résolu/Fermé]

Signaler
Messages postés
76
Date d'inscription
jeudi 5 mars 2015
Statut
Membre
Dernière intervention
16 février 2016
-
Messages postés
567
Date d'inscription
mercredi 18 décembre 2013
Statut
Membre
Dernière intervention
1 juillet 2015
-
Bonjour,
j'ai un formulaire d'inscription .
l'utilisateur insére son email,nom,prénom,adresse...
je veut insérer une fonction php dans laquelle l'email entrer doit réélement existé dans yahoo ou gmail (selon l'email de l'utilisateur) .
par exemple : l'email afegzgg@gmail.com n'existe pas réélement .
comment je peut faire .
Merci

1 réponse

Messages postés
567
Date d'inscription
mercredi 18 décembre 2013
Statut
Membre
Dernière intervention
1 juillet 2015
22
Bonjour,

Je ne vois qu'une seule solution : mettre en place un système où vous envoyez un email à l'adresse renseignée, contenant un lien. L'utilisateur cliquera sur le lien et pourra accéder à la suite du script, où se voir inscrit dans votre base de données. Si le mail n'existe pas, la requête de l'utilisateur n'aura ainsi pas de suite.

J'espère avoir été clair. Si toutefois tel n'en était pas le cas, n'hésitez pas à demander des explications !

Cordialement,

hharchi9.
Messages postés
567
Date d'inscription
mercredi 18 décembre 2013
Statut
Membre
Dernière intervention
1 juillet 2015
22
Voici ce que j'utilise pour envoyer un message de confirmation d'inscription à la newsletter :
if(isset(htmlspecialchars(strip_tags($_GET['email']))))
{
	$email=htmlspecialchars(strip_tags($_GET['email']))
	if(empty($email))
	{
		echo "<p>Merci de saisir votre email pour réaliser l'inscription à la newsletter<br/>
				Vous allez être redirigé vers  l'accueil dans 05 secondes</p>";
	}
	else 
	{
	
	//Vérification de l'email
    $query=$bdd->prepare('SELECT COUNT(*) AS nbr FROM newsletter WHERE email =:email');
    $query->bindValue(':email',$email, PDO::PARAM_STR);
    $query->execute();
    $email_free=($query->fetchColumn()==0)?1:0;
    $query->CloseCursor();
    if(!$email_free)
    {
        echo "<p>Vous êtes déjà inscrit à notre newsletter<br/>
				Vous allez être redirigé vers  l'accueil dans 05 secondes</p>";
    }
	else
	{	
		$boundary = "-----=".md5(rand());
		$message="<p>Pour confirmer votre inscription à notre newsletter, merci de cliquez ici :</p><p><a href=http://www.monsite.com/php/confirm.php?email=".$email.">Confirmation de l'inscription à la newsletter</a><br/><br/>";
		$destinataire=$email;
		$objet="Confirmation Newsletter - Monsite";
		$entete="From: \"Moi\" <adresse@domaine.com> \n";
		$entete .= "Reply-To: \"Moi\" <adresse@domaine.com> \n";
		$entete.= "MIME-Version: 1.0 \n";
		$entete.= "Content-Type: text/html;\n charset=\"iso-8859-1\" \n boundary=\"$boundary\" \n";
		mail($destinataire, $objet, $message, $entete);		
				
		echo "<p>Un message de confirmation a été envoyé à : ".$email."<br/>
			Vous allez être redirigé vers  l'accueil dans 05 secondes</p>";
	}
	}
}
	else
	{
	echo'<p>Une erreur s\'est produite<br/>
		Vous allez être redirigé vers  l'accueil dans 05 secondes</p>';
	}
?>
 <meta content='5; url=http://www.monsite.com/index.php' http-equiv='refresh'/>


Si besoin, je peux ajouter des précisions.
Messages postés
76
Date d'inscription
jeudi 5 mars 2015
Statut
Membre
Dernière intervention
16 février 2016

comment je peut l'insérer dans un formulaire .
j'ai essayé ça mais il n'a pas marché

<form action="votreTest.php" method="get">
<input type="email"  name="email"  />
<input type="submit"  value="tester email " />
</form>
Messages postés
567
Date d'inscription
mercredi 18 décembre 2013
Statut
Membre
Dernière intervention
1 juillet 2015
22
Normalement cela devrait marcher. Voici le formulaire que j'utilise :

<form method="get" action="php/subscribe.php">
<p>
	<input class="a_n" type="email" name="email" id="email" placeholder="adresse mail" size="30" maxlength="100" required />
	<input class=" abonner" type="submit" value="S'abonner" />
</p>
</form>
Messages postés
76
Date d'inscription
jeudi 5 mars 2015
Statut
Membre
Dernière intervention
16 février 2016

it s'est arréter au niveau de cette ligne :
$query=$bdd->prepare('SELECT COUNT(*) AS nbr FROM newsletter WHERE email =:email');
Call to a member function prepare() on a non-object in C:\EasyPHP-12.1\www\subscribe.php on line 15 !!!
Messages postés
567
Date d'inscription
mercredi 18 décembre 2013
Statut
Membre
Dernière intervention
1 juillet 2015
22
oui il manque la connexion à la base de données (que j'ai appelée
$bdd
)

try
{
	// On se connecte à MySQL
	$bdd = new PDO(sprintf('mysql:host=%s;dbname=%s', $host, $dbname), $user, $pass);
	$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(Exception $e)
{
	// En cas d'erreur, on affiche un message et on arrête tout
	die('Erreur : '.$e->getMessage());
}