top-image

OLDER ARTICLES

问题

  • 生成 Dedecms 栏目时出现 DedeTag Engine Create File False 错误。

解决方法

  1. 修改栏目设置

    • 在新建的栏目上点击“修改”,然后点击“高级选项”。
    • 在“列表命名规则”后面填入 {typedir}/list_{tid}_{page}.html,保存即可。
  2. 检查模板和标签

    • 查看模板是否存在问题,确保标签能够正确执行。
    • 检查标签中是否调用了外部函数。
  3. 文件夹权限

    • 确保生成文件的目录有写入权限。
    • Linux 服务器:设置文件夹及其子文件夹为 777 权限。
    • Windows 服务器:给予写入权限。

原因

  • 服务器环境未开启 sqlite3 数据库扩展。

解决办法

  1. 检查并开启 sqlite3 扩展

    • 检查 php.ini 文件中是否已开启 sqlite3 扩展。
    • 未开启则开启之:
      1. 打开软件,找到设置-配置文件-php.ini-选择网站使用的 PHP 版本,点击打开。
      2. 使用快捷键 Ctrl + F 查找 sqlite3,找到 ;extension=sqlite3,去掉前面的分号(;)。
      3. 保存文件(Ctrl + S)。
      4. 重启服务(根据使用的服务器选择重启 Apache 或 Nginx)。
  2. 使用 pdo_sqlite 扩展

    • 如果服务器支持 pdo_sqlite 扩展,可以修改数据库配置连接驱动为 pdo_sqlite

问题描述

为了增强安全性,需要在DedeCMS后台登录界面添加管理认证码。

解决方法

  1. 编辑登录界面模板
    • 打开 dede/templets/login.htm 文件。
    • 添加认证码表单:
      <input type="text" name="vacodes" id="vacodes" class="iptxt" placeholder="请输入认证码">
  2. 编辑登录处理文件
    • 打开 dede/login.php 文件。
    • 在登录检测部分添加认证码验证:
      if (!emptyempty($userid) && !emptyempty($pwd)) {
          $res = $cuserLogin->checkUser($userid, $pwd);
          if ($res == 1) {
              $uservacodes = $_POST['vacodes'];
              if ($uservacodes != '认证码自定义') {
                  ResetVdValue();
                  ShowMsg('认证码不正确!', 'login.php', 0, 1000);
                  die;
              } else {
                  $cuserLogin->keepUser();
                  if (!emptyempty($gotopage)) {
                      ShowMsg('成功登录,正在转向管理管理主页!', $gotopage);
                      die;
                  } else {
                      ShowMsg('成功登录,正在转向管理管理主页!', 'index.php');
                      die;
                  }
              }
          }
      }

       

  1. 替换 index.php 内容

    • 按官方更新说明替换 index.php 内容,生成动态页面。
  2. 删除 index.php 文件

    • 直接删除CMS根目录下的 index.php 文件。
  3. 使用 .htaccess 文件

    • 创建或编辑 .htaccess 文件,内容如下:
       
       
      DirectoryIndex index.html index.htm index.php index.shtml index.cgi
  4. 设置IIS默认首页文档顺序

    • 在IIS管理器中,将 index.html 提到 index.php 前面。

问题

  • 编辑或发布文档时出现“读取附加信息出错!”或“把数据保存到数据库附加表 dede_addonarticle 时出错”的错误。

解决方法

  1. 修改数据库表前缀

    • 检查 dede_channeltype 表中的 addtable 字段,确保表名前缀与实际表前缀一致。
    • 可以通过以下 SQL 语句查询:
      sql
       
      SELECT * FROM `dede_channeltype`
    • 修改 addtable 字段中的表名前缀。
  2. 手动插入缺失的记录

    • 使用 phpMyAdmin 或其他数据库管理工具,打开 dede_addonarticle 表。
    • 查找缺失的文章 ID 并手动插入记录:
       
       
      INSERT INTO `dede_addonarticle` (aid, body) VALUES (文章ID, '文章内容');

 

  1. 使用PHP代码

    [field:test runphp=yes]
    @me = substr(@me, 截取字节);
    [/field:test]
  2. 使用内置函数

    [field:test function='cn_substr(@me, 截取字节)' /]
  3. 使用CSS控制

    .li {
        list-style: none;
        width: 260px; /* 控制显示的标题长度 */
        white-space: nowrap;
        text-overflow: ellipsis;
        -o-text-overflow: ellipsis;
        overflow: hidden;
    }

    调用示例:

    {dede:arclist row=6 typeid=2 titlelen=50}
    [field:pubdate function="MyDate('m-d', @me)" /][[field:typelink /]][field:title function='(strlen("@me") > 50 ? cn_substr("@me", 50) . "…" : "@me")' /]
  4. 在调用代码中使用PHP程序代码

    {dede:arclist row=6 typeid=2 titlelen=50}
    [field:pubdate function="MyDate('m-d', @me)" /][[field:typelink /]][field:title function='(strlen("@me") > 50 ? cn_substr("@me", 50) . "…" : "@me")' /]

 

  1. 明确提示非法文字
    • 编辑 include/filter.inc.php 文件,找到:
      if($cfg_notallowstr != "" && eregi($cfg_notallowstr, $svar)) {

      修改为:

      if($cfg_notallowstr != "" && eregi($cfg_notallowstr, $svar)) {
          preg_match_all("@{$cfg_notallowstr}@", $svar, $me);
          $me = array_unique($me[0]);
          $notallowkeys = "";
          foreach($me as $v) {
              $notallowkeys .= $v . ', ';
          }
          $msg = '您发布的内容中带有不被允许的文字 :' . $notallowkeys;
          ShowMsg($msg, '-1');
          exit();
      }

这些方法可以帮助你解决织梦DedeCMS中的一些常见问题。

  1. 模板存放目录

    • /templets:织梦模板存放目录。
  2. 默认模板目录

    • /templets/default:默认模板目录。
  • 代码示例
<?php
$sl_dynr = mysql_fetch_array(mysql_query("SELECT * FROM " . DB_PREFIX . "blog WHERE gid = 2"));
echo $sl_dynr['content'];
?>
  • 参数说明
    • 2:文章ID。
    • content:调用文章内容,修改为 title 调用标题,修改为 url 调用URL。

emlog判断页面代码汇总

  • 问题描述:修改模板文件后,样式恢复原样。
  • 问题解答:修改模板文件时,应修改“template”文件夹内的文件,而不是“compile”文件夹内的文件。“compile”文件夹存放的是模板编译后的文件,直接修改无效。
  • 文件夹说明
    • template:模板目录,存放模板文件。
    • compile:模板编译后存放的文件夹。
    • script:主题用到的JS文件存放的文件夹。
    • include:主题需要调用文件存放的文件夹。
    • style:主题所用到的图片和CSS文件存放的文件夹。
Page 576 of 1049:« First« 573 574 575 576 577 578 579 »Last »
bottom-img