php session_start(); 1. 前台访问密码(可改) $visit_password = 123456; 2. 付费配置(1元 = 10积分) $price_1 = 1; 1元 $coin_1 = 10; 送10积分 $price_3 = 3; 3元 $coin_3 = 35; 送35积分 $price_10 = 10; 10元 $coin_10 = 130; 送130积分 3. 单张写真查看消耗积分 $cost_coin = 2; 4. 验证密码 if(isset($_POST['pwd'])){ if($_POST['pwd'] == $visit_password){ $_SESSION['has_access'] = 1; }else{ $error = 密码错误; } } 5. 退出登录 if(isset($_GET['exit'])){ unset($_SESSION['has_access']); header(Locationindex.php); exit; } 6. 付费充值接口 if(isset($_GET['pay'])){ $type = $_GET['pay']; if($type == 1){ $_SESSION['user_coin'] += $coin_1; }elseif($type == 3){ $_SESSION['user_coin'] += $coin_3; }elseif($type == 10){ $_SESSION['user_coin'] += $coin_10; } header(Locationindex.php); exit; } 7. 查看写真(扣积分) if(isset($_GET['view']) && isset($_SESSION['has_access'])){ if($_SESSION['user_coin'] = $cost_coin){ $_SESSION['user_coin'] -= $cost_coin; $img = $_GET['view']; 直接输出图片,防止外链 header(Content-Type imagejpeg); readfile($img); exit; }else{ $coin_error = 积分不足,请先充值; } } !DOCTYPE html html lang=zh-CN head meta charset=UTF-8 meta name=viewport content=width=device-width, initial-scale=1.0, maximum-scale=1.0 title写真图集 - 付费会员版title link rel=stylesheet href=httpscdn.bootcdn.netajaxlibsfont-awesome6.4.0cssall.min.css style {margin0;padding0;box-sizingborder-box;font-familyPingFang SC,Microsoft YaHei,sans-serif} body{background#0f0f0f;color#fff;padding-bottom70px} 密码页 .pwd-box{positionfixed;inset0;backgroundrgba(0,0,0,.95);displayflex;align-itemscenter;justify-contentcenter;z-index9999} .pwd-card{background#1a1a1a;padding30px;border-radius12px;width90%;max-width360px;text-aligncenter} .pwd-card h2{color#ff69b4;margin-bottom16px} .pwd-card input{width100%;padding12px;background#2a2a2a;bordernone;border-radius8px;color#fff;outlinenone;margin-bottom12px} .pwd-card button{width100%;padding12px;background#ff69b4;bordernone;border-radius8px;color#fff;font-weight700} .error{color#ff4444;margin-bottom10px} 头部 header{positionfixed;top0;left0;right0;height60px;background#141414;displayflex;align-itemscenter;justify-contentspace-between;padding0 20px;border-bottom1px solid #222;z-index99} .logo{color#ff69b4;font-size20px;font-weight700} .user-info{color#fff;font-size14px} .user-info b{color#ff69b4} .exit{color#999;text-decorationnone} 写真网格 .container{margin-top70px;padding10px;displaygrid;grid-template-columns1fr 1fr;gap12px} .item{background#1a1a1a;border-radius10px;overflowhidden;cursorpointer;positionrelative} .item img{width100%;height230px;object-fitcover} .info{padding10px} .title{font-size14px;color#eee;white-spacenowrap;overflowhidden;text-overflowellipsis} .tag{displayinline-block;margin-top6px;font-size12px;color#ff69b4;backgroundrgba(255,105,180,.1);padding2px 6px;border-radius4px} .cover{positionabsolute;top0;left0;right0;bottom0;backgroundrgba(0,0,0,.6);displayflex;align-itemscenter;justify-contentcenter;flex-directioncolumn} .cover b{color#ff69b4;font-size18px;margin-bottom5px} .cover span{color#fff;font-size12px} 弹窗 .modal{positionfixed;inset0;backgroundrgba(0,0,0,.95);z-index9999;displaynone;align-itemscenter;justify-contentcenter} .modal img{max-width95%;max-height80vh;border-radius8px} .close{positionabsolute;top20px;right20px;color#fff;font-size36px;cursorpointer} 底部 footer{positionfixed;bottom0;left0;right0;height60px;background#141414;displayflex;justify-contentspace-around;align-itemscenter;border-top1px solid #222} .footer-item{displayflex;flex-directioncolumn;align-itemscenter;color#888;font-size12px;text-decorationnone} .footer-item i{font-size22px;margin-bottom4px} .footer-item.active{color#ff69b4} 充值弹窗 .pay-modal{positionfixed;inset0;backgroundrgba(0,0,0,.8);displaynone;align-itemscenter;justify-contentcenter;z-index9999} .pay-card{background#1a1a1a;padding20px;border-radius12px;width90%;max-width400px} .pay-card h3{color#ff69b4;margin-bottom15px;text-aligncenter} .pay-item{background#222;padding15px;border-radius8px;margin-bottom10px;displayflex;align-itemscenter;justify-contentspace-between;cursorpointer} .pay-itemhover{background#333} .pay-left{displayflex;align-itemscenter} .pay-left b{color#ff69b4;margin-left10px} .pay-right{color#fff} style head body php if(!isset($_SESSION['has_access'])) !-- 密码验证 -- div class=pwd-box div class=pwd-card h2访问验证h2 php if(isset($error)) echo div class=error$errordiv; form method=post input type=password name=pwd placeholder=请输入访问密码 required button进入button form div div php else php if(!isset($_SESSION['user_coin'])) $_SESSION['user_coin'] = 0; !-- 头部 -- header div class=logo写真图集div div class=user-info积分:bphp echo $_SESSION['user_coin']; bdiv a href=exit=1 class=exit退出a header !-- 提示积分不足 -- php if(isset($coin_error)) div style=background#ff444422;color#ff4444;padding10px 20px;margin10px;border-radius8px;text-aligncenter php echo $coin_error; div php endif; !-- 写真列表 -- div class=container div class=item onclick=showModal('httpspicsum.photos6008001') img src=httpspicsum.photos6008001 div class=info div class=title清纯少女写真div div class=tag高清套图div div div class=cover b查看 php echo $cost_coin; 积分b span点击查看大图span div div div class=item onclick=showModal('httpspicsum.photos6008002') img src=httpspicsum.photos6008002 div class=info div class=title网红私房写真div div class=tag高清套图div div div class=cover b查看 php echo $cost_coin; 积分b span点击查看大图span div div div class=item onclick=showModal('httpspicsum.photos6008003') img src=httpspicsum.photos6008003 div class=info div class=title御萝风格写真div div class=tag高清套图div div div class=cover b查看 php echo $cost_coin; 积分b span点击查看大图span div div div class=item onclick=showModal('httpspicsum.photos6008004') img src=httpspicsum.photos6008004 div class=info div class=title日系清新写真div div class=tag高清套图div div div class=cover b查看 php echo $cost_coin; 积分b span点击查看大图span div div div !-- 预览弹窗 -- div class=modal id=modal span class=close onclick=closeModal()×span img id=img div !-- 充值入口 -- footer a class=footer-item active onclick=showPay()i class=fas fa-walletispan充值spana a class=footer-item href=admin.phpi class=fas fa-user-cogispan后台spana a class=footer-itemi class=fas fa-starispan收藏spana a class=footer-itemi class=fas fa-userispan我的spana footer !-- 充值弹窗 -- div class=pay-modal id=payModal div class=pay-card h3积分充值h3 div class=pay-item onclick=window.location.href='pay=1' div class=pay-left span💰span b1元充值b div div class=pay-right送 php echo $coin_1; 积分div div div class=pay-item onclick=window.location.href='pay=3' div class=pay-left span💰span b3元充值b div div class=pay-right送 php echo $coin_3; 积分div div div class=pay-item onclick=window.location.href='pay=10' div class=pay-left span💰span b10元充值b div div class=pay-right送 php echo $coin_10; 积分div div div div script function showModal(url){ document.getElementById('modal').style.display = 'flex'; document.getElementById('img').src = index.phpview= + encodeURIComponent(url); document.body.style.overflow = hidden; } function closeModal(){ document.getElementById('modal').style.display = 'none'; document.body.style.overflow = auto; } function showPay(){ document.getElementById('payModal').style.display = 'flex'; } 点击空白关闭充值 document.getElementById('payModal').onclick = function(e){ if(e.target === this){ this.style.display = 'none'; } } script php endif; body html