首页
关于
注册说明
留言板
Search
1
1Panel安装php swoole 扩展教程,以日主题ritheme为例
41 阅读
2
独角数卡宝塔搭建保姆式教程
37 阅读
3
微信/QQ防红PHP网站跳转浏览器方法源码
19 阅读
4
typecho插件实现文章指定部分内容登录可见
14 阅读
5
虚拟机安装Typecho后配置伪静态不知道是Apache还是Nginx、IIS怎么办?
12 阅读
PHP学习
WEB前端
编程书籍
网站/服务器
源码测试
登录
/
注册
Search
标签搜索
PHP
WordPress
网站搬家
宝塔面板
php基础
Typecho
php基础知识
服务器
内网穿透
WordPress主题
伪静态
数据库
变量
var_dump
print_r
独角数卡
宝塔
1panel
网卡设置
WP主题
泡饼
累计撰写
59
篇文章
累计收到
3
条评论
首页
栏目
PHP学习
WEB前端
编程书籍
网站/服务器
源码测试
页面
关于
注册说明
留言板
搜索到
7
篇与
的结果
2025-11-17
WordPress通过代码实现文章部分内容密码可见
前言今天在更新网站的时候有个新需求,需要输入密码才可以获取文章的部分内容,于是就自己捣鼓出了一点代码!{dotted startColor="#ff6c6c" endColor="#1989fa"/}第一步:PHP代码在你的主题文件 functions.php 末尾添加下面代码,最好自己写上注释的开头和结尾,以免后期混淆或者记不住改了哪里的代码。比如:############ 文章部分内容输入密码可见 开始 ########### 代码正文 ############ 文章部分内容输入密码可见 结束 ###########//文章部分内容输入密码可见 开始 // assets/css/main.min.css 也添加了css样式 /** * WordPress文章部分内容密码保护短代码功能 (自动聚焦优化版) */ function custom_password_protected_shortcode($atts, $content = null) { $atts = shortcode_atts(array('key' => ''), $atts); $password = $atts['key']; if (empty($password) || is_null($content)) { return '<p style="color: red;">错误:未正确设置密码保护内容。</p>'; } if (isset($_POST['custom_password_key']) && $_POST['custom_password_key'] === $password) { return '<div class="custom-unlocked-content">' . do_shortcode($content) . '</div>'; } elseif (isset($_POST['custom_password_key']) && $_POST['custom_password_key'] !== $password) { $error_message = '<p class="password-error">密码错误,请重试。</p>'; } else { $error_message = ''; } // 为容器添加ID用于JS定位,并在表单上添加悬停监听的基础标记 $form = ' <div class="custom-locked-content" id="custom-locked-area"> <div class="locked-message"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"> <path d="M8 1a2 2 0 0 1 2 2v4H6V3a2 2 0 0 1 2-2zm3 6V3a3 3 0 0 0-6 0v4a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2z"/> </svg> 此部分内容受密码保护。将鼠标移至此区域即可输入密码。 </div> <form method="post" class="custom-password-form" id="custom-password-form"> <input type="password" name="custom_password_key" placeholder="请输入访问密码" required id="custom-password-input" /> <button type="submit">解锁内容</button> </form> ' . $error_message . ' </div> '; return $form; } add_shortcode('secret', 'custom_password_protected_shortcode'); /** * 加入自动聚焦的JS代码 */ function add_auto_focus_script() { ?> <script type="text/javascript"> document.addEventListener('DOMContentLoaded', function() { const lockedArea = document.getElementById('custom-locked-area'); const passwordInput = document.getElementById('custom-password-input'); if (lockedArea && passwordInput) { // 鼠标悬停在保护区域时,聚焦到输入框 lockedArea.addEventListener('mouseenter', function() { passwordInput.focus(); }); // 可选:为了让用户体验更流畅,可以防止因焦点离开导致的小问题 // 例如,当鼠标在表单内移动时,保持输入框处于可输入状态。 lockedArea.addEventListener('mouseleave', function(e) { // 简单的判断:如果鼠标离开去了非表单区域,可以不处理焦点 // 如果要去往按钮或其他地方,则不清除焦点 if (!lockedArea.contains(e.relatedTarget)) { // 这里可以选择不做任何操作,或者 blur(失焦) // passwordInput.blur(); } }); } }); </script> <?php } add_action('wp_footer', 'add_auto_focus_script'); //文章部分内容输入密码可见 结束第二步:css样式到WordPress的主题样式文件 main.css 样式文件里添加下面代码;如果是第三方主题有可能会改名,比如 main.min.css 等,主题样式文件一般位于主题目录下 /assets/css 文件夹。 /*e-secret 文章部分内容输入密码可见css 开始*/ /* 受密码保护内容的样式 */ /* 为密码保护容器添加悬停效果,提示用户可交互 */ .custom-locked-content { background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%); padding: 25px; border-radius: 12px; border-left: 5px solid #3498db; text-align: center; margin: 25px 0; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); transition: all 0.3s ease; cursor: pointer; /* 暗示此处可点击/交互 */ } /* 悬停时增强容器视觉效果 */ .custom-locked-content:hover { box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1); transform: translateY(-2px); border-left-color: #2980b9; } /* 锁定消息样式 */ .custom-locked-content .locked-message { font-weight: 600; color: #2c3e50; margin-bottom: 15px; font-size: 1.05em; } /* 密码表单样式 */ .custom-password-form { display: flex; justify-content: center; gap: 10px; margin-top: 15px; } /* 输入框获得焦点时的样式(无论是自动聚焦还是手动点击) */ .custom-password-form input[type="password"] { padding: 12px 16px; border: 2px solid #dce1e6; /* 初始边框稍粗 */ border-radius: 6px; width: 250px; font-size: 15px; transition: all 0.3s ease; } /* 当输入框通过JS自动聚焦或用户点击时,改变样式 */ .custom-password-form input[type="password"]:focus { border-color: #3498db; outline: none; box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.2); background-color: #fff; } /* 按钮样式 */ .custom-password-form button { background-color: #3498db; color: white; border: none; padding: 12px 24px; border-radius: 6px; cursor: pointer; font-size: 15px; font-weight: 600; transition: background-color 0.3s ease; } .custom-password-form button:hover { background-color: #2980b9; } /* 移动端适配 */ @media (max-width: 600px) { .custom-password-form { flex-direction: column; } .custom-password-form input[type="password"] { width: 100%; } } /* 解锁后内容的专属样式 */ .custom-unlocked-content { margin: 2.5rem 0; padding: 2rem; background: linear-gradient(135deg, #f0fff4 0%, #f8fdf9 100%); /* 浅绿色渐变背景,暗示安全/成功 */ border: 1px solid #c6f6d5; /* 柔和的绿色边框 */ border-left: 5px solid #38a169; /* 左侧粗边框,作为醒目标识 */ border-radius: 12px; /* 统一的圆角 */ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); /* 轻微的阴影提升层次感 */ position: relative; /* 为可能的装饰性元素定位做准备 */ animation: fadeInUp 0.5s ease-in-out; /* 解锁时的浮现动画 */ } /* 可选:在解锁内容区域顶部添加一个“已解锁”小标签 */ .custom-unlocked-content::before { content: "已解锁 ✅"; /* 标签文字,可以用图标字体更美观 */ position: absolute; top: 0.75rem; right: 0.75rem; background-color: #38a169; color: white; padding: 0.25rem 0.75rem; border-radius: 20px; font-size: 0.75rem; font-weight: 600; } /* 解锁内容的内部元素样式 */ .custom-unlocked-content p, .custom-unlocked-content div, .custom-unlocked-content ul, .custom-unlocked-content ol { color: #2d3748; /* 保持内容文字清晰可读 */ /* 其他样式继承主题,确保内容正常显示 */ } /* 解锁动画 */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } /* 响应式设计:在移动设备上调整内边距和标签位置 */ @media (max-width: 768px) { .custom-unlocked-content { padding: 1.5rem; margin: 2rem 0; } .custom-unlocked-content::before { top: 0.5rem; right: 0.5rem; font-size: 0.7rem; } } /*e-secret 文章部分内容输入密码可见css 结束*/第三步:使用短码如何实现?在编辑文章时使用短码包围要隐藏的内容,如下即可。隐藏内容,请前往内页查看详情{dotted startColor="#ff6c6c" endColor="#1989fa"/}未输入密码时候预览图如下密码输入错误时预览图如下输入正确密码后显示隐藏的内容预览图如下结语感觉有个bug,就是同一篇文章放两个不一样的密码的内容,正确一个另外一个会提示错误,反正就是错误一个两个都会提示错误,能用就行,后面有时间再改吧!
2025年11月17日
5 阅读
0 评论
0 点赞
2025-02-24
进入网站点击安全验证伪PHP代码,无实际意义
简介分享一段PHP伪代码,主要用在网站仿屏蔽的上,主要功能是需要点击后才能进入网站,写一个安全提示,避免网站特征检查,提高部分网站的存活率。使用方法{sub}/******************************************** * 使用方法: * * 1、将本段代码保存为 MkEncrypt.php * * 2、在要加密的页面前面引入这个 php 文件 * require_once('MkEncrypt.php'); * * 3、设置页面访问密码 * MkEncrypt('页面密码'); * ********************************************/{/sub}代码{message type="success" content="提示:代码由deepseek生成,测试后可以用,不保证代码安全性,请谨慎使用!"/}<?php // 设置 Session 过期时间为 10 小时 ini_set('session.gc_maxlifetime', 36000); // 设置 Session Cookie 的过期时间为 10 小时 session_set_cookie_params(36000); // 启动 Session session_start(); // 模拟网站访问量 if (!isset($_SESSION['visit_count'])) { $_SESSION['visit_count'] = 0; } $_SESSION['visit_count']++; // 检查用户是否已经通过验证 if (!isset($_SESSION['verified'])) { $_SESSION['verified'] = false; } // 如果用户点击了验证按钮 if (isset($_POST['verify'])) { $_SESSION['verified'] = true; } // 如果用户未通过验证,显示验证页面 if (!$_SESSION['verified']) { ?> <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>验证访问</title> <style> /* 基础样式 */ body { font-family: Arial, sans-serif; background-color: #f4f4f9; margin: 0; padding: 0; display: flex; justify-content: center; align-items: center; min-height: 100vh; } .verification-box { background-color: #ffffff; padding: 20px; border-radius: 10px; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); text-align: center; width: 90%; max-width: 400px; } h1 { font-size: 24px; color: #333333; margin-bottom: 20px; } p { font-size: 16px; color: #666666; margin-bottom: 30px; } button { background-color: #007bff; color: #ffffff; border: none; padding: 10px 20px; font-size: 16px; border-radius: 5px; cursor: pointer; width: 100%; max-width: 200px; transition: background-color 0.3s ease; } button:hover { background-color: #0056b3; } /* 响应式设计 */ @media (min-width: 768px) { .verification-box { padding: 30px; } h1 { font-size: 28px; } p { font-size: 18px; } button { font-size: 18px; } } </style> </head> <body> <div class="verification-box"> <h1>安全验证提示</h1> <p>请点击下方按钮验证后进入网站。</p> <form method="POST"> <button type="submit" name="verify">点击验证</button> </form> </div> </body> </html> <?php exit(); // 停止执行后续代码,显示验证页面 } // 如果用户已经通过验证,显示网站内容 ?> 截图示例
2025年02月24日
4 阅读
0 评论
0 点赞
2024-12-05
PHP网页加密密码访问页面的代码共4套模板
简介之前也分享过PHP密码访问网页的方法,而且用起来也还不错,安全性没有本次分享的高,本次分享的是4套模板。4套非常实用的 PHP 单页加密解决方案,不仅提供四种独特的模板风格,而且还附带了一套密码访问机制的源代码。使用非常简单,只需要将相关文件上传到你的 Web 服务器上,然后在浏览器中访问 index.php 文件即可。也可以当做插件将代码嵌入到你的PHP开发项目中,不过需要一点PHP开发基础哦!此外,这个加密方案还提供了其他一些实用的功能,比如防止页面被复制或截图等。你可以在 MkEncrypt.php 文件中查看并使用这些功能。加密页面预览图源码下载地址{sub}https://sgdhuo.lanzouq.com/ii3032hal66d{/sub}
2024年12月05日
4 阅读
0 评论
0 点赞
1panel面板WordPress启用Redis的设置方法
下面为大家写一个以1panel面板为例,在WordPress系统中配置Redis的基本步骤:1、在WordPress插件安装商城安装Redis Object Cache插件,然后进入插件管理启动插件就不赘述了;提示:服务器没配置好Redis,在WordPress的插件管理里面是启动不了Redis Object Cache插件的。2、在1Panel面板的PHP运行环境的扩展里面添加redis;PHP扩展路径:左侧菜单栏【网站】》【运行环境】》【编辑】》【扩展】,在扩展下拉框里面找到redis点击加入扩展列表3、在1panel面板的应用商店安装Redis4、在wp-config.php里增加了以下代码define('WP_REDIS_HOST', 'redis'); define('WP_REDIS_PORT', '6379'); define('WP_REDIS_DATABASE', '0'); define('WP_REDIS_PASSWORD', 'redis的密码');//redis的密码此时多半会有类似以下的报错:{alert type="info"}Error establishing a Redis connectionWRONGPASS invalid username-password pair or user is disabled................{/alert}5、wp这个插件有点迷,升级后总会遇到奇奇怪怪的问题,没事不要升级。除了wp 的config 定义一下以外,我们还需要编辑WordPress的一个文件,路径为/wp-content/object-cache.php这个文件,大约在行624行左右参考以下修改:protected function build_parameters() { $parameters = [ 'scheme' => 'tcp', 'host' => 'redis', 'port' => 6379, 'password' => 'redis的密码',//直接填写你的redis的密码 //这里最重要的是修改'host'字段值为'redis',因为是docer容器的地址; //还要添加一个'password' => 'redis的密码';修改完成后就可以完美运行!!!参考地址:https://bbs.fit2cloud.com/t/topic/2224
2024年04月06日
6 阅读
0 评论
0 点赞
2023-05-27
独角数卡搬家换域名服务器的方法
前提基于宝塔,因为官方也有基于宝塔的教程。以下操作都是基于宝塔面板开心版。独角数卡官方宝塔搭建教程:https://github.com/assimon/dujiaoka/wiki/2.x_bt_install服务器版本Nginx:1.20.1PHP:7.4Redis:6.2.4MySQL:5.6.50phpMyAdmin:4.9堡塔应用管理器:1.4独角数卡:2.0.6-Antibody第一步:程序备份打包、数据库打包;第二步:上传打包好的备份程序文件解压出来,然后将备份好的数据库文件导入新的数据库。第三步:修改根目录 .env 以下几项的值APP_URL=域名 DB_DATABASE=数据库名 DB_USERNAME=数据库用户名 DB_PASSWORD=数据库密码第四步:配置堡塔应用管理器管理laravel队列进程。应用名称:自定义自己写 应用环境:PHP7.4.21(是哪个版本PHP就选哪个) 启动文件:/www/wwwroot/域名/artisan(宝塔默认是这个路径,没修改的话直接填域名即可) 执行目录:/www/wwwroot/域名/(宝塔默认是这个路径,没修改的话直接填域名即可) 启动参数:queue:work第五步:安装独角数卡时的基础操作,这里就不多说了,看官方宝塔安装文档,这里只简单提示。【PHP设置】>【禁用函数列表】 将以下函数删除!!putenv,proc_open,pcntl_signal,pcntl_alarm【PHP设置】>【安装扩展】安装以下三个扩展:fileinfo、redis、opcache(可选安装,性能加强)站点设置运行目录:/public伪静态:laravel5第六步:重启服务。最好整个服务器一起重启,貌似一个个启动还是会报500错误。多调试,第一次多半会报500错误,多调试几次,还有改了东西记得要重启在试~~~
2023年05月27日
4 阅读
0 评论
0 点赞
2023-04-23
分享几个常见的PHP本地集成环境
PHP的生态还是比较强大,本地的开发集成环境也不好,泡饼今天在这里给大家分享几个。1、Wampser2、XAMPP支持系统:win/macos3、MAMP Pro支持系统:win/macos,这是收费的。4、phpEnv5、小皮面板/PHPStudy小皮面板应该大家都很熟悉,支持Windows和Linux,服务器也可以用,但是貌似好久都没更新了。
2023年04月23日
4 阅读
0 评论
0 点赞
2023-04-23
浅浅的解析以下PHP的运行原理
本文旨在初略的理解一下PHP的运行原理,仅为初学者理解,更多更专业的内容请参考专业人士论文或者官方文档。第一种情况:浏览器端能识别的文件类型。看图蓝色 1 和 2 ,浏览器端向服务器端请求一个 index.html 文件,刚好服务器端有一个名为 index.html 的文件,服务器端就会直接返回给浏览器端,浏览器端收到这个文件就会直接展示在浏览器,也就是我们常见的网页文件。 {dotted startColor="#ff6c6c" endColor="#1989fa"/}第二种情况:浏览器端不能识别的文件类型。看紫色的数字的顺序,代表了PHP文件的运行顺序。浏览器端请求一个名为hello.php的文件,服务器端要是直接返回名为hello.php文件,浏览器端就会直接展示出这个PHP文件的源代码。一般PHP文件服务器都会经过处理,而不会直接返回一个PHP文件给前端浏览器的。浏览器端请求 hello.php 文件后,服务器会去调用一个名为 PHP.exe 文件来解析 hello.php 文件,它会根据 hello.php 文件内PHP代码的逻辑解析出一个浏览器端能够展示的文档类型,通常为html文件。这里的执行顺序就是紫色的 3→4→7→8 依次执行。 如果涉及到需要访问数据库(通常为mysql),PHP.exe就会依据 hello.php 文件内代码逻辑去数据库获取数据,然后插入到 hello.php 文件在解析成浏览器端能够展示的文档类型,通常为html文件。这里的执行顺序就是紫色的 3→4→5→6→7→8 依次执行。 {dotted startColor="#ff6c6c" endColor="#1989fa"/}第三种情况:浏览器端请求的文件在服务器端不存在。直接返回 404.
2023年04月23日
2 阅读
0 评论
0 点赞