Renommer un fichier
Résolu
PhilippeF
-
jordane45 Messages postés 30426 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 30426 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Dans un fichier "membres.txt" j'ai : "nom; prénom; ; ;"
A la première connexion les membres sont invités à renseigner leur adresse mail et un mot de passe.
lorsque le membre est trouvé dans le fichier "membres.txt" j'écris dans un fichier "memebres1.txt" la ligne suivante : "nom; prénom; mail; mot_de_passe;"
J'obtiens à la fin un fichier "membres1.txt" comme je veux.
Le fichier "membres.txt" est bien supprimé.
Je n'arrive pas à renommer "membres1.txt en membres.txt.
j'ai ce message
"Warning: rename(fr/membres1.txt,fr/membres.txt): in C:\Weblocal\Sites\Jumelage\fr\logging.php on line 83"
mon fichier Logging.php
EDIT : Ajout du langage dans les BALISES DE CODE
Merci d'avance pour votre aide
Dans un fichier "membres.txt" j'ai : "nom; prénom; ; ;"
A la première connexion les membres sont invités à renseigner leur adresse mail et un mot de passe.
lorsque le membre est trouvé dans le fichier "membres.txt" j'écris dans un fichier "memebres1.txt" la ligne suivante : "nom; prénom; mail; mot_de_passe;"
J'obtiens à la fin un fichier "membres1.txt" comme je veux.
Le fichier "membres.txt" est bien supprimé.
Je n'arrive pas à renommer "membres1.txt en membres.txt.
j'ai ce message
"Warning: rename(fr/membres1.txt,fr/membres.txt): in C:\Weblocal\Sites\Jumelage\fr\logging.php on line 83"
mon fichier Logging.php
// je clique sur le bouton "enregistrer"
if (isset($_POST['firstConnect'])){
if ((empty($nom)) OR (empty($prenom))){ // test si le nom et le prénom du formulaire sont renseignés
$message1 = "Merci de renseigner votre nom et votre prénom.";
}
else if ((empty($message)) AND (empty($message1))){
$membres = 'fr/membres.txt';
$temporaire ='fr/membres1.txt';
$temporairea = fopen($temporaire,'a');
$lines = file('fr/membres.txt');
foreach($lines as $n => $line){
$champ = explode(";",$line);
$champ0 = $champ[0];
$champ1 = $champ[1];
// tester $champ1 = $prenom et $champ2 = $nom
if (($champ[0] == $nom) && ($champ[1] == $prenom)) {
$newline = $champ0 .";" . $champ1 .';'.$mail.';'.$pass.';';
$newline = $newline."\r\n";
fwrite($temporairea,$newline);
$_SESSION['utilisateur'] = $champ1; //pour affichage sur la page index
}
else {
$newline = $champ[0] .";" . $champ[1] .';'.$champ[2].';'.$champ[3].';';
$newline = $newline."\r\n";
fwrite($temporairea,$newline);
}
}
unlink('fr/membres.txt');
rename('fr/membres1.txt','fr/membres.txt');
$message2 = "Vous êtes maintenant connectés.";
}
}
EDIT : Ajout du langage dans les BALISES DE CODE
Merci d'avance pour votre aide
1 réponse
-
Bonjour,
Tu as fais un fopen sur le fichier .... il est donc toujours utilisé.
Il faut d'abord le fermer...
Essaye ça<?php $directory = 'fr'; $membres = $directory .'/membres.txt'; $temporaire = $directory .'/membres1.txt'; // je clique sur le bouton "enregistrer" if (isset($_POST['firstConnect'])){ if ((empty($nom)) || (empty($prenom))){ // test si le nom et le prénom du formulaire sont renseignés $message1 = "Merci de renseigner votre nom et votre prénom."; } else if ((empty($message)) && (empty($message1))){ $temporairea = fopen($temporaire,'a'); $lines = file($membres); foreach($lines as $n => $line){ $champ = explode(";",$line); $champ0 = $champ[0]; $champ1 = $champ[1]; // tester $champ1 = $prenom et $champ2 = $nom if (($champ[0] == $nom) && ($champ[1] == $prenom)) { $newline = $champ0 .";" . $champ1 .';'.$mail.';'.$pass.';'; $newline = $newline."\r\n"; fwrite($temporairea,$newline); $_SESSION['utilisateur'] = $champ1; //pour affichage sur la page index }else { $newline = $champ[0] .";" . $champ[1] .';'.$champ[2].';'.$champ[3].';'; $newline = $newline."\r\n"; fwrite($temporairea,$newline); } } fclose($temporairea); unlink($membres); rename($temporaire,$membres); $message2 = "Vous êtes maintenant connectés."; } }