2013-07-26 22 views
5

Tôi sẽ cải thiện một trang web trong Apache và PHP có một trang có một bảng chứa danh sách các tệp. Mục tiêu của tôi là cho phép người dùng đặt một trong các tệp đó là “ quan trọng ” dựa trên một số tiêu chí cụ thể và chủ quan. Để làm được điều đó, tôi muốn lưu trữ thông tin liên quan đến hầu hết các tệp “ quan trọng ” theo cách nào đó, với hạn chế là tôi không thể sử dụng cơ sở dữ liệu cũng như các tệp (ràng buộc áp đặt bởi người giám sát).PHP - Lưu trữ thông tin với cơ sở dữ liệu NO

Câu hỏi của tôi là:

  • Có thể?
  • Tôi làm cách nào để thực hiện việc này?

Tôi đã thực hiện tìm kiếm trong trang web này, nhưng tôi không tìm thấy câu trả lời.

EDIT: Nhân tiện, cuối cùng tôi đã giải quyết được sự cố của mình bằng cách sử dụng tệp XML. Cảm ơn tất cả mọi người.

+23

Người giám sát của bạn là một thằng ngốc nếu anh ta mong bạn duy trì dữ liệu mà không thực sự lưu dữ liệu ở bất cứ đâu. –

+4

Hãy chắc chắn rằng bạn làm cho người giám sát của bạn đọc các bình luận ở trên –

+0

Làm thế nào về việc sử dụng bộ nhớ cục bộ trên máy khách? – peterm

Trả lời

4

Giả sử các tiêu chí này là phía máy khách chứ không phải phía máy chủ, vì nếu chúng là phía máy chủ và nó phải là một tệp 'quan trọng' cho tất cả người dùng thì không có cách nào để thực hiện việc này mà không cần lưu trữ.

Câu trả lời cho giải pháp của bạn là localStorage() ...

Tùy thuộc vào Javascript và chắc chắn không phải là giải pháp hoàn hảo, nhưng HTML5 localStorage cho phép bạn lưu trữ tùy chọn trên máy tính của người dùng.

Thứ nhất, phát hiện hỗ trợ cho localStorage():

if (Modernizr.localstorage) { // with Modernizr 
if (typeof(localStorage) != 'undefined') { // Without Modernizr 

Sau đó thiết lập một tham số nếu nó được hỗ trợ:

localStorage.setItem("somePreference", "Some Value"); 

Và rồi sau đó lấy nó, miễn là người dùng của bạn đã không được xóa bộ nhớ cục bộ:

var somePreference = localStorage.getItem("somePreference"); 

Khi bạn muốn xóa, chỉ cần sử dụng:

localStorage.removeItem("somePreference"); 

Đối với những người sử dụng trình duyệt không hỗ trợ (cũ), bạn có thể sử dụng local storage hacks lợi dụng Flash LSO, nhưng chắc chắn không lý tưởng.

Điều gì về phiên hoặc cookie?

Cả hai đều là các hình thức lưu trữ tạm thời có chủ ý. Ngay cả Flash LSO cũng tốt hơn cookie để lưu trữ lâu dài.

Ràng buộc là nghĩa đen khuyến khích lệ nghèo ...

Tất cả các tùy chọn này là trình duyệt-side. Nếu người dùng chuyển sang máy tính khác, tùy chọn của anh/cô ấy sẽ được đặt lại trên PC đó, không giống như với hệ thống xác thực do cơ sở dữ liệu hỗ trợ, nơi bạn có thể lưu tùy chọn đối với thông tin đăng nhập.

Cách tốt nhất để lưu trữ loại dữ liệu này là trong cơ sở dữ liệu. Nếu bạn không thể chạy dịch vụ cơ sở dữ liệu, bạn có thể sử dụng SQLite hoặc lưu trữ dữ liệu trong tệp JSON hoặc XML.

+0

Cảm ơn mọi người vì những gợi ý của bạn! Vì nó là một quyết định phía khách hàng mà phải được tuyên truyền cho phía máy chủ, tôi đoán rằng câu trả lời cho câu hỏi của tôi là không thể nếu tôi không thể cứu trợ các dấu ấn. Cảm ơn! – pafede2

0

Bạn có thể kiên trì dữ liệu tạm sử dụng phiên và cookie. Họ không yêu cầu tệp hoặc cơ sở dữ liệu; Tuy nhiên, như đã đề cập, nó là tạm thời vì dữ liệu đã biến mất khi trình duyệt bị đóng hoặc cookie hết hạn.
Nếu bạn được yêu cầu duy trì dữ liệu vĩnh viễn mà không cần sử dụng tệp hoặc cơ sở dữ liệu, người giám sát của bạn đã đặt bạn thành không thành công.

Hy vọng điều này sẽ hữu ích.

+0

Phiên thường được duy trì với một trong hai tệp hoặc cơ sở dữ liệu. Tất nhiên, một cơ sở dữ liệu trong bộ nhớ có thể được sử dụng. –

+0

Tôi biết; các tệp đó được tạo bởi hệ thống chứ không phải OP; vì vậy, theo một cách nào đó, anh ấy vẫn tuân thủ các yêu cầu. –

0

Tùy chọn duy nhất tôi có thể thấy sẽ là sử dụng cookie (không phải là vĩnh viễn và được lưu trữ dưới dạng tệp trên máy khách).

Tùy chọn khác có thể là sử dụng một cái gì đó như Parse cho phép bạn lưu trữ dữ liệu trong đám mây.

Tuy nhiên, tùy thuộc vào mức độ nghiêm ngặt của người giám sát vì giải pháp đầu tiên sử dụng tệp (khách hàng) và sau này sẽ sử dụng cơ sở dữ liệu trên máy chủ khác.

0

Bạn có thể thử sử dụng cookie để lưu trữ các dữ liệu

Để thiết lập việc sử dụng tên tập tin:

<?php 
    setcookie("important", $importantFileName); 
    ?> 

Để đọc sử dụng dữ liệu:

<?php 
    $importantFileName = $_COOKIE["important"]; 
    ?> 

Nhưng điều này wil chỉ làm việc cho người dùng hiện tại và những người dùng khác sẽ không thể xem nội dung này.

Các vấn đề liên quan