IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Probleme connexion serveur avant upload


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 8
    Points : 3
    Points
    3
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    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.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    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.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    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é.

  6. #6
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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);

  8. #8
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    C'est louche que tu puisse utiliser le wrapper SSH2 mais pas SCP, bref, si ça marche, mets le thread en résolu.

Discussions similaires

  1. [Config] BO XI R2 changement serveur probleme connexion
    Par pnoel-bi dans le forum Administration-Migration
    Réponses: 1
    Dernier message: 20/06/2011, 23h12
  2. [Utilisation] Probleme connexion à mon serveur Subversion
    Par roroo888 dans le forum Subversion
    Réponses: 0
    Dernier message: 03/09/2010, 19h34
  3. Probleme connexion serveur sql
    Par grungy-soul dans le forum Administration
    Réponses: 1
    Dernier message: 28/06/2008, 11h35
  4. Probleme connexion Client 10g --> Serveur 8.1.7.4
    Par droopyy dans le forum Oracle
    Réponses: 9
    Dernier message: 24/03/2006, 16h05
  5. Problemes de connexion Serveur Interbase
    Par OasisMan dans le forum Bases de données
    Réponses: 1
    Dernier message: 08/03/2005, 08h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo