正在使用未知url刷新网站


Refreshing site using unknown url

我正试图使用刷新作为重定向函数,因为标头由于某种原因无法工作。这是我的一段代码,当我运行它刷新循环时:

----------不工作---------------------------------------------

$url = $_SERVER['REQUEST_URI'];
$url = substr($url, 10); //cuting url to "index.php?site=page"
echo '<META HTTP-EQUIV="Refresh" Content="0; URL='.$url.'">';

----------工作---------------------------------------------

$url = 'index.php?site=page';
echo '<META HTTP-EQUIV="Refresh" Content="0; URL='.$url.'">';

----------整体功能---------------------------------------------

elseif($action=="nfvi") {
        safe_query("UPDATE ".PREFIX."nfv SET nfv=nfv+1");
    $url = $_SERVER['REQUEST_URI'];
    $url = substr($url, 10);
    echo '<META HTTP-EQUIV="Refresh" Content="0; URL='.$url.'">';
}

您可以使用CURL作为客户端启动:

它将平衡CURL_SET TIMEOUT:curl_setopt($ch, CURLOPT_TIMEOUT, 3);

$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$ping_URL);curl_setopt($ch,CURLOPT_RETURNTTRANSFER,true);curl_setopt($ch,CURLOPT_POST,true);curl_setopt($ch,CURLOPT_POSTFIELDS,trim($request));$result=curl_exec($ch);curl_close($ch);

如果页眉位置不起作用,您是否检查页眉中是否刷新页面?

 header("Refresh: 2;");

如果标头不工作,请使用fsockets读取数据:

$host = 'www.example.com';
$service_uri = '/cgi-bin/processACT';
$vars ='code=22&act=TEST';
$header = "Host: $host'r'n";
$header .= "User-Agent: PHP Script'r'n";
$header .= "Content-Type: application/x-www-form-urlencoded'r'n";
$header .= "Content-Length: ".strlen($vars)."'r'n";
$header .= "Connection: close'r'n'r'n";
$fp = pfsockopen("ssl://".$host, 443, $errno, $errstr);
if (!$fp) {
   echo "$errstr ($errno)<br/>'n";
   echo $fp;
} else {
    fputs($fp, "POST $service_uri  HTTP/1.1'r'n");
    fputs($fp, $header.$vars);
    fwrite($fp, $out);
    while (!feof($fp)) {
    echo fgets($fp, 128);
    }
    fclose($fp);
} 

然后用sleep(3)秒做一个循环,用你想要的暂停。

为什么在PHP中使用元标记而不是头?

header('Location: '.$url);

或者全标题重定向示例:

$host  = $_SERVER['HTTP_HOST'];
$uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/''');
$extra = 'mypage.php';
header("Location: http://$host$uri/$extra");
exit;

为什么不使用HTTP头?

<?php
$url = "http://www.google.com";
header("Location: index.php?site=" . urlencode($url)); /* Redirect browser */
/* Make sure that code below does not get executed when we redirect. */
exit;
?>

请参阅手册。