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 :

Notice: Undefined offset: 1 pour lecture fichier


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2012
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 118
    Par défaut Notice: Undefined offset: 1 pour lecture fichier
    Bonjour à tous ,

    j'ai cette erreur : Notice: Undefined offset: 1
    sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (($tab[0] === $username) && ($tab[1] === $md5pass)){
    Je sais pas trop quoi faire.
    Pourriez vous m'aider s'il vous plaît ?
    Voici le 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
    23
    24
    25
    26
     
    $username = $this->_request->getPost('username');	
    $password = $this->_request->getPost('password');
    $auth = false; 
    $md5pass = md5($password);
     
    $annuaire = fopen('../application/configs/confsecours.txt', 'r'); //ouverture d'un fichier en lecture
     
    if (isset($_POST['valider'])){
    	if($annuaire){
                  while (!feof($annuaire)){
                  $ligne=fgets($annuaire,42);
    	      $tab=explode(":",$ligne);
                      if (($tab[0] === $username) && ($tab[1] === $md5pass)){
    		  //echo "$tab[0]";
    		 //echo "$tab[1]";	
    	         $auth =true;
    	         echo "authentification r&eacuteussie";
    		}
    		else{
    		echo "authentification &eacutechou&eacutee, veuillez recommencer";
    		$auth =false;
    		}
             }
        }
    }
    merci d'avance pour votre aide.

  2. #2
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Tu devrais vérifier que la ligne n'est pas vide avant de l'utiliser, tu devrais aussi valider que les éléments sont présents dans ton tableau avant de l'utiliser.
    Enfin, tu as des structures de contrôles inutiles.

    Voici ton morceau de script corrigé:
    Code PHP : 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
    // code igniter ??
    $username = $this->_request->getPost('username');   
    $password = $this->_request->getPost('password');
    $auth     = false; 
    $md5pass  = md5($password);
    $annuaire = fopen('../application/configs/confsecours.txt', 'r');
     
    if (isset($_POST['valider']) && $annuaire){
      while (!feof($annuaire)){
        $data = fgetcsv($annuaire,42,':');
        if (!array_filter($data))
          continue; // sauter les lignes vides
        if ($auth = isset($data[0],$data[1]) && $data[0] == $username && $data[1] == $md5pass)
          break; // plus besoin de continuer
      }
     
      if ($auth)
        echo "authentification r&eacuteussie";
      else
        echo "authentification &eacutechou&eacutee, veuillez recommencer";
    }

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2012
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 118
    Par défaut
    Bonjour Benjamin Delespierre,
    Tout d'abord merci de ton intérêt.
    J'ai mis en commentaire mon code pour mettre celui que t'as modifié , cela me fait un écran blanc

    Merci d'avance

  4. #4
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Merci d'avance
    de quoi ? de deviner l'erreur ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2012
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 118
    Par défaut
    non , merci de l'aide que tu m'apportes .

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2012
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 118
    Par défaut
    Le code fonctionne, merci

    juste un truc quand il ya un mauvais mot de passe ou quoi
    erreur => Warning: array_filter() expects parameter 1 to be array, boolean given in


    merci d'avance pour votre aide.

  7. #7
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Ah oui, j'avais oublié ce cas là. Tant mieux, on peut compresser le code un peu plus:
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if (isset($_POST['valider']) && $annuaire){
      while (!feof($annuaire) || !$auth){
        if (!$data = fgetcsv($annuaire,42,':'))
          continue;
        $auth = isset($data[0],$data[1]) && $data[0] == $username && $data[1] == $md5pass)
      }
     
      if ($auth)
        echo "authentification r&eacuteussie";
      else
        echo "authentification &eacutechou&eacutee, veuillez recommencer";
    }

  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2012
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 118
    Par défaut
    Merci beaucoup pour ton aide,

    il y a une erreur:
    Parse error: syntax error, unexpected '}'
    sur l'accolade en dessous de cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    $auth = isset($data[0],$data[1]) && ($data[0] == $username && $data[1] == $md5pass)
    je regarde également pourquoi

    merci d'avance

  9. #9
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Il manque un ; à la ligne 5 du script que je t'ai donné.

  10. #10
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2012
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 118
    Par défaut
    Merci Benjamin,

    il y a encore erreur :
    => Parse error: syntax error, unexpected ')' in

    sur la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $auth = isset($data[0],$data[1]) && $data[0] == $username && $data[1] == $md5pass);
    je suis en train de regarder aussi.

    merci d'avance,

  11. #11
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2012
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 118
    Par défaut
    si tu réponds au message, si t'as pas de réponse tout de suite , c'est que je pars du bureau , j'essaie de revenir tout à l'heure.
    Sinon je suis là demain à 9h.

    Au cas ou, bonne soirée.
    Et un grand merci.

Discussions similaires

  1. [MySQL] Notice: Undefined offset
    Par gaetanc15 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 30/04/2009, 16h16
  2. [Tableaux] Notice: Undefined offset
    Par KOogar dans le forum Langage
    Réponses: 16
    Dernier message: 02/02/2008, 02h44
  3. [Système] Notice: Undefined offset
    Par noname_971 dans le forum Langage
    Réponses: 2
    Dernier message: 22/01/2008, 14h02
  4. [Tableaux] Notice: Undefined offset: 5 in
    Par fast462 dans le forum Langage
    Réponses: 3
    Dernier message: 30/05/2007, 10h08
  5. erreur: "Notice: Undefined offset:"
    Par Sh1v3r dans le forum Langage
    Réponses: 2
    Dernier message: 17/06/2006, 22h48

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