PDA

View Full Version : مشکل استفاده از تابع get_post_by_id()



mani_111
پنج شنبه 23 اردیبهشت 1395, 12:19 عصر
سلام دوستان ، وقتتون بخیر

من در حال طراحی cms هستم که در بخش ویرایش پست و در استفاده از تابع get_post_by_id() به مشکل زیر برخورد کردم

Fatal error: Uncaught Error: Call to undefined function get_post_by_id() in C:\xampp\htdocs\test\admin\new-post.php:42 Stack trace: #0 {main} thrown in C:\xampp\htdocs\test\admin\new-post.php on line 42

شما روش جایگزینی معرفی میکنید ؟!

نحوه ی کارکردن به این صورته که مدیر از لیست مطالب موجود مطلب مورد نظر خودش رو انتخاب میکنه و به صفحه ی مثلا new-posts?id=36 میره و برای ویرایش پست اقدام میکنه اما قبل از اجرای صفحه ارور بالا رو میگیرم

قطعه کد و شرط برای ویرایش پست :


if(isset($_GET['post_id'])){
$post_id=intval($_GET['post_id']);
if($post_id!=0){

$edit_post=get_post_by_id($post_id);

}
}


سپاس از شما

Farshid007
پنج شنبه 23 اردیبهشت 1395, 20:37 عصر
تابع get_post_by_id کجا تعریف شده؟
اونو بزارید تا خطل یابی کنیم

mani_111
پنج شنبه 23 اردیبهشت 1395, 21:57 عصر
کد php که قبل از فرم قرار گرفته



<?php
include("check.php");


$message="";
$success=false;
$err=false;
if(isset($_POST['submit_post'])){
$title= mysqli_real_escape_string($db,$_POST['post_title']);
$slug= mysqli_real_escape_string($db,$_POST['post_slug']);
$content=$_POST['post_content'];
$status=$_POST['post_status'];
$date=strftime("%Y-%m-%d %H:%M:%S",time());
if(isset($_GET['post_id'])){
$post_id=intval($_GET['post_id']);
$sql="UPDATE posts SET post_title='{$title}',post_slug='{$slug}',post_bod y='{$content}',post_status='{ $status}' WHERE post_ID={$post_id} LIMIT 1";;
$result= mysqli_query($db,$sql);
if($result){
$success=true;
$message="مطلب جدید با موفقیت ثبت گردید";
}else{
$err=true;
$message="خطایی رخ داده است لطفا بعدا امتحان کنید";
}
}else{
$sql="INSERT INTO posts (post_title,post_body,post_date,post_slug,post_sta tus,comment_count)";
$sql.=" VALUES('{$title}','{$content}','{$date}','{$slug}' ,'{$status}',0) ";
$result= mysqli_query($db,$sql);
if($result){
$success=true;
$message="مطلب جدید با موفقیت ثبت گردید";
}else{
$err=true;
$message="خطایی رخ داده است لطفا بعدا امتحان کنید";
}
}
}
if(isset($_GET['post_id'])){
$post_id=intval($_GET['post_id']);
if($post_id!=0){

$edit_post=get_post_by_id($post_id);

}
}
?>



در انتهای کد از تابع get_post_by_id استفاده شده ..

Farshid007
جمعه 24 اردیبهشت 1395, 13:36 عصر
بله از تابع مذکور استفاده شده ولی این تابع جایی تعریف نشده که :/
شاید تو فایل check.php تعریف شده این تابع
بررسی کنید

mani_111
شنبه 25 اردیبهشت 1395, 21:23 عصر
function get_post_by_id($id=null){
if(!empty($id) && intval($id)){
$result= mysqli_query($db,"SELECT * FROM posts WHERE post_ID='$id' LIMIT 1 ");
return mysqli_fetch_assoc($db,$result);
}
return false;
}


در فایل check.php به این شکل تعریف شده

ممنون میشم راهنمایی کنید

Farshid007
یک شنبه 26 اردیبهشت 1395, 10:45 صبح
اول مطمن شوید که فایل check.php به درستی اینکلود میشه
بره این کا مثلا ی تابع ساده دیگه تو فایل check.php تعریف کنید بعد قبل از همه اون کد ها اون تابع رو فراخوانی کنید ببینید به درستی اینکلود شده یا ن؟