Başka bir betik kümesi içeren (veya 'gerektirir') bir PHP betiğim var. Bu, tüm sınıflarımı içe aktarmak için etkili bir yöntem. Ne karşılaştığım bir HTTP 500 hatasıdır. Dosyalarımdan birinde require_once üzerinde başarısız olduğunu belirlemek için kod parçasını parçalara ayırdım ve yorumladım.PHP require_once üzerinde hata veriyor
index.php:
<?php
require_once("std/classes.php");
?>
Ve std/classes.php:
<?php
RequireStandards();
RequireAddons();
function RequireStandards()
{
$ClassFiles = scandir("classes/standard");
foreach($ClassFiles as $ClassFile)
{
if($ClassFile == "." || $ClassFile == "..")
continue;
//require_once("classes/standard/" . $ClassFile);
}
}
function RequireAddons()
{
$ClassFiles = scandir("classes");
foreach($ClassFiles as $ClassFile)
{
if($ClassFile == "." || $ClassFile == ".." || $ClassFile == "standard")
continue;
//require_once("classes/" . $ClassFile);
}
}
?>
Bu kod en kısa sürede o oturur gibi çalışır, ancak burada
kodudur İhtiyacım yok, başarısız oluyor. Beni garip kılan şey, bu sunucuda neredeyse aynı şekilde davranan birçok sitem var.Bir şekilde PHP hata raporlarımın kapalı olduğunu sanıyorum ... ki nasıl geri döneceğimi bilmiyorum; Ben sadece PHP 5.3'e yükselttiğim gibi. PHP başarısız olursa, genellikle bir 'açık dosya açamaz' veya tarayıcımda böyle bir şey beklerdim.
Belki birileri bunun neden bir HTTP 500'ü geri aldığını veya belki de hata raporlamasını yeniden nasıl etkinleştireceğini söyleyebilir. Çok takdir edilecektir; Bu sadece çok mantıklı görünmüyor.
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
require_once("std/classes.php");
?>
Umarım çalışması gerekir: Ben öneririm
Sunucu günlüklerinize başvurabilir misiniz? – miku
Sınıf klasörünüz kök dizinde mi? Derslerden önce bir "/" eklemeyi deneyin. Sadece bir tahmin. –
belki de dahil etme yolunuzla ilgili bir sorun http://www.php.net/manual/en/function.set-include-path.php –