Erreur: client FTP Web en HTTP Request
SweetyMech
Messages postés
2
Statut
Membre
-
SweetyMech Messages postés 2 Statut Membre -
SweetyMech Messages postés 2 Statut Membre -
Bonjour,
J'explique mon cas :
Je souhaite faire un client FTP en Web. Jusque là pas de Pb. En utilisant le PHP, j'arrive à me débrouiller sans pb.
Je suis donc parti du code suivant :
Maintenant, j'aimerai, avant de continuer, faire en sorte que mon code soit dynamique.
C'est à dire que j'ai un bouton pour me déconnecter du serveur sans avoir à recharger la page. C'est exactement l'intéret du HTTP Request. Donc je fais ce qui suis :
le code http request
Le fichier connexion.php :
ça marche maintenant je rajoute l'affichage d'un répertoire :
Et là ça ne marche pas :(
Pourquoi ? parceque le contenu de l'id de connexion ftp à transmettre aux différents fichiers php est 'Resource id #2' et il y a des caractères interdits (le #).
Pour faire simple, il faudrai que je puisse faire :
http://ls.php&conn_id=Resource id #2
Mais ça c'est pas possible. Alors comment faire ?
Merci de votre aide, ça fait trop longtemps que je bloque sur ce problème.
J'explique mon cas :
Je souhaite faire un client FTP en Web. Jusque là pas de Pb. En utilisant le PHP, j'arrive à me débrouiller sans pb.
Je suis donc parti du code suivant :
<?php
function selectimg($droit,$ext)
{
return $img;
}
function ls($conn_id) // sert à afficher la liste des fichiers
{
$ind_doss=0;
$ind_fich=0;
$tableau=ftp_rawlist($conn_id, "."); // je fais un "dir" et je stocke le résultat dans tableau[]
/*echo "<table width=\"500\" border=\"1\">";
echo "<br>";*/
if ($tableau) // si la commande a marché
{
for($i=0;$i<count($tableau);$i++) // je nettoi le résultat
{
$chaine = trim($tableau[$i]); // => je vire les espaces au début & à la fin
for ($j=0;$j<20;$j++)
{
$chaine = str_replace(" "," ",$chaine); // => Je vire les espaces en trop au milieu de la chaine
}
list($droit,$temp,$group,$owner,$size,$mois,$jour,$tmp2,$nom)=explode(" " , $chaine);
$ext =substr($nom, strlen($nom)-4, strlen($nom)-1); // extention du fichier
// icone du fichier
if (strpos(" ".$droit,"d"))
{
$img="/swing/ftp/img/dossier.bmp"; // C'est un dossier
$dossier[$ind_doss]=$img." ".$droit." ".$group." ".$owner." ".$size." ".$nom;
$ind_doss++;
}
else { // C'est un fichier
if ($ext==".txt")
{
$img="/swing/ftp/img/txt.bmp";
$fichier[$ind_fich]=$img." ".$droit." ".$group." ".$owner." ".$size." ".$nom;
$ind_fich++;
}
else {
if ($ext==".doc")
{
$img="/swing/ftp/img/doc.bmp";
$fichier[$ind_fich]=$img." ".$droit." ".$group." ".$owner." ".$size." ".$nom;
$ind_fich++;
}
else {
if ($ext==".jpg")
{
$img="/swing/ftp/img/jpg.bmp";
$fichier[$ind_fich]=$img." ".$droit." ".$group." ".$owner." ".$size." ".$nom;
$ind_fich++;
}
else{
if ($ext==".xls")
{
$img="/swing/ftp/img/xls.bmp";
$fichier[$ind_fich]=$img." ".$droit." ".$group." ".$owner." ".$size." ".$nom;
$ind_fich++;
}
else {
if ($ext==".zip")
{
$img="/swing/ftp/img/zip.bmp";
$fichier[$ind_fich]=$img." ".$droit." ".$group." ".$owner." ".$size." ".$nom;
$ind_fich++;
}
else {
$img="/swing/ftp/img/other.bmp";
$fichier[$ind_fich]=$img." ".$droit." ".$group." ".$owner." ".$size." ".$nom;
$ind_fich++;
}
}
}
}
}
}
//echo "<tr>";
// <a href=google.fr img src=\"/swing/ftp/img/download.bmp\"> </a>
/*echo "
<td width=\"5%\">
<img src=\"$img\">
<td width=\"85%\">
$droit $group $owner $size $nom
<td width=\"5%\">
<img src=\"/swing/ftp/img/download.bmp\">
<td width=\"5%\">
<img src=\"/swing/ftp/img/corbeille.bmp\">
</td>"; // on affiche le fichier.
echo "</tr>";*/
}
//echo "</table>";
}
else
{
echo "ça merdoit comme il faut !!! <br>";
}
echo "<table width=\"500\" border=\"1\">";
echo "<br>";
echo "<tr>";
echo " <td width=\"5%\">
<img src=/swing/ftp/img/dossier.bmp>
<td width=\"20\">
<b> .. </b>
<td width=\"65%\">
<td width=\"5%\">
<td width=\"5%\">
";
echo "</tr>";
for($i=0;$i<count($dossier);$i++)
{
list($img,$droit,$group,$owner,$size,$nom)=explode(" " , $dossier[$i]);
echo "
<td width=\"5%\">
<img src=\"$img\">
<td width=\"20\">
<b> $nom </b>
<td width=\"65%\">
$droit $size
<td width=\"5%\">
<img src=\"/swing/ftp/img/download.bmp\">
<td width=\"5%\">
<img src=\"/swing/ftp/img/corbeille.bmp\">
</td>"; // on affiche le fichier.
echo "</tr>";
}
for($i=0;$i<count($fichier);$i++)
{
list($img,$droit,$group,$owner,$size,$nom)=explode(" " , $fichier[$i]);
echo "
<td width=\"5%\">
<img src=\"$img\">
<td width=\"20\">
<b> $nom </b>
<td width=\"65%\">
$droit $size
<td width=\"5%\">
<img src=\"/swing/ftp/img/download.bmp\">
<td width=\"5%\">
<img src=\"/swing/ftp/img/corbeille.bmp\">
</td>"; // on affiche le fichier.
echo "</tr>";
}
echo "</table>";
}
$ftp_server="192.168.0.13";
$ftp_user_name="fred";
$ftp_user_pass="fred";
// 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 "La connexion FTP a échoué!";
echo "Tentative de connexion à $ftp_server avec $ftp_user_name";
die;
} else {
echo "Connecté au serveur ftp : $ftp_server <br> Login utilisé : $ftp_user_name <br>";
}
ls($conn_id);
// Téléchargement d'un fichier.
//$upload = ftp_put($conn_id, "$destination_file", "$source_file", FTP_BINARY);
// Vérification de téléchargement
//if (!$upload) {
// echo "Le téléchargement Ftp a échoué!";
// } else {
// echo "Téléchargement de $source_file sur $ftp_server en $destination_file";
// }
// Fermeture de la connexion FTP.
ftp_quit($conn_id);
echo "<br> Déconnextion de $ftp_user_name sur le serveur $ftp_server";
?>
Maintenant, j'aimerai, avant de continuer, faire en sorte que mon code soit dynamique.
C'est à dire que j'ai un bouton pour me déconnecter du serveur sans avoir à recharger la page. C'est exactement l'intéret du HTTP Request. Donc je fais ce qui suis :
le code http request
<html>
<head>
<script type="text/javascript">
var xmlhttp
var IdConn
function state_Change() // traitement de la réception des données httprequest
{
var reponse
document.getElementById('T1').innerHTML="[chargement en cours]";
if (xmlhttp.readyState==4) // Si toutes les donnée sont reçues
{
if (xmlhttp.status==200)
{
IdConn = xmlhttp.responseText // je stocke les données dans IdConn
document.getElementById('T1').innerHTML = IdConn; // affichage dans le Div T1
}
}
}
function HttpRequest(url)
{
xmlhttp=null
xmlhttp=new XMLHttpRequest() // création de la requète httprequest
if (xmlhttp!=null) // Si la création a fonctionné :
{
xmlhttp.onreadystatechange=state_Change // Dès qu'il y a un changement d'état => execute state_Change
xmlhttp.open("GET",url,true) // ouvre du fic en GET
xmlhttp.send(null) // envoi de la requète
}
}
function connexion()
{
HttpRequest('connexion.php')
}
function logout()
{
var send //="logout.php&conn_id="+document.getElementById('T2').value
//document.getElementById('T1').innerHTML=document.getElementById('T2').value;
//send = document.getElementById('T1').innerHTML;
send='logout.php&conn_id="'+IdConn+'"';
// alert(send);
//alert(document.getElementById('T1').innerHTML);
document.getElementById('T1').innerHTML=HttpRequest('ls.php&'+send')
}
</script>
</head>
<div id="T1" style="border:1px solid black;height:400;width:800"></div><br />
<button onClick="javascript: connexion()">Connexion</button>
<button onClick="javascript: logout()">logout</button>
<p> </p>
</p>
</body>
</html>
Le fichier connexion.php :
<?php
$ftp_server="192.168.0.13";
$ftp_user_name="fred";
$ftp_user_pass="fred";
// 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 "Echec Connexion Erreur 1";
} else
{
echo "$conn_id";
}
ftp_quit($conn_id);
?>
ça marche maintenant je rajoute l'affichage d'un répertoire :
<?php
$conn_id=$_GET['conn_id'];
//$conn_id="Resource id #2";
if (!$conn_id)
{
echo "Echec ! Numero de connexion non definit.";
} else
{
if (ftp_pwd($conn_id))
{
echo "ftp_pwd($conn_id)";
} else
{
echo "erreur à la l'envoi de la requète";
}
}
?>
Et là ça ne marche pas :(
Pourquoi ? parceque le contenu de l'id de connexion ftp à transmettre aux différents fichiers php est 'Resource id #2' et il y a des caractères interdits (le #).
Pour faire simple, il faudrai que je puisse faire :
http://ls.php&conn_id=Resource id #2
Mais ça c'est pas possible. Alors comment faire ?
Merci de votre aide, ça fait trop longtemps que je bloque sur ce problème.
A voir également:
- Erreur: client FTP Web en HTTP Request
- Erreur t32 ✓ - Forum Livebox
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Une erreur s'est produite instagram ✓ - Forum Instagram