Perso, en local, je me branche sur FakeSMTP: c'est pratique pour voir les mails qui partiraient (et les ouvrir avec thunderbird/outlook) sans devoir recourir à un vrai serveur SMTP web (pas toujours accessible depuis un local). T'as pas d'identifiant à entrer je crois. cf https://toile.reinom.com/les-logiciels-e.../#fakesmtp
Oui, FROM est un header additionnel, qui se termine par \r\n lui aussi (note: pourquoi faire 'x:y' . "\r\n" quand il suffit de faire "x:y\r\n"? ça sent le copier/coller sans trop chercher =P )
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
Le mot de passe ne s'envoie JAMAIS en clair par mail
Ni en hashé d'ailleurs (parce que cela en sert à rien). Le mot de passe en clair ne doit jamais sortir du serveur (il ne quitte jamais le code PHP, et encore, dans ce code, il ne doit être présent que dans le $_POST du login, du register et dans la variable filtrée associée).
A la lecture du code, si j'appelle la page sans envoyer le paramètre POST 'mdp' alors le mail plante. Passe TOUS tes $_* par un filter_input() (ou un array_key_exists('mdp', $_POST) mais c'est bien moins pratique car tu te tapes le filtrage ensuite).
$pseudo peut ici contenir du HTML. Passe TOUTES les variables textes par un htmlentities(), même celles qui viennent de ton code (sait-on jamais, une erreur type un "<" ou ">" qui traîne, ça arrive)
Oui, FROM est un header additionnel, qui se termine par \r\n lui aussi (note: pourquoi faire 'x:y' . "\r\n" quand il suffit de faire "x:y\r\n"? ça sent le copier/coller sans trop chercher =P )
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
NON
Le mot de passe ne s'envoie JAMAIS en clair par mail
Ni en hashé d'ailleurs (parce que cela en sert à rien). Le mot de passe en clair ne doit jamais sortir du serveur (il ne quitte jamais le code PHP, et encore, dans ce code, il ne doit être présent que dans le $_POST du login, du register et dans la variable filtrée associée).
A la lecture du code, si j'appelle la page sans envoyer le paramètre POST 'mdp' alors le mail plante. Passe TOUS tes $_* par un filter_input() (ou un array_key_exists('mdp', $_POST) mais c'est bien moins pratique car tu te tapes le filtrage ensuite).
$pseudo peut ici contenir du HTML. Passe TOUTES les variables textes par un htmlentities(), même celles qui viennent de ton code (sait-on jamais, une erreur type un "<" ou ">" qui traîne, ça arrive)