در این آموزش قصد داریم یک مثال از ساخت سیستم نظردهی با php و mysql یا همان فرم کامنت (Comment) را به صورت قدم به قدم پیاده سازی کنیم .
سیستم ارسال دیدگاه ما این ویژگی ها را خواهد داشت :
اول از همه , یک یک جدول در دیتابیس mysql برای ثبت نظرات کاربران ایجاد خواهیم کرد.
بعد از آن با قسمت ثبت دیدگاه از طریق فرم ارسال نظر کار می کنیم.
همچنین یک صفحه برای مدیریت دیدگاه هایی مثل منتشر شده , ویرایش و بروزرسانی , حذف کامنت , خواهیم داشت .
این قابلیت ها همه با استفاده از php و mysql پیاده سازی خواهد شد . پس با ما همراه باشید تا ۹ قدم آموزش ساخت سیستم نظردهی با php را پیش بریم .
۱ – ساخت جداول دیتابیس
یک دیتابیس با هر نامی ایجاد کنید , اما دیتابیس ما باید شامل جدولی به اسم comments با ستون های زیر باشد .
ID یک مقدار عددی و autoincreement (افزایشی و خودکار)
Name مقدار داده ای varchar که برای ذخیره مقدار فیلد name در فرم کامنت استفاده می شود .
E-Mail مقدار داده ای varchar که برای ذخیره ایمیل استفاده می شود
Subject مقدار داده ای varchar برای ذخیره متن دیدگاه استفاده می شود
Submittime بازهم مقدار عددی varchar که از آن برای ذخیره زمان و تاریخ شمسی از آن استفاده خواهیم کرد.
Status نیز varchar است که برای ذخیره وضعیت یک دیدگاه که آیا منتشر شده است یا منتظر تایید مدیریت می باشد , استفاده می شود.
1 2 3 4 5 6 7 8 9 10 11 12 |
-- -- Table structure for table `comments` -- CREATE TABLE `comments` ( `id` int(11) NOT NULL, `name` varchar(255) NOT NULL, `email` varchar(255) NOT NULL, `subject` varchar(255) NOT NULL, `submittime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `status` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; |
۲ – اتصال به دیتابیس mysqli با php
برای کپی صحیح و کامل کدها ، دابل کلیک کرده تا وارد محیط سفید و کپی شوید در غیر اینصورت امکان دارد اجرای کدها با مشکل روبرو شود
در مرحله دوم , قصد داریم به دیتابیس مورد نظر برای ثبت دیدگاه کاربران , متصل شویم .
کد زیر را در فایل connect.php ذخیره کنید .
1 2 3 4 5 6 7 8 9 10 |
<?php $connection = mysqli_connect('localhost', 'root', '', 'cms'); if(!$connection){ echo "Error: Unable to connect to MySQL." . PHP_EOL; echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL; echo "Debugging error: " . mysqli_connect_error() . PHP_EOL; exit; } ?> |
۳ – ساخت فرم HTML نظرسنجی کاربران
در این مرحله , یک فرم HTML برای طراحی بخش نظر گذاری سایت با استایل bootstarp ایجاد می کنیم . در هدر فایل اسیتل دهی بوت استرپ را از CDN فراخوانی می کنم .
1 2 3 4 5 |
<!-- Latest compiled and minified CSS --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" > <!-- Optional theme --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" > |
بعد از افزودن فایل های bootstrap , فرم ارسال نظر را با این فیلد ها می سازیم . name , email , comment . می توانید کد های زیر را مستقیما کپی و استفاده کنید . برای شکیل شدن فرم از کلاس های bootstrap استفاده کردم .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<html> <head> <!-- Latest compiled and minified CSS --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" > <!-- Optional theme --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" > </head> <body> <div style="width:50%;margin:0 auto" class="panel panel-default"> <div class="panel-heading">Submit Your Comments</div> <div class="panel-body"> <form method="post"> <div class="form-group"> <label for="exampleInputEmail1">Name</label> <input type="text" name="name" class="form-control" id="exampleInputEmail1" placeholder="Name"> </div> <div class="form-group"> <label for="exampleInputEmail1">Email address</label> <input type="email" name="email" class="form-control" id="exampleInputEmail1" placeholder="Email"> </div> <div class="form-group"> <label for="exampleInputPassword1">Subject</label> <textarea name="subject" class="form-control" rows="3"></textarea> </div> <button type="submit" class="btn btn-primary">Submit</button> </form> </div> </div> </body> </html> |
۴ – Insert داده های ارسال شده در دیتابیس
قبل از افزودن داده های ارسال شده از فرم , نیاز داریم که به دیتابیس mysql متصل شویم . در این قسمت از آموزش ساخت سیستم نظردهی با php , باید فایل اتصال به دیتابیس (connect.php) را در مراحل قبل ساختیم را با تابع include در php فراخوانی کنیم . کد ها را در فایل commentform.php ذخیره می کنیم .
1 |
include_once('connect.php'); |
بعد از اتصال به دیتابیس , داده های ارسال شده (submitted) را در دیتابیس insert می کنیم . اول از هر چیزی , با تابع isset بررسی می کنیم که آیا آرایه سوپر گلوبال ست شده باشد و مقدار آن خالی نباشد . بعد با تابع mysqli_real_escape_string کاراکترهای خاصی که باعث خطا در کویری ما می شود را از ورودی پاکسازی می کنیم . این تابع را بر روی همه فیلد های name , email و comment اعمال می کنیم و بعد آنها را به یک متغییر نسبت می دهیم .
بعد از آن یک کویری sql برای افزودن مقادیر فرم در دیتابیس ایجاد می کنیم . همچنین این کویری را در خط بعد با تابع mysqli_query اجرا کردیم. اگر عملیات INSERT با موفقیت انجام شود یک پیام Successfully را مشاهده خواهید کرد در غیر اینصورت پیام خطا را نمایش می دهیم .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
if(isset($_POST) & !empty($_POST)){ $name = mysqli_real_escape_string($connection, $_POST['name']); $email = mysqli_real_escape_string($connection, $_POST['email']); $subject = mysqli_real_escape_string($connection, $_POST['subject']); $isql = "INSERT INTO comments (name, email, subject, status) VALUES ('$name', '$email', '$subject', 'draft')"; $ires = mysqli_query($connection, $isql) or die(mysqli_error($connection)); if($ires){ $smsg = "Your Comment Submitted Successfully"; }else{ $fmsg = "Failed to Submit Your Comment"; } } |
این پیام های خطا در کد قبل در یک متغییر ذخیره کردیم . برای نمایش آنها باید کد های زیر را به بالای کد های فرم ارسال نظر اضافه کنیم .
1 2 |
<?php if(isset($smsg)){ ?><div class="alert alert-success" role="alert"> <?php echo $smsg; ?> </div><?php } ?> <?php if(isset($fmsg)){ ?><div class="alert alert-danger" role="alert"> <?php echo $fmsg; ?> </div><?php } ?> |
۵ – نمایش نظرات در بخش مدیریت (Back-end)
قبل از شروع این مرحله از آموزش ساخت سیستم نظردهی با php شما باید بخش سیستم لاگین ادمین را بسازید . چونکه تمام این عملیات باید توسط خود مدیریت سایت یا کاربر ارشد انجام گیرد .
برای دیدن آموزش ساخت صفحه لاگین و ثبت نام با php کلیک کنید
اگر پروژه شما پنل ادمین دارد نیازی به این کار نیست فقط کافیه بخشی را برای مدیریت نظرات با کدهای HTML زیر اضافه کنید .
کد زیر را در یک فایل با اسم viewcomments.phpدر دایرکتری پنل ادمین اضافه کنید . فراموش نکنید برای شکیل شدن حتما فایل های bootstrap را فراخوانی کنید .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
<html> <head> <!-- Latest compiled and minified CSS --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" > <!-- Optional theme --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" > </head> <body> <div style="width:60%;margin:10px auto" class="panel panel-default"> <div class="panel-heading">Comments</div> <table class="table table-striped"> <thead> <tr> <th>#</th> <th>Name</th> <th>Comment</th> <th>Time</th> <th>Status</th> <th>Operations</th> </tr> </thead> <tbody> <tr> <th scope="row">Comment ID</th> <td>Name</td> <td>Comment</td> <td>Comment Time</td> <td>Comment Status</td> <td><a href="#">Edit</a> <a href="#">App</a> <a href="#">Dis</a> <a href="#">Del</a></td> </tr> </tbody> </table> </div> </div> </body> </html> |
بعد از قرار دادن جدول بالا , حالا نیاز داریم تمام کامنت های ثبت را از دیتابیس با کویری SQL بخوانیم .
1 2 |
$sql = "SELECT * FROM comments"; $res = mysqli_query($connection, $sql); |
بعد از fetch کردن تمام سطر ها به صورت آرایه با تابع mysqli_fetch_assoc , از یک حلقه while برای نمایش همه کامنت ها به صورت یک به یک در هر کدام در یک سطر از جدول HTML استفاده می کنیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php while ( $r = mysqli_fetch_assoc($res)) { ?> <tr> <th scope="row"><?php echo $r['id']; ?></th> <td><?php echo $r['cid']; ?></td> <td><?php echo $r['name'] ?></td> <td><?php echo $r['subject']; ?></td> <td><?php echo $r['submittime']; ?></td> <td><?php if(isset($r['status']) & !empty($r['status'])){echo $r['status'];}else{echo "NA";} ?></td> <td><a href="editcomment.php?id=<?php echo $r['id']; ?>">Edit</a> <a href="commentstatus.php?id=<?php echo $r['id']; ?>&status=publish">App</a> <a href="commentstatus.php?id=<?php echo $r['id']; ?>&status=draft">Dis</a> <a href="delcomment.php?id=<?php echo $r['id']; ?>">Del</a></td> </tr> <?php } ?> |
۶ – ویرایش و بروز رسانی نظرات
در آخرین مرحله , یک لینک برای ارسال id از طریق url برای فایل editcomment.php اضافه کردیم .
فایل editcomment.php :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
<html> <head> <!-- Latest compiled and minified CSS --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" > <!-- Optional theme --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" > </head> <body> <div style="width:60%;margin:10px auto" class="panel panel-default"> <div class="panel-body"> <form method="post"> <div class="form-group"> <label for="exampleInputEmail1">Name</label> <input type="text" name="name" class="form-control" id="exampleInputEmail1" placeholder="Title"> </div> <div class="form-group"> <label for="exampleInputEmail1">EMail</label> <input type="email" name="email" class="form-control" id="exampleInputEmail1" placeholder="Email"> </div> <div class="form-group"> <label for="exampleInputPassword1">Comment</label> <textarea name="subject" class="form-control" rows="6"></textarea> </div> <div class="form-group"> <div class="row"> <div class="col-md-6"> <label>Post Status</label> <select name="status" multiple class="form-control"> <option value="draft">Draft</option> <option value="published">Published</option> </select> </div> </div> </div> <button type="submit" class="btn btn-default">Submit</button> </form> </div> </div> </body> </html> |
بررسی می کنیم اگر آرایه سوپر گلوبال خالی باشد با دستور header کاربر را به صفحه دلخواه هدایت می کنیم . در غیر اینصورت id ست شده از طریق url را برای دریافت اطلاعات دیدگاه مورد نظر از دیتابیس در کویری sql به کار می بریم . همچنین برای جلوگیری از ورود کاراکترهای غیرمجاز در id آن را با تابع intval به یک مقدار عددی تبدیل کردیم .
1 2 3 4 5 6 7 8 9 10 11 12 |
if(isset($_GET['id']) & !empty($_GET['id'])){ //select query $id = intval($_GET['id']); $selsql = "SELECT * FROM comments WHERE id=$id"; $selres = mysqli_query($connection, $selsql); $selr = mysqli_fetch_assoc($selres); if(mysqli_num_rows($selres) <= 1){ //redirect to main comments page } }else{ //redirect to main comments page } |
هر یک از اطلاعات fetch شده از دیتابیس را در خصیصه value هر کدام از فیلد ها echo می کنیم .
1 2 3 |
<input type="text" name="name" class="form-control" id="exampleInputEmail1" placeholder="Title" value="<?php echo $selr['name']; ?>"> <input type="email" name="email" class="form-control" id="exampleInputEmail1" placeholder="Email" value="<?php echo $selr['email']; ?>"> <textarea name="subject" class="form-control" rows="6"><?php echo $selr['subject']; ?></textarea> |
همچنین وضعیت (status) نظر ثبت شده را به اینصورت با تگ select مشخص می کنیم .
1 2 3 4 |
<select name="status" multiple class="form-control"> <option value="draft" <?php if($selr['status'] == "draft"){ echo "selected"; } ?>>Draft</option> <option value="published" <?php if($selr['status'] == "published"){ echo "selected"; } ?>>Published</option> </select> |
بعد از اینکه مدیر مقادیر مورد نظر را تغییر داد آن ها را با استفاده از دستور update در sql بروز رسانی می کنیم . مانند مراحل قبل قبل از ثبت بررسی های لازم را انجام می دهیم و در آخر مرحله پیام های مورد نظر را نمایش می دهیم .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
if(isset($_POST) & !empty($_POST)){ //print_r($_POST); $name = mysqli_real_escape_string($connection, $_POST['name']); $email = mysqli_real_escape_string($connection, $_POST['email']); $subject = mysqli_real_escape_string($connection, $_POST['subject']); $status = $_POST['status']; $sql = "UPDATE comments SET name='$name', email='$email', subject='$subject', status='$status' WHERE id=$id"; $res = mysqli_query($connection, $sql) or die(mysqli_error($connection)); //$lid = mysqli_insert_id($connection); if($res){ $smsg = "Comment updated Successfully"; header("location: editcomment.php?id=$id"); }else{ $fmsg = "Failed to update Comment"; } } |
برای نمایش پیام ها در بالای فرم ویرایش , مقدار متغییر های ست شده را echo می کنیم .
1 2 |
<?php if(isset($smsg)){ ?><div class="alert alert-success" role="alert"> <?php echo $smsg; ?> </div><?php } ?> <?php if(isset($fmsg)){ ?><div class="alert alert-danger" role="alert"> <?php echo $fmsg; ?> </div><?php } ?> |
۷ – تغییر وضعیت نظرات (Update Status)
در این مرحله از ساخت سیستم نظردهی با php , در قسمت عملیات (operation) صفحه viewcomments.php لینک های زیر را اضافه می کنیم . قبلا لینک ها را به صورت لینک # اضافه کردیم . کافیست آنها را با کدهای زیر جایگزین کنید . برای تغییر status در url مقدار id و وضعیت مورد نظر را به صفحه commentstatus.php ارسال می کنیم.
1 2 |
<a href="commentstatus.php?id=<?php echo $r['id']; ?>&status=publish">App</a> <a href="commentstatus.php?id=<?php echo $r['id']; ?>&status=draft">Dis</a> |
کد ها را به فایل commentstatus.php اضافه کنید . حتما فایل connect.php را نیز فراخوانی کنید .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
if(isset($_GET) & !empty($_GET)){ if((isset($_GET['id']) & !empty($_GET['id'])) & (isset($_GET['status']) & !empty($_GET['status']))){ $id = intval($_GET['id']); $status = $_GET['status']; $sql = "UPDATE comments SET status='$status' WHERE id=$id"; $res = mysqli_query($connection, $sql) or die(mysqli_error($connection)); if($res){ header("location: viewcomments.php"); }else{ header("location: viewcomments.php"); } } }else{ header('location: comments.php'); } |
بعد از آپدیت status کاربر مدیر را به فایل viewcomment.php ریدایرکت می کنیم .
۸ – حذف نظر
لینک delete را در فایل viewcomments.php با کد زیر جایگزین کنید . در این کد id مورد نظر را در url پاس می دهیم .
1 |
<a href="delcomment.php?id=<?php echo $r['id']; ?>">Del</a> |
فایل delcomment.php
در این فایل با استفاده از id کامنت مورد نظر را از دیتابیس حذف می کنیم و در نهایت کاربر را به صفحه veiwcomment.php هدایت می کنیم .
1 2 3 4 5 6 7 8 9 10 |
if(isset($_GET['id']) & !empty($_GET['id'])){ $id = intval($_GET['id']); $delsql="DELETE FROM `comments` WHERE id=$id"; if(mysqli_query($connection, $delsql)){ header("Location: viewcomments.php"); } }else{ header('location: viewcomments.php'); } |
۹ – نمایش کامنت ها با عکس پروفایل
کد های زیر را در فایل displaycomments.php ذخیره کنید . در این فایل لیست تمامی نظرات ثبت شده را با تصویر گراواتار نمایش می دهیم .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<div class="panel panel-default"> <div class="panel-heading">Comments</div> <div class="panel-body"> <?php $comsql = "SELECT * FROM comments"; $comres = mysqli_query($connection, $comsql); while($comr = mysqli_fetch_assoc($comres)){ $hash = md5( strtolower( trim( $comr['email'] ) ) ); $size = 150; $grav_url = "https://www.gravatar.com/avatar/" . $hash . "?s=" . $size; ?> <div class="row"> <div class="col-md-3"> <img src="<?php echo $grav_url; ?>"> </div> <div class="col-md-9"> <p><strong><?php echo $comr['name']; ?></strong> </p> <p><?php echo $comr['submittime'] ?></p> <p><?php echo $comr['subject']; ?></p> </div> </div> <br> <?php } ?> </div> </div> |
اگر می خواهید در مورد نحوه دریافت تصویر از gravatar در php بیشتر بدانید کلیک کنید .
تا اینجا نحوه ساخت سیستم نظردهی با php و همچنین مدیریت کامل آن توسط مدیر را یاد گرفتیم . مطمینا بخش فرم ارسال نظر برای تعامل با کاربر و دریافت فیدبک های آنها و بررسی مشکلات و سوالات مربوطه با مطلب مورد نظر , بسیار مفید است .
سعی کردیم تمام عملیات را در بخش های کوچک و در فایل های جداگانه پیاده سازی کنیم تا به طور کامل با کار این سیستم آشنا بشید . مطمینا می توانید با قرار دادن کد ها در کنار هم آنها را به صورت منسجم تر مدیریت و اجرا کنید .
همچنین می توانید آموزش ساخت سیستم نظردهی با php و ajax را نیز مشاهده کنید.
هر گونه مشکلی در پیاده سازی کدها داشتید ، از قسمت نظرات اقدام کنید . سریعا ، پاسخگوی سوالات شما هستیم .
موفق و پیروز باشید.
سلام خسته نباشید
ببخشید من روشی که گفتین رو امتحان کردم ، یه مشکلی هستش اونم اینه که من ای دی اون صفحه رو میخوام insert کنم داخل جدول نظرات نمیتونم میشه توضیح بدین
ممنون
من یک صفحه طراحی کردم برای دیدگاه کاربران
من میخوام به این شکل باشه که کاربر یک نظری رو در یک بخش خاص ذخیره میکنه میخوام این نظر فقط تو همین بخش نمایش داده بشه
سلام.
باید در هنگام ثبت نظر در دیتابیس یک فیلد دیگر مانند post_id اضافه کنید تا نظر ها را بتونید به تفکیک مطلب/صفحه/بخش صفحه مورد نظر نمایش بدید.
پس در هنگام اجرای کویری دیتابیس برای insert یک رکورد نظر کافیه آیدی بخش یا پست مورد نظر رو هم بخونید و داخل دیتابیس اضافه کنید و هنگام فراخوانی یا اجرای کویری برای select کردن نظرات آن صفحه/بخش کافیه بر اساس id آن صفحه یک شرط where post_id=ID رو به کویری دیتابیس اضافه کنید.
موفق باشید.
سلام خسته نباشید.اگه میشه بهم بگید چطوری میشه تاریخ شمسی رو واسه کامنتا قرار داد؟
سلام ممنون.
این آموزش رو مطالعه کنید :
آموزش تاریخ و زمان در php
موفق باشید.
خیلی ممنون
سلام ممنون از سایت خوبتون
من یک کدی برای ساخت سیستم نظردهی نوشتم و حالا وقتی که فرم رو پر میکنم و ارسال رو می زنم در صفحه نمایش داده میشه و من تا اینجا مشکلی ندارم ولی وختی صفحه رو رفرش میکنم دوباره بدون اینکه چیزی در فرم بنویسم همون نظر قبلی رو دوباره چاپ میکنه و هر بار که رفرش کنم همون نظری که اولین بار دادم رو چاپ میکنه به نظر تون چیکار کنم که وقتی صفحه رو رفرش کردم همون نظر باشه و تا وقتی که دوباره فرم رو پر نکردم و دکمه ارسال رو نزدم نظر جدیدی ثبت نشه.
ممنون میشم راهنمایی کنید🌹
سلام منظورتون از اینکه با رفرش دوباره ثبت میکنه چی هست ؟ یعنی زیر فرم نظردهی نمایش داده میشه ؟ این نظرها رو کجا ذخیره می کنید؟
بله در زیر همون فرم در حالی که خالی هست وقتی رفریش میکنم چاپ میشه
لطفا کد رو ارسال کنید تا بررسی بشه
سلام خسته نباشید.ببخشید من میخوام دقیقا مثل سایت خودتون وقتی کاربری کامنت میذاره سریع ثبت نشه و اول ادمین تاییدش کنه بعد ثبت شه.ممنون میشم راهنمایی کنید
سلام ممنون.
در این آموزش هم به اینصورت است و توسط ادمین تایید و بعد در سایت نمایش داده میشود. اگر دقت کنید این مورد با فلگ status کنترل می شود.
موفق باشید.
آهاا مرسی دمت گرم
سلام.ببخشید من دقیق متوجه نشدم ادمین چطوری کامنتا رو تایید یا رد میکنه.وقتی میرم تو commentform کامنت میذارم سریع تو viewcomments نمایشش میده پس ادمین چطور تایید یا ردش میکنه؟
وقتی کامنتا رو روی حالت draft میذارم بازم نمایش داده میشن تو viewcomments
سلام.
تمام فایل ها رو بررسی کنید متوجه موضوع میشید.
سلام دوست عزیز من هم همین مشکلو داشتم که حل شد باید داخل فایلdisplaycomments.php خط مربوط به select جدول یک شرط بزارید که خیلی راحت بیاد از دیتابیس مقدار ستون status رو چک کنه و اگر برابر بود با مقدار publish نتیجه نشون داده بشه مشکل من با این خط کد درست شد…
;”comsql = “SELECT * FROM comments WHERE status=’publish’ ORDER BY
id
DESC$سلام
عرض ادب و خسته نباشید
خیلی عالی بود من تونستم تو سایتم استفاده کنم
سلام. خوشحالیم که مفید واقع شده.
موفق باشید.
باعرض سلام وخسته نباشید. ببخشید استاد هرکاری کردم نتونستم سیستم ثبت نظرات رو که روی یک قالب ساده است رو اجراش کنم اروور میده .میشه فایل رو بفرستم نگاهی بهش بندازید. طریقه فرستادنش رو هم بگید. قربان شما
سلام ممنون.
کد کامل را از باکس دانلود دریافت و همان را استفاده کنید. تلفیق این کدها با پروژه فعلی نیاز به تسلط متوسط به php را نیاز دارد.
موفق باشید.
ببخشید ایمیل رو ندیده بودم. یک سوال دیگه چه جوری به این فرم ایمیل رو هم اظافه کرد
این فرم ایمیل را هم از کاربر دریافت می کند و مشکلی نیست. اگر منظورتون ارسال ایمیل است که روی لینک کلیک کنید.
موفق باشید.
سلام
وقتی میخوای نظر رو ثبت کنی پیغام
Field ‘id’ doesn’t have a default value
رو میده میشه بگید مشکل از کجاس
سلام. وارد phpmyadmin و دیتابیس و جدول مورد نظر بشید و فیلد id را auto increment قرار بدید.
موفق باشید.
ببخشید امکانش هست سایت رو بفرستم شما خطاهارو برطرف کنید؟ کامل توضیح میدم. هزینه اش رو هم بگید…
بله از فرم تماس با ما ارسال کنید تا بررسی بشه
سلام. ممنون از آموزشتون. توی نوشتن سایتم چند تا Error دارم که نتونستم برطرف کنم. امکانش هست بهم کمک کنید؟
سلام. هر مورد یا اروری بود در بخش دیدگاه های این پست یا مطالب مشابه دیگر ارسال کنید راهنمایی میشه.
موفق باشید.
سلام چطوری میتونیم سیستم نظردهی رو با محتوا مرتبط کنیم. مثالا بفهمیم که برای محتوای شماره ۲۵ یک یا چند نظر اومده
ممنون میشم پاسخ بدید.
سلام. در جدولی که نظرات را ذخیره می کنید نیاز است که یک ستون دیگر به نام مثلا postid داشته باشید تا هنگام ذخیره کردن نظر در جدول دیتابیس, آی دهی پست موردنظر را نیز دریافت کرده و ذخیره کنید تا مشخص شود هر نظر برای چه نوع محتوایی است که هنگام دریافت نظرات یک پست هم کافی است از آی دی محتوا برای شرط where کویری sql استفاده کنید تا نظرات مرتبط را دریافت و نمایش بدید.
موفق باشید.
عالی بود ممنونم واقعا
خوشحالیم که مفید واقع شده.
موفق باشید.
عالی بود
چطور میشه بخش نظرات سایت شما رو داشته باشیم؟ دقیقا همینطوری ساده
سلام . دقیقا میتونید از همین پست استفاده کنید و بسازید . بخش ۹ هم نحوه نمایش رو بهتون نشون داده و در حلقه while میتونید این مورد رو اضافه کنید اگر پاسخی برای نظر وجود داشت اون رو از جدول مثلا comment_reply بخونید و نمایش بدید که نیازه کمی php بلد باشید.
موفق باشید.
سلام من تمام کدها رو تو پوشه www ذخیره کردم و اون دیتابیس هم ساختم ولی وقتی فیلدها رو پر می کنم وsubmit رو می زنم فقط یه پیغام No database selected برام نشون میده میدونید مشکل از کجاست؟؟؟؟لطفا راهنماییم کنید ممنونم.
سلام. اطلاعات فایل connect.php را کامل کنید و همچنین دیتابیس .sql را از طریق phpmyadmin وارد کنید مشکل حل میشه.
$connection = mysqli_connect(‘localhost’, ‘root’, ”, ‘comments’); به جای comments اسم دیتابیس خود را وارد کنید.
سلام من فرم ثبت نظر رو به وبسایتم (که ابته هنوز افلاین هستش )اضافه کردم فرم رو نشون میده اما صفحه ی editcommentو viewcomment ادمین رو نشون نمیده . سیستم عاملی که روش دارم کار میکنم لینوکس ابونتو هستش و کد ها رو از طریق localhost لینوکس اجرا می کنم و نرم افزاری که روش کد ها رو نوشتم هم visual studio هستش و می خواستم بدونم که چجوری نظرات مثل همین نظراتی که الان اینجا هستن نمایش داده میشه . و راستش یه موضوعی که هست من php بلد نیستم ولی باید این بخش رو به وبسایتم اضافه کنم لطفا به من پاسخ دهید
سلام . با توجه به نوع کدنویسی وبسایتتون نحوه اضافه کردن کدها به پروژه شما کمی متفاوت تر است و نیاز است تا در حد مقدماتی php را بلد باشید تا بصورت کامل این مورد رو اضافه کنید.
موفق باشید.
سلام
لطفا یک قسمت بذارید برای بخش پاسخ دهی به نظر و همچنین امتیاز مثبت یا منفی دادن به نظر.
سلام . بله حتما یک ویدیو جامع برای ساخت قسمت نظرات با این قابلیت ضبظ و در سایت منتشر می کنیم تا با این روند آشنا بشید.
موفق باشید.
سلام من چجوری می تونم وقتی نظری نوشتم به فارسی این نظر در دیتابیس هم فارسی نوشته بشه.من در خیلی از فایلهام بالای کدهام می نوشتم mysql_query(“SET CHARACTER SET utf8”);
و در دیتابیس هم فارسی می آمد در این کدی که نوشتید کجا باید این کد رو بنویسم تا فارسی بشه؟
سلام . باید در فایل connect.php بعد از تابع
mysqli_connect
تابع زیر رو فراخوانی کنید تا فارسی بشهmysqli_set_charset($connection,"utf8");
موفق باشید.
آقا خیلی ممنون.درست شد.تشکر
خواهش میکنم . موفق باشید.
این پستتون عالیه خیلی ممنون،ولی لطفا آموزش ساخت صفحه بندی Paginationرو با phpوmy sqlتو سایتتون قرار بدید.
ممنون لطفا این رو قرار بدید
سلام . خیلی خوشحالم که مفید واقع شده . از پست صفحه بندی AJAX توسط PHP می توانید استفاده کنید
موفق باشید
سلام من الان این سیستمو ساختم ولی چجوری باید قبولش کنیم و توی اون صفحه که کاربر نظرش رو داده نشون بدیم چگونه هر نظر رو به هر صفحه مخصوص به خودش که کاربر نظرش رو داده نشون بدیم؟لطفا این قسمت رو هم به این مطلب جالبتون اضافه کنید.
ممنونم از سایت خوبتون
سلام . در بخش ۵ مربوط به مدیریت لینک های عملیات مربوط به تایید , حذف و ویرایش نظر وجود داره که میتونید از اونجا قبول کنید که یک نظر منتظر بشه یا خیر. همچنین در قسمت ۹ نظر مورد نظر خودمون رو نمایش میدیم . برای اینکه در سیستم خودتون هر نظر را در زیر پست مربوط به اون نمایش بدید کافیه در اول یک ستون دیگر به جدول دیتابیس اضافه کنید به اسم مثلا postid و آی دی پست در حال حاضر را دریافت و هنگام ثبت نظر این id را هم به سطر نظر ثبت شده اضافه کنید و در هنگام نمایش نظر در مرحله ۹ با یک شرط where postid= نظر مربوط به این پست را نمایش بدید.
به زودی این امکان رو هم اضافه می کنیم.
موفق باشید.
عالیه ممنون از آموزش خوبتون لطفا آموزشهای دیگه ای هم در این رابطه بزارید.
سایتتون خیلی خوبه❤❤❤
خواهش میکنم . خوشحالم که مفید واقع شده.
بله حتما آموزش های این دست رو بیشتر در سایت قرار میدیم.
موفق وپیروز باشید
سلام من وقتی میرم تو صفحه viewcomments.phpاین ارور رو میده.باید چیکار کنم؟مربوط به ۳۴
Notice: Undefined index: cid in D:\Progrms\Xampp\htdocs\TickRead\cm-netparadis\viewcomments.php on line 34
چی میخواد؟
سلام . ارور خاصی نیست و مربوط به Notice است باید توجه کنید که جدول comments خالی نباشه و گرنه این خطا رو مشاهده میکنید
لطفا قبل از استفاده و ویرایش اسکریپت سعی کنید php را در حد متوسط یاد بگیرید
موفق باشید
سلام خیلی ممنون از آموزش خوبتون خیلی عالیه.ولی اگه همونطور که دوستان گفتن اگه فایلش برای دانلود موجود بود خیلی به فهمیدن بهتر مطلب کمک میکرد.لطفا فایلش رو قرار بدید رو وبتون.
خیلی ممنون ازتون
سلام.
لینک دانلود قرار داده شد
موفق باشید
سلام ایول خیلی خوب بود الان فقط یه فایل دانلود کم داره
لطفا فایلشو برای دانلود بزارید ممنون
سلام . بله حتما فایل دانلود بزودی اضافه میشه
سلام خدمت شما آقای شفیعی لطفا فایلشو برای دانلود بزارید من منتظرم لطفا بزاریدش.
خیلی ممنون از شما
سلام . بله حتما امروز قرار داده میشود .
موفق باشید
سلام خوب بود ولی لطفا فایلش رو هم برای دانلود بزارید چون یکم سخته.یادگرفتن سورسها و گذاشتن اونا تو چه فایلی ممنون میشم اگه فایلشو برای دانلود بزارید.
سلام . اوکی حتما
موفق باشید
سلام منم باایشون هم عقیده هستم لطفا زودتر فایلشو برای دانلود بزارید.
ممنون
سلام خدمت شما آقای شفیعی
یه سوال داشتم من وقتی این ۲خط رو:
$sql = “SELECT * FROM comments”;
$res = mysqli_query($connection, $sql);
تو دیتابیس اضافه میکنم این ارورهارو میده
Error
Static analysis:
۳ errors were found during analysis.
Unexpected character. (near “$” at position 0)
Unexpected beginning of statement. (near “$” at position 0)
Unrecognized statement type. (near “sql” at position 1)
SQL query: Documentation
$sql = “SELECT * FROM comments”
MySQL said: Documentation
#۱۰۶۴ – You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘$sql = “SELECT * FROM comments”‘ at line 1
باید چیکارشون کنم؟؟
سلام . این کد ها رو باید از طریق php اجرا کنید نه داخل خود محیط mysql یا phpmyadmin .
good
سلام
خیلی خوب بود ممنون از شما
سلام . خواهش می کنم . موفق باشید