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 :

pb avec fichier


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Août 2002
    Messages : 159
    Points : 62
    Points
    62
    Par défaut pb avec fichier
    Bonjour,

    Je veux faire un espace client sur mon site internet où le client entre son user et son mot de passe. J'ai commencé avec ce code mais ça ne marche pas, il ne reconnait que le dernier du fichier :

    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
     
    <?php  
        $data=$_POST['user'].' '.$_POST['password']; 
     
        /*ouverture du fichier*/
        $fichier="fichier/clients.txt";
     
        if ($pointeur=fopen($fichier,"r"))
        {
         /*print "fichier ouvert";*/
     
         while (!feof($pointeur)) 
         {      
          $ligne = fgets($pointeur);
     
          if($data==$ligne)
          {
           print "ok";
          }
     
         }
     
        }
        else
        {
         print "Problème lors de l'ouverture du fichier";
        }
         fclose($pointeur);
        ?>
    qqn peut m'aider?

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Je pense que ton probleme vient du fait que chaques lignes de ton fichier (a part la derniere) contient le caracterene de retour a la ligne '\n' et/ou retour chariot '\r'

    Il faudrait soit les inclures dans ta ligne soit decouper le fichier via le caractere de nouvelle ligne !

    Petite remarque en passant moi je ferais ça avec une base de données plutot qu 'un fichier !

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Août 2002
    Messages : 159
    Points : 62
    Points
    62
    Par défaut
    J'aurais voulu utiliser une base de données mais c pr un stage et le mec veut que j'utilise un fichier.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Août 2002
    Messages : 159
    Points : 62
    Points
    62
    Par défaut
    J'ai réussi à vérifier que le login et le mot de passe rentré correspondent bien à ce qu'il y a dans le fichier.
    Maintenant, je souhaiterais ouvrir une session. Mais j'ai un souci pour savoir où placer le php dans le code.
    En fait, j'ai une page d'accueil (accueil.php) qui contient le formulaire pour se connecter.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <FORM action="connexion.php" method="POST">
        Utilisateur: 
        <INPUT type="text" name="user" size=15><BR /><BR />
        Mot de passe:
        <INPUT type="password" name="password" size=11><BR />
        <BR />
        <INPUT type="submit" value="Se connecter">
     
        </FORM>

    J'ai crée un fichier connexion.php pour tester la connexion.
    En fait, ce que je voudrais c'est que le client se connecte et qu'il se retrouve sur la page d'accueil avec quelques modifs comme koi il est connecté ... et qu'il soit connecté sur toutes les pages ...

    J'ai du mal à voir comment aborder le truc ... Qqn peut m'aider ?
    Merci d'avance.

  5. #5
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Tu sais te servir des sessions ?

    Sinon : [CLICKAGE]

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Août 2002
    Messages : 159
    Points : 62
    Points
    62
    Par défaut
    Ben , j'ai testé sur ma page accueil.php mais quand je veux récupérer la valeur dans une autre page ça marche pas ...

    ---- formulaire de la page accueil
    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
     
    <DIV CLASS="elementMenu">
        <H3>Espace client</H3>
        <?php
        if ($_SESSION['user']=="")
        {    
        print "<FORM action='accueil.php' method='POST'>";
        }
        else
        {
        print "<FORM action='accueilConnexion.php' method='POST'>";
        }
        ?>
        Utilisateur: 
        <INPUT type="text" name="user" size=15><BR /><BR />
        Mot de passe:
        <INPUT type="password" name="password" size=11><BR />
        <BR />
        <INPUT type="submit" value="Se connecter">
     
        </FORM>   
       </DIV>
    -----et voici le code php dans la page accueil

    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
     
    <?php
     
        $user=$_POST['user'];
        $pass=$_POST['password'];
     
        $userPass=$_POST['user'].' '.$_POST['password']; 
     
        /*ouverture du fichier*/
        $fichier="fichier/clients.txt";
        $inscrit="faux";
     
        if ($pointeur=fopen($fichier,"r"))
        {
         while (!feof($pointeur)) 
         {      
          $lecture = fgets($pointeur,4096);
          /*print $lecture;*/
     
          $data=explode("|",$lecture);
          /*print &data;*/
     
          $combien=count($data)-1; // nbre d'éléments séparés par "|"
          /*print $combien;*/
     
          for ($i=0;$i<=$combien;$i++)
    	    {
           /*echo $data[$i],"<br>";  // affichage des données*/
     
           if ($userPass==$data[$i])
            {$inscrit="vrai";}
    	    }
     
    	   }
     
    	   if ($inscrit=="vrai")
    	   {
    	    session_start();
    	    $_SESSION['user']=$user;
    	    $_SESSION['password']=$pass;
          print "inscrit";
     
         }
     
    	   else
          { print "non inscrit";} 
        }
     
        else
        {
         print "Problème lors de l'ouverture du fichier";
        }
     
        /*Fermeture du fichier*/
        fclose($pointeur);
        ?>

  7. #7
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    session_start();

    doit se trouver en haut du fichier avant toute autre commande , sinon tu risque d avoir des problemes

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Août 2002
    Messages : 159
    Points : 62
    Points
    62
    Par défaut
    Le truc c'est que je veux ouvrir ma session seulement si le client existe dans le fichier c'est pour ça que je ne l'ai pas mis au début.

  9. #9
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    tu peux ouvrir la session mais ne pas enregistrer de variables ....

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Août 2002
    Messages : 159
    Points : 62
    Points
    62
    Par défaut
    Merci du renseignement.
    Par contre, je n'arrive pas à récupérer mes variables d'une page à l'autre, pourtant je fais bien le session_start().

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    Le session_start() doit être présent dans chacune de tes pages utilisant les sessions.

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Août 2002
    Messages : 159
    Points : 62
    Points
    62
    Par défaut
    oui, je l'ai bien mis pourtant ça ne marche pas. Y a un truc que je dois mal faire... mais je sais pas koi

  13. #13
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    montre nous le code d une page qui ne fonctionne pas

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Août 2002
    Messages : 159
    Points : 62
    Points
    62
    Par défaut
    Ca c'est le code de la page principal accueil.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
    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
     
    <?php
     
        $user=$_POST['user'];
        $pass=$_POST['password'];
     
        $userPass=$_POST['user'].' '.$_POST['password']; 
     
        /*ouverture du fichier*/
        $fichier="fichier/clients.txt";
        $inscrit="faux";
     
        if ($pointeur=fopen($fichier,"r"))
        {
         while (!feof($pointeur)) 
         {      
          $lecture = fgets($pointeur,4096);
          /*print $lecture;*/
     
          $data=explode("|",$lecture);
          /*print &data;*/
     
          $combien=count($data)-1; // nbre d'éléments séparés par "|"
          /*print $combien;*/
     
          for ($i=0;$i<=$combien;$i++)
    	    {
           /*echo $data[$i],"<br>";  // affichage des données*/
     
           if ($userPass==$data[$i])
            {$inscrit="vrai";}
    	    }
     
    	   }
     
    	   if ($inscrit=="vrai")
    	   {
          session_start();  
    	    $_SESSION['user']=$user;
    	    $_SESSION['password']=$pass;
          print "inscrit";
          print $_SESSION['user'];
          print $_SESSION['password'];
          header("location:accueilConnexion.php");
         }
     
    	   else
          { print "non inscrit";} 
        }
     
        else
        {
         print "Problème lors de l'ouverture du fichier";
        }
     
        /*Fermeture du fichier*/
        fclose($pointeur);
        ?>
    Et ça c'est le code la page que j'appelle : accueilConnexion.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    	 session_start();
    	 print session_id();
    	 print $_SESSION['user'];
    ?>

  15. #15
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Dans accueil.php , met ton session_start() juste apres la balise ouvrante php !

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    L'erreur peut ne se situe peut etre pas au niveau des sessions :
    la fonction header en php écrit dans l'en-tête http (de mémoire), et doit donc être appelée avant toute écriture dans la page.

    Or dans ton code, tu affiches des informations dans la page puis fais appel à la méthode header.
    N'as tu pas une erreur : "can't send output header. Header allready sent" ou quelque chose du genre ?

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Août 2002
    Messages : 159
    Points : 62
    Points
    62
    Par défaut
    J'ai déjà testé mais ça change rien ...

  18. #18
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    tu es sur que $_SESSION['user'] est renseigné et donc que $inscrit=="vrai" ?

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Août 2002
    Messages : 159
    Points : 62
    Points
    62
    Par défaut
    oui car quand je teste $_SESSION['user'] directement dans accueil.php, ça marche , il m'affiche bien le nom.

  20. #20
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    par contre dans accueil.php si tu mets ton session_start() au debut du fichier il faut aussi penser a enlever celui qui est en plein milieu du code

Discussions similaires

  1. Mettre a jour BD avec fichier csv
    Par Looping94510 dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 07/02/2005, 18h56
  2. Erreur avec fichier .manifest
    Par engi dans le forum Windows
    Réponses: 2
    Dernier message: 16/11/2004, 14h58
  3. [Eclipe 2.1.1]Projet avec fichiers sources existants
    Par mfofana dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 26/02/2004, 05h20
  4. Problème avec fichier texte
    Par jpdelx dans le forum ASP
    Réponses: 7
    Dernier message: 13/11/2003, 13h17
  5. Réponses: 4
    Dernier message: 25/08/2003, 09h02

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