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 30/05/2007, 11h44   #1
Futur Membre du Club
 
Inscription : novembre 2005
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 101
Points : 19
Points : 19
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 :
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
AIexis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 13h22   #2
Rédacteur
 
Avatar de Yoshio
 
Homme
Inscription : septembre 2005
Messages : 1 741
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 1 741
Points : 1 497
Points : 1 497
Tu n'a spécifier aucun protocle. localhost n'étant pas suffisant.
Essaye avec
Citation:
'http://'.$server
Tu peux afficher aussi le $errno et $errstr et terminer ton header par \r\n.
Utilise fwrite() aussi.
Yoshio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 14h01   #3
Futur Membre du Club
 
Inscription : novembre 2005
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 101
Points : 19
Points : 19
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
AIexis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 14h17   #4
Rédacteur
 
Avatar de Yoshio
 
Homme
Inscription : septembre 2005
Messages : 1 741
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 1 741
Points : 1 497
Points : 1 497
Fais un
Code :
$server = gethostbyname($server);
Sinon met ton IP local genre 192.168.1.10.
Yoshio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 14h28   #5
Futur Membre du Club
 
Inscription : novembre 2005
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 101
Points : 19
Points : 19
Citation:
Envoyé par Yoshio
Fais un
Code :
$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.
AIexis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 14h38   #6
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
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 :
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);
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 14h42   #7
Futur Membre du Club
 
Inscription : novembre 2005
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 101
Points : 19
Points : 19
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 :
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 :
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.
AIexis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 14h57   #8
Rédacteur
 
Avatar de Yoshio
 
Homme
Inscription : septembre 2005
Messages : 1 741
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 1 741
Points : 1 497
Points : 1 497
Euh met un peu tcp:// au lieu de http://

Essaye ca bien que ca ne devrais pas changer grand chose non plus :
Code :
$socket = stream_socket_client('tcp://'.$ip.':'.$port, $errno, $errstr, 30);
Et fait un var_dump, echo, print n'importe quoi des $errstr et $errno !
Yoshio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 15h16   #9
Futur Membre du Club
 
Inscription : novembre 2005
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 101
Points : 19
Points : 19
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 :
$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.
AIexis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 15h51   #10
Rédacteur
 
Avatar de Yoshio
 
Homme
Inscription : septembre 2005
Messages : 1 741
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 1 741
Points : 1 497
Points : 1 497
As tu au moins essayer ?
Yoshio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 15h52   #11
Membre régulier
 
Avatar de NiHiL
 
Inscription : juin 2006
Messages : 102
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 102
Points : 88
Points : 88
On pourrai avoir le nom de ton lugin winamp pour s'amuser nous aussi xD
NiHiL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 15h55   #12
Futur Membre du Club
 
Inscription : novembre 2005
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 101
Points : 19
Points : 19
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)
AIexis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 15h59   #13
Rédacteur
 
Avatar de Yoshio
 
Homme
Inscription : septembre 2005
Messages : 1 741
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 1 741
Points : 1 497
Points : 1 497
Je testerais bien mais Winamp ... lol

Sinon à part ca j'ai plus d'idée.
Yoshio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 16h04   #14
Futur Membre du Club
 
Inscription : novembre 2005
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 101
Points : 19
Points : 19
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
AIexis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 16h16   #15
Membre régulier
 
Avatar de NiHiL
 
Inscription : juin 2006
Messages : 102
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 102
Points : 88
Points : 88
C'est marrant ce truc, je vais l'installer sur les ordi de mes potes pour leur faire des blagues xD
NiHiL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 16h21   #16
Futur Membre du Club
 
Inscription : novembre 2005
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 101
Points : 19
Points : 19
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...
AIexis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 17h11   #17
Membre régulier
 
Avatar de NiHiL
 
Inscription : juin 2006
Messages : 102
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 102
Points : 88
Points : 88
Code :
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.
NiHiL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 17h15   #18
Futur Membre du Club
 
Inscription : novembre 2005
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 101
Points : 19
Points : 19
Citation:
Envoyé par NiHiL
Code :
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
AIexis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 17h17   #19
Membre régulier
 
Avatar de NiHiL
 
Inscription : juin 2006
Messages : 102
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 102
Points : 88
Points : 88
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
<?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.
NiHiL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 17h20   #20
Membre régulier
 
Avatar de NiHiL
 
Inscription : juin 2006
Messages : 102
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 102
Points : 88
Points : 88
Chez moi ça marche.
NiHiL est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h11.


 
 
 
 
Partenaires

Hébergement Web