[php] systeme de fichier (écrire/lire) ....
boss0211
Messages postés
264
Statut
Membre
-
crabs Messages postés 909 Statut Membre -
crabs Messages postés 909 Statut Membre -
bonjour
j'ai un problème, une fois le fichier créé j'obtient:
dedant il y a d'écrit:
et j'ai fais le code suivant:
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() )
Dans les ficchier text ce code fonctionne parfaitement bien c'est pourquoi je ne comprend vraiment pas ce problème...
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:
- [php] systeme de fichier (écrire/lire) ....
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Lire fichier epub - Guide
- Fichier bin - Guide
- Restauration systeme windows 10 - Guide
- Fichier rar - Guide
1 réponse
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:
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
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