Il faut juste demander explicitement l'échappement des guillemets simples / doubles suivant ceux que tu utilises. Sinon, pour pousser au bout, on peut suivre les recommandations de l'OWASP si on n'utilises pas de framework.
if ($role == 3)
Vérifie que l'intérieur de ce if est bien exécuté, et que $email n'est pas vide (la BDD ne renvoie peut-être pas de résultat), car empty() revoie true si la variable n'existe pas, ou si sa valeur est évaluée à "false" (donc, si $email était vide).
Il existe aussi filter_input pour valider les entrées comme les emails.
mysql_* est toujours aussi déprécié qu'avant... mysqli_* est à utiliser à la place.
PS1
Au fait, pourquoi faire deux requêtes SQL? La première requête récupère toutes les informations de l'utilisateur, alors pourquoi en refaire une seconde pour récupérer des infos que tu as déjà?
PS2
Et pitié, respecte une convention de formatage de code!
Passe encore que les variables soient nommées un coup en français, un coup en anglais (autant choisir l'un ou l'autre quand même) ou qu'on ait des variables débutant par des majuscules ($Syntaxe) ou des minuscules ($row1) voire même des snake_case ($utilisateur_ID) et des lowercase ($mdphash; pas sûr du nom sur ce coup).
Mais lla présentation... un coup les accolades sont collées au if, le coup d'après elles sont dans une nouvelle ligne, sans parler des tabulations de l'indentation...
Tu clarifieras facilement tes codes en adoptant une convention et en t'y tenant. D'autant que tout IDE (Netbeans, ou même Notepad++) offre ce genre de fonctionnalités.
if ($role == 3)
Vérifie que l'intérieur de ce if est bien exécuté, et que $email n'est pas vide (la BDD ne renvoie peut-être pas de résultat), car empty() revoie true si la variable n'existe pas, ou si sa valeur est évaluée à "false" (donc, si $email était vide).
Il existe aussi filter_input pour valider les entrées comme les emails.
mysql_* est toujours aussi déprécié qu'avant... mysqli_* est à utiliser à la place.
PS1
Au fait, pourquoi faire deux requêtes SQL? La première requête récupère toutes les informations de l'utilisateur, alors pourquoi en refaire une seconde pour récupérer des infos que tu as déjà?
PS2
Et pitié, respecte une convention de formatage de code!
Passe encore que les variables soient nommées un coup en français, un coup en anglais (autant choisir l'un ou l'autre quand même) ou qu'on ait des variables débutant par des majuscules ($Syntaxe) ou des minuscules ($row1) voire même des snake_case ($utilisateur_ID) et des lowercase ($mdphash; pas sûr du nom sur ce coup).
Mais lla présentation... un coup les accolades sont collées au if, le coup d'après elles sont dans une nouvelle ligne, sans parler des tabulations de l'indentation...
Tu clarifieras facilement tes codes en adoptant une convention et en t'y tenant. D'autant que tout IDE (Netbeans, ou même Notepad++) offre ce genre de fonctionnalités.