Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/02/2007, 14h54   #1
Candidat au titre de Membre du Club
 
Inscription : août 2002
Messages : 143
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : août 2002
Messages : 143
Points : 14
Points : 14
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 :
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?
hartecel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2007, 15h08   #2
Rédacteur
 
Avatar de RideKick
 
Homme
Directeur technique
Inscription : septembre 2006
Messages : 5 959
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

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

Informations forums :
Inscription : septembre 2006
Messages : 5 959
Points : 10 889
Points : 10 889
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 !
__________________
Pas de questions techniques en MP please

Mon site perso
RideKick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2007, 15h13   #3
Candidat au titre de Membre du Club
 
Inscription : août 2002
Messages : 143
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : août 2002
Messages : 143
Points : 14
Points : 14
J'aurais voulu utiliser une base de données mais c pr un stage et le mec veut que j'utilise un fichier.
hartecel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 10h02   #4
Candidat au titre de Membre du Club
 
Inscription : août 2002
Messages : 143
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : août 2002
Messages : 143
Points : 14
Points : 14
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 :
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.
hartecel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 10h17   #5
Rédacteur
 
Avatar de RideKick
 
Homme
Directeur technique
Inscription : septembre 2006
Messages : 5 959
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

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

Informations forums :
Inscription : septembre 2006
Messages : 5 959
Points : 10 889
Points : 10 889
Tu sais te servir des sessions ?

Sinon : [CLICKAGE]
__________________
Pas de questions techniques en MP please

Mon site perso
RideKick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 11h12   #6
Candidat au titre de Membre du Club
 
Inscription : août 2002
Messages : 143
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : août 2002
Messages : 143
Points : 14
Points : 14
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 :
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 :
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);
    ?>
hartecel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 11h20   #7
Rédacteur
 
Avatar de RideKick
 
Homme
Directeur technique
Inscription : septembre 2006
Messages : 5 959
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

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

Informations forums :
Inscription : septembre 2006
Messages : 5 959
Points : 10 889
Points : 10 889
session_start();

doit se trouver en haut du fichier avant toute autre commande , sinon tu risque d avoir des problemes
__________________
Pas de questions techniques en MP please

Mon site perso
RideKick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 11h44   #8
Candidat au titre de Membre du Club
 
Inscription : août 2002
Messages : 143
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : août 2002
Messages : 143
Points : 14
Points : 14
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.
hartecel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 11h56   #9
Rédacteur
 
Avatar de RideKick
 
Homme
Directeur technique
Inscription : septembre 2006
Messages : 5 959
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

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

Informations forums :
Inscription : septembre 2006
Messages : 5 959
Points : 10 889
Points : 10 889
tu peux ouvrir la session mais ne pas enregistrer de variables ....
__________________
Pas de questions techniques en MP please

Mon site perso
RideKick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 12h59   #10
Candidat au titre de Membre du Club
 
Inscription : août 2002
Messages : 143
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : août 2002
Messages : 143
Points : 14
Points : 14
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().
hartecel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 13h05   #11
Membre chevronné
 
Inscription : juin 2005
Messages : 572
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Haute Vienne (Limousin)

Informations forums :
Inscription : juin 2005
Messages : 572
Points : 690
Points : 690
Le session_start() doit être présent dans chacune de tes pages utilisant les sessions.
ratapapa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 13h39   #12
Candidat au titre de Membre du Club
 
Inscription : août 2002
Messages : 143
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : août 2002
Messages : 143
Points : 14
Points : 14
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
hartecel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 13h46   #13
Rédacteur
 
Avatar de RideKick
 
Homme
Directeur technique
Inscription : septembre 2006
Messages : 5 959
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

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

Informations forums :
Inscription : septembre 2006
Messages : 5 959
Points : 10 889
Points : 10 889
montre nous le code d une page qui ne fonctionne pas
__________________
Pas de questions techniques en MP please

Mon site perso
RideKick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 13h54   #14
Candidat au titre de Membre du Club
 
Inscription : août 2002
Messages : 143
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : août 2002
Messages : 143
Points : 14
Points : 14
Ca c'est le code de la page principal accueil.php

Code :
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 :
1
2
3
4
5
6
 
<?php
	 session_start();
	 print session_id();
	 print $_SESSION['user'];
?>
hartecel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 13h59   #15
Rédacteur
 
Avatar de RideKick
 
Homme
Directeur technique
Inscription : septembre 2006
Messages : 5 959
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

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

Informations forums :
Inscription : septembre 2006
Messages : 5 959
Points : 10 889
Points : 10 889
Dans accueil.php , met ton session_start() juste apres la balise ouvrante php !
__________________
Pas de questions techniques en MP please

Mon site perso
RideKick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 14h00   #16
Membre chevronné
 
Inscription : juin 2005
Messages : 572
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Haute Vienne (Limousin)

Informations forums :
Inscription : juin 2005
Messages : 572
Points : 690
Points : 690
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 ?
ratapapa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 14h08   #17
Candidat au titre de Membre du Club
 
Inscription : août 2002
Messages : 143
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : août 2002
Messages : 143
Points : 14
Points : 14
J'ai déjà testé mais ça change rien ...
hartecel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 14h15   #18
Rédacteur
 
Avatar de RideKick
 
Homme
Directeur technique
Inscription : septembre 2006
Messages : 5 959
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

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

Informations forums :
Inscription : septembre 2006
Messages : 5 959
Points : 10 889
Points : 10 889
tu es sur que $_SESSION['user'] est renseigné et donc que $inscrit=="vrai" ?
__________________
Pas de questions techniques en MP please

Mon site perso
RideKick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 14h23   #19
Candidat au titre de Membre du Club
 
Inscription : août 2002
Messages : 143
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : août 2002
Messages : 143
Points : 14
Points : 14
oui car quand je teste $_SESSION['user'] directement dans accueil.php, ça marche , il m'affiche bien le nom.
hartecel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 14h31   #20
Rédacteur
 
Avatar de RideKick
 
Homme
Directeur technique
Inscription : septembre 2006
Messages : 5 959
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

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

Informations forums :
Inscription : septembre 2006
Messages : 5 959
Points : 10 889
Points : 10 889
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
__________________
Pas de questions techniques en MP please

Mon site perso
RideKick est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h29.


 
 
 
 
Partenaires

Hébergement Web