2011-11-19 9 views
7

Robię małe zadanie domowe, w którym robimy bardzo prymitywny CMS. Mamy wypełnić formularz zawierający tytuł, treść, link bezpośredni. CMS następnie pobiera permalink i dodaje go do głównego paska nawigacji. Po kliknięciu tego permalinka na pasku nawigacyjnym zostanie wyświetlony tytuł, zawartość, datownik i zmodyfikowana datestamp. Mam te rzeczy działa, tylko problem polega na tym, że po kliknięciu na link nav mam te błędy:Błąd PHP - stała już zdefiniowana DB_HOST?

Uwaga: Stała DB_HOST zdefiniowana już w C: \ Program Files \ xampp \ htdocs \ php \ assignment_6 \ config php w linii 2

Wskazówki: C określono już stałej użytkownik_bazy_danych: Program Files \ \ xampp \ htdocs \ php \ assignment_6 \ config.php na linii 3

Wskazówki: już zdefiniowane w stałej DB_PASS C: \ Pliki programów \ xampp \ htdocs \ php \ assignment_6 \ config.php na linii 4

Uwaga: Stała nazwa bazy danych DB_NAME jest już zdefiniowana w C : \ Program Files \ xampp \ htdocs \ php \ assignment_6 \ config.php on line 5

Mam plik config.php, że mogę używać, aby nawiązać połączenie 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(); 
    } 
?> 

Oto kod z mojego pliku wywołującego plik config.php, który powoduje błąd:

<?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');?> 

Niewielka ilość prostego kodu, ale na czym polega problem? To nie jest błąd krytyczny, ale człowieku, czy to jest denerwujące.

+0

Czy możesz sprawdzić, czy jest więcej niż jedno wystąpienie polecenia: 'require ('config.php');'? – Nonym

Odpowiedz

12

Prawdopodobnie zawierasz plik config.php wiele razy. Sprawdź wszystkie swoje skrypty i znajdź tę obłudę. Możesz użyć require_once() zamiast require(), aby temu zapobiec.

+0

Zabawne, doszedłem do wniosku, że to może być problem, więc wybrałem go i znalazłem require_once. Spróbowałem i mam ten sam problem. Spróbuję jeszcze raz. –

1

Czy plik header.php, czy footer.php to config.php?

Jeśli tak, to twój problem.

+0

Tak, stopka ma, więc użyłem require_once, bez skutku. Spróbuję jeszcze raz, bo chyba tylko myślę, że to zrobiłem ... –

+0

Cholera, zapomniałem. You guys => wygrać. Jest do bani, gdy trochę wymyślisz odpowiedź, zaimplementujesz ją niepoprawnie, a następnie poprosisz o pomoc, aby dowiedzieć się, że jesteś na dobrej drodze. Wielkie dzięki. Przykro mi, ale mogę wybrać tylko jeden jako znacznik wyboru. –

+0

Wiem, że to jest stare, ale twoje pytanie doprowadziło mnie na właściwą drogę. Dziękuję za pytanie. +1. :-) – IRGeekSauce

Powiązane problemy