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

时间:2013-12-18 13:23:42

标签: php session sendmail phpmailer

我有这个脚本,我试图在网站的管理员删除他们的帐户时向用户发送电子邮件。

我目前正在通过用户三个文件执行此操作:adminprocess,session和mailer。

当管理员提交要删除的用户名时,操作将在adminprocess中进行。 php,然后adminprocess.php调用会话的函数(sendUserdeleted())。 sendUserdeleted(0引用了邮件程序的类对象和函数。

为了更好地理解,我已经附上了下面的代码来完成这项工作。

1 Adminprocess.php

while($row = mysql_fetch_array($rel))
  {
        $email = $row['email'];
        $name = $row['name'];
  }

  $session->sendUserdeleted($name,$email);
  header("Location: ".$session->referrer);

2 session.php

function sendUserdeleted($name,$email)
{
 global $database, $form, $mailer;  //The database, form and mailer object<br/>
 $mailer->senddeleted($name,$email);
 return 0;  //New user added succesfully
}  

3 Mailer.php

class Mailer 
{


   function senddeleted($name,$email)
   {
    $from = "From: ".EMAIL_FROM_NAME." <".EMAIL_FROM_ADDR.">"; 
        $subject = "Lab Scheduler - Account deleted!"; 
        $body = $name.",\n\n"."Your account from our system has been deleted"<br/>
         return mail($email,$subject,$body,$from);
   }
};

/* Initialize mailer object */
$mailer = new Mailer;

?>

我不明白为什么我无法发送邮件。每当我选择要删除的用户并提交值时,我都会收到以下错误:

  

致命错误:调用未定义的方法Mailer :: senddeleted()in   第408行的D:\ Hosting \ 9769324 \ html \ lab \ include \ session.php

这就是邮件没有被发送的方式。虽然,我的用户被删除没有任何问题。

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:1)

/* Initialize mailer object */
$mailer = new Mailer;

这应该在你的session.php

答案 1 :(得分:0)

require_once('Mailer.php');

function sendUserdeleted($name,$email){
    global $database, $form;  //The database, form and mailer object

    $mailer = new Mailer;
    $mailer->senddeleted($name,$email);

    return 0;  //New user added successfully
}

Mailer.php中添加session.php并创建mailer

的实例

答案 2 :(得分:0)

session.php

中添加<?php include('Mailer.php') ?>

答案 3 :(得分:0)

  1. 从mailer.php文件中删除所有<br>

  2. mail.php中加入session.php,例如include("Mailer.php")

  3. session.php $mailer = new Mailer;

  4. 中实例化邮件类的对象

    $mailer课程中已有Mailer个对象,因此这应该适用于session.php

       include('Mailer.php');
    
       function sendUserdeleted($name,$email){
            global $database, $form, $mailer ;  //The database, form and mailer object
    
    
            $mailer->senddeleted($name,$email);
    
            return 0;  //New user added succesfully
        }