Formulaire CVT : Vérifier sur une liste

Bonjour,

Dernièrement on m’a aidé à faire le traitement d’un tout petit formulaire simple :slight_smile: Je reviens aujourd’hui pour une autre question. Je souhaite vérifier que le code entré est dans une liste de 26 codes fixes, histoire que la personne sache que son code est mauvais et évite de l’entrer. Comment procéder ?

Les codes sont un champ extra d’un article. Je pensais faire un tableau #ARRAY, dois-je le convertir en JSON ? Ou juste garder le tableau comme ça ? Et comment vérifier sur la liste ?

Est-ce que simplement faire ça ?

if ($valeur == ‹ code1 › OR $valeur==‹ code2 › OR … )
return ‹  ›;

Même si c’est long et laborieux ?

Merci pour vos retours :slight_smile: Teenoo

Le 14/10/2020 à 11:07, Laetitia boiron a écrit :

Bonjour,

Dernièrement on m'a aidé à faire le traitement d'un tout petit formulaire simple :slight_smile: Je reviens aujourd'hui pour une autre question. Je souhaite vérifier que le code entré est dans une liste de 26 codes fixes, histoire que la personne sache que son code est mauvais et évite de l'entrer. Comment procéder ?

Les codes sont un champ extra d'un article. Je pensais faire un tableau #ARRAY, dois-je le convertir en JSON ? Ou juste garder le tableau comme ça ? Et comment vérifier sur la liste ?

Est-ce que simplement faire ça ?

if ($valeur == 'code1' OR $valeur=='code2' OR ... )
return '';

Même si c'est long et laborieux ?

Merci pour vos retours :slight_smile: Teenoo
--
mail : boiron.laetitia@gmail.com <mailto:boiron.laetitia@gmail.com>

utiliser in_array()

(soit dit en passant : plus que des bases de SPIP, pour ce genre de chose, ce sont des bases de PHP dont tu aurais besoin. Hésite pas à consulter la doc de PHP, en français)

Merci pour ce rappel :slight_smile: J’ai été potasser et j’y suis arrivée ! Je laisse ça là au cas où un jour quelqu’un aurait la même question (déjà je lui dis : mets toujours un « s » à formulaires_code_charger_dist sinon ça marche pas. J’y ai passé 2h ^^’

function formulaires_code_verifier_dist() {
$erreurs = array();
$thecode = array(‹ code1 ›,‹ code2 ›,‹ code3 ›);
$code = _request(‹ code ›);

if (!$code) {

$erreurs[‹ message_erreur ›] = « Vous avez oublié votre code ! »;

}

if (!in_array(_request(‹ code ›), $thecode)) {

$erreurs[‹ pasbon ›] = « Ce code n’existe pas ! »;

}

return $erreurs;
}

Bonne soirée :slight_smile:

Teenoo

Le 15/10/2020 à 22:14, Laetitia boiron a écrit :

Merci pour ce rappel :slight_smile: J'ai été potasser et j'y suis arrivée ! Je laisse ça là au cas où un jour quelqu'un aurait la même question (déjà je lui dis : mets toujours un "s" à formulaires_code_charger_dist sinon ça marche pas. J'y ai passé 2h ^^'

Sans oublier que tu peux utiliser une saisie SELECT, qui ne propose que les valeurs valables.

JLuc

function formulaires_code_verifier_dist() {
$erreurs = array();
$thecode = array('code1','code2','code3');
$code = _request('code');
if (!$code) {

    $erreurs['message_erreur'] = "Vous avez oublié votre code !";

}

    if (!in_array(_request('code'), $thecode)) {

      $erreurs['pasbon'] = "Ce code n'existe pas !";

      }

return $erreurs;
}

Bonne soirée :slight_smile:

Teenoo

Le mer. 14 oct. 2020 à 11:33, Maïeul Rouquette <maieul@maieul.net <mailto:maieul@maieul.net>> a écrit :

    Le 14/10/2020 à 11:07, Laetitia boiron a écrit :
     > Bonjour,
     >
     > Dernièrement on m'a aidé à faire le traitement d'un tout petit
     > formulaire simple :slight_smile: Je reviens aujourd'hui pour une autre question. Je
     > souhaite vérifier que le code entré est dans une liste de 26 codes
     > fixes, histoire que la personne sache que son code est mauvais et évite
     > de l'entrer. Comment procéder ?
     >
     > Les codes sont un champ extra d'un article. Je pensais faire un tableau
     > #ARRAY, dois-je le convertir en JSON ? Ou juste garder le tableau comme
     > ça ? Et comment vérifier sur la liste ?
     >
     > Est-ce que simplement faire ça ?
     >
     > if ($valeur == 'code1' OR $valeur=='code2' OR ... )
     > return '';
     >
     > Même si c'est long et laborieux ?
     >
     > Merci pour vos retours :slight_smile: Teenoo
     > --
     > mail : boiron.laetitia@gmail.com <mailto:boiron.laetitia@gmail.com> <mailto:boiron.laetitia@gmail.com
    <mailto:boiron.laetitia@gmail.com>>
     >
    utiliser in_array()

    (soit dit en passant : plus que des bases de SPIP, pour ce genre de
    chose, ce sont des bases de PHP dont tu aurais besoin. Hésite pas à
    consulter la doc de PHP, en français)

    _______________________________________________
    liste spip
    spip@rezo.net <mailto:spip@rezo.net> - désabonnement : envoyer un mail à spip-off@rezo.net <mailto:spip-off@rezo.net>

    Archives : https://www.mail-archive.com/spip@rezo.net/maillist.html

    Infos : https://listes.rezo.net/mailman/listinfo/spip

    Documentation de SPIP : http://www.spip.net/

    Irc : de l'aide à toute heure : http://spip.net/irc

--
mail : boiron.laetitia@gmail.com <mailto:boiron.laetitia@gmail.com>

http://www.yume-design.com

Non dans ce cas là il fallait forcément un champ « TEXT » dans mon formulaire :slight_smile:

Bonne journée

Teenoo