ホームページ >CMS チュートリアル >DEDECMS >Dreamweaver diy.php が失われた場合はどうすればよいですか?

Dreamweaver diy.php が失われた場合はどうすればよいですか?

PHPz
PHPzオリジナル
2023-04-04 09:13:441205ブラウズ

DedeCMS を使用して Web サイトを構築する過程で、多くの場合、いくつかの問題が発生します。より一般的な問題の 1 つは、Web サイトにアクセスしたときに「Dreamweaver diy.php が見つかりません」というエラー メッセージが表示されることです。この場合、直接的な影響は、Dreamweaver の 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. バックアップ ファイルを復元する

以前に Web サイトのファイルをバックアップしたことがある場合は、「diy.バックアップファイル内のphp"ファイルは元のディレクトリに上書きされます。現時点で正常に表示できる場合は、この問題が再発しないように Web サイトのセキュリティ保護を強化することを検討できます。

  1. 「diy.php」ファイルを再アップロードします

バックアップ ファイルがない場合、またはバックアップ ファイルにファイルが存在しない場合は、次のことを試してください。完全な Dreamweaver システム インストール パッケージを再ダウンロードし、そこから「diy.php」ファイルを抽出して、Web サイトの /Dede ディレクトリにアップロードします。アップロード完了後、再度DIYテンプレートページにアクセスし、正常に表示されるか確認してください。

  1. 「diy.php」ファイルを手動で作成する

上記の 2 つの方法が実行できない場合は、「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」という名前で保存します。をクリックし、Web サイトの /Dede ディレクトリにアップロードします。アップロード完了後、再度DIYテンプレートページにアクセスし、正常に表示されるか確認してください。

上記の方法で「Dreamweaver diy.php が見つかりません」というエラー メッセージは解決できますが、Web サイトのセキュリティを保証するものではないことに注意してください。そのため、このような事態に遭遇した場合には速やかにデータのバックアップをとり、Webサイトのセキュリティ強化を行うことをお勧めします。

つまり、「Dreamweaver diy.php が見つかりません」というエラー メッセージが表示された場合でも、パニックにならないでください。Dreamweaver システムを直接再インストールするのではなく、上記の方法で問題を解決してください。これにより、データの損失を回避し、データを保存することができます。時間もエネルギーも。

以上がDreamweaver diy.php が失われた場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。