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

EDI, CMS, Outils, Scripts et API PHP Discussion :

pb parcours tableau 2d


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Par défaut pb parcours tableau 2d
    Bonjour!

    Je rencontre un probléme pr retrouver deux valeurs ds un tableau 2dimensions:

    je dispose de deux valeurs récupérées ds un formulaire : $user et $pass.
    A partir d'un fichier texte (login.txt), j'extrais un tableau 2dimension recapitulant l'ensemble des user et de leurs mot de passe.
    je n'arrive pas a retrouver les valeurs de $user et $pass ds le tableau.

    Voici 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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <?php 
     
    $user = $_POST'username']; 
    $pass = $_POST['password']; 
     
    $fic = fopen("login.txt", "r");  
     
    $i=0;                                    
    if(!$fic)
    { 
                   echo ("problème lors de l'ouverture du fichier"); 
     } 
    else
    { 
    	while (!feof($fic))
    	{
    		$ligne = fgets ($fic, 4096);
    		list($login, $mdp)=explode("|", $ligne);
    		$i++; 
    		$tab[$i]['login']=$login; 			                $tab[$i]['mdp']=$mdp; 
    	} 
    } 
     
    foreach ($tab as $user)
    { 
                    if ($user["login"] == $user && $user["mdp"] == $pass)
    	{ 
    	                 echo "Connexion"; 
    		 break; 
    	}
    } 
     
    fclose ($fic); 
    ?>
    Merci d'avance pour votre aide!!!

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    Ton fichier est au format :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    user 1|password 1\r\n
    user 2|password 2\r\n
    ...
    Qd tu récupères les lignes et que tu fais un explode( ) tu te retrouves dans ton tableau avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [0]['login'] = user 1
    [0]['mdp'] = password 1\r\n
    [1]['login'] = user 2
    [1]['mdp'] = password 2\r\n
    ...
    => Tu as logiquement choppé les retours à la ligne au moment du explode( )
    => Les mots de passe ne collent jamais

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Par défaut
    non le tableau n'a pas l'air mal fouttu :qd je teste avec:

    il m'affiche:

    Array ( [1] => Array ( [login] => ds [mdp] => ds ) [2] => Array ( [login] => dj [mdp] => dj ) )
    je ne suis pas sure que le probléme vienne de la![/quote]

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    Sur une page HTML les \r\n n'apparaîtront pas avec un simple print_r( ).

    Test rapide :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ligne = rtrim(fgets($fic, 4096));

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Par défaut
    Ca ne marche tjs pas, meme avec la fonction rtrim...

  6. #6
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    Ah truc tout con, dans ton foreach( ) tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach ( $tab as $user ) {
    Le as $user écrase le $user auquel tu as affecté $_POST['username'] en début de script (instruction sans aucun intérêt d'ailleurs).

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2003
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 285
    Par défaut


    J'y ai réfléchi pendant bien 30 minutes et j'ai meme pas fait gaffe a cette erreur toute bête

  8. #8
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Par défaut
    j'y planche depuis ce matin, grace a vos remarque j'ai modifier 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
     
    $var = False;
    foreach ($tab as $log)
    {
           if ((strcmp(rtrim($user), rtrim($log['login'])) == 0) && (strcmp(rtrim($pass), rtrim($log['mdp'])) == 0))
          {  
    	$var = True;                                   
           }
    } 
    if ($var == True)
    {
           echo "connexion";
    }
    else
    {
          echo "incorrect";
    }
    lorsque je "zappe" la deuxiéme partie de la condition du 1er if (aprés le &&) ca marche.
    Lorsque j'affiche le contenu de $pass et $log ['pass'] les deux variable retourne bien ce qu'elles doivent retourner!
    Mais avec les deux conditions jointes par le && ca ne marche plus.
    Une idée??????

    merci pour votre aide!!!!

  9. #9
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    Pourquoi faire simple qd on peut faire compliqué ?
    C'est ton crédo ?

    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
    <?php
        $fic = fopen("login.txt", "r");
     
        $ok = FALSE ;
        while ( ! feof($fic) ) {
            $ligne = fgets($fic, 4096) ;
            $ligne = rtrim($ligne) ; // On vire le retour à la ligne
            list($login, $mdp) = explode("|", $ligne);
     
            if ( $login == $_POST['user'] && $mdp == $_POST['pass'] ) {
                $ok = TRUE ;
                break ;
            }
        }
        fclose($fic) ;
     
        echo $ok ? 'Connecté' : 'Pas connecté' ;
    ?>

  10. #10
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Par défaut
    dsl je suis débutante en php, et j'avoue que je galére un peu... g testé ton script il me fait les meme erreurs que le mien (qui est certe bcp bcp plus compliqué)

  11. #11
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    lol, bon on va faire un exemple fonctionnel :

    login.txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    rené|azerty
    robert|qsdf
    sebastien|mypass
    marthe|youki
    auth.php
    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
    <?php
        $fic = fopen("login.txt", "r");
     
        // Simule un formulaire
        $_POST['user'] = 'sebastien' ;
        $_POST['pass'] = 'mypass' ;
     
        $ok = FALSE ;
        while ( ! feof($fic) ) {
            $ligne = fgets($fic, 4096) ;
            $ligne = rtrim($ligne) ; // On vire le retour à la ligne
            list($login, $mdp) = explode("|", $ligne);
            if ( $login == $_POST['user'] && $mdp == $_POST['pass'] ) {
                $ok = TRUE ;
                break ;
            }
        }
        fclose($fic) ;
     
        echo $ok ? 'Connecté' : 'Pas connecté' ;
    ?>
    Avec ce script tu devrais obtenir "Connecté", si tu changes le login et/ou le mdp "Non connecté".
    Chez moi ça fonctionne bien.

  12. #12
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Par défaut
    arfffff pkoi ca marche pas chez moiiiiii !!!!!!!

  13. #13
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par baillador
    arfffff pkoi ca marche pas chez moiiiiii !!!!!!!
    Quelles sont les erreurs ? Quel est ton environnement de travail ?

  14. #14
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Par défaut
    ben ca m'affiche "pas connecté" pourtant g verifié 2fois, le log et le pass sont correct ds le fichier.

  15. #15
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par baillador
    ben ca m'affiche "pas connecté" pourtant g verifié 2fois, le log et le pass sont correct ds le fichier.
    T'as testé avec le fichier login.txt que je t'ai filé ?
    Quel est ton env de travail ?

  16. #16
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Par défaut
    je viens de tester avec ton fichier ca marche!
    je ne comprends pas pourquoi ca ne marchait pas avec le mien.
    Je te remercie bcp pour toute l'aide que tu m'as apporté aujourd'hui!!!!
    Merci!!!!!

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

Discussions similaires

  1. (Debutant) Parcours tableau Excel avec VB
    Par Dazdh dans le forum Excel
    Réponses: 2
    Dernier message: 18/08/2009, 12h29
  2. Parcours tableau dans un état
    Par heiti dans le forum WinDev
    Réponses: 1
    Dernier message: 25/07/2009, 00h40
  3. Instruction rapide parcours tableau somme
    Par moulery dans le forum SQL
    Réponses: 5
    Dernier message: 05/12/2007, 14h33
  4. For Each - parcours tableau
    Par Aizen64 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/12/2007, 21h26
  5. [Tableaux] Parcours tableau associatif
    Par damien27000 dans le forum Langage
    Réponses: 2
    Dernier message: 03/10/2007, 15h33

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