Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/12/2010, 16h06   #1
Invité de passage
 
Inscription : novembre 2010
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 8
Points : 0
Points : 0
Par défaut Probleme connexion serveur avant upload

Bonjour,

Je viens a vous car je ne vois pas du tout d'ou viens mon problème, je souhaite réaliser un systeme d'upload de fichier par un formulaire php puis envoyé tout ca vers un serveur ftp.

Mais justement je n'arrive pas a me connecter a ce serveur.
J'ai tout essayé en ssh2 ou il me met qu'il ne connait pas la librairie, en ftp normal ou il y a echec de la connection et en ftp_ssl ou la aussi ma connection ne fonctionne pas.

Voici aussi ici un apercu de mon phpinfo:

Registered PHP Streams: zip, php, file, data, http, ftp, compress.bzip2, compress.zlib, https, ftps
Registered Stream Socket Transports: tcp, udp, unix, udg, ssl, sslv3, sslv2, tls

Et voici mon code: ici avec la variante ou j'ai testé avec ftp

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
	if (isset($_POST['upload']))
	{	
$ftp_user_name="";
$ftp_user_pass="";
$ftp_server="";
 
 
// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server,"22","2");
 
// Identification avec un nom d'utilisateur et un 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 au serveur $ftp_server pour l'utilisateur $ftp_user_name";
    exit;
} else {
    echo "Connexion au serveur $ftp_server, pour l'utilisateur $ftp_user_name";
}
 
// Chargement d'un fichier
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY); 
 
// Vérification du status du chargement
if (!$upload) {
    echo "Le chargement FTP a échoué!";
} else {
    echo "Chargement de $source_file vers $ftp_server en tant que $destination_file";
}
 
// Fermeture du flux FTP
ftp_close($conn_id);  	
	}
 
?>
Code :
1
2
3
4
<form action="mail.php" method="post" enctype="multipart/form-data">
    <input type="file" name="fichier"  />
    <input type="submit" name="upload" value="Uploader" />
</form>
Je réclame donc votre aide.
x333xx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2010, 13h53   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
Hello, tu pourrais enlever le @ devant ftp_login et nous donner le contenu de l'error log d'apache produit au moment de l'exécution, ça permettrait d'y voir plus clair.
Active également l'affichage des erreurs dans ton php.ini.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2010, 15h25   #3
Invité de passage
 
Inscription : novembre 2010
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 8
Points : 0
Points : 0
Alors enfaite c'est un peu compliqué, mais je suis un peu plus avancé, je travail actuellement sur le serveur de mon iut.
Pour faire simple j'execute mon code sur un serveur A (un serveur web) dont j'ai posté le phpinfo dans mon premier message et je veux me connecté a un serveur B en ssh (sftp).
Concernant le php.ini j'y ais pas accès .
Avec ces nouvelles info mon code est donc bon a jeté lol.
J'ai donc commencé a en récrire un pour me connecter en ssh2 sur le serveur B.

Voici le bout, il est assez simpliste il proviens de la donc de php.net

Code :
1
2
3
4
5
6
7
8
9
<?php
$connection = ssh2_connect('shell.example.com', 22);
 
if (ssh2_auth_password($connection, 'username', 'secret')) {
  echo "Authentication Successful!\n";
} else {
  die('Authentication Failed...');
}
?>
Lors de son exécution j'obtiens ce message: Fatal error : Call to undefined function ssh2_connect().
Il provient du faite que la librairie ssh2 est pas installé sur le serveur ca je le sait, mais je sais pas comment le contourner
x333xx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2010, 16h34   #4
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
Bon déjà si les admin ont pas mis de clause override, tu peux faire des ini_set: http://php.net/manual/en/function.ini-set.php pour forcer l'affichage des erreurs avec error_reporting.

Si tu n'a pas les accès root ou le sudo sur le serveur, tu peux tout simplement pas installer cette lib. J'imagine que tu as déjà vérifié mais je pose la question au cas ou; tu as vérifié que le serveur à le port 21 ouvert ? sftp c'est un peu particulier en effet et tout les serveurs ne l'installent pas nativement.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 13h27   #5
Invité de passage
 
Inscription : novembre 2010
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 8
Points : 0
Points : 0
Probleme règlé: j'ai tout simplement demandé a l'admin de m'installer la librairie ssh2.

Cependant j'aurai encore une question, maintenant que ma connexion est faite, comment envoyer le fichier?
Je sais qu'avec un ftp normal on fais un ftp_put mais avec ssh2 je m'en sort pas, j'ai deja parcouru la doc mais je vois pas quel procédure employé.
x333xx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 17h59   #6
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
ça se passe par là : http://php.net/manual/en/function.ssh2-scp-send.php
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2011, 15h15   #7
Invité de passage
 
Inscription : novembre 2010
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 8
Points : 0
Points : 0
Merci du coup de main ca ma mis sur la voie, mais j'ai utilisé une autre solution car le scp-send marchais pas.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$sftp = ssh2_sftp($connection);
  $sftpStream = @fopen("ssh2.sftp://$sftp/$dstFile", "w");
 
  $data_to_send = @file_get_contents($srcFile);
 
  if ($data_to_send === false) {
        throw new Exception("Could not open local file: $srcFile.");
    }
 
    if (@fwrite($sftpStream, $data_to_send) === false) {
        throw new Exception("Could not send data from file: $srcFile.");
    }
 
    fclose($sftpStream);
x333xx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2011, 13h34   #8
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
C'est louche que tu puisse utiliser le wrapper SSH2 mais pas SCP, bref, si ça marche, mets le thread en résolu.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h50.


 
 
 
 
Partenaires

Hébergement Web