Auteur Sujet: problème avec ftp_chdir()  (Lu 1836 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne _phineas_

  • Habitué
  • **
  • Messages: 182
    • http://www.cnversailles.org
problème avec ftp_chdir()
« le: 23 Juin 2006 à 21:37:30 »
bonjour,
j'ai un script d'upload qui fonctionnait très bien jusqu'à maintenant (enfin jusqu'à il y a 2 jours...) et qui ne fonctionne plus...

je fais appel a ftp_chdir() dans le script et j'obtiens l'erreur suivante :
Warning: ftp_chdir(): Ne peut changer le repertoire en /uploads: No such file or directory in /home/users/p/******/www/site/upload.php on line 63

y'a-t-il eu une modif sur le "comportement" du ftp qui a pour objet de désactiver ftp_chdir() ??
ou est-il conseillé d'ouvrir un ticket ?

si quelqu'un a une piste... j'en serai fort intéressé :)

Hors ligne Ice

  • VIP
  • *****
  • Messages: 2 403
    • ATFX
Re : problème avec ftp_chdir()
« Réponse #1 le: 24 Juin 2006 à 08:32:14 »
Si la fonction avait été désactivée , tu n'aurais pas eu ce warning.

Hors ligne BadFurDay

  • Cerveau: OFF
  • Habitué
  • **
  • Messages: 224
    • NoBleme - forum et jeux en ligne
Re : problème avec ftp_chdir()
« Réponse #2 le: 24 Juin 2006 à 11:53:11 »
J'ai un script qui utilise ftp_chdir(), et je viens de vérifier, il marche toujours très bien chez moi.

Poste ton script et je pourrai peut-être t'aider :)

Hors ligne _phineas_

  • Habitué
  • **
  • Messages: 182
    • http://www.cnversailles.org
Re : problème avec ftp_chdir()
« Réponse #3 le: 24 Juin 2006 à 12:11:45 »
voilà le script au cas où :

/* ----- DEBUT DU MODULE FTP ----- */

// création de la connexion
$conn_id = ftp_connect("$ftp_server");

// authentification avec nom de compte et mot de passe
$login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass);

// vérification de la connexion
if ((!$conn_id) || (!$login_result))
{
    echo "<FONT CLASS=\"erreur\">La connexion FTP a échoué!<BR>";
    echo "Tentative de connexion à ",$ftp_server,"</FONT>";
    die;
}
else
{
    echo "<p>Connecté au <B>serveur FTP de site</B></p><p>";
}

// changement de repertoire
ftp_chdir($conn_id,"/upload");

// téléchargement d'un fichier

$file = $HTTP_POST_FILES[source_file];

$upload = @ftp_put($conn_id,$file[name],$source_file,FTP_BINARY);

?>

<input type="hidden" name="date" value="<? echo date("d-m-Y "); ?>">
<input type="hidden" name="heure" value="<? echo date("H:i:s"); ?>">

<?
// Vérification de téléchargement
if(!$upload)
{
    echo "<FONT CLASS=\"erreur\">Le téléchargement FTP a échoué !</FONT><P>";
echo "<p><a href=".$PHP_SELF."><img src=\"images\prev.gif\" border=0 width=12 height=10> Retour</a>";
}
else
{
    echo "Le téléchargement de <B>",$file[name],"</B> sur le <B>serveur FTP de site</B> est terminé<BR>";
    echo "<B>Type</B> : ",$file[type],"<BR>";
    echo "<B>Taille</B> : ",ceil($file[size] / 1024)," ko</p>";
    echo "<p><a href=".$PHP_SELF."><img src=\"images\prev.gif\" border=0 width=12 height=10> Retour</a>";
$email = "toto@tld";

  $headers  = "From: $email\n";
$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$headers .= "Content-Transfer-Encoding: 8bit";
  $headers .="Reply-To: ".$email."\r\n";
  $headers .="Return-Path: ".$email."\r\n";
$headers .="X-Mailer: PHP/".phpversion()."\r\n";



$message  = "<html><head><style type=\"text/css\">
</style></head>
<body><p>$file[name] a été uploadée le $date à $heure par $nom - adresse IP : $REMOTE_ADDR</p>
</body>
</html>\n";

    mail("toto@tld", "objet : photo uploadée", $message, $headers);
}

// fermeture de la connexion FTP.
ftp_quit($conn_id);

en fait, après avoir cherché dans tous les sens, le seul truc qui pourrait expliquer pourquoi ça merdoit est le fait que j'ai créé un sous-domaine nommé "upload" pointant sur un répertoire "upload" créé à la racine du compte.
et les photos uploadées se retrouvent dans ce répertoire racine ?! (avec affichage du message d'erreur) et pas dans le répertoire upload qui se trouve dans le répertoire du site (dans le même répertoire que le fichier upload.php)...
bref, ça fonctionne... mais pas comme ça devrait et je comprends pas pourqoi  :huh:
en attendant (vu que les photos sont quand même uploadées... même si c'est au mauvais endroit), j'ai "inhibé" le message d'erreur en mettant un @ devant ftp_chdir()

Hors ligne diaoul

  • Expert
  • ****
  • Messages: 663
    • http://diaoul.net
Re : problème avec ftp_chdir()
« Réponse #4 le: 24 Juin 2006 à 13:20:02 »
si tu veux mettre le fichier dans un repertoire specifique, il faut surement mettre le chemin complet:
ftp_chdir($conn_id,"/rep/rep2/upload");
il faudrait  savoir si le repertoire que tu as créé s'appelle upload ou uploads, parce que ton script est pour l'instant incompatible avec ton message d'erreur -_- .
« Modifié: 24 Juin 2006 à 14:01:46 par diaoul »

Hors ligne _phineas_

  • Habitué
  • **
  • Messages: 182
    • http://www.cnversailles.org
Re : problème avec ftp_chdir()
« Réponse #5 le: 24 Juin 2006 à 15:38:59 »
merci pour la piste diaoul
mais après avoir testé tous les chemins possibles, ben ça fonctionne pas mieux :(

pour le "uploads" présent dans le message d'erreur, c'était quand j'avais fait un test en créant un répertoire "uploads".
avec le même résultat : le fichiers sont uploadés correctement.... mais dans le répertoire "upload" à la racine du compte.... j'en perds mon latin  :huh:

mais bon, je vais continuer en maintenant l'inihibition du message d'erreur, vu que l'upload fonctionne quand même...

merci d'avoir pris le temps de vous pencher dessus :)

Hors ligne BadFurDay

  • Cerveau: OFF
  • Habitué
  • **
  • Messages: 224
    • NoBleme - forum et jeux en ligne
Re : problème avec ftp_chdir()
« Réponse #6 le: 24 Juin 2006 à 17:07:34 »
T'as essayé avec le chemin non pas depuis ta racine mais depuis ton script?

Ca peut par exemple être "../forum/uploads" ou un truc du genre, mais faut pas oublier de faire revenir le script en arrière dans les dossiers parfois.

Sinon... ben je vois rien d'autre  :huh: