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 :

[FTP] fsockopen pour un nul


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 103
    Par défaut [FTP] fsockopen pour un nul
    Bonjour
    J'ai installé une interface web sur mon winamp.
    Ca permet par exemple de faire play/stop, en envoyant une commande du genre:
    http://localhost:90/stop

    Très simple donc.
    Avec easyphp, j'aimerais envoyer cette commande, j'ai donc écris ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $serveur = "localhost";
    $port = "90" ;
    $fp = fsockopen($serveur,$port,$errno, $errstr, 3);
    $req = 'GET /stop';
    fputs($fp, $req);
    Malheureusement il ne se passe rien du tout.
    Si quelqu'un peut m'aider, ça serait pas inutile de me guider, merci d'avance

  2. #2
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Par défaut
    Tu n'a spécifier aucun protocle. localhost n'étant pas suffisant.
    Essaye avec
    'http://'.$server
    Tu peux afficher aussi le $errno et $errstr et terminer ton header par \r\n.
    Utilise fwrite() aussi.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 103
    Par défaut
    Citation Envoyé par Yoshio
    Tu n'a spécifier aucun protocle. localhost n'étant pas suffisant.
    Essaye avec

    Tu peux afficher aussi le $errno et $errstr et terminer ton header par \r\n.
    Utilise fwrite() aussi.
    Merci pour ta réponse.
    J'ai essayé de mettre:
    $serveur = "http://localhost";

    Mais j'obtiens:

    Warning: fsockopen(): php_network_getaddresses: gethostbyname failed

    J'ai pas dû bien comprendre

  4. #4
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Par défaut
    Fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $server = gethostbyname($server);
    Sinon met ton IP local genre 192.168.1.10.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 103
    Par défaut
    Citation Envoyé par Yoshio
    Fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $server = gethostbyname($server);
    Sinon met ton IP local genre 192.168.1.10.
    Avec gethostbyname, j'ai la même erreur.
    Avec l'ip, c'est idem qu'avec localhost, c'est à dire pas d'erreur, mais page blanche, et aucune modification à winamp.

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    fsockopen ne prend pas en charge les protocoles applicatifs (http, ftp, ...) dans son premier paramètre et fait très bien la résolution de nom. Je vous recommande d'utiliser, si vous en avez la possibilité, l'extension cURL qui est beaucoup plus simple à employer et plus performante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ch = curl_init('http://localhost:90/stop');
    curl_setopt($ch, CURLOPT_NOBODY, TRUE);
    curl_exec($ch) or die(curl_error($ch));
    curl_close($ch);

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 103
    Par défaut
    Citation Envoyé par julp
    fsockopen ne prend pas en charge les protocoles applicatifs (http, ftp, ...) dans son premier paramètre et fait très bien la résolution de nom. Je vous recommande d'utiliser, si vous en avez la possibilité, l'extension cURL qui est beaucoup plus simple à employer et plus performante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ch = curl_init('http://localhost:90/stop');
    curl_setopt($ch, CURLOPT_NOBODY, TRUE);
    curl_exec($ch) or die(curl_error($ch));
    curl_close($ch);
    Je suis pas sûr qu'il soit possible d'installer curl sur easyphp, mais je vais me renseigner.
    Merci !

    Edition: si, curl est fourni en standard comme extension possible avec easyphp, donc pour ça c'est ok.
    Malheureusement le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ch = curl_init('http://localhost:90/stop');
    curl_setopt($ch, CURLOPT_NOBODY, TRUE);
    curl_exec($ch) or die(curl_error($ch));
    curl_close($ch);
    n'a pas l'air de fonctionner mieux
    Je comprends pas. Si je mets 'http://localhost:90/stop' dans un navigateur, ça stoppe winamp sans problème.

  8. #8
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Par défaut
    Euh met un peu tcp:// au lieu de http://

    Essaye ca bien que ca ne devrais pas changer grand chose non plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $socket = stream_socket_client('tcp://'.$ip.':'.$port, $errno, $errstr, 30);
    Et fait un var_dump, echo, print n'importe quoi des $errstr et $errno !

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 103
    Par défaut
    Citation Envoyé par Yoshio
    Euh met un peu tcp:// au lieu de http://

    Essaye ca bien que ca ne devrais pas changer grand chose non plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $socket = stream_socket_client('tcp://'.$ip.':'.$port, $errno, $errstr, 30);
    Et fait un var_dump, echo, print n'importe quoi des $errstr et $errno !
    Bah non, c'est de l'http, pas du tcp
    Et sinon $errno contient 0, et $errstr contient rien.

  10. #10
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Par défaut
    As tu au moins essayer ?

  11. #11
    Membre éprouvé Avatar de NiHiL
    Inscrit en
    Juin 2006
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 101
    Par défaut
    On pourrai avoir le nom de ton lugin winamp pour s'amuser nous aussi xD

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 103
    Par défaut
    Citation Envoyé par Yoshio
    As tu au moins essayer ?
    Oui, j'ai essayé, bien sur !
    Je ne néglige aucune piste
    Citation Envoyé par NiHiL
    On pourrai avoir le nom de ton lugin winamp pour s'amuser nous aussi xD
    Bien sur, c'est Wawi (winamp web interface plugin), téléchargeable ici:
    http://www.winamp.com/plugins/details/92511

    (je précise, pour ceux qui voudraient essayer sans configurer, que le port par défaut est 80, pas 90. J'ai dû changer parce que j'ai déjà apache sur le port 80, forcément)

  13. #13
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Par défaut
    Je testerais bien mais Winamp ... lol

    Sinon à part ca j'ai plus d'idée.

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 103
    Par défaut
    Citation Envoyé par Yoshio
    Je testerais bien mais Winamp ... lol
    Une allergie ?

    Citation Envoyé par Yoshio
    Sinon à part ca j'ai plus d'idée.
    Merci quand même

  15. #15
    Membre éprouvé Avatar de NiHiL
    Inscrit en
    Juin 2006
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 101
    Par défaut
    C'est marrant ce truc, je vais l'installer sur les ordi de mes potes pour leur faire des blagues xD

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 103
    Par défaut
    Citation Envoyé par NiHiL
    C'est marrant ce truc, je vais l'installer sur les ordi de mes potes pour leur faire des blagues xD

    C'est pas sur que le firewall d'xp (ou vista, je suppose) apprécie beaucoup de recevoir des requetes de ce genre

    Mais sinon, t'as pas une idée pour mon code ?
    cURL devrait fonctionner normalement, je comprends vraiment pas où ça bloque...

  17. #17
    Membre éprouvé Avatar de NiHiL
    Inscrit en
    Juin 2006
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 101
    Par défaut
    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
     
    <?PHP   
     
    /* Initialisation de curl 
    ----------------------------------*/ 
    $ch = curl_init();   
     
    /* configuration des options 
    ----------------------------------*/ 
    curl_setopt($ch, CURLOPT_URL, 'http://localhost:90/stop'); 
    curl_setopt($ch, CURLOPT_HEADER, FALSE); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); 
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
    curl_setopt($ch, CURLOPT_USERPWD, '[username]:[password]');  
     
    /* exécution de la session
    ----------------------------------*/ 
    $results = curl_exec($ch);   
     
    ?>
    Essaye ca en remplacant [username]:[password] par les valeurs que t'as définit dans le plugin.

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 103
    Par défaut
    Citation Envoyé par NiHiL
    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
     
    <?PHP   
     
    /* Initialisation de curl 
    ----------------------------------*/ 
    $ch = curl_init();   
     
    /* configuration des options 
    ----------------------------------*/ 
    curl_setopt($ch, CURLOPT_URL, 'http://localhost:90/stop'); 
    curl_setopt($ch, CURLOPT_HEADER, FALSE); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); 
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
    curl_setopt($ch, CURLOPT_USERPWD, '[username]:[password]');  
     
    /* exécution de la session
    ----------------------------------*/ 
    $results = curl_exec($ch);   
     
    ?>
    Essaye ca en remplacant [username]:[password] par les valeurs que t'as définit dans le plugin.
    J'y ai cru, mais non, ça donne toujours rien
    En effet, j'avais complètement zappé cette histoire de login/mot de passe (oui, je suis champion des fois )
    malheureusement c'est toujours pas concluant

  19. #19
    Membre éprouvé Avatar de NiHiL
    Inscrit en
    Juin 2006
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 101
    Par défaut
    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
    <?PHP   
     
    /* Initialisation de curl 
    ----------------------------------*/ 
    $ch = curl_init();   
     
    /* configuration des options 
    ----------------------------------*/ 
    curl_setopt($ch, CURLOPT_URL, 'http://localhost:90/stop'); 
    curl_setopt($ch, CURLOPT_HEADER, TRUE); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); 
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
    curl_setopt($ch, CURLOPT_USERPWD, '[username]:[password]');  
     
    /* exécution de la session
    ----------------------------------*/ 
    $headers = curl_exec($ch); 
    $results = curl_exec($ch);
     
    var_dump($headers);
    var_dump($results); 
     
    ?>
    Montre moi ce qu'il retourne.

  20. #20
    Membre éprouvé Avatar de NiHiL
    Inscrit en
    Juin 2006
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 101
    Par défaut
    Chez moi ça marche.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [FTP] Problème pour uploader un fichier
    Par Crazyblinkgirl dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 07/01/2008, 22h21
  2. Aide pour un nul
    Par maxti dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 08/12/2005, 17h50
  3. Réponses: 6
    Dernier message: 06/11/2005, 11h10
  4. C++ pour les nuls => Linux => Problème
    Par wizardman dans le forum Linux
    Réponses: 6
    Dernier message: 21/09/2005, 00h53
  5. Apprendre le réseau (pour les nuls)
    Par __fabrice dans le forum Développement
    Réponses: 5
    Dernier message: 08/03/2005, 13h49

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