理解できない奇妙な問題があります。PEARPHPページからメールを送信するために使用しています。クラスは機能していますSend_Mail(SMTPを使用してメールを送信しています)が、に関連してこの奇妙な警告が表示されますautoloader。
Warning: include(classes/LOGIN.php)
[<a href='function.include'>function.include</a>]:
failed to open stream: No such file or directory in
C:\xampp\htdocs\mysite\initialize.php on line 46`
私のinitialize.phpファイルには、次のものがあります。
function autoloader($class) {
include 'classes/' . $class . '.php';
}
spl_autoload_register('autoloader');
そして私のheader.phpファイルでは、サイトのいくつかのPHPクラスをロードしています。
// autoload PHP classes for site
autoloader('Navigation');
autoloader('Validation');
エラーは、私が持っていないLOGINクラスを参照しています。しかし、私は自分のサイトフォルダ全体を検索し、php次の2行を見つけましたC:\xampp\php\PEAR\Net\SMTP.php。
/* These standard authentication methods are always available. */
$this->setAuthMethod('LOGIN', array($this, '_authLogin'), false);
$this->setAuthMethod('PLAIN', array($this, '_authPlain'), false);
を含む行をコメントアウトするLOGINと、同じ警告が表示されますがPLAIN、両方の行をコメントアウトすると、警告は消えます(ただし、SMTP認証は失敗します)。
なぜこうなった?
アップデート
これが私の新しいautoloaderです:
function autoloader($class) {
if (file_exists('classes' . $class . '.php')) {
include 'classes' . $class . '.php';
}
}
ただし、エコーする'classes' . $class . '.php'と、次のようになります。
classes/.php
そして、それを使用しないように戻すと、file_exists機能しますが、echoそれでも表示されますclasses/.php