2009-01-19 31 views
6

Tôi có trang web sử dụng trang PHP và HTML, tôi muốn tạo phiên lưu trữ tên người dùng từ trang đăng nhập. Nhưng các trang đăng nhập là php và các trang tiếp theo là html.Phiên PHP với HTML

Đây có phải là một vấn đề hoặc có thể tôi chỉ cần thêm một tuyên bố nhỏ php vào trang html nói

<?PHP session_start(); 
$_session['loginid']=$_post['username']; 
?> 

Hoặc tôi đang làm sai?

Đây là lần đầu tiên tôi sử dụng phiên và họ làm tôi bối rối một chút.

cảm ơn sự giúp đỡ nào.

Trả lời

9

Nếu bạn có quyền truy cập vào cấu hình apache của bạn, hoặc một tập tin .htaccess đơn giản, bạn có thể nói với Apache để xử lý mã php bên trong một file .html. Bạn có thể làm điều này bằng cách tạo ra một tập tin .htaccess vào thư mục gốc tài liệu của trang web (có thể là public_html /) và đưa điều này vào nó (nhớ (dot) là ký tự đầu tiên trong tên tập tin đó.):

# Add this to public_html/.htaccess file 
AddHandler application/x-httpd-php .html 
AddHandler application/x-httpd-php .htm 

Bạn sẽ có thể tải lại trang html và mã PHP của bạn (từ câu trả lời của Michael Matthews) sẽ chạy rất tốt.

+0

Tất nhiên đừng quên rằng việc phân tích mọi trang HTML bằng công cụ PHP là một sự chậm lại nhỏ, nhưng có lẽ không phải là một trong những bạn đã từng nhận thấy. – TravisO

+0

Tôi đồng ý, mặc dù nó chỉ chậm lại nếu bạn có bất kỳ trang nào trên trang web thực sự tĩnh. Nếu không, đó là điều tương tự như làm tất cả mọi thứ dưới một phần mở rộng .php. – localshred

3

Vì các phiên được PHP xử lý, cần PHP để duy trì trạng thái. Bạn cần ít nhất session_start() để sử dụng các biến phiên được lưu trữ trong $_SESSION.

1

Bạn không thể đặt php vào tệp .html mà không cần phải phát xung quanh với tệp cấu hình của máy chủ. Bạn chỉ nên đặt php vào tệp .php.

Nếu bạn có nhiều tệp .html, bạn có thể chỉ cần đổi tên chúng thành tệp .php. Bạn có thể đặt html thuần túy thành something.php. Vì vậy, bạn nên đảm bảo rằng tất cả các tệp của bạn kết thúc bằng .php và sau đó bạn có thể đặt bất kỳ phiên làm việc nào bạn muốn vào chúng.

5

Bạn đang cố gắng chia sẻ biến phiên PHP với trang có loại văn bản/html. Như bạn đã đề xuất, bạn phải làm cho trang HTML là một trang PHP để làm việc này và thêm một đoạn mã PHP ở đâu đó để hiển thị tên người dùng.

Thay đổi trang HTML của bạn thành PHP. Ở phía trên cùng của trang thêm một cái gì đó như thế này:

<?php 
    session_start(); // must be before any output 
    $username = $_SESSION['username']; // or whatever you called it 
    // check that $username is valid here (safe to display) 
?> 
html here 
Hello <?= $username ?>! 
+0

Lưu ý rằng điều này yêu cầu các thẻ ngắn, để sử dụng hỗ trợ tối đa: ở dòng cuối cùng. Cũng như đã nói, hãy đảm bảo làm sạch thẻ HTML từ $ username tại đó. Nếu không, chúng sẽ được hiển thị trên trang của bạn (XSS) –