Tôi đã có một tập lệnh PHP bao gồm (hoặc 'yêu cầu') một tập hợp các tập lệnh khác. Điều này có hiệu quả cho việc nhập tất cả các lớp của tôi. Điều tôi đang gặp phải là lỗi HTTP 500. Tôi đã sàng lọc và nhận xét từng mảnh mã để xác định rằng nó không thành công trên require_once trong một trong các tệp của tôi.PHP Không theo yêu cầu
Đây là mã:
index.php:
<?php
require_once("std/classes.php");
?>
Và 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);
}
}
?>
Mã này sẽ làm việc như nó ngồi, nhưng ngay sau khi Tôi uncomment các yêu cầu, nó không thành công. Điều khiến tôi bất ngờ là tôi có rất nhiều trang web khác trên máy chủ này hoạt động gần như giống hệt nhau.
Tôi cảm thấy như thể tôi bằng cách nào đó đã báo cáo lỗi PHP bị tắt ... mà tôi không biết cách bật lại; khi tôi vừa nâng cấp lên PHP 5.3. Tôi thường mong đợi một 'file không thể mở' hoặc một số như vậy trong trình duyệt của tôi, nếu PHP thất bại.
Có thể ai đó có thể cho tôi biết lý do tại sao điều này đang khởi động lại HTTP 500 hoặc có thể chỉ cách kích hoạt lại báo cáo lỗi. Nó sẽ được nhiều đánh giá cao; điều này dường như không có ý nghĩa gì nhiều.
Bạn có thể tham khảo nhật ký máy chủ của mình không? – miku
Thư mục lớp của bạn có nằm trong thư mục gốc không? Thử thêm "/" trước các lớp học? Chỉ cần đoán thôi. –
có thể là một vấn đề với đường dẫn bao gồm của bạn http://www.php.net/manual/en/function.set-include-path.php –