2012-12-29 16 views
5

Tôi đang tạo trang web loại mạng xã hội, nơi người dùng có thể tải lên các mục của họ để được xếp hạng. Tuy nhiên, tôi đang cố gắng cải thiện cách trang web được đặt ra, vì vậy muốn tự động tạo các trang khi người dùng chèn một mục mới. Trang add.php có dạng sau:PHP Tự động tạo trang mới

<form action="add.php" method="post" autocomplete="on" enctype="multipart/form-data" action="<?php echo     $_SERVER['PHP_SELF']; ?>" method="POST" id="pic"> 
    <p> <label for="jname" class="iconic user"> Name of Jam <span class="required">*</span></label> <input type="text" name="jname" id="jname" value="<?php if (isset($_POST['jname'])) echo $_POST['jname']; ?>" required="required" placeholder="Input your Name of Jam here" /> </p> 

    <p> <select name="jtype" id="jtype" value="<?php if (isset($_POST['jtype'])) echo $_POST['jtype']; ?>" required="required"> 
      <option value="jam">Jam</option> 
      <option value="jelly">Jelly</option> 
      <option value="marmalade">Marmalade</option> 
      <option value="preserve">Preserve</option> 
     </select> </p> 

    <p> <label for="producer" class="iconic user"> Jam Producer <span class="required">*</span></label>  <input type="text" name="producer" id="producer" value="<?php if (isset($_POST['producer'])) echo $_POST['producer']; ?>" required="required" placeholder="Input the producer of the Jam here" /> </p> 
    Upload a picture of your jam: </br> </br> <input name="userfile" type="file" /> </br> 
    <input type="submit" name="submit" value="Register" />  
    <input type="hidden" name="submitted" value="TRUE" /> 

</form> 

Khi biểu mẫu được gửi, sau đó tôi muốn tạo trang mới cho mục do người dùng mới tạo. Có một cách khá đơn giản để làm điều này?

Chúc mừng

+1

Bạn đã thử những gì? Bạn có muốn tạo một tệp mới không?Hoặc làm thế nào về một mục cơ sở dữ liệu? –

Trả lời

7

Bạn không phải thực sự 'tạo' trang html mới cho từng mục.

Bạn có thể lưu thông tin này vào cơ sở dữ liệu (ví dụ mysql).

Sau đó, bạn có thể tạo một file php, nói 'item.php' và truy cập vào các mục khác nhau từ cơ sở dữ liệu mysql như vậy:

item.php id = 1

+0

Được rồi, vì vậy mỗi mục trong cơ sở dữ liệu của tôi được tạo một ID, và tôi đã tạo một trang item.php. Làm cách nào để tôi liên kết id đó với trang? Các mục được liệt kê trong 1 trang và sau đó tôi muốn có thể nhấp vào một trang và tải trang mới, với mục có id được liên kết. Có một hướng dẫn trực tuyến tôi có thể xem bạn có biết không? Chúc mừng – Bic1245

+0

Có rất nhiều hướng dẫn có sẵn trực tuyến, bạn có thể thử googling "php mysql cho người mới bắt đầu", nhưng như middaparka đề nghị tôi nghiêm túc khuyên bạn nên đầu tư vào một số cuốn sách. Bằng cách đó bạn sẽ có thể học nhanh hơn nhiều bằng cách đặt câu hỏi tại đây :) –

+0

nhiều trang web đang sử dụng kỹ thuật này. sau đó bạn có thể hiển thị theo id var. vì vậy các trang tương tự về mặt thực tế (ví dụ: cùng một bố cục) nhưng nội dung thì khác. – user3522940

2

Thông thường không có thế hệ trang mới cho những việc như thế. Bạn nên tạo một mẫu và tải các thông tin động từ các nguồn khác (chẳng hạn một tệp XML hoặc một cơ sở dữ liệu) vào nó để nó có vẻ là một trang hoàn toàn mới.

Chỉ:

  1. Hãy xem những gì mỗi trang mục có điểm chung
  2. Xác định một khuôn mẫu có chứa mã chung
  3. Lấy thông tin năng động (infos mục chẳng hạn) từ một CSDL
  4. Sử dụng PHP được nhúng trong HTML để tải HTML động

Ví dụ:

Facebook không tạo trang mới cho mỗi đăng ký người dùng. Có một mẫu HTML xác định vị trí của ảnh tiểu sử, vị trí và kiểu của bài đăng, vị trí và kiểu của danh sách bạn bè và nội dung chung cho bất kỳ trang tiểu sử nào và sau đó chỉ tải thông tin khác nhau khi bạn gọi một trang như vậy Mark, Frank, Jeff và vân vân.

3

Thông thường, đây không phải là cách tạo các trang web như vậy. (Ví dụ: Bạn không tự tạo trang vật lý tại thời điểm gửi biểu mẫu.) Thay vào đó, bạn thường lưu trữ dữ liệu biểu mẫu trong cơ sở dữ liệu và sau đó truy xuất/hiển thị nó dựa trên URL - hoặc bằng cách giải mã URL thông qua "bộ điều khiển" hoặc bằng cách sử dụng biến chuỗi truy vấn chẳng hạn như ?producerid=x. Dữ liệu này sau đó sẽ được sử dụng để điền một mẫu. Thành thật mà nói, tôi thực sự khuyên bạn nên giữ một cuốn sách PHP gần đây (như truy cập cơ sở dữ liệu liên quan, bạn nên sử dụng PDO hoặc MySQLi) hoặc làm theo một số hướng dẫn trực tuyến - trong khi ban đầu nó có vẻ như thế này sẽ không phải là một hình thức tiến bộ có ý nghĩa, nó có khả năng trả cổ tức đáng kể trong thời gian dài.

2

Cách tốt nhất và hiệu quả để làm gì? nó là để lưu trữ dữ liệu trong một cơ sở dữ liệu và lấy nó bất cứ khi nào người dùng nhấp vào mục cụ thể. Tuy nhiên, một phần trong kế hoạch của bạn là làm cho trang web của bạn có thể truy cập được bằng công cụ tìm kiếm của Google, bạn phải tạo các trang web riêng lẻ ... bởi vì, google chỉ là trình thu thập dữ liệu web ... không thể vào cơ sở dữ liệu mysql hoặc cơ sở dữ liệu khác .