Comment avoir plusieurs identifiants admin?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Comment avoir plusieurs identifiants admin?

Re: Comment avoir plusieurs identifiants admin?

par Ryle » 13 janv. 2016, 11:42

mais ça ne marche pas.
Ce qui est bien en informatique, c'est que ça fonctionne toujours. Le résultat obtenu n'est pas nécessairement celui que tu attends, mais il y a toujours un résultat, un message d'erreur, un comportement ou quelque chose qui va te permettre de comprendre ce qui te manque ou là où tu t'es trompé :)

C'est grâce à ces informations que l'on peut débugger un code. Si le serveur se contentais de répondre "Ça marche pas", l'informatique n'aurait jamais décollé ;)


Pour en revenir à ton problème il faut comprendre ce que fait le code que tu utilises, sinon tu ne pourras jamais savoir ce qu'il faut modifier. Pour le moment tu as ajouté dans ton tableau un second enregistrement "admin2", avec ce qu'on imagine être son login "admin2" et son mot de passe "password2".

Maintenant que ton user est déclaré, il faut que lorsque quelqu'un se connecte, tu ailles vérifier s'il s'agit de admin ou admin2, et si le mot de passe spécifié correspond à celui que tu attends.

Actuellement ton code sert à :
if ($post->has('login') && $post->has('password') && // Test si on reçoit un formulaire en POST avec les champs "login" et "password"
            array($post->get('login'), $post->get('password')) == $app['config']['admin']) { // Test si lorsque l'on constitue un tableau avec le login et le password récupéré du formulaire et qu'on le compare au tableau contenant un login/mot de passe de $app['config']['admin'] on trouve le même résultat.
            $app['session']->set('admin', true);
            $success = true;
        }
    }
Il te faut donc étendre le test pour ne pas uniquement aller comparer les identifiants associés à $app['config']['admin'], mais à tous ceux des admins que tu auras spécifié dans ta configuration.

Re: Comment avoir plusieurs identifiants admin?

par JordanP31 » 12 janv. 2016, 16:36

*de modifier cette partie en rajoutant un if et modifier le premier

Re: Comment avoir plusieurs identifiants admin?

par JordanP31 » 12 janv. 2016, 16:34

J'ai essayé ça :
// Administrator auth
    'admin' => ['admin', 'password']
    'admin2' => ['admin2', 'password2']
mais ça ne marche pas.

On m'a dit de modifier le cette partie en fonction :
if ($post->has('login') && $post->has('password') &&
            array($post->get('login'), $post->get('password')) == $app['config']['admin']) {
            $app['session']->set('admin', true);
            $success = true;
        }
    }
mais je vois pas quoi modifier, je suis très novice donc j'ai beaucoup de mal.

Re: Comment avoir plusieurs identifiants admin?

par @rthur » 12 janv. 2016, 16:29

Bonjour et bienvenue sur PHPfrance !

Qu'as-tu essayé ?
Où bloques-tu ? Qu'est-ce qui ne fonctionne pas ?

Comment avoir plusieurs identifiants admin?

par JordanP31 » 12 janv. 2016, 15:53

Bonjour,

Dans le cadre d'un TD, je dois réalisé un site web en PHP mais je suis bloqué à une question qui dit : Il n'y a actuellement qu'un seul identifiant (admin/password) dans le fichier de configuration. Modifiez sa structure pour pouvoir y placer facilement plusieurs identifiants valides pour devenir administrateur (comme admin1/password1 et admin2/password2).

Voici le code en question à modifier :
Pour celui-ci juste la partie admin
<?php

return [
    // Database
    'database' => [
        'engine' => 'mysql',
        'host' => 'info-arie',
        'database' => 'info_jpuissegur',
        'user' => 'jpuissegur',
        'password' => 'GZdAuBc1n6Oa'
    ],

    // Administrator auth
    'admin' => ['admin', 'password']
];
$app->match('/admin', function() use ($app) {
    $request = $app['request'];
    $success = false;
    if ($request->getMethod() == 'POST') {
        $post = $request->request;
        if ($post->has('login') && $post->has('password') &&
            array($post->get('login'), $post->get('password')) == $app['config']['admin']) {
            $app['session']->set('admin', true);
            $success = true;
        }
    }
Je n'y arrive pas étant donné que je débute. Quelqu'un peut m'aider svp ?

Merci