返回列表 发布新帖
查看: 212|回复: 0

[代码技巧] 子比主题修改带页面快照GO跳转页面

[复制链接]
SunJu_FaceMall
社区贡献

315

主题

190

回帖

1万

积分

等级头衔
Icon组别 : 管理员
Icon等级 :

积分成就
   钻石 : 524 颗
   贡献 : 1849 点
   金币 : 12 枚
Icon在线时间 : 1298 小时
Icon注册时间 : 2024-11-22
Icon最后登录 : 2025-12-12

荣誉勋章

会员LV.1会员LV.2会员LV.3会员LV.4会员LV.5会员LV.6会员LV.7会员LV.8会员LV.9会员LV.10

风云·优秀版主

飞流名人堂成员

1

实名认证 手机认证 vip vip-year FLLTCN发表于 2025-8-26 23:09:12 来自手机端 | 查看全部 |阅读模式 北京

资源无需等待,交易就趁现在,全面资源整合网络大咖云集,让你轻松玩转互联网!

您需要 登录 才可以下载或查看,没有账号?立即注册

×
<h2>效果展示</h2>
1000221404.webp
功能
1.左下角自定义广告位
2.右上角添加站长联系方式
3.页面快照(您要访问的页面快照,部分页面可能由于防御机制无法捕获)
4.已内置相关api,直接食用即可
代码
  1. <?php
  2. if (
  3.     strlen($_SERVER['REQUEST_URI']) > 384 ||
  4.     strpos($_SERVER['REQUEST_URI'], "eval(") !== false ||
  5.     strpos($_SERVER['REQUEST_URI'], "base64") !== false
  6. ) {
  7.     @header("HTTP/1.1 414 Request-URI Too Long");
  8.     @header("Status: 414 Request-URI Too Long");
  9.     @header("Connection: Close");
  10.     @exit;
  11. }

  12. @session_start();

  13. // 处理URL参数
  14. $t_url = !empty($_SESSION['GOLINK']) ? $_SESSION['GOLINK'] : preg_replace('/^url=(.*)$/i', '$1', $_SERVER["QUERY_STRING"]);
  15. if (!empty($t_url)) {
  16.     if ($t_url === base64_encode(base64_decode($t_url))) {
  17.         $t_url = base64_decode($t_url);
  18.     }
  19.     $t_url = htmlspecialchars($t_url);
  20.    
  21.     preg_match('/^(http|https|thunder|qqdl|ed2k|Flashget|qbrowser):\/\//i', $t_url, $matches);
  22.     $site_name = <?php bloginfo( 'name' ); ?>;
  23.     $page_title = $site_name . ' - 网站安全验证中心';
  24.    
  25.     if ($matches) {
  26.         $url = $t_url;
  27.     } else {
  28.         preg_match('/\./i', $t_url, $matche);
  29.         if ($matche) {
  30.             $url = 'http://' . $t_url;
  31.         } else {
  32.             $url = 'http://' . $_SERVER['HTTP_HOST'];
  33.             $page_title = '参数错误 - ' . $site_name;
  34.         }
  35.     }
  36. } else {
  37.     $page_title = '参数缺失 - ' . $site_name;
  38.     $url = 'http://' . $_SERVER['HTTP_HOST'];
  39. }

  40. $url = htmlspecialchars($url);
  41. $domain = parse_url($url, PHP_URL_HOST) ?: $url;


  42. $normalizedUrl = $url;
  43. if (!preg_match('/^https?:\/\//i', $normalizedUrl)) {
  44.     $normalizedUrl = 'http://' . $normalizedUrl;
  45. }
  46. $encodedUrl = rawurlencode($normalizedUrl);
  47. $snapshotWidth = 1024;
  48. $snapshotHeight = 768;
  49. $snapshotQuality = 80;
  50. $mshotsUrl = "https://s0.wp.com/mshots/v1/{$encodedUrl}?w={$snapshotWidth}&h={$snapshotHeight}&quality={$snapshotQuality}";
  51. ?>
  52. <!DOCTYPE html>
  53. <html lang="zh-CN">
  54. <head>
  55.     <meta charset="UTF-8">
  56.     <meta http-equiv="X-UA-Compatible" content="IE=edge">
  57.     <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
  58.     <meta name="robots" content="noindex, nofollow">
  59.     <link rel="shortcut icon" href="https://blgo.ax24.cn/wp-content/uploads/2025/08/favicon.ico" type="image/x-icon">
  60.     <title><?php echo $page_title; ?></title>
  61.     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
  62.     <style>
  63.         :root {
  64.             --primary: #165DFF;
  65.             --primary-light: #E8F3FF;
  66.             --primary-dark: #0E42CC;
  67.             --danger: #F53F3F;
  68.             --danger-light: #FFECE8;
  69.             --warning: #FF7D00;
  70.             --warning-light: #FFF7E8;
  71.             --success: #00B42A;
  72.             --success-light: #E8FFEA;
  73.             --gray-50: #F2F3F5;
  74.             --gray-100: #E5E6EB;
  75.             --gray-200: #C9CDD4;
  76.             --gray-300: #86909C;
  77.             --gray-400: #4E5969;
  78.             --gray-500: #1D2129;
  79.             --text: var(--gray-500);
  80.             --text-light: var(--gray-400);
  81.             --border-radius: 12px;
  82.             --border-radius-sm: 6px;
  83.             --shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  84.             --shadow-hover: 0 8px 30px rgba(0, 0, 0, 0.12);
  85.             --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  86.         }
  87.         
  88.         * {
  89.             margin: 0;
  90.             padding: 0;
  91.             box-sizing: border-box;
  92.             font-family: "Inter", "Microsoft YaHei", "Segoe UI", Roboto, sans-serif;
  93.         }
  94.         
  95.         body {
  96.             background-color: #F7F8FA;
  97.             color: var(--text);
  98.             line-height: 1.5;
  99.             padding: 30px 0;
  100.             font-size: 15px;
  101.         }
  102.         
  103.         .container {
  104.             max-width: 1200px;
  105.             margin: 0 auto;
  106.             padding: 0 16px;
  107.         }
  108.         
  109.         .card {
  110.             background-color: #fff;
  111.             border-radius: var(--border-radius);
  112.             box-shadow: var(--shadow);
  113.             overflow: hidden;
  114.             margin-bottom: 24px;
  115.             transition: var(--transition);
  116.         }
  117.         
  118.         .card:hover {
  119.             box-shadow: var(--shadow-hover);
  120.         }
  121.         
  122.         .card-header {
  123.                   
  124.             background: linear-gradient(135deg, rgba(22, 93, 255, 0.9), rgba(22, 93, 255, 0.7));
  125.             color: #fff;
  126.             padding: 20px 24px;
  127.             font-size: 20px;
  128.             font-weight: 600;
  129.             display: flex;
  130.             align-items: center;
  131.             justify-content: space-between;
  132.             position: relative;
  133.             overflow: hidden;
  134.             border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  135.         }
  136.         
  137.         
  138.         .card-header::before {
  139.             content: '';
  140.             position: absolute;
  141.             top: 0;
  142.             left: 0;
  143.             width: 100%;
  144.             height: 100%;
  145.             background: linear-gradient(135deg, rgba(255, 255, 255, 0.15) 0%, rgba(255, 255, 255, 0) 100%);
  146.             backdrop-filter: blur(10px);
  147.             -webkit-backdrop-filter: blur(10px);
  148.         }
  149.         
  150.         .card-header .content {
  151.             position: relative;
  152.             z-index: 1;
  153.             display: flex;
  154.             align-items: center;
  155.         }
  156.         
  157.         .card-header .contact-buttons {
  158.             position: relative;
  159.             z-index: 1;
  160.             display: flex;
  161.             gap: 12px;
  162.         }
  163.         
  164.         .contact-btn {
  165.             background-color: rgba(255, 255, 255, 0.2);
  166.             border: none;
  167.             color: white;
  168.             padding: 6px 16px;
  169.             border-radius: 20px;
  170.             font-size: 14px;
  171.             cursor: pointer;
  172.             transition: var(--transition);
  173.             display: inline-flex;
  174.             align-items: center;
  175.             gap: 6px;
  176.             text-decoration: none;
  177.         }
  178.         
  179.         .contact-btn:hover {
  180.             background-color: rgba(255, 255, 255, 0.3);
  181.             transform: translateY(-2px);
  182.             box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  183.         }
  184.         
  185.         .card-header .icon {
  186.             font-size: 24px;
  187.             margin-right: 12px;
  188.         }
  189.         
  190.         .card-body {
  191.             padding: 24px;
  192.         }
  193.         
  194.         .main-content {
  195.             display: flex;
  196.             gap: 24px;
  197.             margin-bottom: 24px;
  198.         }
  199.         
  200.         .left-column {
  201.             flex: 1;
  202.         }
  203.         
  204.         .right-column {
  205.             flex: 1.2;
  206.         }
  207.         
  208.         .warning-notice {
  209.             background-color: var(--warning-light);
  210.             border-left: 4px solid var(--warning);
  211.             padding: 16px 20px;
  212.             margin-bottom: 24px;
  213.             border-radius: 0 var(--border-radius-sm) var(--border-radius-sm) 0;
  214.             display: flex;
  215.             align-items: center;
  216.             transition: var(--transition);
  217.         }
  218.         
  219.         .warning-notice:hover {
  220.             transform: translateX(2px);
  221.         }
  222.         
  223.         .warning-notice i {
  224.             color: var(--warning);
  225.             font-size: 22px;
  226.             margin-right: 12px;
  227.             flex-shrink: 0;
  228.         }
  229.         
  230.         .url-display {
  231.             background-color: var(--gray-50);
  232.             border: 1px solid var(--gray-100);
  233.             border-radius: var(--border-radius-sm);
  234.             padding: 16px 20px;
  235.             margin-bottom: 24px;
  236.             word-break: break-all;
  237.             position: relative;
  238.             transition: var(--transition);
  239.         }
  240.         
  241.         .url-display:hover {
  242.             border-color: var(--primary-light);
  243.             background-color: var(--primary-light);
  244.         }
  245.         
  246.         .url-display::before {
  247.             content: "目标网址";
  248.             position: absolute;
  249.             top: -10px;
  250.             left: 16px;
  251.             background-color: #fff;
  252.             padding: 0 8px;
  253.             font-size: 13px;
  254.             color: var(--gray-400);
  255.             font-weight: 500;
  256.         }
  257.         
  258.         .info-section {
  259.             margin-bottom: 32px;
  260.         }
  261.         
  262.         .info-title {
  263.             font-size: 18px;
  264.             font-weight: 600;
  265.             margin-bottom: 16px;
  266.             padding-bottom: 10px;
  267.             border-bottom: 1px solid var(--gray-100);
  268.             display: flex;
  269.             align-items: center;
  270.             color: var(--gray-500);
  271.         }
  272.         
  273.         .info-title i {
  274.             color: var(--primary);
  275.             margin-right: 10px;
  276.             font-size: 20px;
  277.         }
  278.         
  279.         .snapshot-container {
  280.             border: 1px solid var(--gray-100);
  281.             border-radius: var(--border-radius);
  282.             overflow: hidden;
  283.             background-color: #fff;
  284.             margin-bottom: 24px;
  285.             transition: var(--transition);
  286.             height: 100%;
  287.             display: flex;
  288.             flex-direction: column;
  289.         }
  290.         
  291.         .snapshot-container:hover {
  292.             border-color: var(--primary-light);
  293.             box-shadow: 0 2px 12px rgba(22, 93, 255, 0.08);
  294.         }
  295.         
  296.         .snapshot-header {
  297.             background-color: var(--gray-50);
  298.             padding: 12px 16px;
  299.             border-bottom: 1px solid var(--gray-100);
  300.             display: flex;
  301.             align-items: center;
  302.             font-size: 14px;
  303.         }
  304.         
  305.         .browser-dots {
  306.             display: flex;
  307.             gap: 6px;
  308.             margin-right: 16px;
  309.         }
  310.         
  311.         .dot {
  312.             width: 10px;
  313.             height: 10px;
  314.             border-radius: 50%;
  315.             transition: var(--transition);
  316.         }
  317.         
  318.         .dot-red {
  319.             background-color: #FF5A5A;
  320.         }
  321.         
  322.         .dot-red:hover {
  323.             transform: scale(1.2);
  324.         }
  325.         
  326.         .dot-yellow {
  327.             background-color: #FFC850;
  328.         }
  329.         
  330.         .dot-yellow:hover {
  331.             transform: scale(1.2);
  332.         }
  333.         
  334.         .dot-green {
  335.             background-color: #56D364;
  336.         }
  337.         
  338.         .dot-green:hover {
  339.             transform: scale(1.2);
  340.         }
  341.         
  342.         .snapshot-url {
  343.             color: var(--gray-400);
  344.             flex: 1;
  345.             overflow: hidden;
  346.             text-overflow: ellipsis;
  347.             white-space: nowrap;
  348.             font-family: "Consolas", monospace;
  349.         }
  350.         
  351.         .snapshot-img-container {
  352.             width: 100%;
  353.             overflow: hidden;
  354.             position: relative;
  355.             flex: 1;
  356.             min-height: 400px;
  357.             background-color: var(--gray-50);
  358.         }
  359.         
  360.         .snapshot-loading {
  361.             position: absolute;
  362.             top: 0;
  363.             left: 0;
  364.             width: 100%;
  365.             height: 100%;
  366.             display: flex;
  367.             align-items: center;
  368.             justify-content: center;
  369.             background-color: rgba(255, 255, 255, 0.8);
  370.             z-index: 10;
  371.             transition: opacity 0.3s ease;
  372.         }
  373.         
  374.         .snapshot-loading i {
  375.             font-size: 36px;
  376.             color: var(--primary);
  377.             animation: spin 1.5s linear infinite;
  378.             position: relative;
  379.         }
  380.         
  381.         .snapshot-loading i::after {
  382.             content: '';
  383.             position: absolute;
  384.             top: 50%;
  385.             left: 50%;
  386.             width: 120%;
  387.             height: 120%;
  388.             border-radius: 50%;
  389.             border: 2px solid rgba(22, 93, 255, 0.2);
  390.             transform: translate(-50%, -50%);
  391.             animation: pulse 2s infinite;
  392.         }
  393.         
  394.         @keyframes spin {
  395.             0% { transform: rotate(0deg); }
  396.             100% { transform: rotate(360deg); }
  397.         }
  398.         
  399.         @keyframes pulse {
  400.             0% { transform: translate(-50%, -50%) scale(0.8); opacity: 1; }
  401.             100% { transform: translate(-50%, -50%) scale(1.5); opacity: 0; }
  402.         }
  403.         
  404.         .snapshot-img {
  405.             width: 100%;
  406.             height: 100%;
  407.             object-fit: cover;
  408.             display: block;
  409.             transition: transform 0.6s ease, opacity 0.4s ease;
  410.             opacity: 0;
  411.         }
  412.         
  413.         .snapshot-img.loaded {
  414.             transform: scale(1);
  415.             opacity: 1;
  416.         }
  417.         
  418.         .snapshot-img:hover {
  419.             transform: scale(1.03);
  420.         }
  421.         
  422.         .snapshot-placeholder {
  423.             padding: 80px 20px;
  424.             text-align: center;
  425.             color: var(--gray-400);
  426.         }
  427.         
  428.         .snapshot-refresh {
  429.             margin-top: 12px;
  430.             color: var(--primary);
  431.             background: none;
  432.             border: 1px solid var(--primary);
  433.             padding: 6px 18px;
  434.             border-radius: 20px;
  435.             font-size: 14px;
  436.             cursor: pointer;
  437.             transition: var(--transition);
  438.             display: inline-flex;
  439.             align-items: center;
  440.             gap: 6px;
  441.             text-decoration: none;
  442.         }
  443.         
  444.         .snapshot-refresh i {
  445.             transition: transform 0.5s ease;
  446.         }
  447.         
  448.         .snapshot-refresh:hover {
  449.             background-color: var(--primary);
  450.             color: white;
  451.             transform: translateY(-2px);
  452.             box-shadow: 0 4px 12px rgba(22, 93, 255, 0.25);
  453.         }
  454.         
  455.         .snapshot-refresh:hover i {
  456.             transform: rotate(180deg);
  457.         }
  458.         
  459.         .action-buttons {
  460.             display: flex;
  461.             justify-content: center;
  462.             gap: 24px;
  463.             margin: 24px 0;
  464.             flex-wrap: wrap;
  465.         }
  466.         
  467.         .btn {
  468.             padding: 14px 48px;
  469.             border-radius: var(--border-radius-sm);
  470.             font-size: 16px;
  471.             font-weight: 600;
  472.             cursor: pointer;
  473.             transition: var(--transition);
  474.             border: none;
  475.             display: inline-flex;
  476.             align-items: center;
  477.             justify-content: center;
  478.             gap: 8px;
  479.             position: relative;
  480.             overflow: hidden;
  481.             text-decoration: none;
  482.         }
  483.         
  484.         .btn::before {
  485.             content: '';
  486.             position: absolute;
  487.             top: 0;
  488.             left: -100%;
  489.             width: 100%;
  490.             height: 100%;
  491.             background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
  492.             transition: 0.5s;
  493.         }
  494.         
  495.         .btn:hover::before {
  496.             left: 100%;
  497.         }
  498.         
  499.         .btn-cancel {
  500.             background-color: #fff;
  501.             color: var(--gray-500);
  502.             border: 1px solid var(--gray-100);
  503.         }
  504.         
  505.         .btn-cancel:hover {
  506.             background-color: var(--gray-50);
  507.             border-color: var(--gray-200);
  508.             transform: translateY(-2px);
  509.             box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  510.         }
  511.         
  512.         .btn-continue {
  513.             background-color: var(--primary);
  514.             color: #fff;
  515.         }
  516.         
  517.         .btn-continue:hover {
  518.             background-color: var(--primary-dark);
  519.             transform: translateY(-2px);
  520.             box-shadow: 0 6px 16px rgba(22, 93, 255, 0.3);
  521.         }
  522.         
  523.         .safety-tips {
  524.             background-color: var(--danger-light);
  525.             border-radius: var(--border-radius-sm);
  526.             padding: 16px 20px;
  527.             margin: 24px 0;
  528.             font-size: 14px;
  529.             color: var(--danger);
  530.             border-left: 4px solid var(--danger);
  531.             transition: var(--transition);
  532.         }
  533.         
  534.         .safety-tips:hover {
  535.             transform: translateX(2px);
  536.         }
  537.         
  538.         .safety-tips strong {
  539.             font-weight: 600;
  540.         }
  541.         
  542.         
  543.         .ad-section {
  544.             margin-top: 30px;
  545.             border-radius: var(--border-radius-sm);
  546.             overflow: hidden;
  547.         }
  548.         
  549.         .ad-image-container {
  550.             margin-bottom: 12px;
  551.             border-radius: var(--border-radius-sm);
  552.             overflow: hidden;
  553.             box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  554.             transition: var(--transition);
  555.         }
  556.         
  557.         .ad-image-container:hover {
  558.             box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
  559.             transform: translateY(-2px);
  560.         }
  561.         
  562.         .ad-image {
  563.             width: 100%;
  564.             height: auto;
  565.             display: block;
  566.             border: none;
  567.         }
  568.         
  569.         .ad-text-container {
  570.             display: flex;
  571.             gap: 12px;
  572.         }
  573.         
  574.         .ad-text {
  575.             flex: 1;
  576.             background-color: var(--gray-50);
  577.             border: 1px solid var(--gray-100);
  578.             border-radius: var(--border-radius-sm);
  579.             padding: 12px 16px;
  580.             text-align: center;
  581.             color: var(--primary);
  582.             font-weight: 500;
  583.             cursor: pointer;
  584.             transition: var(--transition);
  585.             text-decoration: none;
  586.         }
  587.         
  588.         .ad-text:hover {
  589.             background-color: var(--primary-light);
  590.             border-color: var(--primary);
  591.             transform: translateY(-2px);
  592.             box-shadow: 0 4px 8px rgba(22, 93, 255, 0.1);
  593.         }
  594.         
  595.         .footer-info {
  596.             text-align: center;
  597.             font-size: 14px;
  598.             color: var(--gray-400);
  599.             padding: 20px 0 10px;
  600.             position: relative;
  601.         }
  602.         
  603.         .footer-info::before {
  604.             content: '';
  605.             position: absolute;
  606.             top: 0;
  607.             left: 15%;
  608.             width: 70%;
  609.             height: 1px;
  610.             background-color: var(--gray-100);
  611.         }
  612.         
  613.         .footer-info p {
  614.             margin-bottom: 8px;
  615.         }
  616.         
  617.         @media (max-width: 992px) {
  618.             .main-content {
  619.                 flex-direction: column;
  620.             }
  621.             
  622.             .snapshot-img-container {
  623.                 min-height: 320px;
  624.             }
  625.         }
  626.         
  627.         @media (max-width: 768px) {
  628.             .action-buttons {
  629.                 flex-direction: column;
  630.                 gap: 12px;
  631.                 padding: 0 16px;
  632.             }
  633.             
  634.             .btn {
  635.                 width: 100%;
  636.                 padding: 14px 0;
  637.             }
  638.             
  639.             .card-header {
  640.                 padding: 16px 20px;
  641.                 font-size: 18px;
  642.                 flex-direction: column;
  643.                 align-items: flex-start;
  644.                 gap: 12px;
  645.             }
  646.             
  647.             .card-header .contact-buttons {
  648.                 width: 100%;
  649.                 justify-content: flex-start;
  650.             }
  651.             
  652.             .card-body {
  653.                 padding: 20px;
  654.             }
  655.             
  656.             .ad-text {
  657.                 padding: 10px 12px;
  658.                 font-size: 14px;
  659.             }
  660.         }
  661.         
  662.         @media (max-width: 480px) {
  663.             body {
  664.                 padding: 20px 0;
  665.             }
  666.             
  667.             .card-header {
  668.                 font-size: 16px;
  669.             }
  670.             
  671.             .card-body {
  672.                 padding: 16px;
  673.             }
  674.             
  675.             .warning-notice, .safety-tips {
  676.                 padding: 12px 16px;
  677.             }
  678.             
  679.             .snapshot-img-container {
  680.                 min-height: 240px;
  681.             }
  682.             
  683.             .contact-btn {
  684.                 padding: 5px 12px;
  685.                 font-size: 13px;
  686.             }
  687.             
  688.             .ad-text-container {
  689.                 flex-direction: column;
  690.                 gap: 8px;
  691.             }
  692.         }
  693.     </style>
  694. </head>
  695. <body>
  696.     <div class="container">
  697.         <!-- 页面标题卡片 -->
  698.         <div class="card">
  699.             <div class="card-header">
  700.                 <div class="content">
  701.                     <i class="fas fa-shield-alt icon"></i>
  702.                     <?php bloginfo( 'name' ); ?>
  703.                 </div>
  704.                 <div class="contact-buttons">
  705.                     <a href="这里修改为你的QQ链接"
  706.                        class="contact-btn"
  707.                        target="_blank"
  708.                        rel="noopener noreferrer">
  709.                         <i class="fab fa-qq"></i> 联系站长
  710.                     </a>
  711.                     <a href="mailto:这里修改为你的邮箱"
  712.                        class="contact-btn">
  713.                         <i class="fas fa-envelope"></i> 发送邮件
  714.                     </a>
  715.                 </div>
  716.             </div>
  717.             <div class="card-body">
  718.                 <div class="main-content">
  719.                     <!-- 左侧列 - 提示信息 -->
  720.                     <div class="left-column">
  721.                         <div class="warning-notice">
  722.                             <i class="fas fa-exclamation-circle"></i>
  723.                             <div>您即将离开当前平台,访问第三方网站。请确认该网站的安全性后再进行访问。</div>
  724.                         </div>
  725.                         
  726.                         <div class="url-display">
  727.                             <?php echo $url; ?>
  728.                         </div>
  729.                         
  730.                         <!-- 安全提示 -->
  731.                         <div class="safety-tips">
  732.                             <strong>安全提示:</strong>请勿在陌生网站输入银行卡密码、身份证号等敏感信息。如发现虚假网站或诈骗行为,请立即举报。
  733.                         </div>
  734.                         
  735.                         <!-- 操作按钮 -->
  736.                         <div class="action-buttons">
  737.                             <button class="btn btn-cancel" id="cancelBtn">
  738.                                 <i class="fas fa-arrow-left"></i> 返回上一页
  739.                             </button>
  740.                             <button class="btn btn-continue" id="continueBtn">
  741.                                 <i class="fas fa-external-link-alt"></i> 继续访问
  742.                             </button>
  743.                         </div>
  744.                         
  745.                         <!-- 广告位 -->
  746.                         <div class="ad-section">
  747.                             <!-- 第一行:图片广告 -->
  748.                             <!-- <a href="这里修改为你需要跳转的网站链接" target="_blank" rel="noopener noreferrer" class="ad-image-container">
  749.                                 
  750.                             </a> -->
  751.                         </div>
  752.                     </div>
  753.                     
  754.                     <!-- 右侧列 - 屏幕快照 -->
  755.                     <div class="right-column">
  756.                         <div class="info-section">
  757.                             <h3 class="info-title">
  758.                                 <i class="fas fa-desktop"></i> 网站快照预览
  759.                             </h3>
  760.                             <div class="snapshot-container">
  761.                                 <div class="snapshot-header">
  762.                                     <div class="browser-dots">
  763.                                         <div class="dot dot-red"></div>
  764.                                         <div class="dot dot-yellow"></div>
  765.                                         <div class="dot dot-green"></div>
  766.                                     </div>
  767.                                     <div class="snapshot-url"><?php echo $domain; ?></div>
  768.                                 </div>
  769.                                 <div class="snapshot-img-container">
  770.                                     <div class="snapshot-loading" id="snapshotLoader">
  771.                                         <i class="fas fa-spinner fa-spin"></i>
  772.                                     </div>
  773.                                      document.getElementById('snapshotLoader').style.display='none', 300);"
  774.                                          onerror="handleSnapshotError()">
  775.                                 </div>
  776.                                 <div style="text-align: center; padding: 12px;">
  777.                                     <button class="snapshot-refresh" onclick="refreshSnapshot()">
  778.                                         <i class="fas fa-sync-alt"></i> 刷新快照
  779.                                     </button>
  780.                                 </div>
  781.                             </div>
  782.                         </div>
  783.                     </div>
  784.                 </div>
  785.             </div>
  786.         </div>
  787.         
  788.         <!-- 页脚信息 -->
  789.         <div class="footer-info">
  790.             <p>安全验证中心旨在保护用户上网安全,本验证结果仅供参考</p>
  791.             <p>© 2025 这里修改为你的网站名 版权所有</p>
  792.         </div>
  793.     </div>

  794.     <script>
  795.         // 保存原始快照URL,用于刷新功能
  796.         const originalSnapshotUrl = "<?php echo $mshotsUrl; ?>";
  797.         
  798.         // 取消访问按钮
  799.         document.getElementById('cancelBtn').addEventListener('click', function() {
  800.             this.innerHTML = '<i class="fas fa-spinner fa-spin"></i> 返回中...';
  801.             this.disabled = true;
  802.             
  803.             // 尝试返回上一页,如果不行则跳转到首页
  804.             setTimeout(() => {
  805.                 if (history.length > 1) {
  806.                     history.back();
  807.                 } else {
  808.                     location.href = 'http://<?php echo $_SERVER['HTTP_HOST']; ?>';
  809.                 }
  810.             }, 600);
  811.         });
  812.         
  813.         // 继续访问按钮
  814.         document.getElementById('continueBtn').addEventListener('click', function() {
  815.             this.innerHTML = '<i class="fas fa-spinner fa-spin"></i> 跳转中...';
  816.             this.disabled = true;
  817.             
  818.             setTimeout(() => {
  819.                 location.replace('<?php echo $url; ?>');
  820.             }, 800);
  821.         });
  822.         
  823.         // 处理快照加载错误
  824.         function handleSnapshotError() {
  825.             const container = document.querySelector('.snapshot-img-container');
  826.             container.innerHTML = `
  827.                 <div class="snapshot-placeholder">
  828.                     <i class="fas fa-exclamation-circle" style="font-size: 36px; margin-bottom: 12px; color: var(--danger);"></i>
  829.                     <p>网页快照加载失败</p>
  830.                     <button class="snapshot-refresh" onclick="refreshSnapshot()">
  831.                         <i class="fas fa-sync-alt"></i> 重试
  832.                     </button>
  833.                 </div>
  834.             `;
  835.         }
  836.         
  837.         // 刷新快照功能
  838.         function refreshSnapshot() {
  839.             const container = document.querySelector('.snapshot-img-container');
  840.             // 添加随机参数防止缓存
  841.             const randomParam = Math.random().toString(36).substring(7);
  842.             const newSnapshotUrl = originalSnapshotUrl + (originalSnapshotUrl.includes('?') ? '&' : '?') + 'rand=' + randomParam;
  843.             
  844.             container.innerHTML = `
  845.                 <div class="snapshot-loading" id="snapshotLoader">
  846.                     <i class="fas fa-spinner fa-spin"></i>
  847.                 </div>
  848.                  document.getElementById('snapshotLoader').style.display='none', 300);"
  849.                      onerror="handleSnapshotError()">
  850.             `;
  851.         }
  852.         
  853.         // 添加页面载入动画
  854.         document.addEventListener('DOMContentLoaded', function() {
  855.             const card = document.querySelector('.card');
  856.             card.style.opacity = '0';
  857.             card.style.transform = 'translateY(20px)';
  858.             
  859.             setTimeout(() => {
  860.                 card.style.transition = 'opacity 0.6s ease, transform 0.6s ease';
  861.                 card.style.opacity = '1';
  862.                 card.style.transform = 'translateY(0)';
  863.             }, 100);
  864.         });
  865.     </script>
  866. </body>
  867. </html>
