Следующая ошибка:
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 файла:
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> </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"> </textarea></td> </tr> <tr> <td>Post Image :</td> <td><input name="_postImage" type="file"/></td> </tr> <tr> <td> </td> <td> </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>
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();}?>
Финли, 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;
}
?>
Вот и все коды, которые у меня есть.
Кто-нибудь знает, что здесь не так, что вызывает эту проблему?
Спасибо
Да, это работает, но снова есть ошибки.
Спасибо за вашу помощь.
add()
является не функция. Это метод класса, который называется «post». Это означает, что вы должны создать экземпляр этого класса и затем вызвать этот метод:
$post = new Post();
$msg=$post->add($title,$subtitle,$details,$_FILES['_postImage']);
add
является частью класса post
Измените свою линию на;
$objPost = new post();
$msg = $objPost->add($title,$subtitle,$details,$_FILES['_postImage']);