Page 1 sur 1

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

Posté : 06 juin 2016, 18:13
par Finelarme
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.

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

Posté : 06 juin 2016, 18:39
par Naroth
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

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

Posté : 07 juin 2016, 10:32
par kevin254kl
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.

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

Posté : 07 juin 2016, 11:40
par Spols
aprés un header(location:...
tu devrait aussi inclure un exit();
Afin d'évité l’exécution du code restant

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

Posté : 17 juin 2016, 23:16
par Finelarme
Bonjour
Je n'y arrive pas donc je laisse tomber.
Merci pour votre aide.

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

Posté : 20 juin 2016, 11:37
par moogli
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).

@+

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

Posté : 20 juin 2016, 11:38
par kevin254kl
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 } ?>