$_SESSION['user'] = array('id'=>$data['id'], 'pseudo'=>$data['pseudo'], 'email'=>$data['email']) ;
//je crée deux nouvelles variables
$_SESSION['pseudo'] = $data['pseudo'];
$_SESSION['email'] = $data['email'];
le pseudo, l'email sont dans 2 variables différentes, ce qui n'est pas une bonne idée.
soit l'on a 3 variables avec l'id dans $_SESSION['userid']
soit une seule variable $_SESSION['user'] = array('id'=>$data['id'], 'pseudo'=>$data['pseudo'], 'email'=>$data['email']) ;
pour moi, il ne faut pas insérer la variable transformée par htmlspecialchars dans la table, car les données peuvent ne pas être utilisée dans une page html, mais dans du texte brut, dans le sujet d'un email ...
c'est quand on veux afficher la variable dans une page html qu'il faut utiliser htmlspecialchars.
$titre = $_GET['titre']; // avec $_GET['titre'] = "<a href='//domaindespammer.com'>sujet</a>"
mail("
[email protected]", $titre, "test"); // le code html contenu dans le sujet n'est pas génant
echo "l'email $titre a été envoyé"; // le code html va faire qu'il y aura un lien vers le site du spammeur dans la page
echo "l'email ".htmlspecialchars($titre)." a été envoyé"; // pas de lien html
$_SESSION['user'] = array('id'=>$data['id'], 'pseudo'=>$data['pseudo'], 'email'=>$data['email']) ;
//je crée deux nouvelles variables
$_SESSION['pseudo'] = $data['pseudo'];
$_SESSION['email'] = $data['email'];
le pseudo, l'email sont dans 2 variables différentes, ce qui n'est pas une bonne idée.
soit l'on a 3 variables avec l'id dans $_SESSION['userid']
soit une seule variable $_SESSION['user'] = array('id'=>$data['id'], 'pseudo'=>$data['pseudo'], 'email'=>$data['email']) ;
pour moi, il ne faut pas insérer la variable transformée par htmlspecialchars dans la table, car les données peuvent ne pas être utilisée dans une page html, mais dans du texte brut, dans le sujet d'un email ...
c'est quand on veux afficher la variable dans une page html qu'il faut utiliser htmlspecialchars.
$titre = $_GET['titre']; // avec $_GET['titre'] = "<a href='//domaindespammer.com'>sujet</a>"
mail("
[email protected]", $titre, "test"); // le code html contenu dans le sujet n'est pas génant
echo "l'email $titre a été envoyé"; // le code html va faire qu'il y aura un lien vers le site du spammeur dans la page
echo "l'email ".htmlspecialchars($titre)." a été envoyé"; // pas de lien html