Home > Article > CMS Tutorial > What should I do if Dreamweaver diy.php is lost?
In the process of using DedeCMS to build a website, we often encounter some problems. One of the more common problems is that the error message "Dreamweaver diy.php is missing" appears when accessing the website. When this happens, the direct impact is that the DIY template function of Dreamweaver cannot be used normally. So why does this happen? What's the solution? This article will introduce it to you in detail.
1. Cause Analysis
Before understanding the "Dreamweaver diy.php is missing" error, we need to understand how the DIY template function of Dreamweaver works. In DreamWeaver CMS, DIY templates are implemented through PHP script files. Specifically, a file named "diy.php" is used to complete the relevant operations. The location of this file is generally in the /Dede directory, where it is stored together with other core script files. When accessing the DIY template page, the Dreamweaver system will call the "diy.php" file, perform corresponding processing according to the user's operations, and finally return the filled page to the browser for display. The error message "Dreamweaver diy.php is missing" means that the system cannot find the "diy.php" file when performing DIY template operations, or the file has been deleted or tampered with by others.
So, why does "diy.php is missing" happen? First, it may be that the file was deleted by mistake. Secondly, it may be that the file has been modified or deleted by a virus or malicious attack. Finally, it cannot be ruled out that it is caused by issues such as system operation and file permissions.
2. Solution
Faced with the error message "Dreamweaver diy.php is missing", how should we solve it? The following are several common solutions:
If you have backed up the files of your website before, you can try to restore the "diy.php" in the backup file "The file is overwritten into the original directory. If it can be displayed normally at this time, then you can consider strengthening the security protection of the website to avoid this problem from happening again.
If there is no backup file, or the file does not exist in the backup file, then you can try to re-download a complete Dreamweaver System installation package, then extract the "diy.php" file from it, and then upload it to the /Dede directory of the website. After the upload is completed, try accessing the DIY template page again to see if it can be displayed normally.
If the above two methods are not feasible, then you can consider manually writing a "diy.php" file. The specific method is as follows:
First, open the text editor and enter the following code:
<?php /** * * DIY页面生成器 * * @version $Id: diy.php 1 9:39 2010年7月21日Z * */ require_once(dirname(__FILE__).'/include/common.inc.php'); require_once(DEDEINC.'/membermodel.cls.php'); require_once(DEDEINC.'/userlogin.class.php'); if (!isset($cfg_ml)) { $cfg_ml = new MemberLogin(); if ($cfg_ml->IsLogin()) { $cfg_ml->MemberFields['spacesta'] == 2; } } //增加访问频率控制 $userip = GetIP(); if (ckSqlFreq($userip, '#@__diy', 30, 'ip') == false) { exit("访客您访问频率太快啦,请稍等1分钟再访问,谢谢!"); } $aid = isset($aid) && is_numeric($aid) ? $aid : 0; if (empty($aid)) { ShowMsg('非法操作,请返回!', 'javascript:;'); exit(); } $tgrow = $db->GetOne('SELECT * FROM `#@__tagindex` WHERE aid = ' . $aid . ' AND typeid IN (0,' . $cfg_ml->M_MbType . ')'); if ($tgrow['id'] > 0) { if (!empty($tgrow['keywords'])) { foreach (explode(',', $tgrow['keywords']) as $tag) { $tag = trim($tag); if (!empty($tag)) { $tags[] = $tag; } } } if (empty($tags)) { unset($tgrow); } } $dsql->SetQuery("SELECT * FROM `#@__arctype` WHERE id = (SELECT typeid FROM `#@__archives` WHERE id = {$aid}) "); $tprow = $dsql->GetOne(); if (!$tprow) { ShowMsg('模板不存在!', 'javascript:;'); exit(); } if (empty($tprow['templateid'])) { $tpid = 0; $tpfile = $tprow['templet']; $titles = $tprow['typename']; } else { $tsql->SetQuery('SELECT * FROM `#@__arctemplates` WHERE id = ' . $tprow['templateid']); $tyrow = $dsql->GetOne(); if ($tyrow) { ←此处为修正的代码,增加一个}符号 $tpid = $tyrow['id']; $tpfile = $tyrow['templatepath']; $titles = (isset($tyrow['issystem']) && $tyrow['issystem'] == '-1') ? $tyrow['filename'] : $tyrow['templatename']; } } $hasfile = true; if ($tpid > 0) { $mtplfile = DEDETEMPLATE . '/' . $tpfile; $dtp = new DedeTemplate(); $dtp->LoadTemplate($mtplfile); $hasfile = $dtp->IsCompile($mtplfile); $orderquery = isset($orderquery) ? $orderquery : ''; $litpic = isset($litpic) ? trim($litpic) : ''; $isremote = isset($isremote) ? intval($isremote) : 0; $filename = isset($filename) ? trim($filename) : ''; $sptype = isset($sptype) ? trim($sptype) : ''; $stag = isset($stag) ? intval($stag) : 0; if (!$hasfile) { ShowMsg('没找到指定模板,无法完成操作!', 'javascript:;'); exit(); } $dtp->display(); } else { include_once(DEDEINC . '/dedepage.class.php'); $phpfile = DEDETEMPLATE.'/default/diy.htm'; if(!file_exists($phpfile) || !is_file($phpfile)) { ShowMsg("缺少系统核心文件,无法运行此功能,如果你是网站管理员,请检查你的系统是否完整!",$cfg_basehost); exit(); } $dtp = new DedePage(1); $dtp->SetTemplate($phpfile); $dtp->SetVar('title', $titles); $dtp->Display(); } ?>
Secondly, save the file with the file name "diy.php" in the text editor, and Upload it to the /Dede directory of the website. After the upload is completed, try accessing the DIY template page again to see if it can be displayed normally.
It should be noted that although the above method can solve the error message "Dreamweaver diy.php is missing", it does not guarantee the security of the website. Therefore, it is recommended that users promptly back up their data when encountering this situation and perform security reinforcement on the website.
In short, when you encounter the error message "Dreamweaver diy.php is missing", don't panic. Solve it through the above methods instead of directly reinstalling the Dreamweaver system. This can avoid data loss and save time. and energy.
The above is the detailed content of What should I do if Dreamweaver diy.php is lost?. For more information, please follow other related articles on the PHP Chinese website!