magicfile icon وبسایت فایل سحرآمیز - magicfile.ir

آموزش اصل طلایی برای اجرای اسکریپت‌های PHP

آموزش-اصل-طلایی-برای-اجرای-اسکریپت‌های-PHP

آموزش اصل طلایی برای اجرای اسکریپت های PHP

زبان PHP یکی از پرکاربردترین زبان‌های برنامه‌نویسی سمت سرور است که در طراحی وب‌سایت‌های پویا و تعاملی به کار می‌رود. مقاله با معرفی این زبان و کاربردهای گسترده آن آغاز می‌شود تا خواننده با اهمیت و جایگاه PHP در دنیای توسعه وب آشنا شود. سپس نحوه نصب PHP روی سیستم‌های مختلف از جمله ویندوز (با ابزارهایی مانند XAMPP یا WAMP) و لینوکس (با ترکیب Apache، PHP و MySQL) توضیح داده می‌شود تا محیط مناسبی برای اجرای اسکریپت‌ها فراهم شود.

پس از نصب، اجرای اسکریپت‌های PHP به دو روش اصلی آموزش داده می‌شود: اجرای مستقیم از طریق مرورگر و اجرای خط فرمان (CLI). این دو روش، کاربردهای متفاوتی دارند و آشنایی با آن‌ها به توسعه‌دهنده امکان می‌دهد در موقعیت‌های مختلف به راحتی از PHP استفاده کند. همچنین ساخت یک فایل PHP ساده و اجرای اولیه آن به صورت عملی به همراه مثال‌های ساده آموزش داده می‌شود تا پایه محکمی برای یادگیری بیشتر فراهم گردد.

ارتباط PHP با پایگاه داده، به‌خصوص MySQL، از اهمیت بالایی برخوردار است زیرا اکثر وب‌سایت‌های دینامیک نیازمند ذخیره و بازیابی داده هستند. مقاله به طور کامل نحوه اتصال PHP به MySQL و مدیریت داده‌ها را آموزش می‌دهد. همچنین مباحث مهمی مانند اشکال‌زدایی (debug) اسکریپت‌ها و مدیریت خطاها و لاگ‌ها در PHP بررسی می‌شود تا برنامه‌نویسان بتوانند مشکلات را شناسایی و رفع کنند.

در ادامه، تعامل PHP با فرم‌های HTML و استفاده از متدهای GET و POST برای ارسال داده‌ها به اسکریپت‌ها آموزش داده می‌شود که از پایه‌های طراحی وب تعاملی است. اجرای اسکریپت‌ها با Cron Job، آپلود اسکریپت در هاست‌های اشتراکی، و تفاوت نسخه‌های مختلف PHP نیز مورد بررسی قرار می‌گیرند تا خوانندگان بتوانند در محیط‌های متنوع و با توجه به نسخه مورد استفاده، اسکریپت‌های خود را به درستی اجرا و مدیریت کنند. در نهایت، نکات حیاتی امنیتی در اجرای اسکریپت‌های PHP ارائه می‌شود تا پروژه‌های توسعه داده شده در برابر تهدیدات محافظت شوند و به شکل امن و پایدار در فضای وب باقی بمانند.

لیست عناوین مقاله آموزشی «نحوه اجرای اسکریپت‌های PHP»:

  1. معرفی زبان PHP و کاربردهای آن

  2. نصب PHP روی ویندوز (XAMPP یا WAMP)

  3. نصب PHP روی لینوکس (Apache + PHP + MySQL)

  4. اجرای اسکریپت PHP از طریق مرورگر

  5. اجرای اسکریپت PHP از طریق خط فرمان (CLI)

  6. ساخت فایل PHP ساده و اجرای آن

  7. اتصال PHP به پایگاه داده MySQL

  8. اشکال‌زدایی (debug) اسکریپت‌های PHP

  9. مدیریت خطاها و لاگ‌ها در PHP

  10. استفاده از فرم HTML و ارسال اطلاعات به PHP

  11. استفاده از GET و POST در اسکریپت‌های PHP

  12. اجرای اسکریپت PHP با Cron Job در سرور

  13. آپلود و اجرای اسکریپت PHP در هاست اشتراکی

  14. تفاوت بین نسخه‌های PHP و نکاتی در اجرای اسکریپت‌ها

  15. نکات امنیتی در اجرای اسکریپت‌های PHP


🧩 معرفی زبان PHP و کاربردهای آن

✅ PHP چیست؟

PHP مخفف عبارت PHP: Hypertext Preprocessor است (که یک عبارت بازگشتی است) و یک زبان اسکریپتی سمت سرور (server-side) است که برای توسعه وب طراحی شده است.
PHP رایگان، متن‌باز (open source) و کراس‌پلتفرم (قابل اجرا روی ویندوز، لینوکس، مک و...) است.


🎯 ویژگی‌های اصلی زبان PHP

  • اجرا روی سمت سرور: کدهای PHP روی سرور اجرا شده و خروجی HTML به مرورگر ارسال می‌شود.

  • یادگیری ساده: برای مبتدیان مناسب و در عین حال قدرتمند برای حرفه‌ای‌ها.

  • هماهنگ با HTML: می‌توان آن را به‌صورت ترکیبی در فایل HTML استفاده کرد.

  • پشتیبانی از پایگاه‌داده‌های متنوع: به‌ویژه MySQL، PostgreSQL، SQLite و...

  • پشتیبانی از برنامه‌نویسی شی‌گرا (OOP).

  • دارای جامعه‌ی بزرگ، منابع زیاد آموزشی و فریم‌ورک‌های معروف (مثل Laravel).


🛠 کاربردهای PHP

کاربرد توضیح
🌐 طراحی سایت داینامیک سایت‌هایی که با پایگاه‌داده کار می‌کنند، مثل پنل مدیریت، فرم‌ها، کاربران
📥 پردازش فرم‌ها مانند فرم ثبت‌نام، ورود، تماس با ما، جستجو و...
🛒 ساخت فروشگاه اینترنتی با استفاده از PHP می‌توان فروشگاه‌هایی مانند دیجی‌کالا ساخت
📂 مدیریت فایل‌ها و آپلود آپلود عکس، ویدیو، فایل‌ها و نمایش آنها به کاربر
📧 ارسال ایمیل امکان ارسال ایمیل‌های اطلاع‌رسانی، تایید عضویت، فاکتور و...
🧾 تولید فایل‌های PDF و Excel تولید خروجی‌های قابل دانلود برای گزارشات یا فاکتورها
🔐 احراز هویت و امنیت ورود/خروج کاربر، مدیریت سشن‌ها، رمزگذاری اطلاعات
⏱ اجرای اسکریپت خودکار با استفاده از Cron Job در سرور برای وظایف زمان‌بندی‌شده

🌍 چه سایت‌هایی با PHP ساخته شده‌اند؟

برخی از سایت‌ها و پلتفرم‌های معروفی که با PHP نوشته شده‌اند:

  • WordPress (معروف‌ترین CMS دنیا)

  • Facebook (نسخه اولیه آن با PHP بود)

  • Wikipedia

  • Drupal، Joomla

  • Magento (فروشگاه‌ساز)


✅ نتیجه‌گیری

PHP یکی از پرمصرف‌ترین زبان‌های توسعه وب است. اگر هدف شما ساخت سایت‌های پویا، پردازش فرم‌ها، تعامل با پایگاه‌داده یا ساخت وب‌سرویس است، PHP انتخاب مناسبی خواهد بود.
این زبان حتی امروز با وجود رقبا، همچنان قدرتمند، محبوب و توسعه‌یافته باقی مانده است.


🧰 نصب PHP روی ویندوز (با استفاده از XAMPP یا WAMP)

برای اجرای اسکریپت‌های PHP در ویندوز، بهترین و ساده‌ترین روش، استفاده از نرم‌افزارهایی مانند XAMPP یا WAMP است که محیطی شبیه به سرور واقعی (Apache + PHP + MySQL) روی سیستم محلی شما ایجاد می‌کنند.


🔹 روش اول: نصب PHP با XAMPP

✅ XAMPP چیست؟

XAMPP مجموعه‌ای شامل:

  • Apache (وب‌سرور)

  • MySQL / MariaDB (پایگاه داده)

  • PHP

  • phpMyAdmin (مدیریت پایگاه داده با رابط گرافیکی)

است که با یک نصب ساده، همه‌ی این ابزارها را در اختیار شما می‌گذارد.


🧾 مراحل نصب XAMPP:

  1. دانلود XAMPP

  2. نصب نرم‌افزار

    • فایل .exe را اجرا کرده و طبق مراحل پیش بروید.

    • در بخش انتخاب کامپوننت‌ها، تیک Apache, MySQL, PHP, phpMyAdmin را حتماً بزنید.

  3. اجرای XAMPP

    • پس از نصب، XAMPP Control Panel را اجرا کنید.

    • سرویس‌های Apache و MySQL را Start کنید.

  4. ایجاد فایل PHP

    • به مسیر C:xampphtdocs بروید.

    • یک فایل به نام مثلاً test.php بسازید و در آن کد زیر را قرار دهید:

      php

      CopyEdit

      <?php echo "سلام دنیا!"; ?>

  5. اجرای فایل در مرورگر

    • مرورگر را باز کنید و آدرس زیر را وارد کنید:

      arduino

      CopyEdit

      http://localhost/test.php

    • باید متن «سلام دنیا!» را ببینید.


🔹 روش دوم: نصب PHP با WAMP

✅ WAMP چیست؟

WAMP نیز مشابه XAMPP است و شامل:

  • Windows

  • Apache

  • MySQL

  • PHP

است، ولی ظاهر گرافیکی‌تری دارد و کنترل بیشتری روی تنظیمات نسخه PHP و MySQL به شما می‌دهد.


🧾 مراحل نصب WAMP:

  1. دانلود WAMP

  2. نصب نرم‌افزار

    • نصب ساده و مشابه XAMPP است، اما حتماً نسخه 64 یا 32 بیتی متناسب با ویندوزتان را انتخاب کنید.

  3. اجرای WAMP

    • پس از اجرا، آیکون WAMP در نوار پایین ویندوز سبز می‌شود (نشانه فعال بودن Apache و MySQL).

  4. ساخت فایل PHP

    • به مسیر C:wamp64www بروید (یا wampwww).

    • فایل test.php ایجاد کرده و کد ساده‌ای بنویسید.

  5. مشاهده در مرورگر

    • آدرس زیر را در مرورگر وارد کنید:

      arduino

      CopyEdit

      http://localhost/test.php


🆚 XAMPP یا WAMP؟ کدام بهتر است؟

ویژگی XAMPP WAMP
رابط کاربری ساده‌تر گرافیکی‌تر
قابل نصب روی لینوکس بله فقط ویندوز
مدیریت آسان سرویس‌ها بله بله
پشتیبانی از MariaDB بله معمولاً MySQL

 

نتیجه: اگر مبتدی هستید، XAMPP پیشنهاد می‌شود. اگر دنبال کنترل بیشتر و ظاهر گرافیکی‌تر هستید، WAMP گزینه‌ی خوبی است.


🐧 نصب PHP روی لینوکس (Apache + PHP + MySQL)

برای اجرای اسکریپت‌های PHP روی سیستم‌عامل لینوکس (مانند Ubuntu، Debian، CentOS)، باید سه جزء اصلی را نصب کنیم:

🔹 Apache: وب‌سرور
🔹 PHP: زبان اسکریپت‌نویسی
🔹 MySQL / MariaDB: پایگاه داده

این ترکیب به نام LAMP شناخته می‌شود:
Linux + Apache + MySQL + PHP


🧾 مراحل نصب در Ubuntu/Debian (با apt)

1. به‌روزرسانی سیستم:

bash

sudo apt update sudo apt upgrade


2. نصب Apache:

bash

sudo apt install apache2

برای بررسی اینکه Apache نصب شده:

bash

sudo systemctl status apache2

و سپس در مرورگر بزن:

arduino

http://localhost

باید صفحه پیش‌فرض Apache نمایش داده شود.


3. نصب PHP:

bash

sudo apt install php libapache2-mod-php

برای بررسی نسخه PHP:

bash

php -v


4. نصب MySQL:

bash

sudo apt install mysql-server

برای ایمن‌سازی MySQL:

bash

sudo mysql_secure_installation


5. نصب phpMyAdmin (اختیاری، برای مدیریت پایگاه داده با رابط گرافیکی):

bash

sudo apt install phpmyadmin

در حین نصب، گزینه Apache را انتخاب کن و رمز root را تعیین کن.

سپس با رفتن به:

arduino

http://localhost/phpmyadmin

می‌توانی وارد محیط phpMyAdmin شوی.


6. تست اجرای فایل PHP:

  1. به پوشه ریشه وب برو (پیش‌فرض /var/www/html)

  2. فایل test.php بساز:

bash

sudo nano /var/www/html/test.php

  1. این کد را بنویس:

php

<?php phpinfo(); ?>

  1. مرورگر را باز کن و بزن:

arduino

http://localhost/test.php

اگر صفحه مشخصات PHP را دیدی، یعنی همه‌چیز درست نصب شده است.


🧾 مراحل نصب در CentOS/RHEL (با yum/dnf)

برای نسخه‌های مبتنی بر RedHat:

bash

sudo dnf install httpd sudo systemctl start httpd sudo systemctl enable httpd sudo dnf install php php-mysqlnd sudo dnf install mariadb-server sudo systemctl start mariadb sudo systemctl enable mariadb


🛠 نکات تکمیلی:

  • ریشه پروژه‌ها معمولاً در مسیر:

    css

    CopyEdit

    /var/www/html

    قرار دارد. برای تغییر مجوز دسترسی:

    bash

    CopyEdit

    sudo chown -R $USER:www-data /var/www/html

  • برای تغییر نسخه PHP (اگر چند نسخه نصب است)، می‌توان از ابزارهایی مثل update-alternatives یا phpbrew استفاده کرد.


✅ نتیجه‌گیری:

با نصب Apache، PHP و MySQL روی لینوکس، می‌توان یک سرور قدرتمند محلی یا آنلاین برای اجرای پروژه‌های PHP راه‌اندازی کرد. این روش شبیه به محیط سرورهای واقعی است و برای توسعه‌دهندگان بسیار مناسب است.


🌐 اجرای اسکریپت PHP از طریق مرورگر

پس از نصب PHP و وب‌سرور (مانند Apache)، نوبت به اجرای اسکریپت‌های PHP در مرورگر می‌رسد. این کار بسیار ساده است و با رعایت چند نکته می‌توانید اسکریپت‌های خود را تست و اجرا کنید.


✅ مراحل اجرای اسکریپت PHP در مرورگر

1. 📁 قرار دادن فایل PHP در پوشه سرور

بسته به سیستم‌عامل و نرم‌افزار مورد استفاده:

سیستم‌عامل نرم‌افزار مسیر فایل‌ها
ویندوز XAMPP C:xampphtdocs
ویندوز WAMP C:wamp64www
لینوکس Apache /var/www/html

 

📌 مثال: اگر فایل شما hello.php نام دارد، باید در یکی از مسیرهای بالا قرار گیرد.


2. 🧾 محتوای یک اسکریپت ساده PHP

مثلاً فایلی با نام hello.php ایجاد کرده و کد زیر را در آن قرار دهید:

php

<?php echo "سلام دنیا!"; ?>


3. 🌍 باز کردن فایل در مرورگر

مرورگر را باز کرده و آدرس را این‌گونه وارد کنید:

arduino

http://localhost/hello.php

📌 اگر فایل در زیردوشه‌ای (مثلاً project1) قرار دارد:

bash

http://localhost/project1/hello.php

✅ نتیجه: خروجی کد PHP (مثلاً "سلام دنیا!") در مرورگر نمایش داده می‌شود.


⚠️ نکات مهم

  • فایل PHP را مستقیماً با دوبار کلیک باز نکنید! اگر فایل را با دوبار کلیک یا به‌صورت file:///C:/... باز کنید، مرورگر کد PHP را اجرا نخواهد کرد، بلکه آن را مانند یک متن خام نشان می‌دهد.

  • آدرس باید با http://localhost یا IP سرور شروع شود تا از طریق Apache یا Nginx پردازش شود.

  • اگر با خطا روبرو شدید (مثلاً "404 Not Found" یا نمایش کد PHP)، حتماً بررسی کنید که:

    • فایل در مسیر صحیح قرار دارد

    • Apache اجرا شده باشد (Start در کنترل پنل XAMPP یا WAMP)

    • فایل پسوند .php داشته باشد، نه .html یا .txt


🎯 تست حرفه‌ای‌تر

می‌توانید از تابع phpinfo() برای مشاهده تنظیمات PHP سرور استفاده کنید:

php

<?php phpinfo(); ?>

و سپس آدرس را در مرورگر باز کنید:

arduino

http://localhost/phpinfo.php


💻 اجرای اسکریپت PHP از طریق خط فرمان (CLI)

PHP فقط برای صفحات وب نیست! می‌توان اسکریپت‌های PHP را بدون مرورگر، مستقیماً از خط فرمان (Command Line Interface - CLI) اجرا کرد. این روش برای برنامه‌نویسی اسکریپت‌های اتوماسیون، تست، کرون‌جاب‌ها (Cron Jobs)، یا اجرای سریع یک اسکریپت ساده بسیار مفید است.


✅ مراحل اجرای اسکریپت PHP از خط فرمان

1. ✍️ ساخت یک فایل PHP

مثلاً فایل test.php را بسازید و کد زیر را در آن بنویسید:

php

<?php echo "اجرای PHP از طریق CLI با موفقیت انجام شد! ";

توجه: از برای ایجاد خط جدید در ترمینال استفاده می‌شود، نه <br>.


2. 📂 باز کردن خط فرمان

بسته به سیستم‌عامل:

سیستم‌عامل ابزار خط فرمان
ویندوز cmd یا PowerShell
لینوکس ترمینال (Ctrl+Alt+T)
مک‌او‌اس Terminal

 


3. ▶️ اجرای اسکریپت با دستور php

به مسیری بروید که فایل .php در آن قرار دارد و سپس بنویسید:

bash

php test.php

خروجی:

objectivec

اجرای PHP از طریق CLI با موفقیت انجام شد!


🧪 مثال پیشرفته‌تر: دریافت ورودی از خط فرمان

php

<?php $name = readline("نام خود را وارد کنید: "); echo "سلام، $name! ";

و اجرا:

bash

php greeting.php


🛠 نکات مفید:

  • می‌توانید PHP را مانند سایر زبان‌های اسکریپتی (مثل Python) در کرون‌جاب‌ها یا اسکریپت‌های Bash استفاده کنید.

  • برای مشاهده محل نصب PHP در سیستم:

    • ویندوز:

      bash

      CopyEdit

      where php

    • لینوکس/مک:

      bash

      CopyEdit

      which php


⚠️ خطای رایج:

اگر دستور php شناخته نشد، یعنی PHP به مسیر سیستم (PATH) اضافه نشده. باید مسیر نصب PHP را به متغیر محیطی PATH اضافه کنید.


✅ نتیجه‌گیری:

CLI یکی از قدرتمندترین امکانات PHP است. با استفاده از آن می‌توان اسکریپت‌ها را سریع، بدون نیاز به مرورگر و با امکانات بیشتری مانند دریافت پارامتر، ساخت ابزارهای خط فرمان، یا اجرای زمان‌بندی‌شده استفاده کرد.


🛠 ساخت فایل PHP ساده و اجرای آن

در این بخش یاد می‌گیریم چگونه یک فایل ساده PHP بسازیم و آن را از طریق مرورگر یا خط فرمان اجرا کنیم. این آموزش پایه‌ای‌ترین قدم برای شروع برنامه‌نویسی PHP است.


✅ مرحله 1: ساخت فایل PHP

  1. ابتدا یک ویرایشگر متن باز کنید (مثل Notepad، Notepad++، VS Code یا هر ویرایشگر دلخواه دیگر).

  2. یک فایل جدید ایجاد کرده و کد زیر را در آن بنویسید:

php

<?php echo "سلام دنیا!"; ?>

  1. فایل را با پسوند .php ذخیره کنید. مثلاً:

hello.php


✅ مرحله 2: اجرای فایل PHP

🔸 روش 1: از طریق مرورگر (Web Server)

  1. فایل hello.php را در مسیر وب‌سرور قرار دهید:

نرم‌افزار مسیر فایل‌ها
XAMPP C:xampphtdocs
WAMP C:wamp64www
Apache (لینوکس) /var/www/html

 

  1. مرورگر را باز کرده و آدرس را وارد کنید:

arduino

http://localhost/hello.php

🔹 اگر در زیردوشه‌ای است:

arduino

http://localhost/myproject/hello.php

📌 خروجی باید این باشد:

سلام دنیا!


🔸 روش 2: از طریق خط فرمان (CLI)

اگر PHP در سیستم نصب باشد، می‌توان فایل را مستقیم اجرا کرد:

bash

php hello.php

📌 خروجی در ترمینال:

سلام دنیا!


🔍 توضیح کد

php

<?php echo "سلام دنیا!"; ?>

  • <?php نشان‌دهنده شروع کد PHP است.

  • echo برای چاپ متن استفاده می‌شود.

  • ?> (اختیاری) پایان بلوک PHP است.


📌 نکات مهم

  • فایل PHP حتماً باید با <?php شروع شود.

  • فایل PHP باید با پسوند .php ذخیره شود.

  • برای اجرای درست در مرورگر، باید Apache یا Nginx فعال باشد.


🗄 اتصال PHP به پایگاه داده MySQL

یکی از مهم‌ترین قابلیت‌های PHP، امکان اتصال به پایگاه‌داده (Database) مانند MySQL/MariaDB است. در این آموزش یاد می‌گیریم چگونه از طریق کد PHP به پایگاه‌داده متصل شویم و اطلاعات را بخوانیم یا درج کنیم.


✅ پیش‌نیازها

  • MySQL نصب باشد (مثلاً همراه با XAMPP یا WAMP).

  • پایگاه‌داده‌ای ایجاد شده باشد (مثلاً با نام testdb).

  • کاربر و رمز عبور مشخص باشد (مثلاً کاربر root بدون رمز).


✅ مراحل اتصال با mysqli

1. 🧾 کد اتصال ساده

php

<?php $host = "localhost"; $user = "root"; $password = ""; $dbname = "testdb"; // اتصال به پایگاه داده $conn = new mysqli($host, $user, $password, $dbname); // بررسی اتصال if ($conn->connect_error) { die("خطا در اتصال: " . $conn->connect_error); } echo "اتصال با موفقیت انجام شد!"; ?>


⚠️ اگر اتصال موفق نبود...

ممکن است خطایی مانند زیر ببینید:

pgsql

خطا در اتصال: Access denied for user 'root'@'localhost'

در این صورت:

  • بررسی کنید که MySQL در حال اجرا باشد.

  • رمز عبور یا نام دیتابیس را صحیح وارد کرده باشید.


✅ درج داده در جدول

فرض کنید جدول users در پایگاه داده testdb داریم:

sql

CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), email VARCHAR(100) );

و کد درج:

php

<?php $conn = new mysqli("localhost", "root", "", "testdb"); $name = "علی"; $email = "ali@example.com"; $sql = "INSERT INTO users (name, email) VALUES ('$name', '$email')"; if ($conn->query($sql) === TRUE) { echo "اطلاعات با موفقیت ثبت شد."; } else { echo "خطا در ثبت: " . $conn->error; } $conn->close(); ?>


✅ خواندن داده‌ها از جدول

php

<?php $conn = new mysqli("localhost", "root", "", "testdb"); $sql = "SELECT id, name, email FROM users"; $result = $conn->query($sql); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { echo "کاربر: " . $row["name"] . " - ایمیل: " . $row["email"] . "<br>"; } } else { echo "داده‌ای یافت نشد."; } $conn->close(); ?>


🧰 نکات امنیتی

  • برای جلوگیری از حملات SQL Injection حتماً از prepared statements استفاده کنید.

  • به جای استفاده مستقیم از داده‌های کاربر در SQL، از ? و bind_param() استفاده نمایید.


🧪 نتیجه

PHP به راحتی می‌تواند به پایگاه داده MySQL متصل شود و داده‌ها را درج، خواندن، و مدیریت کند. این اتصال پایه بسیاری از وب‌اپلیکیشن‌های پویا مانند سیستم‌های ثبت‌نام، فروشگاه‌ها، وبلاگ‌ها و ... است.


🐞 اشکال‌زدایی (Debug) اسکریپت‌های PHP

در فرآیند برنامه‌نویسی، خطاها اجتناب‌ناپذیرند. برای پیدا کردن و رفع این خطاها، باید با روش‌های اشکال‌زدایی (debugging) در PHP آشنا باشیم. در این آموزش روش‌های رایج و حرفه‌ای برای debug کردن اسکریپت‌های PHP را بررسی می‌کنیم.


✅ 1. فعال‌سازی نمایش خطاها (Error Reporting)

برای اینکه خطاهای PHP را ببینید، باید آن‌ها را فعال کنید:

php

<?php ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); ?>

📌 این سه خط را در ابتدای فایل PHP قرار دهید. آن‌ها تضمین می‌کنند که همه خطاها (حتی اخطارها و هشدارها) نمایش داده شوند.


✅ 2. بررسی گزارش خطاهای سرور (Apache/Nginx)

اگر خطایی در مرورگر نشان داده نمی‌شود، گزارش خطا (error log) سرور را بررسی کنید:

  • در XAMPP:
    مسیر: C:xamppapachelogserror.log

  • در لینوکس (Apache):
    مسیر: /var/log/apache2/error.log


✅ 3. استفاده از var_dump() یا print_r()

برای بررسی محتویات متغیرها:

php

<?php $user = ["name" => "Ali", "age" => 30]; var_dump($user); print_r($user); ?>

📌 مناسب برای آرایه‌ها و اشیاء.


✅ 4. استفاده از تابع debug_backtrace()

اگر بخواهید بفهمید چه تابعی یا کدی یک خطا را باعث شده:

php

<?php function test() { echo "<pre>"; print_r(debug_backtrace()); echo "</pre>"; } test(); ?>


✅ 5. استفاده از die() یا exit() برای توقف و بررسی

گاهی برای تست می‌توانید اجرای برنامه را متوقف کرده و مقدار یک متغیر را ببینید:

php

<?php $result = query(); var_dump($result); die("برنامه در اینجا متوقف شد"); ?>


✅ 6. استفاده از IDE مناسب با پشتیبانی از Debug

استفاده از محیط‌های حرفه‌ای مانند:

  • Visual Studio Code با افزونه PHP Debug

  • PHPStorm (پشتیبانی داخلی از Xdebug)


✅ 7. نصب و استفاده از Xdebug

Xdebug یک افزونه پیشرفته برای اشکال‌زدایی است که امکانات زیر را فراهم می‌کند:

  • نمایش جزئیات کامل خطاها

  • تنظیم breakpoint در IDE

  • پروفایل عملکرد (performance profiling)

📌 برای نصب در XAMPP:

  • فایل php.ini را باز کنید.

  • این خط را اضافه کنید (مسیر ممکن است متفاوت باشد):

ini

zend_extension = "C:xamppphpextphp_xdebug.dll"

  • سپس Apache را ری‌استارت کنید.


✅ 8. استفاده از ابزارهای آنلاین مانند PHP Fiddle

اگر می‌خواهید سریع کدی را تست و debug کنید:


🧠 نکته پایانی

همیشه سعی کنید:

  • کد را ماژولار و قابل خواندن بنویسید.

  • از log گیری در فایل‌های .log استفاده کنید.

  • در محیط production نمایش خطا را غیرفعال کنید و فقط لاگ‌گیری کنید.


⚠️ مدیریت خطاها و لاگ‌ها در PHP

در پروژه‌های واقعی، به‌ویژه در محیط‌های production، باید خطاها را مدیریت کنیم، نه فقط نمایش دهیم. مدیریت درست خطاها و ثبت آن‌ها در فایل‌های لاگ باعث می‌شود بدون نمایش خطا به کاربر، بتوانیم مشکلات را بررسی و رفع کنیم.


✅ 1. سطوح خطا در PHP

PHP دارای سطوح مختلفی از خطاهاست:

نوع توضیح
E_ERROR خطاهای بحرانی (مانند ناتوانی در اتصال به پایگاه داده)
E_WARNING هشدار، ولی اجرای برنامه ادامه می‌یابد
E_NOTICE اخطار کوچک (مانند استفاده از متغیر تعریف‌نشده)
E_PARSE خطای نحوی (syntax error)
E_ALL همه موارد بالا

 


✅ 2. غیرفعال کردن نمایش خطا به کاربر (مناسب برای production)

در فایل php.ini یا اول اسکریپت:

php

ini_set('display_errors', 0); // نمایش خطا به کاربر را غیرفعال می‌کند ini_set('log_errors', 1); // فعال‌سازی ثبت خطاها در فایل ini_set('error_log', 'errors.log'); // مسیر فایل لاگ error_reporting(E_ALL);

📁 نتیجه: خطاها در فایل errors.log ثبت می‌شوند، ولی کاربر نمی‌بیند.


✅ 3. ثبت دستی خطا در لاگ با error_log()

می‌توانید خودتان یک پیام دلخواه به لاگ اضافه کنید:

php

error_log("کاربر ناشناس سعی در دسترسی به صفحه ممنوعه داشت.");

📁 این پیام به مسیر تعریف‌شده در error_log می‌رود.


✅ 4. ایجاد هندلر اختصاصی با set_error_handler()

می‌توانید یک تابع اختصاصی برای مدیریت خطا تعریف کنید:

php

function customError($errno, $errstr, $errfile, $errline) { $log = "[$errno] $errstr در خط $errline در فایل $errfile"; error_log($log); echo "مشکلی در سیستم رخ داده است. لطفاً بعداً تلاش کنید."; } set_error_handler("customError");


✅ 5. مدیریت خطاهای بحرانی با register_shutdown_function()

برای خطاهایی مثل E_ERROR که توسط set_error_handler مدیریت نمی‌شوند:

php

register_shutdown_function(function() { $error = error_get_last(); if ($error !== NULL && $error['type'] === E_ERROR) { error_log("خطای بحرانی: " . $error['message']); } });


✅ 6. ثبت استثناها (Exception Handling)

در برنامه‌نویسی شی‌گرا، از try-catch استفاده می‌شود:

php

try { throw new Exception("مشکلی پیش آمد!"); } catch (Exception $e) { error_log("استثنا: " . $e->getMessage()); }


🧪 فایل نمونه: مدیریت و لاگ خطا

php

<?php ini_set('display_errors', 0); ini_set('log_errors', 1); ini_set('error_log', 'errors.log'); error_reporting(E_ALL); function myErrorHandler($errno, $errstr, $errfile, $errline) { error_log("[$errno] $errstr در خط $errline"); } set_error_handler("myErrorHandler"); // مثال: echo $undefinedVar; // ایجاد Notice 5 / 0; // ایجاد Warning ?>


🧠 نکته امنیتی

در محیط‌های production هرگز خطاها را مستقیماً به کاربر نمایش ندهید. این کار ممکن است اطلاعاتی درباره ساختار سایت شما افشا کند.


📝 استفاده از فرم HTML و ارسال اطلاعات به PHP

یکی از قابلیت‌های اصلی PHP، دریافت داده از فرم‌های HTML است. در این آموزش یاد می‌گیریم چگونه یک فرم ساده بسازیم و داده‌های آن را در PHP پردازش کنیم.


✅ 1. ساخت فرم HTML

html

<form action="process.php" method="post"> <label>نام:</label> <input type="text" name="name" required><br><br> <label>ایمیل:</label> <input type="email" name="email" required><br><br> <input type="submit" value="ارسال"> </form>

📌 این فرم با متد POST اطلاعات را به فایل process.php ارسال می‌کند.


✅ 2. دریافت داده‌ها در PHP (process.php)

php

<?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $name = $_POST["name"]; $email = $_POST["email"]; echo "سلام $name! ایمیل شما: $email"; } ?>

🔹 در این کد:

  • چک می‌کنیم که فقط در صورت POST بودن فرم، داده‌ها پردازش شوند.

  • از $_POST برای دسترسی به داده‌های فرم استفاده می‌کنیم.


✅ 3. تفاوت بین POST و GET

ویژگی POST GET
امنیت امن‌تر (اطلاعات در URL نیست) اطلاعات در URL دیده می‌شود
اندازه داده بدون محدودیت عملی محدود (URL حداکثر 2048 کاراکتر)
مناسب برای فرم‌های حساس (ورود، ثبت‌نام) جستجو، فیلتر و لینک مستقیم

✅ 4. نمونه فرم با متد GET

html

<form action="search.php" method="get"> <label>کلمه کلیدی:</label> <input type="text" name="q"> <input type="submit" value="جستجو"> </form>

در فایل search.php:

php

<?php $keyword = $_GET['q']; echo "نتایج برای: " . htmlspecialchars($keyword); ?>


⚠️ 5. جلوگیری از حملات XSS

برای جلوگیری از اجرای کدهای مخرب در ورودی کاربر، همیشه از htmlspecialchars() استفاده کنید:

php

$name = htmlspecialchars($_POST["name"]);


✅ 6. نمونه پروژه کاربردی: فرم تماس با ما

html

<form action="contact.php" method="post"> <input type="text" name="name" placeholder="نام" required> <input type="email" name="email" placeholder="ایمیل" required> <textarea name="message" placeholder="پیام شما" required></textarea> <input type="submit" value="ارسال"> </form>

php

<?php $name = htmlspecialchars($_POST['name']); $email = htmlspecialchars($_POST['email']); $message = htmlspecialchars($_POST['message']); echo "پیام شما دریافت شد، $name!";


🧠 نکته پایانی

  • همیشه فرم‌ها را اعتبارسنجی (validation) کنید.

  • داده‌ها را sanitize کنید (جلوگیری از حملات XSS و SQL Injection).

  • فرم‌ها پایه‌ی تعامل کاربر با PHP هستند؛ آن‌ها را امن و ساده نگه دارید.


🔄 استفاده از GET و POST در اسکریپت‌های PHP

PHP از دو روش رایج برای دریافت داده از کاربران استفاده می‌کند:
GET و POST. این دو روش نحوه ارسال داده از فرم‌ها یا از طریق URL را مشخص می‌کنند.


✅ 1. متغیرهای سوپرگلوبال GET و POST

در PHP، از دو آرایه‌ی سراسری (Superglobal Arrays) برای دریافت اطلاعات فرم‌ها استفاده می‌کنیم:

  • $_GET → داده‌های ارسال‌شده با متد GET (در URL قرار می‌گیرند)

  • $_POST → داده‌های ارسال‌شده با متد POST (در بدنه درخواست هستند)


✅ 2. فرم GET نمونه

html

<form action="search.php" method="get"> <label>جستجو:</label> <input type="text" name="q"> <input type="submit" value="بگرد"> </form>

در فایل search.php:

php

<?php $query = $_GET['q']; echo "شما جستجو کردید برای: " . htmlspecialchars($query); ?>

✅ نتیجه:

makefile

URL: search.php?q=php


✅ 3. فرم POST نمونه

html

<form action="submit.php" method="post"> <label>نام:</label> <input type="text" name="name"> <input type="submit" value="ارسال"> </form>

در فایل submit.php:

php

<?php $name = $_POST['name']; echo "سلام، " . htmlspecialchars($name); ?>

🔐 این داده در URL نمایش داده نمی‌شود و امنیت بالاتری دارد.


✅ 4. مقایسه GET و POST

ویژگی GET POST
قابل مشاهده در URL
امنیت اطلاعات ❌ پایین‌تر ✅ بالاتر
محدودیت حجم ✅ محدود به طول URL (مثلاً 2048 کاراکتر) ❌ ندارد
مناسب برای جستجو، لینک‌ها فرم‌های ورود، تماس، ثبت‌نام

 


✅ 5. تشخیص متد در PHP

می‌توانیم با $_SERVER['REQUEST_METHOD'] متد ارسال فرم را تشخیص دهیم:

php

if ($_SERVER["REQUEST_METHOD"] == "POST") { // دریافت با $_POST } elseif ($_SERVER["REQUEST_METHOD"] == "GET") { // دریافت با $_GET }


✅ 6. بررسی وجود داده

برای جلوگیری از خطا در دسترسی به فیلدهایی که ممکن است ارسال نشده باشند:

php

if (isset($_POST['name'])) { $name = $_POST['name']; }

یا:

php

$name = $_POST['name'] ?? 'ناشناس';


✅ 7. ترکیب GET و POST در یک صفحه

ممکن است صفحه‌ای همزمان از هر دو استفاده کند:

php

$page = $_GET['page'] ?? 1; $name = $_POST['name'] ?? 'ناشناس';


✅ 8. امنیت: Escape و Validate

برای جلوگیری از حملات XSS:

php

echo htmlspecialchars($_POST['name']);

برای جلوگیری از حملات SQL Injection، داده‌ها را قبل از استفاده در پایگاه داده با روش‌های امن مانند PDO آماده کنید.


🔚 نتیجه‌گیری

زمان استفاده از GET زمان استفاده از POST
ارسال داده غیرحساس، لینک‌پذیر ارسال داده حساس (رمز، اطلاعات شخصی)
نمایش نتیجه در URL نیاز به امنیت بیشتر
برای فیلترها و جستجو برای فرم تماس، ورود، ثبت‌نام

⏰ اجرای اسکریپت PHP با Cron Job در سرور (Linux)

اگر بخواهید یک اسکریپت PHP در فواصل زمانی مشخص به‌صورت خودکار اجرا شود (مثلاً ارسال ایمیل، تهیه نسخه پشتیبان، پاک‌سازی فایل‌ها و...)، می‌توانید از Cron Job در لینوکس استفاده کنید.


✅ 1. Cron Job چیست؟

Cron یک سرویس در سیستم‌عامل‌های لینوکسی/یونیکسی است که اجازه می‌دهد دستورها یا اسکریپت‌ها در زمان‌های مشخصی اجرا شوند.


✅ 2. نوشتن Cron Job برای اجرای فایل PHP

فرض کنیم فایل شما به‌نام task.php در مسیر زیر قرار دارد:

swift

/home/username/public_html/task.php

و می‌خواهید آن را هر روز ساعت 5 صبح اجرا کنید.

🛠 دستور Cron Job:

bash

0 5 * * * /usr/bin/php /home/username/public_html/task.php

📌 توضیح زمان‌بندی:

دقیقه ساعت روز ماه ماه روز هفته 0 5 * * * → هر روز ساعت 5:00 صبح

📌 مسیر /usr/bin/php ممکن است در سرور شما متفاوت باشد. برای اطمینان می‌توانید اجرا کنید:

bash

which php


✅ 3. ویرایش Cron Jobs با دستور crontab

برای ویرایش cron job فعلی برای کاربر:

bash

crontab -e

سپس دستور خود را به انتهای فایل اضافه کنید و ذخیره نمایید.


✅ 4. خروجی Cron Job را ذخیره کنید (برای دیباگ)

برای ذخیره خروجی در فایل لاگ:

bash

0 5 * * * /usr/bin/php /home/username/public_html/task.php >> /home/username/task.log 2>&1

🔹 >> خروجی را به فایل اضافه می‌کند
🔹 2>&1 خطاها را نیز به همان فایل هدایت می‌کند


✅ 5. اجرای Cron از فایل URL (با curl یا wget)

اگر می‌خواهید اسکریپت PHP را از طریق URL اجرا کنید (مثلاً https://example.com/task.php):

bash

0 5 * * * curl -s https://example.com/task.php > /dev/null

یا:

bash

0 5 * * * wget -q -O - https://example.com/task.php > /dev/null


✅ 6. بررسی اجرا شدن کرون جاب

اگر اسکریپت اجرا نمی‌شود:

  • از مسیر درست PHP استفاده کنید (which php)

  • مجوز فایل را بررسی کنید (chmod +x task.php)

  • مسیر اسکریپت را به‌صورت مطلق بدهید

  • خروجی را در فایل لاگ بررسی کنید


🧪 نمونه فایل task.php

php

<?php file_put_contents("log.txt", "Task run at " . date("Y-m-d H:i:s") . " ", FILE_APPEND); ?>

با این کد، هر بار اجرای کرون، یک خط در فایل log.txt ذخیره می‌شود.


🧠 نکات امنیتی:

  • برای اسکریپت‌هایی که از طریق URL اجرا می‌شوند، تأیید امنیتی یا توکن اضافه کنید.

  • مسیرهای حساس را مستقیماً در public_html نگذارید.

  • اسکریپت را تست کنید قبل از تنظیم کرون.


☁️ آپلود و اجرای اسکریپت PHP در هاست اشتراکی (Shared Hosting)

در هاست‌های اشتراکی (مانند ایران‌سرور، نت‌افراز، Bluehost، HostGator و...) کاربران معمولاً از cPanel یا DirectAdmin برای مدیریت فایل‌ها، دامنه‌ها و اجرای اسکریپت‌ها استفاده می‌کنند.

در این آموزش، یاد می‌گیریم چگونه یک اسکریپت PHP را روی هاست اشتراکی آپلود و اجرا کنیم.


✅ 1. آماده‌سازی فایل PHP

فرض کنیم فایل شما به نام hello.php دارای محتوای زیر است:

php

<?php echo "سلام، این اسکریپت PHP اجرا شد!"; ?>


✅ 2. ورود به پنل هاست (cPanel یا DirectAdmin)

  • به آدرس پنل مدیریت هاست خود بروید، مثلاً:

    • https://yourdomain.com:2083 (برای cPanel)

    • یا از طریق لینکی که شرکت هاستینگ به شما داده


✅ 3. استفاده از File Manager

  1. در پنل هاست، وارد File Manager شوید.

  2. به مسیر public_html/ بروید (این پوشه ریشه سایت است).

  3. روی Upload کلیک کنید.

  4. فایل hello.php را انتخاب و بارگذاری کنید.

  5. پس از آپلود، فایل را در لیست مشاهده خواهید کرد.


✅ 4. اجرای فایل در مرورگر

پس از آپلود، با مرورگر به آدرس زیر بروید:

arduino

https://yourdomain.com/hello.php

✅ خروجی باید چیزی مانند زیر باشد:

سلام، این اسکریپت PHP اجرا شد!


✅ 5. نکات مهم درباره هاست اشتراکی

نکته توضیح
📁 محل قرارگیری فایل تمام فایل‌های قابل اجرا باید داخل public_html (یا پوشه‌های فرعی آن) باشند
🔐 مجوز فایل مجوز مناسب برای فایل PHP معمولاً 644 است
⚠️ نمایش خطا اگر صفحه سفید است یا خطایی نمی‌بینید، باید نمایش خطا را فعال کنید (یا با پشتیبانی تماس بگیرید)
🔎 مسیرهای فایل در هاست اشتراکی ممکن است مسیرهای سیستم با لوکال فرق داشته باشد. از __DIR__ یا $_SERVER['DOCUMENT_ROOT'] استفاده کنید
🛠 ویرایش آنلاین می‌توانید فایل را در File Manager هاست ویرایش کنید (Edit یا Code Edit)

✅ 6. آپلود پروژه کامل با چند فایل

اگر پروژه شما چندین فایل دارد (HTML, CSS, JS, PHP):

  1. تمام فایل‌ها و پوشه‌ها را در یک فایل ZIP قرار دهید.

  2. آن را در public_html/ آپلود کنید.

  3. در File Manager، روی ZIP راست‌کلیک کرده و Extract بزنید.

  4. پروژه آماده اجرا خواهد بود.


✅ 7. اتصال به پایگاه داده MySQL در هاست

در هاست اشتراکی، باید:

  • پایگاه داده MySQL بسازید (از MySQL Databases در پنل)

  • نام پایگاه داده، یوزر و پسورد را در فایل PHP وارد کنید:

php

$conn = new mysqli("localhost", "db_user", "db_pass", "db_name");


✅ 8. خطای رایج: 500 Internal Server Error

اگر با این خطا مواجه شدید:

  • فایل .htaccess را بررسی کنید (ممکن است دستور ناسازگار با Apache باشد)

  • مطمئن شوید کد PHP شما خطای نحوی ندارد

  • از error_log ها استفاده کنید یا از پشتیبانی هاست کمک بگیرید


🔍 تفاوت بین نسخه‌های PHP و نکاتی در اجرای اسکریپت‌ها

PHP با گذشت زمان نسخه‌های متعددی منتشر کرده که هر نسخه تغییراتی در ویژگی‌ها، توابع، امنیت و عملکرد دارد. دانستن تفاوت نسخه‌ها و نکات مربوط به آن‌ها برای اجرای صحیح و بهینه‌ی اسکریپت‌های PHP ضروری است.


✅ 1. نسخه‌های رایج PHP

نسخه سال انتشار وضعیت توضیح کوتاه
PHP 5.6 2014 منقضی شده آخرین نسخه سری 5، هنوز در برخی هاست‌ها موجود است
PHP 7.0 – 7.4 2015–2019 منقضی شده یا در حال انقضا بهبود عملکرد نسبت به نسخه 5، حذف برخی توابع قدیمی
PHP 8.0 – 8.1 2020–2021 در حال پشتیبانی معرفی ویژگی‌هایی مانند Union Types، Match Expressions
PHP 8.2 – 8.3 2022–2023 پایدار و توصیه‌شده ویژگی‌های جدید: readonly classes، fetch properties of enums
PHP 8.4 و بالاتر در آینده ویژگی‌های آینده‌نگرانه و عملکرد بیشتر

✅ 2. مهم‌ترین تفاوت‌های بین نسخه‌ها

🔷 حذف توابع منسوخ‌شده

مثال: تابع mysql_connect() از PHP 7 به بعد حذف شد و باید از mysqli یا PDO استفاده کرد.

php

// ✅ جدیدتر: $mysqli = new mysqli("localhost", "user", "pass", "db"); // ❌ قدیمی و حذف‌شده: mysql_connect("localhost", "user", "pass");


🔷 ویژگی‌های جدید در PHP 8+

  • Match Expression:

    php

    CopyEdit

    echo match($value) { 1 => "یک", 2 => "دو", default => "نامشخص" };

  • Constructor Property Promotion:

    php

    CopyEdit

    class Person { public function __construct( public string $name, public int $age ) {} }

  • Union Types, Attributes, Nullsafe Operator, Readonly Class, و بسیاری دیگر


✅ 3. چگونه نسخه PHP سایت خود را پیدا کنیم؟

✔️ با فایل phpinfo():

php

<?php phpinfo(); ?>

مرورگر را باز کنید و فایل را اجرا کنید، اطلاعات کامل نسخه و تنظیمات PHP نمایش داده می‌شود.


✅ 4. تنظیم نسخه PHP در هاست اشتراکی

در هاست‌هایی مثل cPanel:

  1. وارد cPanel شوید.

  2. بخش Select PHP Version یا MultiPHP Manager را پیدا کنید.

  3. دامنه مورد نظر را انتخاب کنید.

  4. نسخه PHP دلخواه (مثلاً 8.2) را انتخاب و ذخیره کنید.


✅ 5. نکات مهم هنگام اجرای اسکریپت‌ها در نسخه‌های مختلف

مورد نکته
توابع حذف‌شده اطمینان حاصل کنید اسکریپت از توابع حذف‌شده استفاده نمی‌کند
دستورهای جدید برخی سینتکس‌ها در نسخه‌های قدیمی اجرا نمی‌شوند
پکیج‌ها اگر از Composer استفاده می‌کنید، نسخه PHP پروژه را در composer.json مشخص کنید
لاگ خطاها با فعال کردن نمایش خطا (error_reporting) از ناسازگاری‌ها مطلع شوید

✅ 6. استفاده از شرط نسخه برای سازگاری

اگر می‌خواهید اسکریپت شما با نسخه‌های مختلف سازگار باشد:

php

if (version_compare(PHP_VERSION, '8.0.0') >= 0) { // کد مخصوص PHP 8 و بالاتر } else { // کد سازگار با نسخه‌های قدیمی‌تر }


✅ 7. استفاده از ویژگی‌های جدید = بهبود امنیت و سرعت

نسخه‌های جدید PHP معمولاً:

  • سرعت پردازش بالاتری دارند (PHP 8 تا 3 برابر سریع‌تر از PHP 5)

  • آسیب‌پذیری‌های امنیتی کمتری دارند

  • ابزارهای دیباگ و مدیریت خطای بهتری ارائه می‌دهند


📌 نتیجه‌گیری

  • همیشه از نسخه‌های پشتیبانی‌شده و پایدار استفاده کنید (مثلاً PHP 8.2 یا بالاتر)

  • قبل از اجرای پروژه روی سرور، نسخه PHP را بررسی و هماهنگ کنید

  • اگر از اسکریپت‌های آماده استفاده می‌کنید، راهنمای نسخه پیشنهادی آن را بخوانید


🔐 نکات امنیتی در اجرای اسکریپت‌های PHP

اسکریپت‌های PHP در معرض تهدیدات متعددی هستند که در صورت رعایت نکردن نکات امنیتی، می‌توانند به افشای اطلاعات، تزریق کد، خرابکاری یا سرقت داده منجر شوند. در اینجا به مهم‌ترین اصول امنیتی در اجرای اسکریپت‌های PHP می‌پردازیم.


✅ 1. جلوگیری از SQL Injection (تزریق کد به پایگاه داده)

حمله رایج: هکر با وارد کردن کدهای SQL در فرم‌ها، کوئری‌ها را دستکاری می‌کند.

راه‌حل: استفاده از prepared statements با mysqli یا PDO

php

// ✅ امن $stmt = $conn->prepare("SELECT * FROM users WHERE username = ?"); $stmt->bind_param("s", $username); $stmt->execute();


✅ 2. جلوگیری از XSS (Cross-Site Scripting)

حمله رایج: وارد کردن کد جاوااسکریپت در فرم‌ها که هنگام نمایش، در مرورگر قربانی اجرا می‌شود.

راه‌حل: استفاده از htmlspecialchars() هنگام نمایش داده‌ها

php

echo htmlspecialchars($_POST['name']);


✅ 3. جلوگیری از CSRF (Cross-Site Request Forgery)

حمله رایج: ارسال درخواست جعلی از سایت دیگر بدون اطلاع کاربر واردشده

راه‌حل: استفاده از توکن CSRF در فرم‌ها

php

// تولید توکن $_SESSION['csrf_token'] = bin2hex(random_bytes(32)); // در فرم: <input type="hidden" name="csrf_token" value="<?php echo $_SESSION['csrf_token']; ?>"> // بررسی: if ($_POST['csrf_token'] !== $_SESSION['csrf_token']) { die("درخواست نامعتبر است"); }


✅ 4. فیلتر و اعتبارسنجی ورودی‌ها

نکته: هرگز به داده‌های کاربر اعتماد نکنید؛ همه داده‌ها را فیلتر و اعتبارسنجی کنید.

php

$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL); $age = filter_input(INPUT_POST, 'age', FILTER_VALIDATE_INT);


✅ 5. محدود کردن آپلود فایل

خطر: امکان آپلود فایل‌های اجرایی یا مخرب (php, exe, js) توسط مهاجم

راه‌حل:

  • بررسی نوع MIME

  • تغییر نام فایل‌ها به صورت تصادفی

  • ذخیره فایل‌ها خارج از public_html

php

$allowed = ['jpg', 'png', 'pdf']; $ext = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION); if (!in_array($ext, $allowed)) { die("فرمت فایل مجاز نیست."); }


✅ 6. عدم نمایش خطاها به کاربران

خطر: نمایش جزئیات خطا باعث افشای مسیر فایل‌ها یا اطلاعات سرور می‌شود.

راه‌حل:

php

ini_set('display_errors', 0); // در محیط واقعی ini_set('log_errors', 1); ini_set('error_log', '/path/to/error.log');


✅ 7. محدود کردن دسترسی به فایل‌ها و پوشه‌ها

  • فایل‌های حساس (مثل config.php یا .env) نباید در دسترس عموم باشند.

  • استفاده از فایل .htaccess برای محدودسازی:

apache

<Files config.php> Order allow,deny Deny from all </Files>


✅ 8. استفاده از رمزنگاری برای ذخیره رمز عبور

اشتباه رایج: ذخیره رمز عبور به‌صورت متن ساده!

راه‌حل: استفاده از password_hash() و password_verify()

php

// ذخیره رمز $hashed = password_hash($password, PASSWORD_DEFAULT); // بررسی رمز if (password_verify($input, $hashed)) { echo "ورود موفق"; }


✅ 9. به‌روزرسانی مداوم نسخه PHP و کتابخانه‌ها

نسخه‌های قدیمی PHP و پکیج‌های ناپشتیبانی‌شده امنیت پایین‌تری دارند.

همواره از آخرین نسخه‌های پایدار استفاده کنید (مثلاً PHP 8.2 به بالا)


✅ 10. استفاده از HTTPS

استفاده از SSL باعث رمزنگاری داده‌های ردوبدل شده می‌شود. بدون HTTPS، حمله «man-in-the-middle» ممکن است داده‌ها را رهگیری کند.


✳️ جمع‌بندی

تهدید امنیتی راهکار
SQL Injection prepared statements
XSS htmlspecialchars()
CSRF توکن امنیتی فرم
افشای رمز password_hash()
افشای خطا غیر فعال‌سازی display_errors
آپلود فایل فیلتر MIME و تغییر نام
نسخه PHP به‌روزرسانی منظم

اجرای صحیح و ایمن اسکریپت‌های PHP نیازمند آگاهی و رعایت نکات مهم در مراحل مختلف توسعه است. از نصب محیط اجرای PHP گرفته تا اتصال به پایگاه داده و مدیریت خطاها، هر بخش نقش کلیدی در عملکرد و امنیت نهایی پروژه دارد. با دنبال کردن این مراحل و تمرین عملی، می‌توانید به یک توسعه‌دهنده حرفه‌ای PHP تبدیل شوید که هم به کارایی و هم به امنیت اهمیت می‌دهد.

همچنین به یاد داشته باشید که دنیای فناوری و زبان PHP همواره در حال تغییر و به‌روزرسانی است. به همین دلیل، به‌روزرسانی دانش خود و استفاده از نسخه‌های جدیدتر PHP، بهبود امنیت و بهره‌وری برنامه‌ها را تضمین می‌کند. ابزارهای اشکال‌زدایی، مدیریت خطا و امنیت در PHP نیز به شما کمک می‌کنند تا برنامه‌های پایدارتر و قابل اطمینان‌تری بسازید.

در نهایت، توجه به نکات امنیتی و اصول طراحی مناسب کد، راه شما را برای ساخت وب‌سایت‌ها و اپلیکیشن‌های مطمئن و حرفه‌ای هموار می‌کند. امیدواریم این مقاله توانسته باشد به شما دیدگاهی جامع درباره اجرای اسکریپت‌های PHP بدهد و شما را در مسیر تبدیل شدن به یک توسعه‌دهنده موفق PHP همراهی کند.

 

لیست فایل های ویژه وبسایت

نرم-افزار-تغییر-زبان-سورس-کد-ویژوال-استودیو-(عناصر-دیزاین-طراحی-فرم-ها)

نرم افزار تغییر زبان سورس کد ویژوال استودیو (عناصر دیزاین طراحی فرم ها)


دانلود-نرم-افزار-تبدیل-txt-به-vcf-:-برنامه-تبدیل-فایل-متنی-تکست-txt-به-وی‌سی‌اف-vcf-(Virtual-Contact-File-مخاطب-موبایل)

دانلود نرم افزار تبدیل txt به vcf : برنامه تبدیل فایل متنی تکست txt به وی‌سی‌اف vcf (Virtual Contact File مخاطب موبایل)


دانلود-دیتابیس-تقویم-1404-در-اکسل

دانلود دیتابیس تقویم 1404 در اکسل


نرم-افزار-ترجمه-خودکار-فایل-های-po-,-pot-بصورت-کامل-برای-تمامی-زبان-ها-از-جمله-فارسی

نرم افزار ترجمه خودکار فایل های po , pot بصورت کامل برای تمامی زبان ها از جمله فارسی


بهترین-سرویس-پوش-نوتیفیکیشن-(Web-Push-Notification)-اسکریپت-مدیریت-اعلان-و-ساخت-پوش-نوتیفیکیشن-سایت-و-ارسال-پوش-از-طریق-php

بهترین سرویس پوش نوتیفیکیشن (Web Push Notification) اسکریپت مدیریت اعلان و ساخت پوش نوتیفیکیشن سایت و ارسال پوش از طریق php


تعداد فایل های دانلود شده

37704+

آخرین بروز رسانی در سایت

1404/3/15

قدمت سایت فایل سحرآمیز

+8 سال

تعداد محصولات برای دانلود

2626+