اصول خطايابی و Debug کردن برنامه ها: مشکلات رايج و راه حل رفع آنها

دسته بندی: آموزش
زمان مطالعه: ۲ دقیقه
۱۸ شهریور ۱۳۹۳

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

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

فصل 15 : اصول خطايابی و Debug کردن برنامه ها: مشکلات رايج و راه حل رفع آنها

سطوح مختلف خطاها و پيام ها در زبان PHP

  • انواع مختلف خطاها در زبان PHP
  • خطاهاي نوشتاري و تجزيه اي (Syntax Errors)
  • خطاهاي مهلک (Fatal Errors)
  • خطاهاي هشداري (Warning Errors)
  • خطاهاي اطلاعاتي (Notice Errors)
  • تشريح و توضيح انواع خطاها با ارائه ي مثال هاي ريز
  • روش اصولي رفع خطاهاي مختلف در PHP
  • خطاهاي رايج و راه حل رفع آنها در زبان PHP
  • مشکلات نوشتاري در زبان PHP
  • مشکل نمايش سورس php در مرورگر
  • مشکل عدم نمايش خروجي کدهاي PHP (فعال سازي نمايش ارورها)
  • مشکل در ورود پارامترهاي مناسب براي توابع
  • مشکل عدم امکان تعريف دوباره ي توابع تکراري
  • مشکل عدم امکان دسترسي به ويژگي ها و متد هاي يک متغير که Object نيست
  • مشکل شروع شدن سشن در مکان ديگر
  • اشتباه در استفاده از عملگر انتساب به جاي عملگر تست برابري
  • مشکل در نحوه ي استفاده از عملگرهاي == و ===
  • مشکلات موجود در کوئري هاي SQL
  • مشکل ارسال چندباره Header و دلايل بروز آن
  • مشکل نمايش کاراکترهاي فارسي به شکل علامت سوال؟؟؟؟؟؟؟ (در فايل ها و پايگاه داده)
  • ميني پروژه : اشکال زدايي و رفع ده ها خطا در يک سيستم مديريت محتواي محبوب (وردپرس)
  • تمرين
:: توجه

این مطلب یک جلسه از آموزش PHP می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

ثبت نام در آموزش PHP

نویسنده
بیش از 15 سال هست که برنامه نویسی می کنم و از بین همه زبون هایی که کار کردم جاوا، اسمبلی و php رو دوست دارم. دانشجوی دکترای نرم افزارم و توی دانشگاه روی پردازش بیگ دیتا و پردازش موازی کار کردم و عاشق چالش از هر نوعیش هستم! سون لرن مثل بچه منه که 12 سال براش وقت گذاشتم، اینجا همه تلاش می کنیم از شروع یادگیری تا ورود به بازر کار حوزه برنامه نویسی و IT همراهتون باشیم.

جلسات دوره

نظرات کاربران

mahdiyeh

با سلام من تو بخش دیتا بیست مشکل دارم این کد می خواهم تو پروژ شخصی خودم اعمال کنم دیتا بیست اخطار میدهد و اطلاعات نمی خواند
دومین نکته این میباشد خیلی میحط سایت بهتر شده است ولی سر فصل ها اشتباه وارد شده است من وقتی اموزش فصل 19 که میزنم تایتل فصل 15 نوشته است گفتم بهتون بگم باتشکر .

لقمان آوند

ممنونم
دقیقا کجا رو می فرمایید؟ اگر مشکلی دیدید از دکمه پایین سمت چپ سایت گزارش مشکل رو بزنید و ثبت کنید تا تیممون بررسی کنه.
ممنونم

sadra hakim

سلام استاد خسته نباشید
منظورتون از هدر توی این ویدئو چیه ؟ میگید نباید قبل از سشن استارت دستور دیگه ای باشه. چون یه هدر ایجاد میشه و سشن استارت میخواد اون هدر رو تغییر بده.
من نفهمیدم منظورتون از هدر چیه
باتشکر

علی صنیعی

سلام دوستان.
این پیغام خطا رو چطوری میشه تصحیح کرد؟
لطف خیلی ساده و ابتدایی بگید که توش گیر نکنم 😀

17-Apr-2016 10:42:51 UTC] PHP Fatal error: require_once(): Failed opening required ‘/home/gulfpetr/public_html/includes/defines.php’ (include_path=’.:/usr/lib/php:/usr/local/lib/php’) in /home/gulfpetr/public_html/index.php on line 33

این هم کد فایل ایندکس

 <?php
/**
 * @package Joomla.Site
 *
 * @copyright  Copyright (C) 2005 - 2015 Open Source Matters, Inc. All rights reserved.
 * @license GNU General Public License version 2 or later; see LICENSE.txt
 */
/**
 * Define the application's minimum supported PHP version as a constant so it can be referenced within the application.
 */
