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 :

Boucle et lecture d'un fichier


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Boucle et lecture d'un fichier
    Boujours tout le monde !

    j'ai un fichier texte qui se présente comme ce ci :

    aaaaa bbbbbbbbbbb cccccccccc
    fff ggggggggg hhhhhhhhhhh
    kkkkkkkk llllllllll mmmmmmmmmmmmmm

    en gros sur chaque ligne il y a un login, un password et un mail tout ça séparé par des tabulation).

    Et je veux lire ce fichier pour récupérer le login et le mot de passe pour me connecter a un sorte d'espace membre... (je sais que ça aurait été plus simple avec une base de donnée mais je ne peux pas m'en servir )

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    <?php
    	if(isset($_POST['login']) AND isset($_POST['pass']))
    	{
    		if($_POST['login'] != NULL AND $_POST['pass'] != NULL)
    		{
    			if($_POST['login']=='admin' AND $_POST['pass']=='glouglou.com')
    			{
    				$_SESSION['user'] = $_POST['login'];
    				echo "Vous &ecirc;tes connect&eacute; en tant qu'administrateur."; 
    			}
    			else
    			{
    				//identification login et password
     
    				$nb_c_login = strlen($_POST['login']); //calcul taille du login pour lecture dans le fichier
    				$link = fopen('data_base/user.data', 'r'); // ouverture du fichier en lecture seule.
     
    				$user = '';
     
    				$limite_boucle = 0; // evite la boucle infini mais limite le nombre de membre a 150.
    				while($user != $_POST['login'] || $limite_boucle != 150)
    				{
    					$limite_boucle++;
    					$user = fgets($link, $nb_c_login+1);
    					if($user != $_POST['login'])
    					{
    						fgets($link);
    					}
    				}
     
    				if(limite_boucle >= 100) //dans le cas où il n'a pas trouvé.
    				{
    				echo "Login ou mot de passe incorrect !";
    				}
     
    				fgetc($link); //saute la tabulation
     
    				$nb_c_pass = strlen($_POST['pass']);// calcul taille du password pour lecture dans le fichier.
    				$pass = fgets($link, $nb_c_pass+1);// lecture du pass.
     
    				fclose($link);
     
    				if($_POST['login'] == $user && $_POST['pass'] == $pass)
    				{
    					echo "Vous êtes maintenant connecté en tant que ".$user.".";
    					$_SESSION['user'] = $user;//mise à jour de la session.
    				}
    			}
    		}
    	}
    	else
    	{
    		?>
    			<div id="content">
    			<h2 class="titre">Connexion a votre compte</h2>
    			<hr />
     
    			<form name="connexion" method="post" action="connexion.php">
    				<div>
    					<label for="login">Login :</label><input id="login" name="login" type="text" /><br />
    					<label for="pass">Mot de passe :</label><input id="pass" name="pass" type="password" /><br />
    					<br />
    					<div class="centre"><input type="submit" value="OK" /></div>
    					<br />
    					<br />
    					<a href="inscription.php">Pas encore inscrit ?</a> - <a href="pass_forget.php">Mot de passe oubli&eacute; ?</a>
    				</div>
    			</form>
     
    			</div>
    		<?php
    	}
    ?>
    sauf que lorsque je soumet ce formulaire php tourne en rond...
    depuis ce matin je cherche et je ne comprend pas ! si vous pouviez m'aider ??

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pourquoi tu ne lis pas simplement ton fichier du début jusqu'à la fin ?
    Si tu trouves la bonne combinaison login/pass en cours de route, tu peux utiliser break() pour arrêter la boucle.

    Utilise egalement fgetcsv(), ton découpage sera déjà fait.


    Concernant ta boucle actuelle il faudrait qu'en meme temps $user = = $_POST['login'] et $limite_boucle == 150 pour qu'elle s'arrête : tant qu'un des deux est différent elle continue.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    C'est fou quand même ! j'étais persuadé que la condition de ma boucle été correcte... Un && à la place du || et tout marche comme je l'imaginais !

    Oui effectivement j'aurais pu lire le fichier en entier, mais au plus j'utilise de fonction différente au mieux c'est.

    La fonction fgetcsv() je connaissais pas ! MERCI

Discussions similaires

  1. [WD12E] boucle infinie - lecture fichier
    Par nagadscar dans le forum WinDev
    Réponses: 7
    Dernier message: 12/07/2010, 12h20
  2. Réponses: 2
    Dernier message: 28/01/2010, 16h31
  3. boucle ecriture lecture de fichier
    Par le_fif dans le forum Langage
    Réponses: 10
    Dernier message: 17/08/2009, 14h16
  4. calcul et boucle sur lecture de fichier
    Par marinaetsonchat dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 22/11/2007, 15h15
  5. Réponses: 16
    Dernier message: 03/11/2005, 19h33

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