par
Invité » 20 déc. 2007, 16:57
Bonjour,
J'ai demandé à un un amis de m'écrire un script permettant d'afficher une pub sur toutes les pages affichés par un serveur.
On passe par une fonction prepend. C'était un défis que je lui ai posé, et apparament, j'ai gagne le défis puisqu'il sèche
Cette fonction prepend chargé par php va venir prendre l'url absolue du fichier pour l'ouvrir en local via la fonction fopen et y insérer le tag html en sortie. Ca fonctionne mieux que les obstart. Le problème est que phpBB et autres forums ou CMS n'apprécie pas trop cette mannip au niveau des fonctions header.
En effet, voici le code actuel :
// temp se présente sous la forme : /home/loginftp/www/...
$temp = explode('/', $_SERVER['SCRIPT_FILENAME'], 4);
$loginFtp = $temp[2];
$url = 'http://localhost';
$url .= (substr($_SERVER['SERVER_NAME'],-14, 14) == 'freeheberg.com')?'':'/~'.$loginFtp;
$url .= $_SERVER['REQUEST_URI'];
if($stream = fopen($url, 'r')){
$content = stream_get_contents($stream);
// la fonction de recherche du body est très simple, on la complètera plus tard :)
if(stripos($content, '<body>') !== false)
echo str_replace('<body>', '<body><script type="text/javascript" src="http://www.freeheberg.com/ejs_slidein.js"></script>', $content);
else
echo $content.'<script type="text/javascript" src="http://www.freeheberg.com/ejs_slidein.js"></script>';
fclose($stream);
die();
Par exemple, sur ce site :
www.mission-president.info
Si vous cliquez sur le bouton "connexion" du formulaire d'identification à gauche, le navigateur renvoit l'url :
http://localhost/~missionp/signup.php
Le problème est donc là, l'url absolue est incomplète.
Le script effectue un substr car il y a plusieurs adresses possible. Les adresses du type
www.domaine.info, les adresses du type site.freeheberg.com et les adresses du type
http://nsX.freeheberg.com/~user/
Bref, là je mouline à mort, et j'ai besoin de votre aide si vous le voullez bien

On voit pas trop comment régler le binz
