problème avec un script de rafraichissement
Posté : 16 mars 2006, 11:43
bonjour,
j'ai recup un script pour rafraichir le contenu d'une page sans avoir le bruit ni le clignottement mais ya une erreur de quote mais je vois pas ou???
Voici le code en question
merci pour votre aide
lakawet
j'ai recup un script pour rafraichir le contenu d'une page sans avoir le bruit ni le clignottement mais ya une erreur de quote mais je vois pas ou???
Voici le code en question
Code : Tout sélectionner
<?php
/*
Author : docteur.night (Jérémy Faivre)
email : [email protected]
*/
class dnrefresh
{
var $output;
var $loop_out;
var $refresh_id;
function dnrefresh()
{
$this->output = '';
$this->loop_out = '';
$this->refresh_id = array();
$this->files_names = array();
return true;
}
function refresh_start($expect_time = 200)
{
$expect_time = intval($expect_time);
$this->output .= '<script type="text/javascript">' . "\n" . '<!--' . "\n" . 'function refresh_loop(refresh_id)' . "\n" . '{' . "\n" . ' eval(\'if ( content_to_refresh_\' + refresh_id + \' != null ) { eval(content_to_refresh_\' + refresh_id + \'); content_to_refresh_\' + refresh_id + \' = null; }\');' . "\n" . ' setTimeout(\'refresh_loop(\' + refresh_id + \');\', ' . $expect_time . ');' . "\n" . '}' . "\n\n" . 'function refresh_action(refresh_id, file_name, refresh_time)' . "\n" . '{' . "\n" . ' Stamp = new Date();' . "\n" . ' document.getElementById(\'scripttoup\' + refresh_id).innerHTML = \'<iframe src="\' + file_name + \'time=\' + Stamp.getMinutes() + Stamp.getSeconds() + Stamp.getDay() + \'&refresh_id=\' + refresh_id + \'"></\' + \'iframe>\';' . "\n\n" . ' if ( refresh_time )' . "\n" . ' {' . "\n" . ' setTimeout(\'refresh_action(\' + refresh_id + \', \\\'\' + file_name + \'\\\', \' + refresh_time + \')\', refresh_time);' . "\n" . ' }' . "\n" . '}' . "\n\n";
}
function refresh_add($file_name, $refresh_time = false, $refresh_id)
{
if ( substr_count($file_name, '?') > 0 )
{
$file_name .= '&';
}
else
{
$file_name .= '?';
}
$file_name = str_replace(array('\\', '\''), array('\\\\', '\\\''), $file_name);
$refresh_id = intval($refresh_id);
while ( in_array($refresh_id, $this->refresh_id) )
{
$refresh_id++;
}
$this->refresh_id[] = $refresh_id;
$this->files_names[$refresh_id] = $file_name;
$this->loop_out .= 'content_to_refresh_' . $refresh_id . ' = null; ' . (( !is_numeric($refresh_time) ) ? '' : 'refresh_action(' . $refresh_id . ', \'' . $file_name . '\', ' . $refresh_time . '); ' ) . 'refresh_loop(' . $refresh_id . '); ';
return true;
}
function refresh_display($return = false)
{
$this->output .= 'window.onload = function() { ' . $this->loop_out . ' };' . "\n" . '//-->' . "\n" . '</script>' . "\n";
foreach ( $this->refresh_id as $value )
{
$this->output .= '<div id="scripttoup' . $value . '" style="position:absolute;top:-9999px;left:-9999px;width:0px;height:0px;overflow:hidden"></div>' . "\n";
}
if ( $return )
{
return $this->output;
}
else
{
echo $this->output;
}
}
function refresh_call($refresh_id, $return = false)
{
$output = 'refresh_action(' . $refresh_id . ', \'' . $this->files_names[$refresh_id] . '\');';
if ( $return )
{
return $output;
}
else
{
echo $output;
}
}
function refresh_update($refresh_id, $content, $element_id = false, $return = false)
{
$content = str_replace(array('\\', '\''), array('\\\\', '\\\''), $content);
if ( $element_id )
{
$content = 'document.getElementById(\'' . str_replace(array('\\', '\''), array('\\\\', '\\\''), $element_id) . '\').innerHTML = \'' . $content . '\'';
}
$this->output = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Style-Type" content="text/css" /><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><title></title></head><body><script type="text/javascript">parent.content_to_refresh_' . $refresh_id . ' = \'' . $content . '\';</script></body></html>';
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
if ( $return )
{
return $this->output;
}
else
{
echo $this->output;
}
}
}
?>
lakawet