renommer une fichier sur un ftp
Forum Programmation : renommer une fichier sur un ftp
Bonjour,
j'essaye depuis plusieurs jours de renommer un fichier de mon espace web vers mon ftp, un shema sera plus adapté qu'un long discours barbant
home:
cgi-bin
steam/cstrike/cfg/mani_server.cfg
www/includes/listedit.php
le but de ma manoeuvre : renommer mani_server.cfg en mani_server1.cfg pour desactivé le plugin depuis ma page listedit.php
et
renommer mani_server1.cfg en mani_server.cfg pour activé le plugin depuis ma page listedit.php
voici le code :
<form method="post">
<input type="radio" name="mani" value="activé" id="activé"/><label for="activé">Activer Mani admin plugin</label><br />
<?php
$save_file = $_POST['save_file'];
$savecontent = $_POST['savecontent'];
if($save_file) {
$savecontent = stripslashes($savecontent);
$fp = @fopen($configx_cfg_locfi.''.$_GET['filed'], "w" );
if ($fp) {
fwrite($fp, $savecontent);
fclose($fp);
// Mise en place d'une connexion basique
$conn_id = ftp_connect($configx_ip);
// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $configx_cfg_user, $configx_cfg_pass);
$fpx3 = "ftp://".$configx_cfg_user.":".$configx_cfg_pass."@".$configx_ip."".$configx_cfg_remofi;
$fpx4 = "ftp://".$configx_cfg_user.":".$configx_cfg_pass."@".$configx_ip."".$configx_path_user."".$configx_cfg_remofi;
if(is_dir($fpx3)) {
if (ftp_put($conn_id, $configx_cfg_remofi.''.$_GET['filed'], $configx_cfg_locfi.''.$_GET['filed'], FTP_ASCII)) {
echo '<div style="color:'.$configx_font.'; font-family: verdana, arial, sans-serif;font-size:10px;">'.$_GET['filed'].' '.$lang_edt_saved.'</div>';
}
else echo '<div style="color:'.$configx_font.'; font-family: verdana, arial, sans-serif;font-size:10px;">'.$lang_edt_errop.' : '.$configx_s_locfi.' !</div>';
} elseif(is_dir($fpx4)) {
if (ftp_put($conn_id, $configx_path_user.''.$configx_cfg_remofi.''.$_GET['filed'], $configx_cfg_locfi.''.$_GET['filed'], FTP_ASCII)) {
echo '<div style="color:'.$configx_font.'; font-family: verdana, arial, sans-serif;font-size:10px;">'.$_GET['filed'].' '.$lang_edt_saved.'</div>';
}
else echo '<div style="color:'.$configx_font.'; font-family: verdana, arial, sans-serif;font-size:10px;">'.$lang_edt_errop.' : '.$configx_s_locfi.' !</div>';
} else {
echo '<div style="color:'.$configx_font.'; font-family: verdana, arial, sans-serif;font-size:10px;">'.$lang_edt_err.'</div>';
}
// Fermeture de la connexion
ftp_close($conn_id);
}
else echo '<div style="color:'.$configx_font.'; font-family: verdana, arial, sans-serif;font-size:10px;">'.$lang_edt_errop.'</div>';
}
$fpx = "ftp://".$configx_cfg_user.":".$configx_cfg_pass."@".$configx_ip."".$configx_cfg_remofi."".$_GET['filed'];
$fpx2 = "ftp://".$configx_cfg_user.":".$configx_cfg_pass."@".$configx_ip."".$configx_path_user."".$configx_cfg_remofi."".$_GET['filed'];
$fp = @fopen($fpx, "rb" );
$fp2 = @fopen($fpx2, "rb" );
if($fp) {
$file = $configx_cfg_remofi.''.$_GET['filed'];
$conn_id = ftp_connect($configx_ip);
$login_result = ftp_login($conn_id, $configx_cfg_user, $configx_cfg_pass);
$res = ftp_size($conn_id, $file);
ftp_close($conn_id);
$loadcontent = fread($fp, $res);
fclose($fp);
} elseif($fp2) {
$file = $configx_path_user.''.$configx_cfg_remofi.''.$_GET['filed'];
$conn_id = ftp_connect($configx_ip);
$login_result = ftp_login($conn_id, $configx_cfg_user, $configx_cfg_pass);
$res = ftp_size($conn_id, $file);
ftp_close($conn_id);
$loadcontent = fread($fp2, $res);
fclose($fp2);
}
else {
echo '<div style="color:'.$configx_font.'; font-family: verdana, arial, sans-serif;font-size:10px;">'.$lang_fonc_file.' '.$_GET['filed'].' '.$lang_fonc_nexist.' !</div>';
}
$old_file = 'mani_server.cfg';
$new_file = 'mani_server1.cfg';
// Tentative de renommage de $old_file en $new_file
if (@ftp_rename($conn_id, $old_file, $new_file)) {
echo "Mani admin plugin activé\n";
} else {
echo "Impossible d'activer Mani admin plugin\n";
}
// Fermeture de la connexion
@ftp_close($conn_id);
?>
aucune erreur php mais la fonction retourne false :
Activer Mani admin plugin
Impossible d'activer Mani admin plugin
je vois pas trop où j'ai fais une erreur,
je vais vous donner les variables :
$configx_ip = '91.xxx.xx.xx';
$configx_port = '22';
$configx_user = 'serv4';
$configx_pass = 'xxxxxxxxxx';
$configx_path_user = '/home/serv4/';
$configx_script = 'start-xxx';
$configx_s_locfi = 'tmp/start-xxx';
$configx_cfg_locfi = 'tmp/';
$configx_cfg_remofi = '/steam/cstrike/cfg/';
$configx_cfg_user = 'serv4';
$configx_cfg_pass = 'xxxxxxxxx';
$configx_cfg_path = '/';
en esperant que votre aide me sois utile.
P.S : je suis au bord de la crise de nerf -___-
Tu utilise quel FTP?
Logiquement c'est clic droit, renommer!
Hosting Favicon
Clic pas ici
Répondre à Allstar27
le principe est que mes clients puisse activé ou désactivé ce plugin sans avoir a ce connecter sur mon ftp(je sais trés bien comment renomer un fichier ^^)
j'ai poster ce message sur plus de 7 forum et à l'heure actuel personne n'a encore trouvé une solution, je desespere vraiment, je sais que le code a l'air long mais peut etre qu'on peux faire plus court, je sais vraiment pas comment m'en tirer la. En esperant que ce post ne tombe pas aux oubliettes.
Tu as les droits de renommage sur ton serveur au moins ?
Ce ne sont pas les mêmes droits que ceux de lecture ou d'écriture, c'est un droit spécifique.
Si tu arrives à faire autre chose que du renommage, c'est que c'est bien un problème de droits sur le serveur FTP, à moins que le fichier que tu veuilles renommer n'existe pas (du genre pas dans le bon répertoire).
Message édité par CRicky le 14-11-2008 à 19:35:45
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
oui je suis en chmod 777 et le probleme vient sans doute de mon code, j'ai chercher partout comment renommer un fichier.
mon fichier cible est : "ftp://ks27121.kimsufi.com/steam/cstrike/cfg/mani_server.cfg"
et mon .php :
http://ks27121.kimsufi.com/~serv4/ [...] stedit.php
je vais vous expliquer comment j'ai fait pour avoir ce code : a la base le code d'origine est pour éditer le contenu d'un fichier qui est dans "ftp://ks27121.kimsufi.com/steam/cstrike/cfg/"
on peux donc rajouter du texte et sa le sauvegarde directement sur le ftp
j'ai donc enlever les lignes de code pour éditer le texte et j'ai gardé le code pour me connecter récupérer le fichier et j'ai ensuite ajouter le code pour le renommer si je devrais comprimé mon code sa donnerais çà :
<?
fopen($configx_cfg_locfi.''.$_GET['filed'], "w" );
$conn_id = ftp_connect($configx_ip);
$login_result = ftp_login($conn_id, $configx_cfg_user, $configx_cfg_pass);
$oldfile = "ftp://ks27121.kimsufi.com/steam/cstrike/cfg/mani_server.cfg";
$newfile = "ftp://ks27121.kimsufi.com/steam/cstrike/cfg/mani_server1.cfg";
if (@ftp_rename($conn_id, $oldfile, $newfile)) {
echo "Mani admin plugin d'activé\n";
} else {
echo "Impossible d'activer Mani admin plugin\n";
}
ftp_close($conn_id);
?>
mais sa retourne toujours false et sa commence a me gonfler, sa fait presque une semaine que je galère la dessus.
Je te parle des droits FTP d'accès aux fichiers, pas des droits système du fichier...
Prend un client FTP du genre Filezilla, connecte-toi au serveur FTP, et essaie de renommer à la main le fichier. Si tu n'as pas les droits de renommage, tu pourras mettre le code que tu voudras, ça ne fonctionnera pas...
Evidemment, si tu as les droits FTP de suppression du fichier et de création sur le répertoire, tu peux contourner le problème.
Message édité par CRicky le 14-11-2008 à 23:27:39
Il y a 2435 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
