1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
|
<?php
session_start();//Démarre la session.
require("includes/init.php");
include('filters/guest_filter.php');
//Si le formulaire a été soumis
if(isset($_POST['register'])){
if(not_empty(['name','pseudo','email','password','password_confirm'])){
$errors = [];//Tableau contenant l'ensemble des erreurs
extract($_POST);
if(mb_strlen($pseudo) < 3){
$errors[] = "Pseudo trop court ! (minimum 3 caractères)";
}
if( !filter_var($email, FILTER_VALIDATE_EMAIL) ){//FILTER_VALIDATE_EMAIL Filtre si c'est un format email valide
$errors[] = "Adresse email invalide ! ";
}
if(mb_strlen($password) < 6){
$errors[] = "Mot de passe trop court ! (minimum 6 caractères)";
} else{
if($password != $password_confirm){
$errors[] = "Les deux mots de passe ne concordent pas ! ";
}
}
if(is_already_in_use('pseudo', $pseudo, 'users')){
$errors[] = "Pseudo déjà utilisé ! ";
}
if(is_already_in_use('email', $email, 'users')){
$errors[] = "Adresse E-mail déjà utilisé ! ";
}
if(count($errors) == 0){
//Envoi d'email d'activation
$to = $email;
$subject = WEBSITE_NAME. " - ACTIVATION DE COMPTE";
/********************************************************/
/*nouveau hashage de mot de passe */
$password = password_hash($password, PASSWORD_BCRYPT);
/********************************************************/
//$password = sha1($password);
//$token = sha1($pseudo.$email.$password);//Le token c'est le pseudo, le password et l'email concaténé
//Récupération du mail déjà formaté
ob_start();//Garde tous ce qu'on va faire dans la mémoire tampon
require('templates/emails/activation.tmpl.php');//Inclus le fichier sans l'afficher
$content = ob_get_clean();
$faiMail = ini_set("SMTP", "smtp.orange.fr"); // fai = Fournisseur d'Accès Internet
$portMail = ini_set("smtp_port", "25"); // Le numéro du port change en fonction du FAI. Pour Orange, c'est le port 25 (pour envoyer des emails).
$mailSender = ini_set("sendmail_from", "drouetphilippe1@gmail.com"); // Tu peux mettre l'adresse email que tu veux.
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
//Envoi du mail d'activation
mail($to, $subject, $content, $headers);//Envoi le mail
/********************************/
/*On met les informations en bdd*/
/********************************/
$q = $db->prepare('INSERT INTO users(name, pseudo, email, password)
VALUES(:name, :pseudo, :email, :password)');
$q->execute([
'name' => $name,
'pseudo' => $pseudo,
'email' => $email,
'password' => $password
]);
set_flash("Mail d'activation envoye ! ", 'success');//Message de succès
redirect('index.php');//On peut mettre : header('Location: index.php');à la place de redirect
//exit(); à ajouter si on utilise le header
/******************************/
} else{
save_input_data();
}
}else {
$errors[]= "Veuillez remplir tout les champs ! ";
save_input_data();
}
}
else{
clear_input_data();//Fonction qui permet de détruire toutes
//les informations en session si on revient sur inscription
//après que celle-ci soit acceptée.
}
?>
<?php require('views/register.view.php');?> |
Partager