[php] systeme de fichier (écrire/lire) ....
boss0211
Messages postés
264
Date d'inscription
Statut
Membre
Dernière intervention
-
crabs Messages postés 908 Date d'inscription Statut Membre Dernière intervention -
crabs Messages postés 908 Date d'inscription Statut Membre Dernière intervention -
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