前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >php网页延迟跳转至指定的网址

php网页延迟跳转至指定的网址

作者头像
wo.
发布2021-06-15 15:05:37
2.8K0
发布2021-06-15 15:05:37
举报

目的/效果

当一个ip(用户)第一次访问网站时延时跳转至a.com, 如果这个ip再次访问这个页面,延时跳转b.com。

a.com,b.com和用户访问次数写入到数据库里,从数据库里获取第几次访问 来返回应该跳转的URL

最后,这个ip跳转过数据库最后一条url后,就让他访问另外设置的一个默认url

简单的三个文件

url.php

<?php
header('Content-Type: text/xml');
header("Cache-Control: no-cache, must-revalidate");
 
// 数据库信息
$server = "localhost";
$username = "name";
$password = "pass";
$db = "ipurl";

// 创建连接
$conn = mysqli_connect($server, $username, $password, $db);
// 检测连接
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

// 获取用户IP
$ip=FALSE;
// 客户端IP 或 NONE 
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
    $ip = $_SERVER["HTTP_CLIENT_IP"];
}
// 多重代理服务器下的客户端真实IP地址(可能伪造),如果没有使用代理,此字段为空
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
    if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }
    for ($i = 0; $i < count($ips); $i++) {
        if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {
            $ip = $ips[$i];
            break;
        }
    }
}
// 客户端IP 或 (最后一个)代理服务器 IP 
$ip = $ip ? $ip : $_SERVER['REMOTE_ADDR'];

// 查询该ip对应的url
$sqlsel="SELECT url , url_no FROM t_url WHERE url_no = (SELECT url_no FROM t_ip WHERE ip = '".$ip."');";
$result1=mysqli_query($conn,$sqlsel);
$row=mysqli_fetch_array($result1);

if($result1==0 || $row == FALSE){ // 该ip没有对应的url,让他跳转第一个url
    $row1=mysqli_fetch_array(mysqli_query($conn,"SELECT url FROM t_url WHERE url_no = 1;"));   
    $sqlins="REPLACE INTO t_ip(ip,url_no) VALUES('".$ip."',2);";
    mysqli_query($conn,$sqlins);
    echo $row1[0];
}else{ // 该ip已存在,把他应跳转的url给他。并num+1
    $result2=mysqli_query($conn,"SELECT url_no FROM t_url order by url_no desc limit 1");
    $row2=mysqli_fetch_array($result2);

    if($row[1] ==$row2[0] ){ //已经访问到最后一条了
        echo "http://默认.com";
    }else{//还没访问到最后一条
        $sqlupd="UPDATE t_ip SET url_no=url_no+1 WHERE ip = '".$ip."';";
        mysqli_query($conn,$sqlupd);
        echo $row[0];
    }
}

mysqli_close($conn);
?>

index.html

<!doctype html>
<html>

<head>
    <script type="application/javascript">
        (function() {
            var xmlhttp;
            if (window.XMLHttpRequest) {
                xmlhttp = new XMLHttpRequest();
            } else {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange = function() {
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                    var xmlText = xmlhttp.responseText;
                    //3秒后跳转
                    setTimeout(() => {
                        location.href = xmlText;
                    }, 3000);
                }
            }
            xmlhttp.open("GET", "url.php", true);
            xmlhttp.send();
        })();
    </script>

</head>

<body>
    index
</body>

</html>

ipurl.sql

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for t_ip
-- ----------------------------
DROP TABLE IF EXISTS `t_ip`;
CREATE TABLE `t_ip`  (
  `ip` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `url_no` int(8) NOT NULL,
  PRIMARY KEY (`ip`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

-- ----------------------------
-- Table structure for t_url
-- ----------------------------
DROP TABLE IF EXISTS `t_url`;
CREATE TABLE `t_url`  (
  `url_no` int(8) NOT NULL,
  `url` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (`url_no`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

-- ----------------------------
-- Records of t_url
-- ----------------------------
INSERT INTO `t_url` VALUES (1, 'http://baidu.com');
INSERT INTO `t_url` VALUES (2, 'http://so.com');
INSERT INTO `t_url` VALUES (3, 'http://soso.com');

SET FOREIGN_KEY_CHECKS = 1;
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-04-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目的/效果
  • 简单的三个文件
    • url.php
      • index.html
        • ipurl.sql
        相关产品与服务
        数据库
        云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档