Chúng tôi đã thừa kế trang PHP chạy tốt trên Ubuntu, nhưng đổ mã nguồn lên màn hình trên hệ thống Windows 7 chạy XAMMP bằng PHP 5.4 hoặc WAMP sử dụng PHP 5.3 .Trang PHP hiển thị trên ubuntu, không phải trên Windows 7
Điểm kết xuất xảy ra có vẻ là khi nó cố gắng phân tích cú pháp kết hợp ký tự "->" (thuộc tính đối tượng). Khi tôi thay đổi thành "[]" để truy cập như một phần tử mảng, nó sẽ vượt qua nó, nhưng sau đó đổ mã nguồn lên màn hình xuất hiện sau khi kết hợp ký tự "=>" (ánh xạ). Nhận xét rằng không hoạt động, chỉ xóa toàn bộ dòng được nó qua đó.
Cuối cùng, khi nó chỉ in ra html với "<" và ">" dấu hiệu, điều đó cũng gây ra kết xuất màn hình. Nếu tôi thay thế các ký tự đó bằng các thực thể html, mã nguồn sẽ không đổ thêm nữa, nhưng chương trình không hiển thị menu và không hoạt động chút nào. Lưu ý rằng tôi có thể đăng nhập thành công vào ứng dụng thông qua trang đăng nhập của nó, mặc dù thậm chí hiển thị "POST" và một số ký tự "<" và ">" khác trong trường tên người dùng.
Tôi đã thử chạy unix2dos trên toàn bộ ứng dụng, nhưng điều đó không có hiệu lực. Cũng cố gắng chuyển đổi văn bản của một trong các trang vi phạm sang UTF-8, nhưng vẫn không có may mắn.
Trong câu trả lời cho một số câu hỏi đặt ra: phiên bản ubuntu
Các lao động là PHP Version 5.3.10-1ubuntu3.1
Phần đầu tiên của mã mà làm việc trong Ubuntu và không có trong Windows là này :
public function __construct($gid)
{
$this->id = $gid;
return $this->retrieve();
}
nơi mã bãi vào màn hình bắt đầu với:
id = $gid; return $this->retrieve(); }
Có, PHPInfo hoạt động, hiển thị cho máy chủ WAMP với Phiên bản PHP 5.3.13
Tôi đã thử thay đổi thẻ mở ngắn nhưng không có sự khác biệt.
Sản phẩm được viết cho chúng tôi bởi một nhóm gia công phần mềm, và nó dường như được dựa trên một số loại khung. Nhưng tôi không thể tìm thấy bất kỳ tham chiếu nào đến bất kỳ tên lớp học nào trên Google, vì vậy có thể họ đã viết toàn bộ nội dung trong nhà.
Going to the log apache, sai số thực tế xảy ra trên dòng này:
$_SESSION['admin_gid'] = Membership::getGroup($rUser['id']);
nơi thông báo lỗi là:
Membership' không tìm thấy
thành viên là một lớp được khai báo sau này trong cùng một tệp như một tệp được bán phá giá trên màn hình tại điểm được hiển thị ở trên, do đó, vì một lý do nào đó, trình phân tích cú pháp PHP không hiểu đọc mã PHP từ thời điểm đó.
bạn có thể đăng các mảnh ngắn nhất của mã mà hoạt động trên một nền tảng và không phải là khác? – Floris
có vẻ như chỉ thị thẻ mở ngắn tắt trong cửa sổ http://php.net/manual/en/ini.core.php#ini.short-open-tag –
Bạn có thể nhận được một ' Php phpinfo (); ?> 'để làm việc trên máy chủ web Win7? – halfer