Accueil > Forum > > > > accès ftp
accès ftp
jeudi 26 octobre 2006 à 14:39:05 |
accès ftp

ygarin
|
Bonjour à tous,
j'ai mis une petite zone pour un accès ftp sur mon site
(www.3d-upside-down.com) pour que mes clients puissent downloader des
fichiers personnels mis à leur disposittion. J'ai donc créé une petite
page php avec ce code :
<?
$user = $_POST['user'];
$password = $_POST['password'];
$adresse = "ftp://"."$user".":"."$password"."@ftp.3d-upside-down.com";
header("Location:$adresse");
?>
Sous firefox, le dossier s'affiche bien, mais downloader un fichier
mène (parfois) à un "access denied". Sous IE, je suis obligé de
recharger la page manuellement pour que le dossier s'affiche.
Une idée? (possibilité de tester avec user : public et password : public
Merci d'avance,
yan
|
|
jeudi 26 octobre 2006 à 15:44:37 |
Re : accès ftp

malalam
|
Hello,
pourquoi tu n'utilises pas les fonctions ftp de php ?
|
|
jeudi 26 octobre 2006 à 15:58:31 |
Re : accès ftp

ygarin
|
salut malalam,
tu parles des ftp_open() &co? j'ai essayé, j'ouvre bien la session, mais je n'arrive pas à afficher le contenu du dossier ftp, et encore moins à rendre son contenu téléchargeable. Mais peut-être suis-je un peu trop vaniteux de vouloir demander autant avec mon petit niveau en php?
|
|
jeudi 26 octobre 2006 à 16:31:42 |
Re : accès ftp

malalam
|
Un exemple de mini mini ftp que je me suis monté à l'arrache. Il faut changer les constantes (définir les tiennes plutôt), évidemment.
<?php require_once 'inc/inc.main.php'; $sCmd = $sLocalExp = $sLocalImp = ''; $aForbid = array ('.', '..');
$rCon = @ftp_connect (FTP_HOST); if (false === $rCon) { $aMsg[] = array ('TYPE' => 0, 'MSG' => FTP_CONNECT_ERROR); } else { $aMsg[] = array ('TYPE' => 1, 'MSG' => FTP_CONNECT_LOG); } if (false === @ftp_login ($rCon, FTP_LOGIN, FTP_PWD)) { $aMsg[] = array ('TYPE' => 0, 'MSG' => FTP_LOGIN_ERROR); } else { $aMsg[] = array ('TYPE' => 1, 'MSG' => FTP_LOGIN_LOG); }
if (false === @ftp_pasv($rCon, true )) { $aMsg[] = array ('TYPE' => 0, 'MSG' => FTP_PASV_ERROR); } else { $aMsg[] = array ('TYPE' => 1, 'MSG' => FTP_PASV_LOG); }
if (empty ($_POST['dir'])) { $_POST['dir'] = '/'; } if (empty ($_POST['upload'])) { $_POST['upload'] = ''; }
if (false === @ftp_chdir ($rCon, $_POST['dir'])) { $aMsg[] = array ('TYPE' => 0, 'MSG' => FTP_CHDIR_ERROR.' <em>'.$_POST['dir'].'</em>'); } else { $aMsg[] = array ('TYPE' => 1, 'MSG' => FTP_CHDIR_LOG.' <em>'.$_POST['dir'].'</em>'); }
if (isset ($_POST['act']) && !empty ($_POST['act'])) { switch ($_POST['act']) { case 1 : if (false === @ftp_get ($rCon, 'imported/'.$_POST['upload'], $_POST['upload'], FTP_BINARY)) { $aMsg[] = array ('TYPE' => 0, 'MSG' => FTP_GET_ERROR.' <em>'.$_POST['upload'].'</em>'); } else { $aMsg[] = array ('TYPE' => 1, 'MSG' => FTP_GET_LOG.' <em>'.$_POST['upload'].'</em>'); } break; case 2 : if (false === @ftp_put ($rCon, 'retour_commande/'.$_POST['upload'], 'exports_ogilvy/'.$_POST['upload'], FTP_BINARY)) { $aMsg[] = array ('TYPE' => 0, 'MSG' => FTP_GET_ERROR.' <em>'.$_POST['upload'].'</em>'); } else { $aMsg[] = array ('TYPE' => 1, 'MSG' => FTP_GET_LOG.' <em>'.$_POST['upload'].'</em>'); } break; case 3 : if (false === @ftp_put ($rCon, 'stock/'.$_POST['upload'], 'exports_ogilvy/'.$_POST['upload'], FTP_BINARY)) { $aMsg[] = array ('TYPE' => 0, 'MSG' => FTP_GET_ERROR.' <em>'.$_POST['upload'].'</em>'); } else { $aMsg[] = array ('TYPE' => 1, 'MSG' => FTP_GET_LOG.' <em>'.$_POST['upload'].'</em>'); } break; } }
$sCurDir = @ftp_pwd ($rCon);
$aContents = @ftp_nlist($rCon, $sCurDir); if (false === $aContents) { $aMsg[] = array ('TYPE' => 0, 'MSG' => FTP_DIR_ERROR.' <em>'.$sCurDir.'</em>'); } else { $aMsg[] = array ('TYPE' => 1, 'MSG' => FTP_DIR_LOG.' <em>'.$sCurDir.'</em>'); $sCmd .= '<span class="currentDir">REPERTOIRE : <em class="dir">'.$sCurDir.'</em></span><ul>'; foreach ($aContents as $sCont) { $sCmd .= <<<HTML <li><span class="liste" onclick="go ('mainForm', '{$sCont}', 0);" title="Lister">{$sCont}</span> <span class="upload" onclick="go ('mainForm', '{$sCont}', 1)" title="Télécharger en local">[UP]</a></li> HTML; } $sCmd .= '</ul>'; }
$aExport = scandir ('exports'); $aImport = scandir ('imported'); $aExport = array_diff ($aExport, $aForbid); $aImport = array_diff ($aImport, $aForbid); $sLocalExp .= '<span class="currentDir">REPERTOIRE : <em class="dir">EXPORTS</em></span><ul>'; foreach ($aExport as $sFile) { if (strpos ($sFile, 'art')) { $iJs = 3; } elseif (strpos ($sFile, 'cmd')) { $iJs = 2; } $sLocalExp .= <<<HTML <li><span class="liste" onclick="go ('mainForm', '{$sFile}', 0);" title="Lister">{$sFile}</span> <span class="upload" onclick="go ('mainForm', '{$sFile}', {$iJs})" title="Uploader sur le FTP">[UP]</a></li> HTML; } $sLocalExp .= '</ul>'; $sLocalImp .= '<span class="currentDir">REPERTOIRE : <em class="dir">IMPORTS</em></span><ul>'; foreach ($aImport as $sFile) { $sLocalImp .= <<<HTML <li><span class="liste" onclick="go ('mainForm', '{$sFile}', 0);" title="Lister">{$sFile}</span> <span class="upload" onclick="go ('mainForm', '{$sFile}', {$iJs})" title="Uploader sur le FTP">[UP]</a></li> HTML; } $sLocalImp .= '</ul>';
ftp_close ($rCon); ?>
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>XXXXXX</title> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> <link rel="stylesheet" type="text/css" href="<?php echo PATH_CSS; ?>main.css" /> <script type="text/javascript"> function go (sForm, sVal, iMode) { with (document.getElementById (sForm)) { act.value = iMode; switch (iMode) { case 0 : dir.value = sVal; upload.value = ''; break; case 1 : upload.value = sVal; break; case 2 : upload.value = sVal; break; case 3 : upload.value = sVal; break; } submit (); } } </script> </head> <body> <form method="post" action="" id="mainForm"> <p class="hidden"> <input type="hidden" name="act" value="0" /> <input type="hidden" name="dir" value="<?php echo $_POST['dir']; ?>" /> <input type="hidden" name="upload" value="<?php echo $_POST['upload']; ?>" /> </p> </form> <div class="menu"> <span class="menu" onclick="go ('mainForm', '/', 0);">Reconnexion</span> </div> <div class="mainLeft"> <p> FTP </p> <p> <?php echo $sCmd; ?> </p> </div> <div class="mainRight"> <p> LOCAL </p> <p> <?php echo $sLocalExp; ?> </p> <p> <?php echo $sLocalImp; ?> </p> </div> <div class="errors"> <h4>LOG</h4> <p> <?php if (!empty ($aMsg)) { foreach ($aMsg as $aMes) { if (0 === $aMes['TYPE']) { echo '<span class="error">- ',$aMes['MSG'],'</span><br />'; } else { echo '<span class="log">- ',$aMes['MSG'],'</span><br />'; } } } ?> </p> </div> </body> </html>
|
|
jeudi 26 octobre 2006 à 17:01:04 |
Re : accès ftp

ygarin
|
à l'arrache? je sais dire "merci" en chinois, et tu me récites Confucius en version originale... J'ai 3 constantes, server, user et password... je mets ça où dans ton code?
|
|
jeudi 26 octobre 2006 à 17:39:03 |
Re : accès ftp

malalam
|
$rCon = @ftp_connect (FTP_HOST); c'est le serveur
ftp_login ($rCon, FTP_LOGIN, FTP_PWD) c'est le login et le pwd.
(t'as pas bcp regardé...)
|
|
jeudi 26 octobre 2006 à 18:05:26 |
Re : accès ftp

ygarin
|
oui, une fois que tu le montres, c'est simple, autrement, c'était perdu au milieu de 1000 variables... Bon, je suis désolé de passer encore pour un assisté, mais je n'obtiens qu'une page blanche, quels que soient les user/password que je rentre. Mon fichier "verif.php" a cette tête (et je te paie un coup dès que tu passes par Bombay) :
<? $user = $_POST['user']; $password = $_POST['password'];
require_once 'inc/inc.main.php'; $sCmd = $sLocalExp = $sLocalImp = ''; $aForbid = array ('.', '..');
$rCon = @ftp_connect ('ftp.3d-upside-down.com'); if (false === $rCon) { $aMsg[] = array ('TYPE' => 0, 'MSG' => FTP_CONNECT_ERROR); } else { $aMsg[] = array ('TYPE' => 1, 'MSG' => FTP_CONNECT_LOG); } if (false === @ftp_login ($rCon, $user, $password)) { $aMsg[] = array ('TYPE' => 0, 'MSG' => FTP_LOGIN_ERROR); } else { $aMsg[] = array ('TYPE' => 1, 'MSG' => FTP_LOGIN_LOG); }
if (false === @ftp_pasv($rCon, true )) { $aMsg[] = array ('TYPE' => 0, 'MSG' => FTP_PASV_ERROR); } else { $aMsg[] = array ('TYPE' => 1, 'MSG' => FTP_PASV_LOG); }
if (empty ($_POST['dir'])) { $_POST['dir'] = '/'; } if (empty ($_POST['upload'])) { $_POST['upload'] = ''; }
if (false === @ftp_chdir ($rCon, $_POST['dir'])) { $aMsg[] = array ('TYPE' => 0, 'MSG' => FTP_CHDIR_ERROR.' <em>'.$_POST['dir'].'</em>'); } else { $aMsg[] = array ('TYPE' => 1, 'MSG' => FTP_CHDIR_LOG.' <em>'.$_POST['dir'].'</em>'); }
if (isset ($_POST['act']) && !empty ($_POST['act'])) { switch ($_POST['act']) { case 1 : if (false === @ftp_get ($rCon, 'imported/'.$_POST['upload'], $_POST['upload'], FTP_BINARY)) { $aMsg[] = array ('TYPE' => 0, 'MSG' => FTP_GET_ERROR.' <em>'.$_POST['upload'].'</em>'); } else { $aMsg[] = array ('TYPE' => 1, 'MSG' => FTP_GET_LOG.' <em>'.$_POST['upload'].'</em>'); } break; case 2 : if (false === @ftp_put ($rCon, 'retour_commande/'.$_POST['upload'], 'exports_ogilvy/'.$_POST['upload'], FTP_BINARY)) { $aMsg[] = array ('TYPE' => 0, 'MSG' => FTP_GET_ERROR.' <em>'.$_POST['upload'].'</em>'); } else { $aMsg[] = array ('TYPE' => 1, 'MSG' => FTP_GET_LOG.' <em>'.$_POST['upload'].'</em>'); } break; case 3 : if (false === @ftp_put ($rCon, 'stock/'.$_POST['upload'], 'exports_ogilvy/'.$_POST['upload'], FTP_BINARY)) { $aMsg[] = array ('TYPE' => 0, 'MSG' => FTP_GET_ERROR.' <em>'.$_POST['upload'].'</em>'); } else { $aMsg[] = array ('TYPE' => 1, 'MSG' => FTP_GET_LOG.' <em>'.$_POST['upload'].'</em>'); } break; } }
$sCurDir = @ftp_pwd ($rCon);
$aContents = @ftp_nlist($rCon, $sCurDir); if (false === $aContents) { $aMsg[] = array ('TYPE' => 0, 'MSG' => FTP_DIR_ERROR.' <em>'.$sCurDir.'</em>'); } else { $aMsg[] = array ('TYPE' => 1, 'MSG' => FTP_DIR_LOG.' <em>'.$sCurDir.'</em>'); $sCmd .= '<span class="currentDir">REPERTOIRE : <em class="dir">'.$sCurDir.'</em></span><ul>'; foreach ($aContents as $sCont) { $sCmd .= <<<HTML <li><span class="liste" onclick="go ('mainForm', '{$sCont}', 0);" title="Lister">{$sCont}</span> <span class="upload" onclick="go ('mainForm', '{$sCont}', 1)" title="Télécharger en local">[UP]</a></li> HTML; } $sCmd .= '</ul>'; }
$aExport = scandir ('exports'); $aImport = scandir ('imported'); $aExport = array_diff ($aExport, $aForbid); $aImport = array_diff ($aImport, $aForbid); $sLocalExp .= '<span class="currentDir">REPERTOIRE : <em class="dir">EXPORTS</em></span><ul>'; foreach ($aExport as $sFile) { if (strpos ($sFile, 'art')) { $iJs = 3; } elseif (strpos ($sFile, 'cmd')) { $iJs = 2; } $sLocalExp .= <<<HTML <li><span class="liste" onclick="go ('mainForm', '{$sFile}', 0);" title="Lister">{$sFile}</span> <span class="upload" onclick="go ('mainForm', '{$sFile}', {$iJs})" title="Uploader sur le FTP">[UP]</a></li> HTML; } $sLocalExp .= '</ul>'; $sLocalImp .= '<span class="currentDir">REPERTOIRE : <em class="dir">IMPORTS</em></span><ul>'; foreach ($aImport as $sFile) { $sLocalImp .= <<<HTML <li><span class="liste" onclick="go ('mainForm', '{$sFile}', 0);" title="Lister">{$sFile}</span> <span class="upload" onclick="go ('mainForm', '{$sFile}', {$iJs})" title="Uploader sur le FTP">[UP]</a></li> HTML; } $sLocalImp .= '</ul>';
ftp_close ($rCon); ?>
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>XXXXXX</title> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> <link rel="stylesheet" type="text/css" href="<?php echo PATH_CSS; ?>main.css" /> <script type="text/javascript"> function go (sForm, sVal, iMode) { with (document.getElementById (sForm)) { act.value = iMode; switch (iMode) { case 0 : dir.value = sVal; upload.value = ''; break; case 1 : upload.value = sVal; break; case 2 : upload.value = sVal; break; case 3 : upload.value = sVal; break; } submit (); } } </script> </head> <body> <form method="post" action="" id="mainForm"> <p class="hidden"> <input type="hidden" name="act" value="0" /> <input type="hidden" name="dir" value="<?php echo $_POST['dir']; ?>" /> <input type="hidden" name="upload" value="<?php echo $_POST['upload']; ?>" /> </p> </form> <div class="menu"> <span class="menu" onclick="go ('mainForm', '/', 0);">Reconnexion</span> </div> <div class="mainLeft"> <p> FTP </p> <p> <?php echo $sCmd; ?> </p> </div> <div class="mainRight"> <p> LOCAL </p> <p> <?php echo $sLocalExp; ?> </p> <p> <?php echo $sLocalImp; ?> </p> </div> <div class="errors"> <h4>LOG</h4> <p> <?php if (!empty ($aMsg)) { foreach ($aMsg as $aMes) { if (0 === $aMes['TYPE']) { echo '<span class="error">- ',$aMes['MSG'],'</span><br />'; } else { echo '<span class="log">- ',$aMes['MSG'],'</span><br />'; } } } ?> </p> </div> </body> </html>
?>
|
|
jeudi 26 octobre 2006 à 18:11:53 |
Re : accès ftp

ygarin
|
PS : j'ai enlevé la partie à partir de <?xml... car je pense que c'est la partie entrée, non?
|
|
jeudi 26 octobre 2006 à 18:14:16 |
Re : accès ftp

malalam
|
On continuera demain, désolé, ou quelqu'un prendra la relève. Néanmoins, ton serveur est configuré en short_open_tags = On, donc, modifie déjà ça : <?xml version="1.0" encoding="ISO-8859-1"?> => echo '<?xml version="1.0" encoding="ISO-8859-1"?>';
Ensuite, ce script utilise quelques fonctions PHP5, à changer si tu es en PHP4 (scandir () par exemple).
A demain ;-)
|
|
jeudi 26 octobre 2006 à 18:15:49 |
Re : accès ftp

malalam
|
PS : j'ai enlevé la partie à partir de <?xml... car je pense que c'est la partie entrée, non?
voui
|
|
Cette discussion est classée dans : ftp, user, password, mis, accès
Répondre à ce message
Sujets en rapport avec ce message
Comparaison, si ok, redirection [ par jmobylette ]
Bonjour !Voilà, en fait je veux faire un chat pour il faut s'identifier avec le login et mdp eut sur le forum.Donc ben j'ai fait un formulaire avec lo
FTP [ par loyousse ]
Salut, j'ai un probleme avec ce code : $ftp_server="http://10.79.180.81"; $ftp_user_name="stagsg"; $ftp_user_pass="stage"; // création de l
SQL MD5 PASSWORD [ par CDTechStudio ]
Salut j'ai une petite question mais importante :PDans le projet que je monte, jutilise SQL, et pour le password du user qui senregistre lors de linsta
Ftp avec localhost [ par xavdk ]
Bonjour à tous,ma question est vraiment simple:Pourquoi le bout de code suivant ne marche pas en local (avec easyPhp1-8 Apache etc...) alors que avec
ftp_get copie contenu repertoire ftp vers autre site ftp [ par tahbre ]
Bonjour, Je veux me connecter à un site ftp autre que le mien, copier tout ce qu'il ya à l'intérieur du répertoire 420 dans mon exemple, et importer l
ftp EN LOCAL [ par zakuli ]
Bonjour,Débutant en ftp, je voudrais tout simplement exécuter LOCALEMENT le script ci joint :$conn_id = ftp_connect($ftp_server); $login_result = ftp_
PB de retour chariot [ par fredericmaill ]
bonjour,j'ai un probleme de retour chariot.j'aimerais faire un retour a la ligne dans une boucle mais j'utilise un systheme de concatenation.c ma conc
Accès FTP à www [ par d_alma ]
Bonjour, Je souhaiterais pouvoir avoir accès en FTP à un répertoire du www (afin de mettre à jour des donner à afficher en Intranet!) J'utilise vsftp
problème dans une classe [ par tempo199 ]
Bonjour ou bonsoir à tousJe suis programmeur php à mes heures et plutôt pas mauvaiscependant, je me met à peine aux notions objet de php et je rencont
Lo, prob de gestion de fichier sur ftp en php [ par destiny ]
lo all,Simple, je crée un fichier, j'insere des mails dedans pour un soft de mailing.mon code ://Création du fichier temp de la liste email visiteur$c
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : GOOGLE MAPRE : GOOGLE MAP par inwebo
Cliquez pour lire la suite par inwebo GOOGLE MAPGOOGLE MAP par fatmanajjar
Cliquez pour lire la suite par fatmanajjar
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|