Problème pour l'écriture fichier.txt en PHP

Fermé
Fanfan - 2 mai 2008 à 13:21
sly-bzh Messages postés 415 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 5 décembre 2009 - 2 mai 2008 à 16:33
Bonjour, voici mon problème :

Je souhaite enregistrer l'identifiant et le mot de passe d'un utilisateur lors de son inscription sur un fichier .txt ( Projet Etudiant, base MySQL interdite ).

Voici mon code php de la page vérifiant les données de l'utilisateur :

<?php
chmod ("user.txt", 777);
$fp=fopen("user.txt", "a+"); // le fichier existe, on l'ouvre
while (!feof($fp))
{ // On parcours le fichier
$ligne = fgets($fp,4096); // On se déplace d'une ligne
$liste = explode("|",$ligne); // Champs séparés par |, on en fait un tableau
$nom = $liste[0];
$mdp = $liste[1];

if ($_POST['login']==$nom)
{
echo " Pseudo déja existant ";
die();
}
}
fputs($fp,"$_POST['login']|$_POST['mdp']");
fclose($fp); // Fermeture du fichier

?>


Et voici l'ereur que me renvoi mon hébergeur, free :

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /mnt/110/sdc/f/7/avrillife/Php-Web-Fanfan/Web/Wiki/verification_inscription.php on line 17

Je conçois que le problème vient de l'ouverture du fichier "user.txt" auquel j'associe donc la variable $fp. Cependant, j'attribue les droits par la commande chmod("user.txt", 777); .

Que dois je faire ?

Merci de vos futurs réponses et encore bravo à l'équipe de commentcamarche pour ce magnifique site.
A voir également:

3 réponses

sly-bzh Messages postés 415 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 5 décembre 2009 118
2 mai 2008 à 16:02
Bonjour,

As-tu tu tout simplement essayé ça :
<?php
chmod ("user.txt", 777);
$fp=fopen("user.txt", "a+"); // le fichier existe, on l'ouvre
while (!feof($fp))
{ // On parcours le fichier
$ligne = fgets($fp,4096); // On se déplace d'une ligne
$liste = explode("|",$ligne); // Champs séparés par |, on en fait un tableau
$nom = $liste[0];
$mdp = $liste[1];

if ($_POST['login']==$nom)
{
echo " Pseudo déja existant ";
die();
}
}

$login = $_POST['login'];
$mdp = $_POST['mdp'];
fputs($fp,"$login|$mdp");
fclose($fp); // Fermeture du fichier

?> 

Je pense que ça devrait suffire pour corriger cette erreur.

PS. Je suppose qu'il est inutile de te dire que stocker login et mot de passe ainsi est très dangereux. Mais je suppose que tu le sais déjà ;)
0
En effet cela marche parfaitement. Je ne comprends cependant pas pourquoi je suis obligé de passer par les variables $login et $mdp pour l'écriture sur le fichier.

Oui je suis conscient que c'est dangereux mais ceci n'est qu'un projet pour mes études, je dois encore crypter le mot de passe ce qui n'est pas le plus dur ^^

Et étant donné que la base My SQL est interdite, on nous oblige à travailler sur du fichier .txt.

Merci beaucoup pour cette aide ! Je me suis cassé la tête pendant des heures pour trouver la solution au plus gros problème de mon projet. Merci !
0
sly-bzh Messages postés 415 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 5 décembre 2009 118
2 mai 2008 à 16:33
Je ne sais pas non plus pourquoi certaines fonctions n'acceptent pas directement les $_POST[' ']... Enfin si je sais, c'est le _ qui ne passe pas mais je ne sais pas pourquoi elles n'en veulent pas.
Et si tu crypte tes mdp ça ira déja un peu mieux niveau sécurité... Mais bon c'est vrai que pour un projet d'étude c'est pas non plus super grave.

Bonne continuation
0