سامانه مدرسه شهید باهنر ملوران — نسخه مستقل PHP برای هاست اشتراکی
================================================================

این نسخه به Node.js، npm یا PostgreSQL نیاز ندارد و برای هاست اشتراکی PHP ساخته شده است.

نصب بسیار ساده
--------------
1) محتوای فایل ZIP را در پوشه دلخواه هاست (مثلاً public_html/shahidbahonar) استخراج کنید.
2) در File Manager هاست، دسترسی پوشه‌های storage و uploads را روی 755 قرار دهید.
   اگر نصب‌کننده اعلام کرد قابل نوشتن نیست، موقتاً 775 را امتحان کنید.
3) آدرس همان پوشه را باز کنید:
   https://example.com/shahidbahonar/
4) صفحه نصب ظاهر می‌شود. حالت SQLite به‌طور پیش‌فرض انتخاب است.
5) نام کاربری admin و رمز دلخواه مدیر را وارد کنید و «شروع نصب» را بزنید.
6) دیتابیس، جداول، پایه‌ها، کتاب‌ها، درس‌ها، 5400 سؤال و فعالیت‌ها خودکار ساخته می‌شوند.
7) پس از نصب، صفحه ورود ظاهر می‌شود. با admin و رمزی که تعیین کردید وارد شوید.

SQLite یا MySQL؟
----------------
- SQLite پیشنهاد اصلی است: هیچ تنظیمی نمی‌خواهد و فقط با رمز مدیر نصب می‌شود.
- فایل دیتابیس در storage/school.sqlite ساخته می‌شود و توسط .htaccess از وب محافظت شده است.
- اگر pdo_sqlite روی هاست فعال نبود، حالت MySQL را انتخاب کنید و اطلاعات دیتابیسی را که در cPanel ساخته‌اید وارد نمایید.
- در MySQL نام دیتابیس و نام کاربری معمولاً پیشوند حساب هاست را دارند؛ مانند account_school.

نیازمندی‌ها
-----------
- PHP 7.4 یا جدیدتر (PHP 8.1 یا 8.2 پیشنهاد می‌شود)
- PDO
- یکی از pdo_sqlite یا pdo_mysql
- mbstring اختیاری ولی پیشنهادشده
- دسترسی نوشتن storage و uploads

کاربران نمونه (اگر گزینه داده نمونه روشن باشد)
---------------------------------------------
- دبیر: 0020304051 / رمز اولیه: 0020304051
- دانش‌آموز: 0090000001 / رمز اولیه: 0090000001
- دبیر و دانش‌آموز پس از ورود اول باید رمز خود را تغییر دهند.

اگر پس از به‌روزرسانی هنوز رنگ‌های قدیمی دیده می‌شوند
--------------------------------------------------
1) یک‌بار صفحه را با Ctrl+F5 بازخوانی سخت کنید.
2) در گوشی، مرورگر را کامل ببندید و دوباره باز کنید.
3) اگر نسخه قبلی را به‌صورت برنامه نصب کرده‌اید، آن را حذف و دوباره نصب کنید.
4) در Chrome می‌توانید از Settings > Site settings > Storage اطلاعات همان دامنه را پاک کنید.
نسخه CSS دارای شناسه v7-blue-title-black-text است تا کش مرورگر و CDN خودکار شکسته شود. در بالای صفحه نام مدرسه آبی پررنگ و متن خدمت و شعار مشکی هستند.

اگر صفحه سفید یا خطای 500 دیدید
-------------------------------
1) نسخه PHP را در Select PHP Version روی 8.1 یا 8.2 بگذارید.
2) افزونه‌های pdo، pdo_sqlite، sqlite3 و mbstring را فعال کنید.
3) دسترسی storage و uploads را بررسی کنید.
4) اگر هاست با دستور Options در .htaccess خطا می‌دهد، فقط خط «Options -Indexes» را از .htaccess اصلی حذف کنید.
5) فایل error_log در پوشه یا بخش Errors کنترل‌پنل را بررسی کنید.
6) هنگام نصب، پیام خطای فارسی دقیق در همان صفحه نمایش داده می‌شود.

نصب مجدد
---------
برای نصب مجدد SQLite:
1) از اطلاعات لازم پشتیبان بگیرید.
2) فایل‌های storage/config.php، storage/installed.lock و storage/school.sqlite را حذف کنید.
3) آدرس پوشه را دوباره باز کنید.

پشتیبان‌گیری
------------
- SQLite: فایل storage/school.sqlite را از File Manager دانلود کنید.
- MySQL: از phpMyAdmin گزینه Export را بزنید.
- تصاویر آپلودی داخل uploads هستند و باید همراه دیتابیس پشتیبان‌گیری شوند.

امنیت
-----
- پس از نصب از رمز قوی مدیر استفاده کنید.
- فایل‌های storage با .htaccess محافظت می‌شوند.
- فرم‌ها CSRF دارند، رمزها با password_hash ذخیره می‌شوند و کوئری‌ها Prepared Statement هستند.
