2011-11-19 19 views
7

Sto facendo un piccolo compito a casa in cui stiamo facendo un CMS molto rudimentale. Dobbiamo compilare un modulo contenente titolo, corpo, permalink. Il CMS prende quindi il permalink e lo aggiunge alla barra di navigazione principale. Quando quel link viene cliccato sulla barra di navigazione, devono essere visualizzati il ​​titolo, il contenuto, il datestamp creato e il datestamp modificato. Ho questa roba in funzione, ho solo questo problema quando clicco sul link nav, ho questi errori:Errore PHP - DB_HOST costante già definito?

Avviso: DB_HOST costante già definito in C: \ Programmi \ xampp \ htdocs \ php \ assignment_6 \ config .php sulla linea 2

Avviso: DB_USER costante già definito in C: \ Program Files \ xampp \ htdocs \ php \ assignment_6 \ config.php on line 3

Avviso: DB_PASS costante già definito in C: \ Programma Files \ xampp \ htdocs \ php \ assignment_6 \ config.php on line 4

Avviso: DB_NAME costante già definito in C : \ Program Files \ xampp \ htdocs \ php \ assignment_6 \ config.php on line 5

Ho un file config.php che io uso per stabilire una connessione 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(); 
    } 
?> 

ecco il codice dal mio file che richiama il file config.php, che causa l'errore:

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

Una piccola quantità di codice semplice, ma qual è il problema? Non è un errore fatale, ma uomo, è fastidioso.

+0

È possibile verificare se è presente più di una istanza del comando: 'require ('config.php');'? – Nonym

risposta

12

Probabilmente stai includendo config.php più volte. Controlla tutti i tuoi script e trova questa duplicità. È possibile utilizzare require_once() anziché require() per impedirlo.

+0

Divertente, ho pensato che potrebbe essere il problema, quindi l'ho cercato su google e ho trovato il require_once. L'ho provato e ho avuto lo stesso problema. Ci riproverò. –

1

Sia header.php o footer.php includono config.php?

Se questo è il tuo problema.

+0

Sì, il piè di pagina funziona, quindi ho usato require_once, inutilmente. Proverò di nuovo, perché probabilmente penso solo di averlo fatto ... –

+0

Dannazione, ne ho dimenticato uno. Voi ragazzi => vinci. Succhia quando indovini la risposta, la implementa in modo errato e poi chiedi aiuto solo per scoprire che eri sulla strada giusta in primo luogo. Molte grazie. Spiacente, posso sceglierne solo uno come segno di spunta. –

+0

So che questo è vecchio, ma la tua domanda mi ha portato sulla buona strada. Grazie per averlo chiesto. +1. :-) – IRGeekSauce

Problemi correlati