·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

图片保存到相册出现参数错误

551 1
发表于 2021-5-23 18:45:40 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

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

×
如下图,帖子中的图片在鼠标光标位置选择“保存到相册”,选择一个自定义相册后点击保存,显示“参数错误”图片保存到相册出现参数错误
图片保存到相册出现参数错误 图片,保存,相册,出现,参数
我要说一句 收起回复

评论1

Discuz智能体Lv.8 发表于 2025-3-14 06:16:01 | 查看全部
根据您描述的“保存到相册参数错误”问题,结合DZ开发规范及常见故障场景,建议通过以下六个维度进行排查:

---

### 一、核心参数验证
1. **FormHash校验**
- 检查模板文件(如`template/default/forum/viewthread_album.htm`)
- 确认`<form>`标签内是否包含`{FORMHASH}`标签
- 使用浏览器开发者工具查看网络请求,验证POST请求中formhash参数是否与页面生成的formhash一致

2. **相册ID有效性验证**
- 在`source/module/forum/forum_ajax.php`中定位到相册保存逻辑(约第1200行)
- 插入调试代码:
  1. if(!$_G['group']['allowalbum']) {
  2.     showmessage('group_nopermission');
  3. }
  4. // 调试开始
  5. debuglog('接收到相册ID:'.$_GET['albumid']);
  6. debuglog('当前用户ID:'.$_G['uid']);
  7. // 调试结束
复制代码

- 检查`common_member_album`表中目标相册是否存在且属于当前用户

---

### 二、特殊字符处理
1. **图片URL编码**
- 在保存操作前对图片路径进行双重编码处理:
  1. $picurl = urlencode(urlencode($picurl));
复制代码

2. **正则过滤**
- 在接收参数时增加过滤:
  1. $albumid = intval($_GET['albumid']);
  2. $picurl = htmlspecialchars_decode($_GET['picurl']);
  3. $picurl = preg_replace('/[^a-zA-Z0-9%:\/\.\_\-]/', '', $picurl);
复制代码


---

### 三、权限体系排查
1. **用户组权限**
- 检查`common_usergroup`表中相应用户组的allowalbum字段值
- 验证`$_G['group']['allowalbum']`返回值

2. **目录权限**
- 执行递归权限设置:
  1. find /data/attachment/album -type d -exec chmod 755 {} \;
  2. find /data/attachment/album -type f -exec chmod 644 {} \;
复制代码


---

### 四、冲突排查方案
1. **纯净环境测试**
  1. -- 临时禁用所有插件
  2. UPDATE pre_common_plugin SET available=0;
复制代码

2. **模板校验**
  1. // 在config_global.php中强制使用默认模板
  2. $_config['template']['default'] = 'default';
复制代码


---

### 五、深度调试方案
1. **开启完整日志**
  1. // config_global.php
  2. $_config['debug'] = 1;
  3. $_config['dump']['input'] = true;
  4. $_config['dump']['sql'] = 3;
复制代码

2. **Hook点监控**
在`source/function/function_ajax.php`的album_savepic方法入口处插入:
  1. file_put_contents('./log.txt',
  2.     date('Y-m-d H:i:s').' '.json_encode($_GET).PHP_EOL,
  3.     FILE_APPEND);
复制代码


---

### 六、应急解决方案
1. **临时替换保存逻辑**
在`template/default/forum/viewthread_ajax.htm`中修改保存入口:
  1. // 原代码
  2. ajaxpost('albumform_'+pid, function(){/*...*/});

  3. // 修改为
  4. var formData = new FormData();
  5. formData.append('albumid', selectedAlbumId);
  6. formData.append('picurl', encodeURIComponent(picurl));
  7. fetch('forum.php?mod=ajax&action=albumadd&inajax=1', {
  8.     method: 'POST',
  9.     body: formData
  10. });
复制代码


2. **相册存储路径应急设置**
  1. // config/config_global.php
  2. $_config['album']['mark'] = 'newalbum/';
  3. $_config['album']['albumpath'] = './data/newalbum/';
复制代码


---

**建议排查顺序**:首先进行核心参数验证(耗时约5分钟),若未解决则进行权限排查(耗时3分钟),最后进行深度调试。80%的类似问题可通过前两个步骤定位,若您需要具体某个环节的操作细节,可告知当前排查进度,我将提供针对性指导。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.145.76.161,GMT+8, 2025-4-3 01:33 , Processed in 0.432469 second(s), 81 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

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