Php : vérifier que valeurs sont différentes

Résolu
Bertrand40 Messages postés 1196 Date d'inscription   Statut Membre Dernière intervention   -  
Bertrand40 Messages postés 1196 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Contributeur Dernière intervention   922
 
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 1196 Date d'inscription   Statut Membre Dernière intervention   194
 
D'accord je comprends ta manière de faire.
Je m'en vais tester ça de suite !
Merci :)
0
Bertrand40 Messages postés 1196 Date d'inscription   Statut Membre Dernière intervention   194
 
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   Statut Contributeur Dernière intervention   922
 
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 1196 Date d'inscription   Statut Membre Dernière intervention   194 > Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention  
 
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