2

ラップトップでホストされているサーバーに訪問者をリダイレクトするためにこのコードを作成しました(動的IP)

2番目のphpスクリプトを使用して、データベースのIPを更新します

    <?php
    //redirect.php
    $con = mysql_connect($db_hostname,$db_admin,$db_password);
    if (!$con){
        echo "Couldn connect to server !!";
    }
    $sql ="select ip from $db_name.redirect WHERE id=0";
    $result = mysql_query($sql,$con);
    $ip = "error.php";
    while($row = mysql_fetch_array($result)){
    $ip=$row[0];
    }
    //Header( "HTTP/1.1 301 Moved Permanently" ); 
    $forward = "Location: http://$ip";
    header( $forward ) ;
    //Header(  "Location: errorMsg.php"); 
    ?>

しかし、私のラップトップサーバーがオンになることはめったにありません。最初のリダイレクトが失敗した場合に、errorMsg.phpにリダイレクトできるかどうか疑問に思っていました。

また、jspでも同じことが達成できますか?

4

1 に答える 1

0

IPにpingを実行できると思いますが、応答しない場合は、errorMsg.phpを使用してください。これを試して:

$dsn = 'mysql:dbname='.$db_name.';host='.$db_hostname;

try
{
        $dbh = new PDO($dsn,$db_admin,$db_password);
} catch(PDOEXception $e) {
        echo 'Couldn connect to server !!';
}

$sql = 'SELECT ip FROM redirect';
$sth = $dbh->prepare($sql);
$sth->execute();
$ip = $sth->fetchColumn();
$location = 'errorMsg.php';
if($ip && $fp=fsockopen($ip,80,$en,$es,1)) {
        fclose($fp);
        $location = 'http://'.$ip;
}

header('Location: '.$location);

これは、必要なIPでデータベースを更新する方法があることを前提としています。

PS-明らかでない場合は、PDOをお勧めします。

于 2012-08-03T21:28:16.527 に答える