
خوب امروز می خوایم اولین پروژه ی جامع این دوره رو براتون آموزش بدیم . در این پروژه ما می خوایم یه سیستم پاسخگویی به سوالات رو پیاده سازی کنیم و منطق و الگوریتم پیاده سازی برخی از قابلیت های کاربردی مثل فرم جستجو، صفحه بندی و ... رو براتون توضیح بدیم .
قابلیت های این سیستم پرسش و پاسخ به این شکل هستند :
- طراحی برنامه ای برای پاسخگویی به سوالات کاربران
- قابلیت ارسال سوالات بدون عضویت توسط بازدیدکننده ها وجود دارد .
- این سیستم، فرم عضویت و قابلیت عضویت کاربران را ندارد
- سوالات سه وضعیت می توانند داشته باشند . (در انتظار تائید، منتشر شده، پاسخ داده شده)
- سیستم فقط 1 عضو مدیر دارد که می تواند فعالیت های مدیریتی محتوا را انجام دهد
- فقط مدیر می تواند سوالات را حذف، تائید ، عدم تائید کند و یا پاسخ دهد .
- بخش پنل مدیریت وجود ندارد و برای راحتی بیشتر تمامی عملیات مدیریتی باید بر روی رابط اصلی سیستم انجام شود .
- قابلیت جستجو در سوالات وجود داشته باشد .
- قابلیت نمایش سوالات بر اساس نوع وضعیت آنها .
- قابلیت صفحه بندی سوالات با تعین تعداد سوال در هر صفحه
- ارسال SMS و ایمیل به کاربر پس از پاسخ دادن به سوال او
هدف از انتخاب و طراحی این پروژه برای شما این موارد هست :
- آشنایی با نحوه طراحی و ایجاد پایگاه داده برای این اسکریپت
- آشنایی با نحوه ی نمایش، ثبت، حذف و ویرایش یک موجودیت (محتوا - سوال/جواب ) در پایگاه داده
- آشنایی با نحوه ی پیاده سازی برنامه بر اساس پارامترها و ایجاد راحتی بیشتر در تغیرها بعدی
- آشنایی با نحوه ی پیاده سازی عملیات ورود و خروج کاربر (ادمین)
- آشنایی با نحوه ی پیاده سازی قابلیت جستجو برای سایت (فرم جستجو)
- آشنایی با منطق و نحوه ی صفحه بندی مطالب (سوالات) در برنامه های PHP
- آشنایی با نحوه ی مدیریت سیستم بر روی رابط کاربری اصلی و عدم استفاده از پنل مدیریت
- آشنایی با برخی ترفندهای امنیتی در پیاده سازی برنامه های PHP
- آشنایی با نحوه ی آگاه سازی کاربران از طریق ایمیل پس از رویدادی خاص
مدت زمان ویدیوی آموزشی این جلسه بیش از 4 ساعت است . در واقع دو جلسه ی مربوط به طراحی این پروژه رو یکجا و امروز در اختیار شما قرار دادیم تا منتظر نمونید. اگر در میانه ی دیدن ویدیو خسته شدید حتما به خودتون استراحت فکری بدید . می تونید در دو مرحله ی 2 ساعته این ویدیو رو ببینید .
سوالات و یا پیشنهادات خود رو در مورد این پروژه و یا پروژه های بعدی در بخش نظرات همین مطلب بنویسید.
این مطلب یک جلسه از آموزش PHP می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.
function isValidStatus($status)
{
$statusArr = array(‘pending’, ‘publish’, ‘answered’);
if (in_array($status, $statusArr))
return true;
return false;
}
function getValidStatus($status)
{
if (isValidStatus($status)) {
return $status;
} else {
return ‘all’;
}
}
استاد این دوتا تابع رو نمیش ادغام کرد دوتاش که یکیه
سلام وقتتون بخیر.
من پروژه رو در لوکال نوشتم و بدون هیچ مشکلی . اما الان که روی هاست بردم خطای زیر رو داره :
Fatal error: Call to undefined method mysqli_result::fetch_all() in /home/ferestoc/mhbitarafan.ir/myprojects/ticketing/inc/functions.php on line 101
لطفا راهنمایی کنید. سپاس
سلام موقع اجرای پروژه و کلیک روی دکمه با ارور زیر مواجه می شوم
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO
سلام وقت بخیر، یک سوال از محضرتون داشتم. می خواست ببینم آیا رابطه جدول سوال و جواب، یک به یک هست؟؟؟
مقدار value هر input رو سینتکسش اشتباهه باید مقدار متغییر سوپر گلوبال POST رو هم با حروف بزرگ بنویسید مثال:
در ضمن input اولی چرا 2 تا اتریبیوت value داره ؟!!! اولی رو که متغییر $uName رو اکو کردید رو حذف کنید.
سلام زمانی که دکمه submitQuestion رو اجرا می کنم فرم کلا خالی می شود ولی می خواهم بعد از اجرا فرم مجددا به همان مقادیر قبلی مشاهده شود این کد را زدم ولی ارور می دهد لطفا راهنمایی کنید.
سلام من قبلا سوال پرسیدم جواب ندادین
در ضمن اصلا آموزشتون خوب نبوده و بی ثبات
سوالتون رو پاسخ دادم. البته با تاخیر.
اگر این پاسخگویی با تاخیر موجب نارضایتی تون شده عذر می خوام.
اگر هم نقصی در دوره می بینید بفرمایید دقیقا که لازم باشه رفع کنیم.
با سلام و خسته نباشی خدمت شما ، یک سوال داشتم اونم در مبحث صفحه بندی ،اینکه طبق این آموزش هربار برای هر صفحه با کوئری لیمیت خب صفحه بندی میشه ، اگر کل صفحات را یا محدوده بیشتری بگیریم و با js یا حالا مثلا انگولار صفحه بندی کنیم ، چطوره ؟ بهتره اونطوری؟
با تشکر
سلام دوست عزیز اگه تعداد صفحات رو کمتر در نظر بگیرید فقط در کل تعداد کوئری ها کمتر میشه ولی اصل خود کوئری تغییر نمیکنه. فرقی هم نداره با جی اس باشه یا همون خود php
ممنون بابت پاسخ ، بیشتر برای کمتر فشار اومدن روی دیتابیس گفتم که فک نکنم هم تأثیری داشته باشه 😕
استاد بنده نفهمیدم فرق $sql و $countSql در چی هست البته توضیح دادید اما کم توضیح دادید اگه میشود بیتشر توضیح بدید و فرق این دوتا رو بگید
http://rozup.ir/view/2113029/888.png
کوئری $sql همه اطلاعات سوالات رو بهتون میده ولی $countSql فقط یه عدد (تعداد سوالات) رو بهتون میده
با سلام
من پروژه ی سیستم پاسخگویی رو اجرا کردم (از خود آقای آوند)
و بعد از ثبت سوال با این error مواجه شدم
Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in C:\xampp\htdocs\FCoders\Loghman Avand – PHP_SQLi\25\project\inc\functions.php on line 257
Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in C:\xampp\htdocs\FCoders\Loghman Avand – PHP_SQLi\25\project\inc\functions.php on line 257
Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in C:\xampp\htdocs\FCoders\Loghman Avand – PHP_SQLi\25\project\inc\functions.php on line 257
Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in C:\xampp\htdocs\FCoders\Loghman Avand – PHP_SQLi\25\project\inc\functions.php on line 257
در خط 255 هم $output = mysqli_real_escape_string($input); است که البته خودم sqli نوشتم قبلا sql بود.
نتیجه :
پیام ثبت اطلاعات نمایش داده میشه …
وضعیت اطلاعات و تاریخ ثبت میشه اما نام – ایمیل – تلفن – سوال — رشته ی خالی است و هیچ چیز ثبت نمیشه و رکود اضافه میشه… به تعداد سوال هایی که ثبت میکنم..
لطفا جواب بدید … نمی تونم جلو برم.
سلام
مشکل همینه که تبدیلش کردید به sqli. چون این تابع نیاز به دو تا پارامتر داره. اون ورژن قبلی هم که با sql بوده منسوخ شده. سعی کنید با خوندن مستندات توابع mysqli به نسخه جدید تبدیل کنید
سلام و تشکر از دوره های عالیتون
من هر چی سعی میکنم رابط کاربری رو باز کنم این خطا رو میده. مشکل از کجاست؟
( ! ) Warning: mysqli::mysqli(): in E:\wamp\www\php\25\project\inc\config.php on line 29
Call Stack
# Time Memory Function Location
1 0.0025 152872 {main}( ) ..\index.php:0
2 0.0045 163584 include_once( ‘E:\wamp\www\php\25\project\inc\actions.php’ ) ..\index.php:1
3 0.0068 211280 include_once( ‘E:\wamp\www\php\25\project\inc\functions.php’ ) ..\actions.php:2
4 0.0084 217912 include_once( ‘E:\wamp\www\php\25\project\inc\config.php’ ) ..\functions.php:3
5 0.0085 219608 mysqli ( ) ..\config.php:29
Connect failed: Accès refusé pour l’utilisateur: ‘qa_db_user’@’@localhost’ (mot de passe: OUI)
به دیتابیس نتونسته وصل شه
دقت کنید حتما پایگاه داده رو ساخته باشید یا ایمپورت کرده باشید و یوزرش هم درست ست شده باشه
با سلام وتشکر فراوان و خداقوت به استاد آوند عزیز که واقعا وقتی دوره هاتون را با سایرین مقایسه می کنیم به ارزش کار شما پی می بریم.
فیلد های دو جدول answers و question را join inner کردم .اما برای چاپ اطلاعات مشکل دارم.. ممنون میشم راهنمایی بفرمایید.
$sql=”SELECT questions.id,questions.uname,questions.text,answers.text FROM questions INNER JOIN answers WHERE questions.id=answers.qid”;
$result=$db->query($sql);
while ($row = $result->fetch_assoc()) {
echo ????
}
اگر یک جدول بود مشکلی نبود و بعنوان مثال با دستور echo $row[‘id] چاپ می کردم ولی حالا…
فیلد های select رو با کیورد as نامگذاری کنید و استفاده کنید. اینطوری مثلا :
SELECT questions.id AS qid,questions.uname AS qUname , ...
=> echo $row['qid']
یکبار حذف و دوباره نصب کنید ببینید مشکل رفع نمیشه …