This repository has been archived by the owner on Oct 12, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
post_signin.php
94 lines (78 loc) · 4.33 KB
/
post_signin.php
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
<?php
//on démarre une session, qui permettra de se lier à l'index.php
session_start();
//function
$errors = array(); // je crée un tableau dans lequel je vais inclure les différents erreurs rencontrées.
// fonction permettant de valider un email - vu en cours
function valid_mail($mail){
return filter_var($mail, FILTER_VALIDATE_EMAIL);
}
// DRY de la technique du nettoyage.
function clean($value){
return trim(strip_tags(htmlspecialchars($value)));
}
if($_POST){
// Honeypot d'un champ invisible pour l'utilisateur
if($_POST['spam_mail']!= ''){
die('hey ! you are not an unicorn ! Fagot');
}
//nettoyage des informations
$firstname= clean($_POST['firstname']);
$name= clean($_POST['name']);
$birthday= clean($_POST['birthday']);
$adress= clean($_POST['adress']);
$mail= clean($_POST['mail']);
$choice= clean($_POST['bleu_choice']);
$date_regex = '/(0[1-9]|[12][0-9]|3[01])[\/.](0[1-9]|1[012])[\/.](19|20)\d\d/';
// je réutilise les informations nettoyée en bonus, je vérifié que certaines informations ont une taille minimum
if($firstname=='' || strlen($firstname)<2){
$errors['firstname']="<p>Il nous manque un <strong>prénom</strong> valable par ici</p>"; //si une erreur, je l'ajoute au tableau errors précédement crée.
}
if($name=='' || strlen($name)<2){
$errors['name']="<p>Et un petit <strong>nom</strong> pour accompagner ce joli prénom ?</p>";
}
if($mail=='' || !valid_mail($mail)){
$errors['mail']="<p>Mince, <strong>l'email</strong> que tu me propose ne me semble pas valide</p>";
}
if($birthday=='' || strlen($birthday)!=10){
$errors['birthday']="<p>Oh, une <strong>date anniversaire</strong> que nous pouvons retenir ?</p>";
}
if(!preg_match($date_regex, $birthday)){
$errors['birthday']="<p>as-tu essayé le format jj / mm / aaaa ?</p>";
}
if($choice==''){
$errors['choice']="<p>Dis moi tout, pourquoi veux-tu nous rejoindre ?</p>";
}
//SI mon tableau dispose d'une ou plusieurs entrée c'est qu'il y a des erreurs.
if(!empty($errors)){
//dans le tableu session je lui crée un 'alias' errors dans lequel j'envoie mon tableau d'erreurs.
$_SESSION['errors'] =$errors;
// même principe pour récupérer les informations déja introduite par l'utilisateur. Je recrée un tableau, avec pour chaque entrées
$_SESSION['inputs'] =array(
"name" => $name,
"firstname" => $firstname,
"birthday" => $birthday,
"adress" => $adress,
"mail" => $mail,
"bleu_choice" => $choice
);
header('Location:index.php'); //je redirige sur la page index.php
}else{
//on va pouvoir envoyer l'email si aucune erreur n'est présentes
//je crée plusieurs variable pour remplir ma fonction mail plus aisément.
$destinataire='olivier.vantriel@gmail.com';
$sujet='inscription des bleus';
// je concatène le résultat de mes != variable récupérée dans le formulaire.
$messages = "Je m'appelle $firstname $name et je suis né le $birthday. J'habite à $adress et mon adresse mail est $mail. Je souhaite devenir un bleu car $choice.";
$header_mail = "FROM:$mail";//j'identifie de qui provient le mail
$header_mail .="Mime-Version: 1.0\n";
$header_mail .= "Content-Type: text/plain;charset=UTF-8\n";
mail($destinataire,$sujet,$messages,$header_mail); // j'utilise la fonction mail plus facilement grâce à mes variables.
$_SESSION['success']=1; //si un mail est envoyé, le tableau success est crée et reçoit une valeur dans le tableau de la session.
header('Location: index.php'); // je redirige vers l'index.
}
// echo "<pre>";
// var_dump($errors);
// echo "</pre>";
}
?>