复制代码

本帖被以下淘专辑推荐:

路虽远,行则将至;事虽难,做则必成。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

飞流广播+ 发布

系统消息:柒沐已经连续答对3道难题,逆天学霸谁与争锋?!#每日答题#
10-30 17:02
系统消息:柒沐已经连续答对10道难题,逆天学霸谁与争锋?!#每日答题#
10-09 09:07
系统消息:柒沐已经连续答对3道难题,逆天学霸谁与争锋?!#每日答题#
09-24 09:00
系统消息:柒沐已经连续答对3道难题,逆天学霸谁与争锋?!#每日答题#
09-11 11:40
系统消息:柒沐已经连续答对3道难题,逆天学霸谁与争锋?!#每日答题#
09-02 09:17
系统消息:柒沐已经连续答对3道难题,逆天学霸谁与争锋?!#每日答题#
08-27 08:56
系统消息:柒沐已经连续答对3道难题,逆天学霸谁与争锋?!#每日答题#
08-20 15:12
系统消息:柒沐已经连续答对3道难题,逆天学霸谁与争锋?!#每日答题#
08-03 10:22
系统消息:柒沐已经连续答对10道难题,逆天学霸谁与争锋?!#每日答题#
06-30 08:57
系统消息:柒沐已经连续答对3道难题,逆天学霸谁与争锋?!#每日答题#
06-18 09:14
系统消息:清风网络已经连续答对10道难题,逆天学霸谁与争锋?!#每日答题#
04-11 09:40
系统消息:清风网络已经连续答对3道难题,逆天学霸谁与争锋?!#每日答题#
04-10 09:31
系统消息:IXM77777已经连续答对3道难题,逆天学霸谁与争锋?!#每日答题#
04-09 13:44
系统消息:清风网络已经连续答对3道难题,逆天学霸谁与争锋?!#每日答题#
04-09 09:22
系统消息:柒沐已经连续答对10道难题,逆天学霸谁与争锋?!#每日答题#
04-09 08:52
系统消息:清风网络已经连续答对3道难题,逆天学霸谁与争锋?!#每日答题#
04-08 09:24
系统消息:柒沐已经连续答对3道难题,逆天学霸谁与争锋?!#每日答题#
04-07 09:02
系统消息:柒沐已经连续答对10道难题,逆天学霸谁与争锋?!#每日答题#
02-27 09:35
系统消息:柒沐已经连续答对3道难题,逆天学霸谁与争锋?!#每日答题#
02-26 09:06
系统消息:柒沐已经连续答对3道难题,逆天学霸谁与争锋?!#每日答题#
02-25 08:49
站内通告

提供资源交易、信息共享、靓号交流、技术变现、学习问答、兴趣娱乐等全面服务。

1.丰富功能系统,扩展社区特色玩法,打造最好的互联网聚集圈子。

2.准确信息真实交易,安全快捷又方便,让虚拟交易面对面。

3. 天上不会掉馅饼,话术骗术迷人心,切勿脱离平台线下交易,被骗与平台无关!

4. 欺诈骗钱,违规违法将视情受到警告&禁言&封号甚至检举至👮🏻‍♀️处理!

官方Q群:123129钉推群:BAYR2383 站长QQ:3220000000

投诉/建议/商务合作联系

fl@fllt.cn

严禁私下交易,被骗与本站无关。
违反交易细则,取证立查严惩。
  • 钉钉新帖推送群
  • 官方交流QQ群
  • 站长唯一微信号

👮曝光Ta|🧿小黑屋|📴手机页|飞流网 ( 渝ICP备2025054677号-1|电信增值许可 渝B2-20250789 )|网站地图

GMT+8, 2025-12-14 07:00 , Processed in 0.085520 second(s), 61 queries, MemCached On , Gzip On.

Based on XJ-TX X3.5 Licensed

飞流论坛 HanAnalytics icp Astro vhAstro-Theme

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表