2010-08-09 6 views
6

deklariert ich verstehe nicht, die Funktion existiert nicht, und selbst wenn ich es zu einigen absurden Namen ändern, funktioniert es immer noch nicht. Kann jemand finden das ProblemSchwerwiegender Fehler: Kann nicht mss() deklariert (zuvor in *

function mss($value){ 
    $data = mysql_real_escape_string(trim(strip_tags($value))); 
    return $data; 
} 

EDIT: ich vergaß zu erwähnen, seine XAMPP

Antwort

1

Wenn Sie es in einer separaten Datei zu halten sind, werden Sie es mehr als einmal aus Versehen mit

+1

ich gerade überprüft, keine – Rob

7

das? Das bedeutet, dass Sie die Funktion entweder in zwei separaten s definiert haben Töpfe, oder Sie haben die gleiche Datei zweimal.

Verwenden Sie include_once/require_once anstelle von include/require.

+1

dass versucht. Das gleiche Problem – Rob

+0

@Rob kurz bevor Sie mss() deklarieren, verwenden Sie dies: var_dump (get_included_files()); Stellen Sie sicher, dass keine doppelten Dateien enthalten sind. –

3

Ben Rowes Antwort ist fast sicher der Grund, warum es passiert.

Ich empfehle dies nicht, aber Sie können Ihre Funktion in function_exists()

if(!function_exists("mss")) { 

    function mss($value){ 
     $data = mysql_real_escape_string(trim(strip_tags($value))); 
     return $data; 
    } 

} 

Diese Lösung unordentlich ist immer wickeln. Es ist fast immer vorzuziehen, herauszufinden, WARUM Ihre Datei zweimal aufgenommen wird oder wo diese Funktion zweimal definiert ist. Aber für spezielle Umstände könnte diese Lösung geeignet sein.

+0

Ja, das kann funktionieren. Ich habe es nicht empfohlen, weil es normalerweise ein unnötiger Performance-Hit ist. –

+2

selbst das erzeugt einen 'can not redeclare' Fehler: \ – Rob

+1

@Rob Sind Sie sicher, dass Sie die richtige Datei bearbeiten? Was sagt die genaue Fehlermeldung? Welche Datei/Zeile wurde ursprünglich deklariert und welche Datei/Zeile wird neu deklariert? –

0

include_once (nicht enthalten) funktioniert, solange Sie die Funktion nur einmal in einer separaten .php-Datei deklariert haben. Bitte überprüfen Sie, ob die Funktion an anderer Stelle nicht erwähnt wird.

0

Sie sollten: include_once statt: include

+2

Können Sie diese Antwort näher ausführen? – ppovoski

Verwandte Themen