par
Asum » 26 oct. 2022, 21:49
<?php
$bdd = new PDO('mysql:host=127.0.0.1;dbname=confirmation_mail;', 'root', '...');
if(isset($_POST['envoyer'])){
$pseudo = htmlspecialchars($_POST['pseudo']);
$email = htmlspecialchars($_POST['email']);
if(!empty($_POST['pseudo']) AND !empty($_POST['email']) AND !empty($_POST['password']) AND !empty($_POST['password2']) and !empty($_POST['coche']))
{
$pseudolength = strlen($pseudo);
if ($pseudolength <= 255)
{
}
else
{
$erreur = "Votre pseudo ne doit pas dépasser 255 caractéres";
}
if(filter_var($email, FILTER_VALIDATE_EMAIL))
{
}
else
{
$erreur = "Votre adresse mail n'est pas valide";
}
$reqpseudo = $bdd->prepare("SELECT * FROM users WHERE pseudo = ?");
$reqpseudo->execute(array($pseudo));
$pseudoexist = $reqpseudo->rowCount();
if($pseudoexist == 0)
{
$reqmail = $bdd->prepare("SELECT * FROM users WHERE mail = ?");
$reqmail->execute(array($email));
$mailexist = $reqmail->rowCount();
if($mailexist == 0)
{
if($password == $password2)
{
$cle = rand(1000000, 9000000);
$pseudo = $_POST['pseudo'];
$email = $_POST['email'];
$pass_hache = sha1($_POST['password'], PASSWORD_DEFAULT);
$insererUser = $bdd->prepare('INSERT INTO users(pseudo, mail, motdepasse, cle, confirm)VALUES(?, ?, ?, ?, ?)');
$insererUser->execute(array($pseudo, $email, $pass_hache, $cle, 0));
$recupUser = $bdd->prepare('SELECT * FROM users WHERE mail=?');
$recupUser->execute(array($email));
if($recupUser->rowCount() > 0)
{
$userInfos = $recupUser->fetch();
$_SESSION['id'] = $userInfos['id'];
$header="MIME-Version: 1.0\r\n";
$header.='From:"MONNOM"<MAILCREEAVECSANDMAIL>'."\n";
$header.='Content-Type:text/html; charset="utf-8"'."\n";
$header.='Content-Transfer-Encoding: 8bit';
$message = '
<html>
<body>
<div align="center">
<a href="http://193.26.121.183/confirmation.php?pseudo='.urlencode($pseudo).'&cle='.$cle.'">Confirmez votre compte!</a>
</div>
</body>
</html>
';
mail($email, "Confirmation de compte", $message, $header);
header('Location: index.php');
}
}
else
{
$erreur = "Vos mot de passe ne corresponde pas";
}
}
else
{
$erreur= "Adresse mail déjà existante !";
}
}
else
{
$erreur= "Le Pseudo existe déjà !";
}
}
else
{
$erreur = "Tous les champs doivent être complétés !";
}
}
?>
Voila mon code est pourtant quand je met un echo mail envoyé celui ci est bien envoyé
[PHP]<?php
$bdd = new PDO('mysql:host=127.0.0.1;dbname=confirmation_mail;', 'root', '...');
if(isset($_POST['envoyer'])){
$pseudo = htmlspecialchars($_POST['pseudo']);
$email = htmlspecialchars($_POST['email']);
if(!empty($_POST['pseudo']) AND !empty($_POST['email']) AND !empty($_POST['password']) AND !empty($_POST['password2']) and !empty($_POST['coche']))
{
$pseudolength = strlen($pseudo);
if ($pseudolength <= 255)
{
}
else
{
$erreur = "Votre pseudo ne doit pas dépasser 255 caractéres";
}
if(filter_var($email, FILTER_VALIDATE_EMAIL))
{
}
else
{
$erreur = "Votre adresse mail n'est pas valide";
}
$reqpseudo = $bdd->prepare("SELECT * FROM users WHERE pseudo = ?");
$reqpseudo->execute(array($pseudo));
$pseudoexist = $reqpseudo->rowCount();
if($pseudoexist == 0)
{
$reqmail = $bdd->prepare("SELECT * FROM users WHERE mail = ?");
$reqmail->execute(array($email));
$mailexist = $reqmail->rowCount();
if($mailexist == 0)
{
if($password == $password2)
{
$cle = rand(1000000, 9000000);
$pseudo = $_POST['pseudo'];
$email = $_POST['email'];
$pass_hache = sha1($_POST['password'], PASSWORD_DEFAULT);
$insererUser = $bdd->prepare('INSERT INTO users(pseudo, mail, motdepasse, cle, confirm)VALUES(?, ?, ?, ?, ?)');
$insererUser->execute(array($pseudo, $email, $pass_hache, $cle, 0));
$recupUser = $bdd->prepare('SELECT * FROM users WHERE mail=?');
$recupUser->execute(array($email));
if($recupUser->rowCount() > 0)
{
$userInfos = $recupUser->fetch();
$_SESSION['id'] = $userInfos['id'];
$header="MIME-Version: 1.0\r\n";
$header.='From:"MONNOM"<MAILCREEAVECSANDMAIL>'."\n";
$header.='Content-Type:text/html; charset="utf-8"'."\n";
$header.='Content-Transfer-Encoding: 8bit';
$message = '
<html>
<body>
<div align="center">
<a href="http://193.26.121.183/confirmation.php?pseudo='.urlencode($pseudo).'&cle='.$cle.'">Confirmez votre compte!</a>
</div>
</body>
</html>
';
mail($email, "Confirmation de compte", $message, $header);
header('Location: index.php');
}
}
else
{
$erreur = "Vos mot de passe ne corresponde pas";
}
}
else
{
$erreur= "Adresse mail déjà existante !";
}
}
else
{
$erreur= "Le Pseudo existe déjà !";
}
}
else
{
$erreur = "Tous les champs doivent être complétés !";
}
}
?>[/PHP]
Voila mon code est pourtant quand je met un echo mail envoyé celui ci est bien envoyé