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 :

Problème traitement requête http


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Problème traitement requête http
    Bonjour à tous !

    Avant toute chose, désolé si le topic n'est pas placé dans la bonne catégorie, j'avoue avoir eu un peu de mal à choisir.

    J'ai un problème qui me dépasse concernant une requête en AJAX et son traitement en php (j'avais initialement posté sur le forum AJAX mais on m'a redirigé ici)

    Voici le souci:
    J'envoie en AJAX une simple requête get en asynchrone toutes les 3 secondes et le script php de destination et il est censé lui renvoyer des informations que je récupère d'un fichier xml.

    Tout fonctionnait très bien jusqu'à ce que je change de version de php.
    Avant j'utilisais la version 5.3 et aucun problème ne se posait.

    J'utilise maintenant la version 5.2.9-2 afin de bénéficier de l'extension id3(j'ai essayé d'installer l'extension via les dll pour la 5.3 mais cela ne fonctionne pas) C'est là que j'ai un souci.
    Manifestement ma requête n'est jamais reçue... je ne comprends vraiment pas.

    Voilà le script utilisé côté serveur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    require "infoMorceau.php";
    $infoMorceau = infoMorceau();
    echo "$infoMorceau";
    ?>
    infoMorceau.php est un peu plus long et contient une fonction me permettant de récupérer les informations qui m'intéressent (en l'occurence des métadonnées de mp3, je travaille sur une webradio)

    Je ne sais pas si c'est vraiment utile mais voilà l'appel AJAX que j'utilise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    var xhr_object = getXMLHttpRequest();
    xhr_object.open("GET", fichier, true);  
     
    xhr_object.onreadystatechange = function()
    {	
    	if(xhr_object.readyState==4 && (xhr_object.status == 200 || xhr_object.status == 0)) 
    	{	
    	    writediv('<p>'+xhr_object.responseText+'</p>', 'infoSong');
    	}
    }
    xhr_object.send(null);
    Y'a t-il une différence dans le traitement des requêtes pour les deux versions de php ?

    J'utilise Wamp en guise de serveur.
    Merci beaucoup d'avance !

  2. #2
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Non aucune différence dans le traitement des requêtes, peut-on voir le contenu de la fonction initMorceau ? Ainsi que la valeur de la variable "fichier" ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Bien sur !

    Voilà pour la fonction infoMorceau qui permet de récupérer les métadonnées
    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
     
    <?php
    function infoMorceau()
    {
    	//création d'une socket vers le serveur et sur le port 8000 (cf configuration icecast)
    	$fp=@fsockopen('localhost',8000,$noerr,$descerr);
     
    	if (!$fp)//si erreur lors de l'ouverture de la socket 
    	{
    	   return "Erreur socket : $noerr->$descerr";
    	} 
    	else //pas d'erreur
    	{
    	   fputs($fp,"GET /infos.xsl HTTP/1.1\nUser-Agent:Mozilla\n\n");
    	   if(!feof($fp))
    	   {
    		  $fp_data=fread($fp,31337); //lecture des 31337 premiers octets de $fp
    	   }
    		fclose($fp);
    	}
     
    	//si la radio ne diffuse pas (serveur desactivé ou client source ne fonctionnant pas) la page que l'on recupère à partir de infos.xsl ne contient rien
    	if( preg_match("#On air#",$fp_data) ) //si la radio diffuse alors on peut trouver la chaine "On air" dans les données générées par le .xsl
    	{
    		$infos=explode( "#", $fp_data);
    		return "$infos[1]"; //$infos[1] contient le nom de l'artiste et le titre du morceau
    	}
    	else //la radio est hors ligne
    	{
    		return 'radio offline...';
    	}
    }
    ?>
    Et dans mon javascript j'appelle mon script php comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    setInterval('file(\'recupInfos.php\')', 3000);
    file() correspond à la fonction dans laquelle j'instancie mon objet xmlhttprequest + traitement du résultat (en l'occurence l'affichage dans une div)

  4. #4
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour,

    Et si tu enlèves le @ devant fsockopen que se passe-t-il ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    J'ai enlevé le "@" avec beaucoup de conviction mais rien...

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Joie alégresse et bonne humeur j'ai trouvé !

    En fait c'est tout simple... manifestement il y a un souci avec 'localhost' sur les versions 5.2, je l'ai remplacé par '127.0.0.1' et tout fonctionne correctement !

    J'me sens mieux.

    Dans tous les cas merci à toi pour ton aide !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Batch] Problème avec requête HTTP
    Par Cyanatide dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 11/09/2012, 13h34
  2. [AJAX] résultat requête http
    Par MrVoid dans le forum AJAX
    Réponses: 2
    Dernier message: 01/06/2010, 11h43
  3. Problème requête HTTP
    Par Risike dans le forum Développement
    Réponses: 3
    Dernier message: 29/06/2007, 02h40
  4. Problème requête HTTP
    Par Risike dans le forum Langage
    Réponses: 2
    Dernier message: 28/06/2007, 11h35

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