Construire un tableau associatif avec un fichier externe

phsautreau
Messages postés
40
Date d'inscription
lundi 13 février 2012
Statut
Membre
Dernière intervention
18 avril 2014
- 3 avril 2008 à 19:02
malalam
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
2 mars 2010
- 5 avril 2008 à 00:10
Bonsoir,


Voilaà j'ai un fichier texte externe nommé identif_ens.txt et contenant
les login et mots de passe permettant de se logguer à une page, ce
fichier a la forme :


azerty;123456

toto;titi25


Par ailleurs pour tester la validité du login j'ai développé un script
qui teste si le champs login de mon formulaire d'accès et le champs
pass sont correct. Pour cela j'envisage de lire à l'ntrée dans le
script le fichier identif_ens.txt, de construire un tableau associatif
$tab et ensuite d'effectuer un test tel que :

si (strcmp($tab[$login], $pass) ==0) alors l'accès est possible


Voici le code entier :


$tab = array ();

// lecture du fichier contenat les identifications et construction du tableau interne

$fic = fopen("identif_ens.txt","r");

do{

    $ligne = fgets($fic, 4096);

    $element = explode (";",$ligne);


    $id = $element[0]; echo $id."=".$element[0];

    $p = $element[1]; echo $p."=".$element[1]."
";

    $tab["$id"] = $p;       // Mon problème réside sur cette ligne voir plus bas

    echo $tab["$id"]." = ".$p."
";
}while(!feof($fic));

?>

<html>

    <head>

        <title> Identification enseignant </title>

    </head>

   

        <?

        if(empty($pass)){

            echo " Vous devez entrer un mot de passe !

";

        }else{

            if(strcmp($tab[$login],$pass) == 0){

                echo " login et password correct

";

                session_start();

                echo "Créer un QCM";               

            }else{

                echo " login et password incorrect

";

            }

        }

        ?>

   

</html>


La ligne que j'ai commenté en rouge : refuse de me construire l'élément de tableau associatif.

La ligne echo implanté en dessous pour vérification de l'implémentation me retourne même : ph51cn08 = ph51cn08 c'est à dire deux fois $p de passé en paramètre.


Dès lors comment puis-je faire pour que cette boucle me génère une association valide ?


Merci de votre aide.

Ph. Sautreau

7 réponses

coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
3 avril 2008 à 23:42
salut
pour recuperer ton tableau, tu peux faire beaucoup plus simple :

$tab_1d = file('identif_ens.txt');
$tab_2d=array();

foreach ($tab_1d as $l=>$u){
$e=explode(';', $u);
$tab_2d[$e[0]]=str_replace("\n", '', $e[1]);
}

un print_r($tab_2d) te permet de verifier le contenu du tableau.
/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/
0