Php : vérifier que valeurs sont différentes

Résolu/Fermé
Bertrand40 Messages postés 1193 Date d'inscription vendredi 27 mars 2009 Statut Membre Dernière intervention 27 février 2023 - 29 avril 2009 à 18:32
Bertrand40 Messages postés 1193 Date d'inscription vendredi 27 mars 2009 Statut Membre Dernière intervention 27 février 2023 - 24 janv. 2010 à 10:25
Bonjour !

Je poste ce message dans cette section mais il pourrait être ailleurs. C'est que le problème est appliqué à un site web. J'ai cherché la réponse sur google mais en vain.. pourtant c'est une question certainement très bateau.. Dsl si c'est une redite.

Voilà le problème. Comment faire pour vérifier qu'un certain nombre de valeurs sont toutes différentes les unes des autres ?

- Dans le cas de 2 valeurs A et B, je sais faire :
if (A != B) exécuter;
else exit();

- Le problème c'est que sur un site j'ai plusieurs formulaires (8). Chacun envoie 1 réponse, mais chaque réponse doit être différente de l'autre. Comment faire alors pour éviter un truc du genre :
if ((A!=B) && (A!=C) ......... && (B!=C).. etc..) ?

Merci d'avance.
A voir également:

3 réponses

Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
29 avril 2009 à 18:45
salut,

je pense à rentrer tout dans un tableau, appliquer array_unique() et compter si ça fait 8.
quelque chose comme :
$input['A'] = 'A';
$input['B'] = B;
[...]
if(count(array_unique($input)) === 8)
    echo 'true';
else
    echo 'false';
0
Bertrand40 Messages postés 1193 Date d'inscription vendredi 27 mars 2009 Statut Membre Dernière intervention 27 février 2023 192
29 avril 2009 à 18:54
D'accord je comprends ta manière de faire.
Je m'en vais tester ça de suite !
Merci :)
0
Bertrand40 Messages postés 1193 Date d'inscription vendredi 27 mars 2009 Statut Membre Dernière intervention 27 février 2023 192
29 avril 2009 à 19:28
Ca a fonctionné, super ;)

Voici le bout de code, si ça peut être utile à qqun un jour :

// mise en tableau de mes variables POST
$place = array($_POST['place_1'] ,$_POST['place_2'] , $_POST['place_3'] , $_POST['place_4'] , $_POST['place_5'] , $_POST['place_6'] , $_POST['place_7'] , $_POST['place_8']);

// comptage
if (count(array_unique($place)) !== 8) $message = "Un pilote ne peut pas être cité 2 fois.";

Merci !

@+
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
29 avril 2009 à 19:38
n'oublie pas de nettoyer les données utilisateurs !
avec https://www.php.net/filter_input filter_input()] par exemple
0
Bertrand40 Messages postés 1193 Date d'inscription vendredi 27 mars 2009 Statut Membre Dernière intervention 27 février 2023 192 > Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016
24 janv. 2010 à 10:25
Re, après tout ce temps..

Je ne viens de voir ton dernier post qu'il y a peu.

Donc il faut selon toi appliquer qqchose du genre :
$POST['champ'] = filter_input(INPUT_POST, 'champ');
$GET['champ'] = filter_input(INPUT_GET, 'champ');

J'ai lu que le filtrage par défaut se faisait directement sans ajout, certains disent donc que filter_input est inutile. Notamment ici : https://stackoverflow.com/questions/768442/why-is-better-to-use-filter-input

Tu confirmes ? En fait je comprends pas le risque.

Merci pour tes réponses.
0