>  기사  >  CMS 튜토리얼  >  Dreamweaver diy.php가 손실된 경우 어떻게 해야 합니까?

Dreamweaver diy.php가 손실된 경우 어떻게 해야 합니까?

PHPz
PHPz원래의
2023-04-04 09:13:441184검색

DedeCMS를 사용하여 웹사이트를 구축하는 과정에서 종종 몇 가지 문제에 직면하게 됩니다. 가장 일반적인 문제 중 하나는 웹 사이트에 액세스할 때 "Dreamweaver diy.php가 없습니다"라는 오류 메시지가 나타나는 것입니다. 이런 일이 발생하면 직접적인 영향은 드림위버의 DIY 템플릿 기능을 정상적으로 사용할 수 없다는 점이다. 그렇다면 왜 이런 일이 발생합니까? 해결책은 무엇입니까? 이번 글에서는 이에 대해 자세히 소개하겠습니다.

1. 원인 분석

"Dreamweaver diy.php가 없습니다" 오류를 이해하기 전에 Dreamweaver의 DIY 템플릿 기능이 어떻게 작동하는지 이해해야 합니다. DreamWeaver CMS에서 DIY 템플릿은 PHP 스크립트 파일을 통해 구현됩니다. 구체적으로 "diy.php"라는 파일은 관련 작업을 완료하는 데 사용됩니다. 이 파일의 위치는 일반적으로 다른 핵심 스크립트 파일과 함께 저장되는 /Dede 디렉터리에 있습니다. DIY 템플릿 페이지에 액세스하면 Dreamweaver 시스템은 "diy.php" 파일을 호출하고 사용자 작업에 따라 해당 처리를 수행한 다음 마지막으로 채워진 페이지를 브라우저에 반환하여 표시합니다. "Dreamweaver diy.php가 없습니다"라는 오류 메시지는 DIY 템플릿 작업을 수행할 때 시스템에서 "diy.php" 파일을 찾을 수 없거나 파일이 다른 사람에 의해 삭제되거나 변조되었음을 의미합니다.

그럼 "diy.php가 없습니다."는 왜 발생하나요? 첫째, 파일이 실수로 삭제되었을 수 있습니다. 둘째, 바이러스나 악의적인 공격에 의해 파일이 수정되거나 삭제되었을 수도 있습니다. 마지막으로 시스템 운영이나 파일 권한 등의 문제로 인해 발생하는 경우도 배제할 수 없습니다.

2. 솔루션

"Dreamweaver diy.php가 없습니다"라는 오류 메시지가 나타나면 어떻게 해결해야 할까요? 다음은 몇 가지 일반적인 해결 방법입니다.

  1. 백업 파일 복원

이전에 웹사이트 파일을 백업한 경우 백업 파일의 "diy.php" 파일을 원래 디렉터리에 덮어쓸 수 있습니다. 이때 정상적으로 표시될 수 있다면, 이러한 문제가 다시 발생하지 않도록 웹사이트의 보안 보호를 강화하는 것을 고려해 볼 수 있습니다.

  1. "diy.php" 파일을 다시 업로드하세요

백업 파일이 없거나 해당 파일이 백업 파일에 없으면 전체 DreamWeaver 시스템 설치 패키지를 다시 다운로드하고 압축을 풀어보세요. 해당 파일의 "diy.php"를 웹사이트의 /Dede 디렉토리에 업로드하세요. 업로드가 완료된 후, DIY 템플릿 페이지에 다시 접속하여 정상적으로 표시되는지 확인해보세요.

  1. "diy.php" 파일을 수동으로 작성하세요

위의 두 가지 방법이 불가능하다면 "diy.php" 파일을 수동으로 작성하는 것을 고려해 보세요. 구체적인 방법은 다음과 같습니다.

먼저 텍스트 편집기를 열고 다음 코드를 입력합니다.

<?php
/**
 *
 * DIY页面生成器
 *
 * @version        $Id: diy.php 1 9:39 2010年7月21日Z
 *
 */
require_once(dirname(__FILE__).&#39;/include/common.inc.php&#39;);
require_once(DEDEINC.&#39;/membermodel.cls.php&#39;);
require_once(DEDEINC.&#39;/userlogin.class.php&#39;);
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();
}
?>

두 번째, 텍스트 편집기에서 "diy.php"라는 파일명으로 파일을 저장하고 해당 파일의 /Dede에 업로드합니다. 웹사이트 내용 아래. 업로드가 완료된 후, DIY 템플릿 페이지에 다시 접속하여 정상적으로 표시되는지 확인해보세요.

위의 방법으로 "Dreamweaver diy.php가 없습니다."라는 오류 메시지를 해결할 수는 있지만 웹사이트의 보안을 보장하지는 않는다는 점에 유의하시기 바랍니다. 따라서 이러한 상황이 발생할 경우 사용자는 즉시 데이터를 백업하고 웹사이트의 보안 강화를 수행할 것을 권장합니다.

즉, "Dreamweaver diy.php가 없습니다"라는 오류 메시지가 표시되면 당황하지 마세요. Dreamweaver 시스템을 직접 재설치하는 대신 위의 방법을 통해 문제를 해결하세요. 이렇게 하면 데이터 손실을 방지하고 시간과 에너지를 절약할 수 있습니다.

위 내용은 Dreamweaver diy.php가 손실된 경우 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.