حماية العروض التقديمية من الكتابة في PHP

المقدمة

كلمة مرور حماية الكتابة تقيد تعديل العرض التقديمي لكنها لا تشفر محتواه. يمكن للمستخدمين تحميل وعرض عرض محمي ضد الكتابة دون كلمة المرور. اعتمادًا على التطبيق، قد يكون بإمكانهم أيضًا تحرير المحتوى وحفظه باسم مختلف، لذا لا ينبغي اعتبار حماية الكتابة كآلية للسرية.

كلمة مرور الفتح لها غرض مختلف: فهي تشفر العرض التقديمي وتكون مطلوبة لتحميل محتواه. لتشفير عرض تقديمي أو للتحقق من صحة كلمة مرور الفتح، انظر العروض المحمية بكلمة مرور.

تنطبق سير العمل في هذه المقالة على كل من عروض PPT و PPTX. الأمثلة تستخدم ملفات PPTX؛ عند الحفظ بصيغة PPT، استخدم الامتداد .ppt وصيغة الحفظ المقابلة لـ PPT.

تعيين حماية الكتابة على عرض تقديمي

استخدم ProtectionManager::setWriteProtection لتعيين كلمة مرور لتعديل العرض التقديمي. يحفظ حفظ العرض التقديمي إعداد الحماية.

المثال التالي يضع حماية كتابة على عرض PPTX:

use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$presentation = new Presentation("pres.pptx");
try {
    $presentation->getProtectionManager()->setWriteProtection("modify_password");
    $presentation->save("write-protected-pres.pptx", SaveFormat::Pptx);
} finally {
    $presentation->dispose();
}

تحميل عرض محمي ضد الكتابة

نظرًا لأن حماية الكتابة لا تشفر محتوى العرض التقديمي، لا يلزم كلمة مرور لتحميل العرض. تكون كلمة المرور ذات صلة فقط عند التحقق من التفويض لتعديل العرض المحمي.

use aspose\slides\Presentation;

$presentation = new Presentation("write-protected-pres.pptx");
try {
    echo("Slide count: " . $presentation->getSlides()->size() . "\n");
} finally {
    $presentation->dispose();
}

لا تمرر كلمة مرور حماية الكتابة إلى LoadOptions::setPassword. هذه الطريقة تقبل كلمة مرور الفتح للمحتوى المشفر. إذا كان للعرض التقديمي كلا النوعين من الحماية، قدم كلمة مرور الفتح لتحميله وتعامل مع كلمة مرور حماية الكتابة بشكل منفصل.

إزالة حماية الكتابة من عرض تقديمي

استخدم ProtectionManager::removeWriteProtection لإزالة قيود التعديل، ثم احفظ العرض التقديمي.

use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$presentation = new Presentation("write-protected-pres.pptx");
try {
    $presentation->getProtectionManager()->removeWriteProtection();
    $presentation->save("write-protection-removed.pptx", SaveFormat::Pptx);
} finally {
    $presentation->dispose();
}

التحقق مما إذا كان العرض محميًا من الكتابة

لفحص ملف دون إنشاء كائن Presentation كامل، استدعِ PresentationFactory::getPresentationInfo وتفقد PresentationInfo::isWriteProtected. تستخدم الطريقة فئة NullableBool وتعيد NullableBool::True عندما يتم اكتشاف حماية الكتابة.

يوفر التحميل عبر التدفق للـ PresentationFactory::getPresentationInfo نفس المعلومات لعرض تقديمي مقدم كتيار.

use aspose\slides\NullableBool;
use aspose\slides\PresentationFactory;

$presentationInfo = PresentationFactory::getInstance()->getPresentationInfo("write-protected-pres.pptx");

if ($presentationInfo->isWriteProtected() == NullableBool::True) {
    echo("The presentation is write protected.\n");
} else {
    echo("Write protection was not detected.\n");
}

التحقق من صحة كلمة مرور حماية الكتابة

استخدم PresentationInfo::checkWriteProtection للتحقق من كلمة مرور التعديل دون تحميل العرض بالكامل. تحقق أولًا من PresentationInfo::isWriteProtected حتى يطلب التطبيق كلمة مرور أو يتحقق منها فقط عندما تكون حماية الكتابة موجودة.

use aspose\slides\NullableBool;
use aspose\slides\PresentationFactory;

$presentationInfo = PresentationFactory::getInstance()->getPresentationInfo("write-protected-pres.pptx");

if ($presentationInfo->isWriteProtected() != NullableBool::True) {
    echo("The presentation is not write protected.\n");
} elseif ($presentationInfo->checkWriteProtection("modify_password")) {
    echo("The write-protection password is correct.\n");
} else {
    echo("The write-protection password is incorrect.\n");
}

PresentationInfo::checkWriteProtection يتحقق فقط من كلمة مرور حماية الكتابة. لا يتحقق من كلمة مرور الفتح أو يحدد ما إذا كان يمكن تحميل المحتوى المشفر. بالمقابل، PresentationInfo::checkPassword يتحقق فقط من كلمة مرور الفتح. إذا كان قد تم تحميل عرض تقديمي كامل بالفعل، توفر ProtectionManager::checkWriteProtection فحص حماية الكتابة المكافئ عبر مدير الحماية.

في التطبيقات الإنتاجية، لا تقم بتسجيل كلمات المرور أو تضمينها في رسائل التشخيص. تجنّب محاولات التحقق المتكررة غير الضرورية، واحتفظ بكلمات المرور في الذاكرة فقط للطول اللازم.

الأسئلة الشائعة

هل تقوم حماية الكتابة بتشفير العرض التقديمي؟

لا. إنها تقيد التعديل لكن تترك محتوى العرض التقديمي متاحًا للتحميل والعرض.

هل كلمة مرور حماية الكتابة مطلوبة لفتح العرض التقديمي؟

لا. كلمة مرور الفتح فقط مطلوبة لتحميل محتوى العرض المشفر.

هل يمكن أن يحتوي عرض تقديمي على كل من كلمة مرور الفتح وكلمة مرور حماية الكتابة؟

نعم. قدّم كلمة مرور الفتح عبر خيارات التحميل لفتح العرض المشفر، وتحقق من كلمة مرور حماية الكتابة بشكل منفصل عندما يتطلب التفويض للتعديل.