& quot; Неустранимая ошибка: вызов неопределенной функции & quot; ошибка

Следующая ошибка:

  Fatal error: Call to undefined function add() in E:\xampp\htdocs\paperblog\Admin\AddNewPost.php on line 18

строка 18:

 $msg=add($title,$subtitle,$details,$_FILES['_postImage']);

Целые коды (HTML
,PHP) находятся в следующих строках.

У меня есть 4 файла:

  1. AddNewPost.php файл является основным файлом HTML код.

    • имеет PHP код:
     <?php
    include_once("..\DB.php");
    include_once("..\Classes\post.php");
    
    $title="";
    $subtitle="";
    $details="";
    $msg="";
    
    if(isset($_POST['_PostSubmit']))
    {
    $title=$_POST['_PostTitle'];
    $subtitle=$_POST['_PostSubTtile'];
    $details=$_POST['_PostDetails'];
    
    if(  !empty($title)||!empty($subtitle)||!empty($details) )
    {
    $msg=add($title,$subtitle,$details,$_FILES['_postImage']);
    
    }
    else
    $msg=" The post is empty ";
    
    }include_once("Header.php");
    ?>
    
    • А также HTML:
       <form action="AddNewPost.php" method="post" id="cmntfrm" enctype= "multipart/form-data">
    
    <P align="center" style="color:#F00"><?=$msg?></P>
    <p>&nbsp; </p>
    
    <table width="600" border="0" align="center">
    <img src="../images/addNewPost.png"/>
    <br />
    <br />
    
    <tr>
    <td width="131">Post Title <h8 style="color:#F00">*</h8>:</td>
    <td width="443"><input name="_PostTitle" type="text" /></td>
    
    </tr>
    <tr>
    <td>Post Sub Title <h8 style="color:#F00">*</h8>:</td>
    <td><input name="_PostSubTtile" type="text" /></td>
    
    </tr>
    <tr>
    <td>Post Details :</td>
    <td><textarea name="_PostDetails" cols="32" rows="7">&nbsp;</textarea></td>
    
    </tr>
    <tr>
    <td>Post Image :</td>
    <td><input name="_postImage" type="file"/></td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td></td>
    <td><input name="_PostSubmit" type="submit" value="Save" id="submit" /></td>
    </tr>
    </table>
    <center>
    <img src="../Post_Imges/a.jpg" height="420" width="460" />
    </center>
    


  1. post.php файл, который имеет функции почтовой формы, где находится в папке классов. Она имеет PHP код:

       <?php
    include_once("../DB.php");
    
    class post{
    
    var $Post_ID;
    var $title,$subtitle,$postdetail,$Post_Imgs;
    var $pmonth ,$pyear ,$pday;function add($title,$subtitle,$postdetail,$file){
    $query=" insert into post(Title,SubTitle,PostDetails,PDay,PMonth,PYear)
    values('$title,'$subtitle','$postdetail'".date("d").",".date("m").",".date("Y").")";
    $this->Post_ID=$this->GetLastPostId();
    $msg=test("Add",$query);
    $msg.="<br/>".$this->uploadImage($file);
    return $msg;
    
    }function GetLastPostId(){
    $query="select Max(Post_ID) from Post";
    $result=mysql_query($query);
    $row=mysql_fetch_row($result);
    return $row[0];
    
    }
    
    function uploadImage($file){
    uploadFile("Post_Imges\$Post_ID.jpg",$file);
    
    }
    }
    ?>
    

3. DB.php файл, который имеет некоторую функцию для БД. Она имеет :

     <?php
include_once("functions.php");

mysql_connect("localhost","root","");
mysql_select_db("paperbloge");

function test($test ,$query){

mysql_query($query);
if(!empty(mysql_errno()))
return "Post ".$test." Successfully" ;
else
return "Error".mysql_errno().":".mysql_error();}?>

  1. Финли, functions.phpфайл, который имеет функцию загрузки файла.

            function uploadFile($folderPathFileName,$file){
    
    if (!empty($file['tmp_name'])){
    
    move_uploaded_file($file['tmp_name'],$_SERVER['DOCUMENT_ROOT']."\paperblog\ ".$folderFileName);
    $msg.="<br/> Image uploaded Successfully";
    }
    else
    $msg= "Image File too large or No Image File";
    return $msg;
    
    }
    ?>
    

Вот и все коды, которые у меня есть.

Кто-нибудь знает, что здесь не так, что вызывает эту проблему?

Спасибо


Да, это работает, но снова есть ошибки.
Спасибо за вашу помощь.

0

Решение

add() является не функция. Это метод класса, который называется «post». Это означает, что вы должны создать экземпляр этого класса и затем вызвать этот метод:

$post = new Post();
$msg=$post->add($title,$subtitle,$details,$_FILES['_postImage']);
1

Другие решения

add является частью класса post

Измените свою линию на;

$objPost = new post();
$msg = $objPost->add($title,$subtitle,$details,$_FILES['_postImage']);
1

По вопросам рекламы [email protected]