理解できない奇妙な問題があります。PEAR
PHPページからメールを送信するために使用しています。クラスは機能しています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