define('JOOMLA_MINIMUM_PHP', '5.3.10');
if (version_compare(PHP_VERSION, JOOMLA_MINIMUM_PHP, 'mark('afterLoad') : null;
// Instantiate the application.
$app = JFactory::getApplication('site');
// Execute the application.
$app->execute();

اگر کدها ناقص هست فایل رو اینجا آپلود کردم

http://s7.picofile.com/file/8247693000/index.php.html

کیوان علی محمدی

سلام آدرس فایلی که require کردین رو بهتره تصحیح کنید. در فایل index.php خط شماره 33 رو تصحیح کنید.

darin

با عرض سلام
استاد آوند میشه در مورد توابع htmlentities و magicquote توضیح بدید.
از قلم افتاد یا توابعی که خودتون تعریف کردید کار این توابع را هم انجام میدهد؟

لقمان آوند

بعضی کاراکتر ها تو کدهای html مثل < و > و ‘ و ” ممکنه مشکل ساز باشه در نمایش . htmlentities اونها رو کد میکنه و تحویل میده که مشکلی پیش نیاد .
magicqoute هم بعضی کاراکتر های اینچنینی رو بک اسلش میزاری جلوشون که امن بشن …
بله توابعی که ذکر کردیم همین کارا رو می کنه تقریبا …

darin

ممنون استاد که وقت گذاشتید. ❓

امین ارجمند

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

echo $_POST['name'];

اروری میده که Undefined index هستش
چطوری باید اون اطلاعات رو که کاربر در فرم وارد کرده در این صفحه براش چاپ کنیم؟

لقمان آوند

می تونی از سشن ها کمک بگیری. و یا اینکه اطلاعات ثبت شده در دیتابیس رو بخونی و بهش نمایش بدی …

hoseyn

مرسی استاد عزیز این جلسه عالی بود و امیدوارم پوسته ی زندگیتون هرگز فاتال ارور که هیچ نوتایس ارور هم نداشته باشه… دعا گوی شما هستین

لقمان آوند

ممنون از لطف شما

rasool eslami

اقای اوند مرسی از زحماتتون

لقمان آوند

خواهش می کنم آقا رسول
وظیفه است .
موفق باشید

وحید صالحی

پاسختون داده شد

وحید صالحی

دوست عزیز کدی که شما قرار دادید از نظر ساختار سینتکس مشکل داره مثلا شما یک خط کد رو با دبل کتیشن(“) باز کرید و با کاما بستید یا کدها رو جابجا نوشتید خودتوبه دقت مقایسه کنید متوجه می شید که در کد زیر ویرایش شده که باید در هنگام کدنویسی دقت بیشتری کنید با این حال باز اگر به ارور برخوردید متن ارور همراه با کدهاتون رو قرار بدید

require_once ‘common/common.php’;
require_once ‘config.php’;

$mysqli = new mysqli($dbHost, $dbUser, $dbPass, $dbName);
$mysqli->exec(“SET CHARACTER SET utf8”);
$mysqli->exec(“set names utf8”);
echo “Connected successfully to database.’$dbName’.(Using mysqli_connect)”;
/* check connection */
if ($mysqli->connect_errno) {
printf(“Connect failed: %s\n”, $mysqli->connect_error);
exit();
}
پایدار باشید…

حسین میراحمدی

سلام استاد صالحی
برای من جوابی نیست ؟!

حسین میراحمدی

سلام
کدهای من به اینصورت هست و کدهای شمارو اضافه کردم … ولی ارور میده ! …

require_once ‘common/common.php’;
require_once ‘config.php’;

$mysqli = new mysqli($dbHost, $dbUser, $dbPass, $dbName);

/* check connection */
if ($mysqli->connect_errno) {
printf(“Connect failed: %s\n”, $mysqli->connect_error);
exit();
}

$mysqli->exec(“SET CHARACTER SET utf8″);
$mysqli->exec(“set names utf8″);
echo “Connected successfully to database $dbName. (Using mysqli_connect) “;

$sql = “select * from users “;
$result = $mysqli->query($sql);
printResultsTable($result);

وحید صالحی

سلام موارد زیر رو بعد از رشته اتصال به دیتابیس قرار دهید
$connect->exec(“SET CHARACTER SET utf8”);
$connect->exec(“set names utf8”);

و بجای $connect هم متغییر اتصال به دیتابیش خودتون رو قرار بدید و همچینی دیتابیس رو هم که ایجا کردید colation ش رو برابر utf8 percian ci قرار بدید هنگام ساخت دیتابی در phpmyadmin

حسین میراحمدی

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

باتشکر

پایان زمان پشتیبانی

دانشجوی گرامی، بازه پشتیبانی فعال برای این دوره ۳ ماه است که برای شما به پایان رسیده است.

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

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.
گزارش مشکل