IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] Accès protégé et erreur scalaire


Sujet :

Langage PHP

  1. #1
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut [Tableaux] Accès protégé et erreur scalaire
    Salut,

    Désolé pour mon titre qui doit pas être très pertinent mais j'ai plusieurs problème qui concerne le même chose.
    Je développe sous EsayPhp, et mon script fonctionne parfaitement. J'ai donné le truc à une perso qui possède son nom de domaine en ligne.
    Chez lui ça ne fonctionne pas.

    Quand je rentre le mot de passe dans mon champ et que je clique sur OK, je suis bien redirigé vers la zone protégée.
    Quand il rentre le mot de passe, la première fois il est redirigé vers la même pas (comme si le mot de passe était faux). La seconde fois ça fonctionne avec l'erreur:
    Warning: Cannot use a scalar value as an array in /.../config.inc.php on line 15
    Je comprends vraiment pas. Voila mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    /*
    * Sécurité
    */
    // Password sur un autre fichier inclu
    $password = 'admin';
    // Si le formulaire d'accès est posté
    if (isset($_POST['op']) && @$_POST['op'] == "admin") {
       $pass = MyStripSlashes(trim($_POST['pass_save_db']));
       // Vérification
       if ($pass == $password) {
          // Accès autorisé
          $_SESSION['admin'] = TRUE;
          // Actualisation
          header('Location: index.php');
       }
    }
    // Vérification de l'accès
    if (!isset($_SESSION['admin'])) {
       // formulaire
       _admin();
       exit;
    }
    Si quelqu'un peut m'aider...
    Merci

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Elle est où la ligne 15 ?

    De toutes façons il faut que tu enlèves ce @
    Soit tu sais pas à quoi sert ce @, et dans ce cas pourquoi tu le mets ?
    Soit tu sais à quoi sert ce @, et dans ce cas, il faudra réussir à me convaincre que l'utilisation en est ici requise et pas redondante...


    (PS: c'est pas l'erreur qui est scalaire, mais la valeur )

  3. #3
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Salut,

    Le @ est pour éviter une notice si la variable n'est pas définie, après je ne sais pas si le isset d'avant protège de l'erreur (c'est pour être sur ).

    Finalement, j'ai résolu le problème en mettant un global $password et en supprimant ce header, puisque la page n'a pas besoin d'être rechargée. Je ne sais pas exactement l'origine mais tant mieux si c'est résolu.

    Merci du soutient!

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Faudra p'tet que je rédige un article à ce propos car c'est lassant de toujours répeter la même chose

    Alors @, c'est mal.
    Pourquoi ? parce que ca masque les éventuelles erreurs.
    Quand tu fais le ménage chez toi, tu ne cache pas la poussière sous le tapis... ici c'est pareil.
    On ne masque pas une erreur, on la previent, ce que fait isset dans ton cas.
    On teste (l'existence d'une variable, d'un index, d'un fichier, ...) puis on joue avec la variable, le tableau, le fichier...

    Alors ok, il va y avoir de très rare cas où le @ sera nécessaire. mais il faut que ça reste une exception à cette règle de bonne conduite... vraiment quand on ne peut pas faire autrement.

    Si tu ne veux pas afficher les erreurs vers l'utilisateur, alors il faut utiliser les flags display_errors et error_log de php.ini...

  5. #5
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    C'est pas faux
    Par contre ça:
    Citation Envoyé par Mr. N
    Quand tu fais le ménage chez toi, tu ne cache pas la poussière sous le tapis...
    On ne sait jamais
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 15/05/2007, 20h51
  2. Fichier de configuration, accès protégé
    Par pi100 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 18/03/2007, 10h57
  3. acces protégé à un autre formulaire
    Par coco38 dans le forum Sécurité
    Réponses: 18
    Dernier message: 01/03/2007, 13h21
  4. accès à une DLL -> erreur de référence
    Par watcha2020 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 20/02/2007, 18h46
  5. Plus d'accès à ma mdb erreur 3011
    Par drakenzara dans le forum Access
    Réponses: 1
    Dernier message: 17/01/2007, 21h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo