Confirmation par mail sous wamp3
- Accueil
- Forum
- Programmation
- PHP
- Confirmation par mail sous wamp3
Gelphe Le 11 juin 2016 à 11:51 (Édité le 25 janvier 2019 à 17:51)
Voila chez moi le Tuto fonctionne parfaitement sous Wamp2.5, sous
EasyPHP 12.1 il fonctionne qu' en rajoutant après confirmkey "confirme"
et dans VALUES " 0\r\n ".
Mais sous Wamp3 en 32 et 64bits malgré plusieurs tentative de
réinstallation et de réécriture de la table membres, l'inscription dans
la BDD ne se fait pas, le mail confirmation et bien envoyé et la réponse
à la confirmation renvoie "l'utilisateur n'existe pas" ce qui est
normal . En utilisant la même méthode que pour EasyPHP cela ne
fonctionne pas non plus .
Lorsque j' enlève confirmkey l'inscription se fait !!!.
Merci à tous
Pour info j' ai réinstaller wamp 2.5 (32Bits) tous fonctionne
scorpion Le 20 juin 2016 à 17:05 (Édité le 1 janvier 1970 à 01:00)
Gelphe Le 1 juillet 2016 à 18:36 (Édité le 1 juillet 2016 à 18:47)
confirmation.php
<?php
$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '');
print('<link rel="stylesheet" href="style.css" type="text/css">');
if(isset($_GET['pseudo'], $_GET['key']) AND !empty($_GET['pseudo']) AND !empty($_GET['key'])) {
$pseudo = htmlspecialchars(urldecode($_GET['pseudo']));
$key = htmlspecialchars($_GET['key']);
$requser = $bdd->prepare("SELECT * FROM membres WHERE pseudo = ? AND confirmkey = ?");
$requser->execute(array($pseudo, $key));
$userexist = $requser->rowCount();
if($userexist == 1) {
$user = $requser->fetch();
if($user['confirme'] == 0) {
$updateuser = $bdd->prepare("UPDATE membres SET confirme = 1 WHERE pseudo = ? AND confirmkey = ?");
$updateuser->execute(array($pseudo,$key));
}
}
?>
et inscription.php
<?php
$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '');
print('<link rel="stylesheet" href="style.css" type="text/css">');
if(isset($_POST['forminscription'])){
$nom = htmlspecialchars($_POST['nom']);
$prenom = htmlspecialchars($_POST['prenom']);
$pseudo = htmlspecialchars($_POST['pseudo']);
$mail = htmlspecialchars($_POST['mail']);
$mail2 = htmlspecialchars($_POST['mail2']);
$mdp = sha1($_POST['mdp']);
$mdp2 = sha1($_POST['mdp2']);
if(!empty($_POST['nom']) AND !empty($_POST['prenom']) AND !empty($_POST['pseudo']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']) AND !empty($_POST['mdp']) AND !empty($_POST['mdp2']))
{
$reqpseudo = $bdd->prepare("SELECT * FROM membres WHERE pseudo = ?");
$reqpseudo->execute(array($pseudo));
$pseudoexist = $reqpseudo->rowCount();
if($pseudoexist == 0)
{
$pseudolength = strlen($pseudo);
if($pseudolength <= 255)
{
if($mail == $mail2)
{
if(filter_var($mail, FILTER_VALIDATE_EMAIL))
{
$req1mail = $bdd->prepare("SELECT * FROM membres WHERE mail = ?");
$req1mail->execute(array($mail));
$mailexist = $req1mail->rowCount();
if($mailexist == 0)
{
if($mdp == $mdp2)
{
$longueurKey = 15;
$key = "";
for($i=1;$i<$longueurKey;$i++){
$key .= mt_rand(0,9);
}
$insertmbr = $bdd->prepare("INSERT INTO membres(nom, prenom, pseudo, mail, motdepasse, avatar, monfond, groupe, confirmkey) VALUES(?,?,?,?,?,?,?,?,?)");
$insertmbr->execute(array($nom,$prenom,$pseudo,$mail,$mdp,"user.png","default.PNG","9.png",$key));
$header="MIME-Version: 1.0\r\n";
$header.='From:"xxxxx.com"<support@xxxx.com>'."\n";
$header.='Content-Type:text/html; charset="utf-8"'."\n";
$header.='Content-Transfert-Encoding: 8bit';
$message='
<html>
<body>
<div align="center">
<a href="http://localhost/xxxx/confirmation.php?pseudo='.urlencode($pseudo).'&key='.$key.'">Confirmez votre compte !</a>
</div>
</body>
</html>
';
mail($mail, "Confirmation de compte", $message, $header);
Gelphe Le 1 juillet 2016 à 18:41 (Édité le 1 janvier 1970 à 01:00)
Nota: ce code fonctionne comme je l'ai dit plus haut ainsi qu'avec easyphp 14
mais il ne fonctionne pas avec la version Wamp V3