“致命错误:调用未定义的函数”错误

时间:2014-09-16 14:53:54

标签: php fatal-error

以下错误:

  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']);

整个代码(HTMLPHP)如下所示。

我有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表单功能的post.php文件位于classes文件夹中。它有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);
      
            }
      } 
      ?>
      

    2. 3. DB.php文件,它具有DB的某些功能。它有:

           <?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文件具有uploadfile功能。

                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;       
        
                    }
        ?>
        

      2. 这就是我所有的代码。

        有谁知道导致此问题的错误是什么?

        谢谢


        雅的工作,但又有一些错误。 谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

add是课程post

的一部分

将您的行更改为;

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

答案 1 :(得分:1)

add() 不是一个函数。它是一个名为“post”的类的方法。这意味着您必须实例化该类,然后调用该方法:

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