From: <ara...@us...> - 2008-08-24 13:14:18
|
Revision: 241 http://easybox-mod.svn.sourceforge.net/easybox-mod/?rev=241&view=rev Author: aragornis Date: 2008-08-24 13:14:10 +0000 (Sun, 24 Aug 2008) Log Message: ----------- Modification de l'enregistrement de la configuration pour r?\195?\169soudre les probl?\195?\168mes de configuration perdue lors de l'enregistrement Modified Paths: -------------- trunk/http/_framework/lib/Ini.class.php trunk/http/_utilisateur/contentVLC trunk/http/configuration/config.xml trunk/http/configuration/configuration.php trunk/http/configuration/general.php trunk/http/configuration/script.js trunk/http/module/VOD/classes/debug.txt trunk/http/module/VOD/classes/player_proxy_wat.php trunk/http/skin/mediacenter/sources/bouton.png trunk/http/testing.php Removed Paths: ------------- trunk/http/out.txt Modified: trunk/http/_framework/lib/Ini.class.php =================================================================== --- trunk/http/_framework/lib/Ini.class.php 2008-08-23 20:58:22 UTC (rev 240) +++ trunk/http/_framework/lib/Ini.class.php 2008-08-24 13:14:10 UTC (rev 241) @@ -18,9 +18,7 @@ $reini .=$subkey2.' = "'.$entry2."\"\n"; } } - $handle = fopen($this->fichier, "w"); - fwrite($handle, $reini); - fclose($handle); + file_put_contents($this->fichier, $reini); } function del($cat, $cle){ Modified: trunk/http/_utilisateur/contentVLC =================================================================== --- trunk/http/_utilisateur/contentVLC 2008-08-23 20:58:22 UTC (rev 240) +++ trunk/http/_utilisateur/contentVLC 2008-08-24 13:14:10 UTC (rev 241) @@ -30,4 +30,4 @@ -|00:00:00|fake:|00:00:04|playing|C:\Program Files\Easyboxv3\http\skin\mediacenter\background\bg.png +|00:00:00|fake:|00:00:00|stop|C:\Program Files\Easyboxv3\http\skin\mediacenter\background\bg.png Modified: trunk/http/configuration/config.xml =================================================================== --- trunk/http/configuration/config.xml 2008-08-23 20:58:22 UTC (rev 240) +++ trunk/http/configuration/config.xml 2008-08-24 13:14:10 UTC (rev 241) @@ -3,33 +3,19 @@ <channel> <categorie name="explorateur"> <souscat name="films_defaut"> - <name> - Dossiers o&ugrave; le scanner doit chercher vos - vid&eacute;os. Le premier de la liste sera le - dossier par d&eacute;faut de l'explorateur de - films. - </name> + <name>Dossiers o&ugrave; le scanner doit chercher vos vid&eacute;os. Le premier de la liste sera le dossier par d&eacute;faut de l'explorateur de films.</name> <type>navigateur</type> <defaut1>c:/</defaut1> <defaut2>/</defaut2> </souscat> <souscat name="photos_defaut"> - <name> - Dossier des photos par d&eacute;faut. Le premier - de la liste sera le dossier par d&eacute;faut de - l'explorateur de photos. - </name> + <name>Dossier des photos par d&eacute;faut. Le premier de la liste sera le dossier par d&eacute;faut de l'explorateur de photos.</name> <type>navigateur</type> <defaut1>c:/</defaut1> <defaut2>/</defaut2> </souscat> <souscat name="audio_defaut"> - <name> - Dossiers o&ugrave; le scanner doit chercher vos - fichiers audios. Le premier de la liste sera le - dossier par d&eacute;faut de l'explorateur - audio. - </name> + <name>Dossiers o&ugrave; le scanner doit chercher vos fichiers audios. Le premier de la liste sera le dossier par d&eacute;faut de l'explorateur audio.</name> <type>navigateur</type> <defaut1>c:/</defaut1> <defaut2>/</defaut2> @@ -41,100 +27,60 @@ <defaut2>/mnt/cdrom</defaut2> </souscat> <souscat name="ext"> - <name> - Extensions interpr&eacute;t&eacute;es comme - des fichiers vid&eacute;os par Easy-Box - </name> + <name>Extensions interpr&eacute;t&eacute;es comme des fichiers vid&eacute;os par Easy-Box</name> <type>text</type> - <defaut> - .avi,.mpg,.mpeg,.mkv,.ogg,.wmv,.wma,.mp4,.3gp,.mov - </defaut> + <defaut>.avi,.mpg,.mpeg,.mkv,.ogg,.wmv,.wma,.mp4,.3gp,.mov,.flv</defaut> </souscat> <souscat name="ext_photo"> - <name> - Extensions interpr&eacute;t&eacute;es comme - des photos par Easy-Box - </name> + <name>Extensions interpr&eacute;t&eacute;es comme des photos par Easy-Box</name> <type>text</type> <defaut>.jpg,.gif,.bmp,.jpeg,.png</defaut> </souscat> <souscat name="ext_audio"> - <name> - Extensions interpr&eacute;t&eacute;es comme - des fichiers audios par Easy-Box - </name> + <name>Extensions interpr&eacute;t&eacute;es comme des fichiers audios par Easy-Box</name> <type>text</type> <defaut>.mp3,.ogg,.wma,.cda,.m3u,.wav</defaut> </souscat> <souscat name="afficher_fichier_cache"> - <name> - Afficher les fichiers cach&eacute;s dans les - explorateurs - </name> + <name>Afficher les fichiers cach&eacute;s dans les explorateurs</name> <type>boolean</type> <defaut>non</defaut> </souscat> <souscat name="proxy"> - <name> - Proxy pour les connexions aux net par Easybox - </name> + <name>Proxy pour les connexions aux net par Easybox</name> <type>text</type> <defaut></defaut> </souscat> <souscat name="proxyport"> - <name> - Port du proxy pour les connexions aux net par Easybox - </name> + <name>Port du proxy pour les connexions aux net par Easybox</name> <type>text</type> <defaut></defaut> </souscat> </categorie> <categorie name="scan"> <souscat name="nettoyer"> - <name> - Chaines de caract&egrave;res - supprim&eacute;es dans le nom des films pour une - recherche plus ais&eacute;e d'information sur - internet. Ex : "James.Bond.cd1.avi" deviendra - "James.Bond..avi". - </name> + <name>Chaines de caract&egrave;res supprim&eacute;es dans le nom des films pour une recherche plus ais&eacute;e d'information sur internet. Ex : "James.Bond.cd1.avi" deviendra "James.Bond..avi".</name> <type>text</type> - <defaut> - cd1,cd2,divx,dvdrip,_,FRENCH,VOSTFR,Vostfr - </defaut> + <defaut>cd1,cd2,divx,dvdrip,_,FRENCH,VOSTFR,Vostfr</defaut> </souscat> - <souscat name="afficher_personnes"> - <name> - Afficher les fiches des personnalit&eacute;s. - </name> + <name>Afficher les fiches des personnalit&eacute;s.</name> <type>boolean</type> <defaut>oui</defaut> </souscat> <souscat name="ext_noscan"> - <name> - Ne pas traiter les r&eacute;pertoires dont le - nom contient une des valeurs suivantes lors des - scans : tout dossier contenant une de ces chaines - sera volontairement oubli�. - </name> + <name>Ne pas traiter les r&eacute;pertoires dont le nom contient une des valeurs suivantes lors des scans : tout dossier contenant une de ces chaines de charact\xE8re sera volontairement oubli&eacute;.</name> <type>text</type> <defaut>NOSCAN</defaut> </souscat> </categorie> <categorie name="multimedia"> <souscat name="qualiteaudio"> - <name> - Quelle qualit&eacute; audio voulez-vous utiliser - ? - </name> + <name>Quelle qualit&eacute; audio voulez-vous utiliser ?</name> <type>options</type> <option> <choix> - <nom> - Son transcod&eacute;e - (St&eacute;r&eacute;o) - </nom> + <nom>Son transcod&eacute;e (St&eacute;r&eacute;o)</nom> <titre>Stereo</titre> </choix> <choix> @@ -168,29 +114,13 @@ <defaut>Aucun</defaut> </souscat> <souscat name="compensation"> - <name> - Permet de d&eacute;caler la bande son pour - qu'elle commence apr&egrave;s la - vid&eacute;o (&agrave; utiliser quand le son - sort de la carte son du PC et que le son est - d&eacute;cal&eacute; sinon mettre - &agrave; 0) (en millisecondes) - </name> + <name>Permet de d&eacute;caler la bande son pour qu'elle commence apr&egrave;s la vid&eacute;o (&agrave; utiliser quand le son sort de la carte son du PC et que le son est d&eacute;cal&eacute; sinon mettre &agrave; 0) (en millisecondes)</name> <type>text</type> <typeplus>numeric</typeplus> <defaut>0</defaut> </souscat> <souscat name="qualite"> - <name> - Selectionnez ici le profil de qualit&eacute; de - VLC. Le profil "Wifi et ordinateurs moyens" permet - d'&eacute;conomiser - l&eacute;g&agrave;rement le processeur et - les d&eacute;bits au d&eacute;triment de la - qualit&eacute;. Le profil "Wifi difficile et - ordinateurs peu puissants" appuie encore ce - ph&eacute;nom&agrave;ne. - </name> + <name>Selectionnez ici le profil de qualit&eacute; de VLC. Le profil "Wifi et ordinateurs moyens" permet d'&eacute;conomiser l&eacute;g&agrave;rement le processeur et les d&eacute;bits au d&eacute;triment de la qualit&eacute;. Le profil "Wifi difficile et ordinateurs peu puissants" appuie encore ce ph&eacute;nom&agrave;ne.</name> <type>options</type> <option> <choix> @@ -202,9 +132,7 @@ <titre>play-wifi.html</titre> </choix> <choix> - <nom> - Wifi difficile et ordinateurs peu puissants - </nom> + <nom>Wifi difficile et ordinateurs peu puissants</nom> <titre>play-low.html</titre> </choix> </option> @@ -220,32 +148,17 @@ </categorie> <categorie name="download"> <souscat name="patch"> - <name> - Chemin o&ugrave; sont stock&eacute;es les - mises &agrave; jour - </name> + <name>Chemin o&ugrave; sont stock&eacute;es les mises &agrave; jour</name> <type>text</type> - <defaut> - http://www.easybox-freeplayer.com/modules/addon/ - </defaut> + <defaut>http://www.easybox-freeplayer.com/modules/addon/</defaut> </souscat> <souscat name="xml"> - <name> - Chemin vers le fichier listant les mises - &agrave; jour - </name> + <name>Chemin vers le fichier listant les mises &agrave; jour</name> <type>text</type> - <defaut> - http://www.easybox-freeplayer.com/genxml.php - </defaut> + <defaut>http://www.easybox-freeplayer.com/genxml.php</defaut> </souscat> <souscat name="maj"> - <name> - Voulez-vous qu'Easybox se mette &agrave; jour - automatiquement ? (Il est fortement - d&eacute;conseill&eacute; de - d&eacute;sactiver cette option) - </name> + <name>Voulez-vous qu'Easybox se mette &agrave; jour automatiquement ? (Il est fortement d&eacute;conseill&eacute; de d&eacute;sactiver cette option)</name> <type>boolean</type> <defaut>oui</defaut> </souscat> @@ -306,10 +219,7 @@ </categorie> <categorie name="modules"> <souscat name="afficher_categories"> - <name> - Afficher les cat&eacute;gories dans le menu - principal. - </name> + <name>Afficher les cat&eacute;gories dans le menu principal.</name> <type>boolean</type> <defaut>oui</defaut> </souscat> Modified: trunk/http/configuration/configuration.php =================================================================== --- trunk/http/configuration/configuration.php 2008-08-23 20:58:22 UTC (rev 240) +++ trunk/http/configuration/configuration.php 2008-08-24 13:14:10 UTC (rev 241) @@ -1,3 +1,8 @@ +<?php +header("Cache-Control: no-cache, must-revalidate"); +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +?> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> <html> <head> Modified: trunk/http/configuration/general.php =================================================================== --- trunk/http/configuration/general.php 2008-08-23 20:58:22 UTC (rev 240) +++ trunk/http/configuration/general.php 2008-08-24 13:14:10 UTC (rev 241) @@ -19,7 +19,7 @@ } } -echo '<div class="titrerec titrereclarger"><div class="coin gh"> </div><div class="titre titrelarger" id="titre">'.$titre.'</div><div class="coin dh"> </div></div><div class="res2">'; +echo '<div class="titrerec titrereclarger"><div class="coin gh"> </div><div class="titre titrelarger" id="titre">'.$titre.'</div><div class="coin dh"> </div></div><div class="res2"><form action="" autocomplete="off">'; $j = 0; // Affichage des champs du formulaire @@ -52,7 +52,7 @@ // Cas d'un mot de passe case 'password': ($typeplus=='numeric'?$num="onKeypress=\"if(event.keyCode > 31 && (event.keyCode < 45 || event.keyCode > 57)) event.returnValue = false; if(event.which > 31 && (event.which < 45 || event.which > 57)) return false;\"":$num=""); - echo '<input name="'.$catnom.'|'.$nom.'" id="'.$catnom.'|'.$nom.'" type="password" autocomplete="off" '.$num.' size="'.(strlen(htmlspecialchars($entry))+5).'" value="'.$entry.'"><script language="javascript">setTimeout("document.getElementById(\''.$catnom.'|'.$nom.'\').value = \''.$entry.'\';",50);</script>'; + echo '<input name="'.$catnom.'|'.$nom.'" id="'.$catnom.'|'.$nom.'" type="password" autocomplete="off" '.$num.' size="'.(strlen(htmlspecialchars($entry))+5).'" value="'.$entry.'">'; $js .= 'set_ini("'.$catnom.'","'.$nom.'",document.getElementById("'.$catnom.'|'.$nom.'").value);'; break; @@ -141,7 +141,7 @@ ($typeplus=='numeric'?$num="onKeypress=\"if(event.keyCode > 31 && (event.keyCode < 45 || event.keyCode > 57)) event.returnValue = false; if(event.which > 31 && (event.which < 45 || event.which > 57)) return false;\"":$num=""); echo '<input name="'.$catnom.'|'.$nom.'" id="'.$catnom.'|'.$nom.'" type="text" autocomplete="off" '.$num.' size="'; echo strlen(htmlspecialchars($entry))+10; - echo '" value="'.$entry.'"><script language="javascript">setTimeout("document.getElementById(\''.$catnom.'|'.$nom.'\').value = \''.$entry.'\';",50);</script><br>'; + echo '" value="'.$entry.'"><br>'; $js .= 'set_ini("'.$catnom.'","'.$nom.'",document.getElementById("'.$catnom.'|'.$nom.'").value);'; break; @@ -155,7 +155,7 @@ } } } - echo '</div><div class="titrerecb titrerecblarger"><div class="coin gb"> </div><div class="titre titrelarger"> </div><div class="coin db"> </div></div>'; + echo '</form></div><div class="titrerecb titrerecblarger"><div class="coin gb"> </div><div class="titre titrelarger"> </div><div class="coin db"> </div></div>'; echo '<script language="javascript">function save(){suc=0;'.$js.'}function addsucces(){suc=suc+1;if(suc=='.$total.'){alert("Configuration enregistr\xE9e avec succ\xE8s");}}</script>'; Modified: trunk/http/configuration/script.js =================================================================== --- trunk/http/configuration/script.js 2008-08-23 20:58:22 UTC (rev 240) +++ trunk/http/configuration/script.js 2008-08-24 13:14:10 UTC (rev 241) @@ -163,7 +163,6 @@ function ajouter2(){ if ((addchamp != '')&&(addurl != '')) { - var addchamp = document.getElementById("addnom"); var addurl = document.getElementById("addurl"); var objListe = document.getElementById("listpodcast"); @@ -176,7 +175,6 @@ } } - function add(rep){ var obj = document.getElementById(idNom); if (obj.type=="text"){ @@ -186,7 +184,6 @@ objListe.options[objListe.length] = new Option(rep,rep,false,false); maj(idNom); } - cacher_dir("explor"); } @@ -211,12 +208,11 @@ obj.submit(); } - //////////////////////////////////////////////////////////////////////////////// ////////////////////- Gestion du fichier configuration.ini -//////////////////// //////////////////////////////////////////////////////////////////////////////// -// Assigne une valeur \xE0 une cl du fichier configuration.ini +// Assigne une valeur \xE0 une cle du fichier configuration.ini function set_ini(cle,entree,val){ var xhr = getXhr(); var ok = 0; @@ -224,6 +220,8 @@ if(xhr.readyState == 4 && xhr.status == 200){ if(xhr.responseText==''){ addsucces(); + }else{ + set_ini(cle,entree,val); } } } @@ -848,4 +846,4 @@ } xhr.open("GET","delpodcast.php?id=" + currentpodcastid + "&al=" + Math.random(),true); xhr.send(null); -} \ No newline at end of file +} Modified: trunk/http/module/VOD/classes/debug.txt =================================================================== --- trunk/http/module/VOD/classes/debug.txt 2008-08-23 20:58:22 UTC (rev 240) +++ trunk/http/module/VOD/classes/debug.txt 2008-08-24 13:14:10 UTC (rev 241) @@ -1,9 +1,9 @@ HTTP/1.0 302 Moved Temporarily -Date: Sat, 23 Aug 2008 16:42:53 GMT +Date: Sat, 23 Aug 2008 21:28:00 GMT Server: Apache -Set-Cookie: wt=expires%3D1219509893%7Eaccess%3D%2F2%2FFLV-320x240%2F93%2F76%2F1419376.flv%7Emd5%3D4dac0d2338b382672afa2c9225dbf70a; path=/; domain=.wat.tv -Location: http://wdk.wat.tv/2/FLV-320x240/93/76/1419376.flv +Set-Cookie: wt=expires%3D1219527000%7Eaccess%3D%2F2%2FFLV-320x240%2F53%2F49%2F435349.flv%7Emd5%3Dd3b0f4ea20ccfc0c85ddfbc16c51baa1; path=/; domain=.wat.tv +Location: http://wdk.wat.tv/2/FLV-320x240/53/49/435349.flv Content-Length: 0 Content-Type: text/html X-Cache: MISS from kuzh.polytechnique.fr @@ -12,15 +12,15 @@ HTTP/1.0 200 OK Content-Type: video/x-flv -ETag: "1844399291" +ETag: "2587458518" Accept-Ranges: bytes -Last-Modified: Fri, 08 Aug 2008 18:06:58 GMT -Content-Length: 2548286 +Last-Modified: Tue, 16 Oct 2007 14:25:41 GMT +Content-Length: 24448814 Server: BustaWS/2.0 -Expires: Sat, 23 Aug 2008 16:42:53 GMT +Expires: Sat, 23 Aug 2008 21:28:00 GMT Cache-Control: max-age=0, no-cache Pragma: no-cache -Date: Sat, 23 Aug 2008 16:42:53 GMT +Date: Sat, 23 Aug 2008 21:28:00 GMT X-Cache: MISS from kuzh.polytechnique.fr Via: 1.0 kuzh.polytechnique.fr:8080 (squid) Proxy-Connection: keep-alive Modified: trunk/http/module/VOD/classes/player_proxy_wat.php =================================================================== --- trunk/http/module/VOD/classes/player_proxy_wat.php 2008-08-23 20:58:22 UTC (rev 240) +++ trunk/http/module/VOD/classes/player_proxy_wat.php 2008-08-24 13:14:10 UTC (rev 241) @@ -1,8 +1,10 @@ <?php -$RACINE_REP = '../../'; +$RACINE_REP = '../../../'; define('LIBRARIES_REP', $RACINE_REP.'/_framework/lib/'); +define('USER', $RACINE_REP.'/_utilisateur/'); require_once(LIBRARIES_REP.'Ini.class.php'); + $ini_class = new INI(USER.'configuration.ini'); set_time_limit(3600); @@ -224,7 +226,6 @@ if($envoi) echo $buff; - usleep(1000); } } Deleted: trunk/http/out.txt =================================================================== --- trunk/http/out.txt 2008-08-23 20:58:22 UTC (rev 240) +++ trunk/http/out.txt 2008-08-24 13:14:10 UTC (rev 241) @@ -1,2 +0,0 @@ -last line : "\xE3ć\xD86Lή\x82\xABYl\x90p\x9BZ?!+o՚\x8E\xB7[\x9E3\xD7D\xC2j\xC0+b\xAC\xC72\xAF\xAE\xE4[,\xA1\xEC -" \ No newline at end of file Modified: trunk/http/testing.php =================================================================== --- trunk/http/testing.php 2008-08-23 20:58:22 UTC (rev 240) +++ trunk/http/testing.php 2008-08-24 13:14:10 UTC (rev 241) @@ -1,5 +1,266 @@ <?php -var_dump($momo = 'idiot'); +$RACINE_REP = '../http/'; +define('LIBRARIES_REP', $RACINE_REP.'/_framework/lib/'); +define('USER', $RACINE_REP.'/_utilisateur/'); +require_once(LIBRARIES_REP.'Ini.class.php'); +$ini_class = new INI(USER.'configuration.ini'); + +set_time_limit(3600); +class Http { + /*Code de retour */ + public $statusCode; + /*Contenu renvoyé */ + public $htmlContents; + /*Headers */ + public $httpHeaders; + /*Limite de redirections */ + public $maxRedirects = 0; + /*Timeout de réception d'un paquet */ + public $httpTimeout = 5; + + function __construct(){ + } + + /*Requête Get + * + @param string $url URL \xC3 charger + @param string $queryString Chaîne contenant les paramètres \xC3 passer \xC3 la requête + @return boolean Résultat de la requête (true = 200 OK) + **/ + function get($url, $queryString = '', $sCookie = ''){ + return $this->request($url, 'GET', $queryString, $sCookie); + } + + /*Requête Post + * + @param string $url URL \xC3 charger + @param string $queryString Chaîne contenant les paramètres \xC3 passer \xC3 la requête + @return boolean Résultat de la requête (true = 200 OK) + **/ + function post($url, $queryString = '', $sCookie = ''){ + return $this->request($url, 'POST', $queryString, $sCookie); + } + + /*Requête Principale + * + @param string $url URL \xC3 charger + @param string $queryString Chaîne contenant les paramètres \xC3 passer \xC3 la requête + @param string $requestType Type de la requête (GET/POST) + @return boolean Résultat de la requête (true = 200 OK) + **/ + function request($url, $requestType = 'GET', $queryString = '', $sCookie = '', $envoi=false){ + global $ini; + $this->statusCode = 0; + $this->htmlContents = ''; + $this->httpHeaders = array('Set-Cookie' => array()); + + /*Explosion de l'URL */ + $parsedUrl = parse_url($url); + if (!isset($parsedUrl['path']) || $parsedUrl['path'] === ''){ + $parsedUrl['path'] = '/'; + } + /*Zut, on a passé une partie des infos dans l'url ! */ + if (isset($parsedUrl['query']) && $parsedUrl['query'] !== ''){ + if ($requestType === 'GET'){ + if ($queryString !== ''){ + $queryString .= '&'; + } + $queryString .= $parsedUrl['query']; + }else{ + $parsedUrl['path'] = $parsedUrl['path'].'?'.$parsedUrl['query']; + } + } + echo $ini['explorateur']['proxy']; + if($ini['explorateur']['proxy']){ + $fp = @fsockopen($ini['explorateur']['proxy'], $ini['explorateur']['proxyport'], $errno, $errstr, 50); + }else{ + $fp = @fsockopen($parsedUrl['host'], 80, $errno, $errstr, 5); + } + + if (!$fp) return false; + if ($requestType === 'GET'){ + if($ini['explorateur']['proxy']){ + fputs($fp, "GET ".$url." HTTP/1.1\r\nHost: ".$parsedUrl['host']."\r\n"); + }else{ + fputs($fp, "GET ".$parsedUrl['path'].($queryString != '' ? '?'.$queryString : '')." HTTP/1.1\r\nHost: ".$parsedUrl['host']."\r\n"); + } + + if ($sCookie !== ''){ + fputs($fp, "Cookie: $sCookie\r\n"); + } + fputs($fp, "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n"); + fputs($fp, "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1\r\n"); + fputs($fp, "Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3\r\n"); + fputs($fp, "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n"); + fputs($fp, "Accept-Encoding: gzip,deflate\r\n"); + fputs($fp, "Keep-Alive: 300\r\n"); + fputs($fp, "Proxy-Connection: keep-alive\r\n\r\n"); + }elseif ($requestType === 'POST'){ + if($ini['explorateur']['proxy']){ + fputs($fp, "POST ".$url." HTTP/1.1\r\nHost: ".$parsedUrl['host']."\r\n"); + }else{ + fputs($fp, "POST ".$parsedUrl['path']." HTTP/1.1\r\nHost: ".$parsedUrl['host']."\r\n"); + } + if ($sCookie !== '') + { + fputs($fp, "Cookie: $sCookie\r\n"); + } + fputs($fp, "Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1\r\n"); + fputs($fp, "Content-Type: application/x-www-form-urlencoded\r\n"); + fputs($fp, "Content-Length: ".strlen($queryString)."\r\n"); + fputs($fp, "Accept-Encoding: gzip,deflate"); + fputs($fp, "Connection: close\r\n\r\n"); + fputs($fp, $queryString); + }else{ + return false; + } + + + $buffer = ''; + /*Time out de lecture */ + stream_set_timeout($fp, 1000); + /*Lecture des headers */ + while (!feof($fp)){ + $buffer = fgets($fp, 4096); + + if ($buffer === false){ + return false; + } + $buffer = trim($buffer); + + file_put_contents('debug.txt',file_get_contents('debug.txt')."\n".$buffer); + + if($envoi){ + header('HTTP/1.0 200 OK'); + header('Content-Type: video/x-flv'); + header('Accept-Ranges: bytes'); + } + if (substr($buffer, 0, 7) === 'HTTP/1.'){ + $this->statusCode = (int) substr($buffer, 9, 3); + }else{ + $colonPos = strpos($buffer, ':'); + if ($colonPos !== false){ + $headerName = substr($buffer, 0, $colonPos); + if ($headerName === 'Set-Cookie'){ + $this->httpHeaders[$headerName][] = substr($buffer, $colonPos + 2); + }else{ + $this->httpHeaders[$headerName] = substr($buffer, $colonPos + 2); + } + } + } + if ($buffer == '' && $this->statusCode !== 0) break; + } + + /*Redirection 301 ou 302 */ + if (($this->statusCode === 302 || $this->statusCode === 301) && isset($this->httpHeaders['Location']) && $this->maxRedirects-- > 0){ + $newUrl = parse_url($this->httpHeaders['Location']); + if (!isset($newUrl['path'])){ + $newUrl['path'] = ''; + }else{ + $newUrl['path'] = ltrim($newUrl['path'], '/'); + } + if (!isset($newUrl['host'])){ + $newUrl['host'] = $parsedUrl['host']; + } + if (!isset($newUrl['query'])){ + $newUrl['query'] = ''; + } + return $this->request('http://'.$newUrl['host'].'/'.$newUrl['path'], $requestType, $newUrl['query'], $sCookie); + } + /*On remet \xC3 3 le nombre max de redirections */ + $this->maxRedirects = 0; + + $buffer = ''; + + if (isset($this->httpHeaders['Transfer-Encoding']) && $this->httpHeaders['Transfer-Encoding'] === 'chunked'){ + /*Fichier chunked */ + while (!feof($fp)){ + $length = fgets($fp, 1024); + if ($length === false){ + return false; + } + + $length = hexdec(trim($length)); + if($length===0){ + break; + } + + while ($length > 0){ + $buff = fgets($fp, $length + 1); + if ($buff === false) + { + return false; + } + $length -= strlen($buff); + $buffer .= $buff; + + } + fgets($fp,1024); + } + }elseif (isset($this->httpHeaders['Content-Length'])){ + //Fichier avec Content-Length + $length = (int) $this->httpHeaders['Content-Length']; + + while ($length > 0){ + $buff = fgets($fp, $length+1); + if ($buff === false) + { + break; + } + $length -= strlen($buff); + $buffer .= $buff; + + if($envoi) + echo $buff; + } + }else{ + /*Fichier sans Content-Length ni chunk */ + while (!feof($fp)) + { + $buff = fgets($fp, 4096); + if ($buff === false){ + break; + } + $buffer .= $buff; + } + + } + fclose($fp); + + /*Le contenu est-il gzippé ? */ + if (isset($this->httpHeaders['Content-Encoding']) && ($this->httpHeaders['Content-Encoding'] === 'gzip' || $this->httpHeaders['Content-Encoding'] === 'deflate')) + { + if ($this->httpHeaders['Content-Encoding'] === 'gzip') + { + $buffer = substr($buffer, 10); + } + $this->htmlContents = gzinflate($buffer); + if ($this->htmlContents === false) + { + return false; + } + } + else + { + $this->htmlContents = $buffer; + } + return $this->statusCode === 200; + } +} + +$id = $_GET['id']; +file_put_contents('debug.txt',''); +$http = new Http(); +$http->request('http://proxy-29.deezer.com/rewrite/3TxkwS6o8fR8tUBgDQX2sEcsTXcOGy1U/c65bd73a44ae440555df65e6730c88de/27cadb8454719cc73f53d7bc036ba6e45616671fe0fb13ab2d49618a674cc57c50ae476dfdaf19645c3ec075d7ca193b3936266a99ff2c0a11f9711df8c81f65/a5924fd5ab69191ef72bb1b54b7f22cb372dd9453e84277d60b212d1ec190c99d73381edce44375774e3735c2eb9327275834491b31c872acacdd77e406bdc53/9,0,124,0/','GET','__utma=253676188.2225138453119332600.1214129550.1219416520.1219525133.108; __utmz=253676188.1214919665.4.3.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=deezer; __utmb=253676188.31.10.1219525133; __utmc=253676188'); + +print_r($http->httpHeaders); +file_put_contents('debug.txt',$http->htmlContents); +//echo $http->htmlContents; +//echo $cookie[0]; + +//$h = $http->request(($http->htmlContents?$http->htmlContents:$http->httpHeaders['Location']), 'GET', '', $cookie[0], true); +//file_put_contents('out.mp4', $http->htmlContents); + ?> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |