[php] systeme de fichier (écrire/lire) ....

Fermé
boss0211 Messages postés 264 Date d'inscription lundi 13 février 2006 Statut Membre Dernière intervention 9 septembre 2007 - 15 nov. 2006 à 20:58
crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 - 19 nov. 2006 à 10:19
bonjour
j'ai un problème, une fois le fichier créé j'obtient:

bonjour.1f71e0f4ac9b47cd93bf269e4017abaab9d3bd63


dedant il y a d'écrit:


1f71e0f4ac9b47cd93bf269e4017abaab9d3bd63:1f71e0f4ac9b47cd93bf269e4017abaab9d3bd63




et j'ai fais le code suivant:

<?php
$pseudoo = htmlspecialchars($_POST['pseudoo']);
$passwordd = sha1($_POST['passwordd']);

if(!empty($pseudoo))
{
$filename = $pseudoo.'.'.$passwordd;

$handle = fopen($filename, 'w');

$lireeee = fgets($handle, 4096);
echo $lireeee;
exit;
}
?>

<form method="post" >
<input name="pseudoo" type="text" /><br>
<input name="passwordd" type="text" /><br>
<input value="test" type="submit" /><br>
</form>


Le problème c'est que je n'est aucune erreur qui s'affiche et pas le text que contient le fichier.. comment faire?


Problème n°2
Je veux écrire dans un .htpasswd, ok tout s'écrit, mais soit cela efface tout ce qu'il y a déjà dans le fichier ou soit cela l'écrit à la suite sur une seul et meme ligne!! :colere2: donc comment faire pour que cela écrire l'un en dessous de lautre?? voici le code ( j'ai essayer plusieur lettre pour fopen() )

<?php
$pseudo = htmlspecialchars($_POST['pseudo']);
$password = htmlspecialchars($_POST['password']);


if (!empty($pseudo))
{
$filename = 'dossier2/dossier3/.htpasswd';
$cbd10 = $pseudo.':'.$password.'
'; // ici un retour a la ligne car l  \n et <br> ne son compris dans un fichier text
$handle = fopen($filename, 'a+');


   if (fputs($handle, $cbd10) == FALSE) {
       echo "Impossible d'écrire dans le fichier ($filename)";
       exit;
   }
   
   echo "L'écriture de ($cbd10) dans le fichier ($filename) a réussi";
   
   fclose($handle);
                   
} else {
   echo "Le fichier $filename n'est pas accessible en écriture.";
}


?>  


<form method="post">
<b>Pseudo : </b>
<input type="text" name="pseudo" /><br>
<b>Password : </b>
<input type="text" name="password" /><br>
<input type="submit" value="envoyer" /><br>
</form>


Dans les ficchier text ce code fonctionne parfaitement bien c'est pourquoi je ne comprend vraiment pas ce problème...
A voir également:

1 réponse

crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 507
19 nov. 2006 à 10:19
Salut,
1er problème :
ouverture du fichier en 'w', puis fgets(). L'ouverture en 'w', permet d'écrire dans le
fichier et le vide au préalable.
https://www.php.net/manual/en/function.fopen.php

2ème problème:
si tu fais que de l'écriture utilises 'a' pour le mode.
Si tu veux un retour à la ligne dans ta variable cbd10:
$cbd10 = $pseudo.':'.$password."\n"

Le caractère \n ne correspond pas à un retour à la ligne lorsqu'il est placé entre
des quotes simples. Pour obtenir le saut de ligne, il faut utiliser les doubles quotes.

A+, crabs
0