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 44
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
*/
Rejoignez-nous