1

URL短縮スクリプトがあります。短縮された場合にクエリをリダイレクトするために使用される「forward.php」ファイルがあります。しかし、このファイルでは、元の URL にリダイレクトする前に、テキストまたは広告を 5 ~ 10 秒間表示したいと考えています。

また、sleep()、flush()、およびすべてを試してみましたが、何も役に立ちません。

ありがとうございました。

コード:

    <?php
    ob_start();
    require("lib/config.php");
    require("lib/common.php");
    if( isset($_SERVER['QUERY_STRING']) ){
        $i = $_SERVER['QUERY_STRING'];
    }else{
        $i = $_SERVER['REQUEST_URI'];
        $i = str_replace("/","",$i);
    }
    $suffix = $i{0};
    $result = mysql_query("SELECT id,url FROM urls WHERE short_url = '$i'",DBH) or die(mysql_error());  
    if (mysql_num_rows($result) > 0) {
        $row = mysql_fetch_assoc($result);
        $id = $row['id'];
        $url = $row['url'];
        mysql_query("UPDATE urls SET hits=hits+1 WHERE id = '{$id}'",DBH);

    if  ($_SESSION['config']['bar'] == true) 
    {   

$meela_urllow = stripslashes(str_replace(",", "%2C", $url));
$meela_urllow = strtolower($meela_urllow);
if ((strpos($meela_urllow, "youtube")))
{
    header('HTTP/1.1 301 Moved Permanently');
    header("Location: ".stripslashes(str_replace(",", "%2C", $url)));
}

if ((strpos($meela_urllow, "facebook")))
{
    header('HTTP/1.1 301 Moved Permanently');
    header("Location: ".stripslashes(str_replace(",", "%2C", $url)));
}

if ((strpos($meela_urllow, "google")))
{
    header('HTTP/1.1 301 Moved Permanently');
    header("Location: ".stripslashes(str_replace(",", "%2C", $url)));
}


    } else {
        header('HTTP/1.1 301 Moved Permanently');
        header("Location: ".stripslashes(str_replace(",", "%2C", $url)));
    }


        exit;
    }

    header('HTTP/1.1 301 Moved Permanently');
    header("Location: http://".$_SESSION['config']['domain']);
    exit;
?>
4

2 に答える 2

0

header()リダイレクトする前にテキストを表示したい場合は、リフレッシュ値を指定して関数を使用する必要があります。

header('Refresh: 5; url=some_url.php'); // tell browser to wait 5 sec then redirect

PHPスクリプトをスリープ状態にすることは、一時停止することと同じです...スクリプトはハングして何もしませんLocation。HTTP本文が送信される前にヘッダーを送信する必要があるため、出力バッファーを使用しても役に立ちません。オプションのみがヘッダーの更新を使用しています。

これは関数を使用する場合と同じですheader()が、php コードは必要ありません: https://stackoverflow.com/a/737003/555097

于 2013-08-25T10:30:47.130 に答える
0

または、javascript を使用してこのタスクを実行することもできます。ページが読み込まれたら 5 秒間待機してからリダイレクトする js スクリプト

<script>
setTimeout("redir()",5000);
function redir()
{
   window.location.href = 'your url here';
}
</script>
于 2013-08-25T10:48:54.827 に答える