2011-11-19 49 views
7

Tôi đang thực hiện một bài tập về nhà nhỏ trong đó chúng tôi đang tạo một CMS rất thô sơ. Chúng tôi sẽ điền vào một biểu mẫu có tiêu đề, nội dung, liên kết cố định. CMS sau đó lấy permalink và thêm nó vào thanh điều hướng chính. Khi nhấp vào liên kết đó trên thanh điều hướng, tiêu đề, nội dung, dấu thời gian được tạo và dấu thời gian được sửa đổi sẽ được hiển thị. Tôi có công cụ này hoạt động, chỉ có vấn đề là khi tôi nhấp vào liên kết điều hướng, tôi có các lỗi sau:Lỗi PHP - Hằng số DB_HOST đã được xác định?

Lưu ý: Hằng số DB_HOST đã được định nghĩa trong C: \ Program Files \ xampp \ htdocs \ php \ assign_6 \ config .php trên dòng 2

Chú ý: DB_USER liên tục đã được xác định trong C: \ Program Files \ xampp \ htdocs \ php \ assignment_6 \ config.php trên dòng 3

Chú ý: DB_PASS liên tục đã được xác định trong C: \ Tệp chương trình \ xampp \ htdocs \ php \ assign_6 \ config.php trên dòng 4

Lưu ý: DB_NAME không đổi đã được xác định trong C : \ Program Files \ xampp \ htdocs \ php \ assignment_6 \ config.php trên dòng 5

Tôi có một tập tin config.php mà tôi sử dụng để thiết lập kết nối DB:

<?php 
    define('DB_HOST','******'); 
    define('DB_USER','******'); 
    define('DB_PASS','******'); 
    define('DB_NAME','******'); 

    $cms_db = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME); 

     if(!$cms_db){ 
      echo"Could not connect: ".mysql_error(); 
    } 
?> 

Đây là mã từ tệp của tôi gọi tệp config.php gây ra lỗi:

<?php 
    require('config.php'); 
    $perm = $_GET['p']; 
    $query = "SELECT * FROM cms WHERE permalink = '$perm'"; 
    $result = $cms_db->query($query); 
    $row = $result->fetch_assoc(); 
    $page_title = $perm; 
    require('header.php'); 
?> 
<h1><?=$row['title'];?></h1> 
<hr/><br/> 
<p class="para"><?=$row['content']?></p> 

<?php require('footer.php');?> 

Một lượng nhỏ mã đơn giản, nhưng vấn đề là gì? Nó không phải là một lỗi nghiêm trọng, nhưng người đàn ông, là nó gây phiền nhiễu.

+0

Bạn có thể kiểm tra xem có nhiều hơn một thể hiện của lệnh: 'require ('config.php');'? – Nonym

Trả lời

12

Có thể bạn đang bao gồm config.php nhiều lần. Kiểm tra tất cả các tập lệnh của bạn và tìm sự trùng lặp này. Bạn có thể sử dụng require_once() thay vì require() để ngăn chặn điều này.

+0

Hài hước, tôi nghĩ rằng có thể là vấn đề, vì vậy tôi googled nó và tìm thấy require_once. Tôi đã thử nó, và có cùng một vấn đề. Tôi sẽ thử nó lần nữa. –

1

Làm header.php hoặc footer.php có bao gồm config.php không?

Nếu đó là vấn đề của bạn.

+0

Có, chân trang, vì vậy tôi đã sử dụng require_once, không có kết quả. Tôi sẽ thử lại, bởi vì tôi có lẽ chỉ nghĩ rằng tôi đã làm điều đó ... –

+0

Chết tiệt, quên mất một. Các bạn => thắng. Sucks khi bạn kinda ra câu trả lời, thực hiện nó không chính xác, và sau đó yêu cầu giúp đỡ chỉ để tìm ra bạn đã đi đúng hướng ở nơi đầu tiên. Cảm ơn rất nhiều. Xin lỗi tôi chỉ có thể chọn một dấu kiểm. –

+0

Tôi biết điều này là cũ, nhưng câu hỏi của bạn đã dẫn tôi đi đúng hướng. Cảm ơn bạn đã hỏi điều này. +1. :-) – IRGeekSauce

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