ZuckBin Posté 11 Mai 2009 Posté 11 Mai 2009 Bonjour, Comment stopper l'exécution d'un script après un délais bien précis? Le but du jeu est de stopper l'exécution d'un script publicitaire qui s'arrêtera si la publicité n'a pas répondu après x secondes, pour ne pas "freezer" mon site, et attendre indéfiniment le serveur de publicité dans le vide, et avoir un site bloqué! Merci. Cordialement.
captain_torche Posté 11 Mai 2009 Posté 11 Mai 2009 Tu es sûr qu'il s'agit bien de PHP ? La plupart des régies publicitaires utilisent le JavaScript.
ZuckBin Posté 11 Mai 2009 Auteur Posté 11 Mai 2009 Ce sont des publicitées Javascript, mais mon intégration est en PHP, et c'est donc PHP et Mysql qui va aller dire quelle publicitées placer et afficher en fonction de ma rubrique. Je préfère le faire en PHP, pour ceux qui désactivent Javascript.
Dan Posté 11 Mai 2009 Posté 11 Mai 2009 Le plus simple est dans ce cas de mettre les pubs dans une iframe ...
K-Ola Posté 11 Mai 2009 Posté 11 Mai 2009 (modifié) Un autre solution : tu utilises ajax pour charger ta zone de publicité, indépendamment du reste du site. Si le script gérant la pub de répond pas, dans le pire des cas tu auras une div vide (ou avec un contenu par défaut) , mais cela n'empêchera pas de consulter le reste de ton site ! Edit: Je préfère le faire en PHP, pour ceux qui désactivent Javascript. Je n'avais pas vu désolé ! Modifié 11 Mai 2009 par K-Ola
ZuckBin Posté 12 Mai 2009 Auteur Posté 12 Mai 2009 Pour Iframe, c'est non, non valide le code, et j'aimerai bien le faire en php. En ajax, je vais peu être le faire...a voir.
SStephane Posté 12 Mai 2009 Posté 12 Mai 2009 (modifié) http://fr.php.net/set_time_limit pourrait éventuellement t'intéresser ? Cela dit les frames, c'est pas forcément moche pour des pubs, je suis un peu du même avis. Modifié 12 Mai 2009 par SStephane
ZuckBin Posté 12 Mai 2009 Auteur Posté 12 Mai 2009 (modifié) J'ai récupérer ca: // Timeout in seconds$timeout = 5;$URL="http://fr.a2dfp.net/ad?s=".$row_pub['id']."&m=js&ncb=".$a2dRandom."";$fp = fsockopen("$URL", 80, $errno, $errstr, $timeout);if ($fp) { fwrite($fp, "GET /file.php HTTP/1.0\r\n"); fwrite($fp, "Host: $URL\r\n"); fwrite($fp, "Connection: Close\r\n\r\n"); stream_set_blocking($fp, TRUE); stream_set_timeout($fp,$timeout); $info = stream_get_meta_data($fp); while ((!feof($fp)) && (!$info['timed_out'])) { $data .= fgets($fp, 4096); $info = stream_get_meta_data($fp); ob_flush; flush(); } if ($info['timed_out']) { echo "Connection Timed Out!"; } else { echo '<script type="text/javascript" src="'.$data.'"></script>'; }} mais j'ai ce message erreur: Warning: fsockopen() [function.fsockopen]: unable to connect to http://fr.a2dfp.net/ad?s=xxxxx&m=js&am...b=xxxxx:80 (Unable to find the socket transport "http" - did you forget to enable it when you configured PHP?) Une idée ? Modifié 13 Mai 2009 par olitax
ZuckBin Posté 14 Mai 2009 Auteur Posté 14 Mai 2009 (modifié) J'ai fini par trouver comment faire, en utilisant la librairie cURL $URL="http://example.com";$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $URL);curl_setopt($ch, CURLOPT_HEADER, 1);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);$data = curl_exec($ch);curl_close($ch);if(ereg("HTTP/1.1 200 OK", $data)){echo '<script type="text/javascript" src="http://example.com"></script>';} Donner moi votre retour sur ce code Modifié 14 Mai 2009 par ZuckBin
Kioob Posté 15 Mai 2009 Posté 15 Mai 2009 Si le but est juste de gérer le timeout PHP, il y a une variable pour ça : ini_set('default_socket_timeout', 3);@readfile('http://url.de.ta/pub.php'); Par contre pour ma part je ne vois pas l'intérêt de ta méthode : - site plus lent, aucun parallélisme et empêche certainement toute mise en cache de tes propres pages - l'internaute risque de ne pas être "tracké" comme il faut (IP du serveur + pas de cookie), donc tu risques de ne pas être payé Tout ça pour quoi ? - éviter d'utiliser du javascript alors qu'une grande partie des tags des régies l'impose - éviter d'utiliser une iframe parce que ce ne serait pas "valide". Tiens c'est nouveau ça... à moins que tu utilises du XHTML Strict, mode dans lequel les publicités des régies ne fonctionnent pas non plus (document.write oblige...) A mon avis tu t'embêtes pour de mauvaises raisons là.
ZuckBin Posté 18 Mai 2009 Auteur Posté 18 Mai 2009 Hello, Effectivement, je suis en Xhtml strict, si tu as la méthode pour le faire en Js, je prend
Kioob Posté 18 Mai 2009 Posté 18 Mai 2009 En javascript, c'est l'intégration toute simple du tag de pub via <script src="XXXX" type="XXX"></script>. PS : du XHTML "strict" avec un content-type en text/plain alors, non ?
ZuckBin Posté 19 Mai 2009 Auteur Posté 19 Mai 2009 (modifié) J'ai ca comme doctype: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> et c'est bien du type text/plain Modifié 19 Mai 2009 par ZuckBin
Kioob Posté 19 Mai 2009 Posté 19 Mai 2009 text/html pardon. Mais oui. Donc ça n'a pas grand chose de strict finalement
Kioob Posté 19 Mai 2009 Posté 19 Mai 2009 Bah que tu peux très bien utiliser les iframes comme suggéré par Dan
ZuckBin Posté 19 Mai 2009 Auteur Posté 19 Mai 2009 J'avoue ne pas comprendre ta dernière remarque, à a partir du nomment ou je vais utilisé sur ma page web une iframe, mon code ne sera plus valid, et comportera des erreurs
captain_torche Posté 19 Mai 2009 Posté 19 Mai 2009 Est-ce si important que ça ? Si tu souhaites simplement valider, utilise un autre doctype.
Kioob Posté 19 Mai 2009 Posté 19 Mai 2009 Je n'ai pas été très clair mais comme le dit captain_torche il te suffit de changer de doctype, vu que de toutes façons tu n'utilises pas du "vrai" XHTML.
Leonick Posté 22 Mai 2009 Posté 22 Mai 2009 Hello, Effectivement, je suis en Xhtml strict, si tu as la méthode pour le faire en Js, je prend adsense, entres autres, n'est pas valide xhtml strict, donc si tu envoies ta page avec adsense en strict, tu ne verras pas les pubs affichées.et quand je parle de strict, c'est aussi, et surtout, les header envoyés en xhtml strict et non en html/text
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant