Votre question

renommer une fichier sur un ftp

Tags :
  • Plugin
  • Programmation
Dernière réponse : dans Programmation
13 Novembre 2008 13:19:50

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 -___-

Autres pages sur : renommer fichier ftp

13 Novembre 2008 23:39:09

Tu utilise quel FTP?
Logiquement c'est clic droit, renommer!
Contenus similaires
14 Novembre 2008 14:06:02

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 ^^)
14 Novembre 2008 18:12:16

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.
a b L Programmation
14 Novembre 2008 19:35:13

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). :) 
14 Novembre 2008 20:41:15

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...";
$newfile = "ftp://ks27121.kimsufi.com/steam/cstrike/cfg/mani_server...";
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.
a b L Programmation
14 Novembre 2008 23:27:11

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.
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS