زمان کنونی: ۰۹ اردیبهشت ۱۴۰۳, ۰۷:۲۳ ب.ظ مهمان گرامی به انجمن مانشت خوش آمدید. برای استفاده از تمامی امکانات انجمن می‌توانید عضو شوید.
گزینه‌های شما (ورودثبت نام)

خطاهای معمول PHP

ارسال:
۲۷ مهر ۱۳۹۱, ۱۰:۴۶ ق.ظ
خطاهای معمول PHP
خطاهای رایج در نصب اسکریپت های پی اچ پی

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

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

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

اول یه دایرکتوری روی هاستتون ایجاد کنید ، به هر نامی که دوست دارید. مثلا errors. به این فولدر دسترسی نوشتن بدید.

حالا برید سراغ فایل htaccess. و کدهای زیر رو بهش اضافه کنید:
۱/php_flag log_errors on php_flag display_errors off php_value error_log /your/path/public_html/errors/php_error.log
بهتره که دسترسی عمومی به فولدر errors رو ببندید. برای این کار یه فایل htaccess. بسازیذ و کدهای زیر رو داخلش اضافه کنید:
۱/Order allow,deny Deny from all
حالا اسکریپت خودتون رو اجرا کنید و بعد به فولدر errors برید و خطای تولید شده رو داخل فایل php_error.log ببینید. -
خطا ، اخطار و اعلان

پیغام های زبان php به سه دسته تقسیم میشوند:

۱- اخطار ( Warning ) اخطار در واقع بدین معناست که یک مشکلی پیش آمده است اما سیستم به کار خود ادامه میدهد.

۲-اعلان ( Notice ) اعلان به شما میگوید که باید به این بخش توجه کنید.

بیشتر این اعلان ها مربوط به زمانی است که ورژن php سرور شما با ورژن اسکریپت متفاوت باشد. برای اینکه ما تمام اعلان ها و اخطارها رو به همراه خطاها در لاگ ذخیره کنیم میتوانیم از قطعه کد زیر در فایل htaccess. استفاده کنیم:
۱/php_flag log_errors on php_flag display_errors off php_value error_log /your/path/public_html/errors/php_error.log php_value error_reporting -1
اولبن error مهمترین خطای شماست در اکثر مواقع اولین خطایی که شما دریافت می کنید مهمترین خطای شماست.

خطاهای مربوط به پایگاه داده ( Database )
زمانی که شما بخواهید یک اسکریپت را نصب کنید ، نیاز دارید اطلاعات اتصال به پایگاه داده را در فایل مربوط به تنظیمات آن وارد نمایید. معمولا این اطلاعات به صورت سرور ، نام کاربری و کلمه عبور می باشد. Server: localhost username: database username password: database username's password معمولا سرور همان localhost هست و شما باید جلوی نام سرور این را بنویسید. در ادامه شما میبایست از طریق هاست خود اقدام به ساخت دیتابیس و کاربر آن بکنید. بنابراین اگر خطایی در رابطه با اتصال به پایگاه داده دریافت کردید حتما تنطیمات این بخش رو چک کنید.
Fatal Error: Call to Undefined Function

۱/Fatal error: Call to undefined function my_function() in /home/mysite/public_html/test.php on line 2
این خطا زمانی رخ میدهد که تابع مورد نیاز صفحه مورد نظر وجود نداشته باشد و یا پیدا نشده باشد. معمولا این خطا به دلایل زیر رخ می دهد:

۱- امکان دارد شما تمامی فایل های اسکریپت راآپلود نکرده باشید.

۲- زمانی که یک اسکریپت رو آپگرید میکنید

۳- تنظیمات فایل configuration رو بدرستی وارد نکردید

۴- اسکریپت برای اجرا نیاز به یک تابع دارد که آن تابع در سرور باید موجود باشد مثل imagecreatefromjpeg()
Fatal Error: Cannot Redeclare
۱/Fatal error: Cannot redeclare my_function() (previously declared in /home/mysite/public_html/runtime.php:14) in /home/mysite/public_html/runtime.php on line 26
این خطا زمانی اتفاق می افتد که شما یک فایل را دو بار include کرده اید. حتما فایل هاتون رو مجددا چک کنید.
Fatal Error: Allowed Memory Size Exhausted
۱/Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 17472 bytes) in /home/mysite/public_html/lib/Image.class.php on line 198
گاهی اوقات شما اسکریپتی را اجرا میکنید که برای کار کردن نیاز به حافظه زیادی دارد که سرور شما اجازه استفاده از چنین حافظه ایی را نمیدهد. با مدیر هاست خود تماس بگیرید
Permission Errors
خطای دسترسی یکی از رایج ترین خطاها می باشد که وبمستر ها با آن روبرو می شوند.
۱/Warning: move_uploaded_file(/home/mysite/public_html/upload/my_cat.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/mysite/public_html/upload.php on line 49
در مثال بالا اسکریپت میخواهد یک فایل آپلود کند اما فولدر مقصد دسترسی لازم را برای این کار ندارد.شما می توانید از طریق FTP و یا کنترل پنل هاستتون دسترسی مورد نظر رو به فولدر و یا فایل های مربوطه بدید.
PHP Warning: Include

۱/PHP Warning: include(foo.php): failed to open stream: No such file or directory in /home/mysite/public_html/test.php on line 2
این خطا بدین معناست که فایلی که include شده موجود نمی باشد.

در php شما می توانید بوسیله include و require یک فایل را مشمول کنید. با این تفاوت که در require اسکریپت در صورت پیدا نکردن به کار خود ادامه نمی دهد.


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

توانایی عشق ورزیدن؛ بزرگ‌ترین هنر جهان است.
۰
۰
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
 سپاس‌گزاری شده توسط: equilibrium


موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  انتقال داده از ص a به ص b بدون php با js amirmtf ۰ ۱,۹۹۷ ۰۲ اردیبهشت ۱۳۹۹ ۱۲:۱۷ ب.ظ
آخرین ارسال: amirmtf
  دانلود رایگان دوره آموزشی PHP & MySQL SamanehRashvand ۱ ۲,۶۰۴ ۲۶ مهر ۱۳۹۸ ۰۹:۲۹ ق.ظ
آخرین ارسال: alma1988
  استفاده از کد جی کویری در PHP Roya2222 ۱ ۲,۱۵۴ ۱۹ مهر ۱۳۹۸ ۰۶:۳۳ ب.ظ
آخرین ارسال: Riemann
  نصب یک دیتابیس در php mysql fas ۱ ۲,۳۴۴ ۱۸ مرداد ۱۳۹۷ ۱۰:۰۳ ق.ظ
آخرین ارسال: iranforums
  معرفی اموزشگاه برای کلاس های php saradehghani ۰ ۱,۹۵۹ ۲۴ تیر ۱۳۹۷ ۰۳:۱۲ ب.ظ
آخرین ارسال: saradehghani
  سؤال در مورد چک باکس در PHP simorghsimorgh ۷ ۱۰,۱۴۵ ۲۴ دى ۱۳۹۶ ۱۱:۰۸ ب.ظ
آخرین ارسال: gogooli
  فیلم فارسی آموزش upload در php sisili ۱ ۲,۲۴۵ ۱۹ تیر ۱۳۹۶ ۱۲:۱۲ ب.ظ
آخرین ارسال: sisili
  ASP.NET یا PHP؟؟ shamim_70 ۳ ۴,۱۳۴ ۰۳ خرداد ۱۳۹۶ ۱۱:۰۱ ق.ظ
آخرین ارسال: sisili
  نحوه ی کار با ایمیل در PHP simorghsimorgh ۷ ۵,۷۳۳ ۱۲ شهریور ۱۳۹۵ ۰۳:۰۷ ب.ظ
آخرین ارسال: axarsu
  دروه آنلاین برنامه نویسی وب از پایه با PHP 7 (پروژه محور ویژه آمادگی برای بازار کار) one hacker alone ۰ ۱,۷۲۵ ۳۰ مرداد ۱۳۹۵ ۰۳:۰۷ ق.ظ
آخرین ارسال: one hacker alone

پرش به انجمن:

Can I see some ID?

به خاطر سپاری رمز Cancel

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close

رمزت رو فراموش کردی؟

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. close