[Formulaire] - Interdire un mot dans mon script php ?

Petit nouveau ! | 8 Messages

06 juin 2016, 18:13

Bonjour,

J'aimerais pouvoir éviter certains mots dans mon formulaire d'inscription (qui fonctionne très bien sans cela). Mon formulaire html est classique, voici mon code php:

Code : Tout sélectionner

<?php require('db.php'); if (isset($_POST['username'])){ $username = $_POST['username']; $email = $_POST['email']; $password = $_POST['password']; $username = stripslashes($username); $username = mysql_real_escape_string($username); $email = stripslashes($email); $email = mysql_real_escape_string($email); $password = stripslashes($password); $password = mysql_real_escape_string($password); $trn_date = date("Y-m-d H:i:s"); $query = "INSERT into `users2` (username, password, email, trn_date) VALUES ('$username', '".md5($password)."', '$email', '$trn_date')"; $result = mysql_query($query); if($result){ header("Location: login.php"); } }else{ ?>
J'ai essayé de modifier mon code (voir l'ajout des 3 lignes), mais cela ne marche pas ? Je ne comprends pas.

Code : Tout sélectionner

<?php require('db.php'); if (isset($_POST['username'])){ $username = $_POST['username']; $email = $_POST['email']; $password = $_POST['password']; $username = stripslashes($username); $username = mysql_real_escape_string($username); $email = stripslashes($email); $email = mysql_real_escape_string($email); $password = stripslashes($password); $password = mysql_real_escape_string($password); $trn_date = date("Y-m-d H:i:s"); if ($username == "word") { header("Location: redirection.html"); }else{ $query = "INSERT into `users2` (username, password, email, trn_date) VALUES ('$username', '".md5($password)."', '$email', '$trn_date')"; $result = mysql_query($query); if($result){ header("Location: login.php"); } }else{ ?>
Avez-vous des conseils s'il-vous-plait ?

Merci d'avance pour votre aide.

Eléphant du PHP | 176 Messages

06 juin 2016, 18:39

Le problème dans ton code ne vient pas de ton test.
Tu as un problème de if/else non fermé, je te conseille de ré-indenter ton code correctement.
Tu verras tout de suite qu'il manque des accolades
Cordialement
Naroth

Eléphant du PHP | 385 Messages

07 juin 2016, 10:32

Pour compléter Naroth je conseille de passer par les expressions régulières http://php.net/manual/en/function.preg-match.php qui sont prévu pour faire cela.

Mammouth du PHP | 1967 Messages

07 juin 2016, 11:40

aprés un header(location:...
tu devrait aussi inclure un exit();
Afin d'évité l’exécution du code restant
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Petit nouveau ! | 8 Messages

17 juin 2016, 23:16

Bonjour
Je n'y arrive pas donc je laisse tomber.
Merci pour votre aide.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

20 juin 2016, 11:37

salut,

dommage c'est juste un problème de syntaxe sur le code indiqué.
il manque une accolade fermante avant le dernier else (pour le moment la dernière accolade ferme le else précédent ce qui n'est pas syntaxiquement correcte).

Pour éviter ce genre de désagrément tu utiliser un éditeur de texte avancé (genre atom) ou un ide (eclipse, net beans, phpstorm etc etc).

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 385 Messages

20 juin 2016, 11:38

Mauvaise idée on arrive à rien en laissant tomber, dans ton code tu as deux else à la suite or ce n'ai pas possible car par défaut else est executé si la condition du if n'ai pas respecté, essaye ça j'ai pas testé

Code : Tout sélectionner

<?php require('db.php'); if (isset($_POST['username'])){ $username = $_POST['username']; $email = $_POST['email']; $password = $_POST['password']; $username = stripslashes($username); $username = mysql_real_escape_string($username); $email = stripslashes($email); $email = mysql_real_escape_string($email); $password = stripslashes($password); $password = mysql_real_escape_string($password); $trn_date = date("Y-m-d H:i:s"); if ($username == "word") { header("Location: redirection.html"); exit; } else { $query = "INSERT into `users2` (username, password, email, trn_date) VALUES ('$username', '".md5($password)."', '$email', '$trn_date')"; $result = mysql_query($query); if($result){ header("Location: login.php"); exit; } } }else{ ici tu fais ton action pour prévenir quil faut un username } ?>