在成功包含PHP类时未找到它

时间:2016-09-09 12:23:24

标签: php html class include

我在这个论坛上搜索过一个解决方案和其他地方。但我找不到我写的代码的问题。名为 Email_Service.php 的php文件如下所示:

var ifr = document.createElement('iframe');
document.body.appendChild(ifr);
ifr.contentDocument.referrer;
//-> '' in IE, '<parent location>' in Chrome

从另一个名为test_pagina.php的php文件调用它,如下所示:

<?php
////////////////////////////////////////
//          [Email-Service] v3.5     /
//////////////////////////////////////

//Email Service Class
class EmailService {
    //Properties
    private $email_basis;
    private $type;

    //Constructor
    function __construct($type) {
        echo '[EmailService] type: ' . $type;
    }

    //Send Email function with passed on arrays from test_pagina.php
    function versturen($emailInfo, $klantInfo) {
        //Email info
        $email_van = $emailInfo['email_van'];
        $email_naar = $emailInfo['email_naar'];
        $email_onderwerp = $emailInfo['email_onderwerp'];

        //Controleer of het opgegeven email adres geldig is en geen rare tekens bevat
        $pattern = "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i"; 
        if (preg_match($pattern, trim(strip_tags($emailInfo['email_van'])))) { 
            $cleanedFrom = trim(strip_tags($emailInfo['email_van'])); 
        } else {
            return "The email address you entered was invalid. Please try again!"; 
        }

        //Hier word de email_template geopend voor elke type.
        //Zorg vraag formulier
        if ($emailInfo['type'] == 'zorgvraag') {
            //$email_basis = file_get_contents(base_url() . 'include/email_template_zorgvraag.txt'); //(LOKAAL)
            //file_get_contents(base_url() . "assets/email_template.txt"); //(ONLINE)
        } else if ($emailInfo['type'] == 'aanmelden') {
            //$email_basis = file_get_contents(base_url() . 'mail_php/email_template_aanmeldformulier.txt'); //(LOKAAL)
        }

        //Personaliseer de email door de velden te vervangen met de ingevulde parameters
        $email_basis = str_replace("f_voornaam", $klantInfo['voornaam'], $email_basis);
        $email_basis = str_replace("f_achternaam", $klantInfo['achternaam'], $email_basis);
        $email_basis = str_replace("f_telefoon", $klantInfo['telefoon'], $email_basis);
        $email_basis = str_replace("f_email", $klantInfo['email_van'], $email_basis);
        $email_basis = str_replace("f_bericht", $klantInfo['$bericht'], $email_basis);
        $email_basis = str_replace("f_locatie", $klantInfo['$locatie'], $email_basis);

        //Genereer headers
        $headers = "From: " . $cleanedFrom . "\r\n";
        $headers .= "Reply-To: ". strip_tags($_POST['f_email']) . "\r\n";
            $headers .= "MIME-Version: 1.0\r\n";
            $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

            //Hier word de mail verstuurd als alles goed is
            if (mail($emailInfo['email_naar'], $emailInfo['email_onderwerp'], $email_basis, $headers)) {
                //CC
                mail('info@yourdomain.nl', $emailInfo['email_onderwerp'], $email_basis, $headers);
            } else {
                echo 'Er is iets fout gegaan. Probeer het later nog een keer!';
                die();
            }
        }
   }
?>

我一直收到这个错误: 致命错误:

  

在(/文件位置)

中找不到“电子邮件服务”类

在这种情况下上传到服务器,因此可以在整个网站上轻松调用它。我从来没有写过和使用课程这个问题。我可能做错了什么?之前有很多人发布了关于此错误的相同问题,但他们似乎有不同的设置。

1 个答案:

答案 0 :(得分:2)

您无法按网址添加文件。

您必须在服务器上使用文件位置路径。

这是错误的

include 'https://yourdomain.nl/assets/Email_Service.php';   //ONLINE
//require base_url() . 'assets/Email_Service.php';                      //LOKAAL

你必须使用绝对或相对路径

include "assets/Email_Service.php"; //relative path
include "<directory_path_of_your_project_on_server>/assets/Email_Service.php"; //absolute path

如何获取服务器文件位置

使用以下内容在您的根目录中创建test.php

<?php
echo dirname(__FILE__);
die;

从浏览器执行以上操作,将在服务器上显示您项目的路径并使用该路径。