Cannot redeclare ... (previously declared in...)

Zack

cookies vader
Hi,
ich bekomme immer eine für mich unerklärlich Fehlermeldung,

Fatal error: Cannot redeclare sql_get() (previously declared in C:\Dokumente und Einstellungen\Zack\Eigene Dateien\php\fewo\gb\function.php:4) in C:\Dokumente und Einstellungen\Zack\Eigene Dateien\php\fewo\gb\function.php on line 11

Ich hab ein gb template geschrieben, welches ich jetzt auf meinen Seiten einbinden wolte. Auf 2 Seiten, die sich relativ ähnlich sind, kommt diese Fehlermeldung. Ich hab auch schon die entsprechende Funktion auskommentiert. Er springt dann einfach zur nächsten.
Hier mal die Funktionen:
PHP:
<?php
include "settings.php";

function sql_get($select, $table, $wherefeld, $where, $stellearray)
{
	$sql ='SELECT '.$select.' FROM '.$table.' WHERE '.$wherefeld.'"'.$where.'"';
	$result = mysql_query($sql) OR die($return=mysql_error());
	$return = mysql_fetch_assoc($result);

return $return[$stellearray];
}

function sql_get2($select, $table, $where)
{
	$sql ='SELECT '.$select.' FROM '.$table.' '.$where;
	$result = mysql_query($sql) OR die($return=mysql_error());
	$return = mysql_fetch_assoc($result);

return $return;
}

function sql_insert($table, $feld, $wert)
{
	$return ='';
	$sql ="INSERT INTO ".$table." (".$feld.") VALUES (".$wert.")";
	$result = mysql_query($sql) OR die($return=mysql_error());
	return $return;
}

function sql_delet($table, $where)
{
	$return ='';
	$sql ="DELETE FROM ".$table." ".$where."";
	$result = mysql_query($sql) OR die($return=mysql_error());
	return $return;
}

function sql_update($table, $set, $where )
{
	$return ='';
	$sql ="UPDATE ".$table." SET ".$set." WHERE ".$where;
	$result = mysql_query($sql) OR die($return=mysql_error());
	return $return;
}



function ip_check()
{
	include 'settings.php';
	$ip = getenv("REMOTE_ADDR");
	$max = sql_get ('MAX(id_ips) as max', 'zb_ip_save', 'ip=', $ip, 'max');
	if ($max == '')
	{
		return false;
	}
	else
	{
		$time = time();
		$timedb = sql_get('time','zb_ip_save', 'id_ips=', $max, 'time');
		$datum = getdate ($timedb);
		$datum['minutes'] = $datum['minutes']+$interval['min']; // Intervall komm aus der settings.php
		$datum['seconds'] = $datum['seconds']+$interval['sek'];
		$timedb = mktime($datum['hours'],$datum['minutes'] ,$datum['seconds'],$datum['mon'],$datum['mday'],$datum['year']);
		if ($timedb >= $time)
			{
				return true;
			}
		else
			{
				return false;
			}

	}
}
?>

Ich hab keine Ahnung woran es liegt. Vor allem erscheint diese Meldung nur auf 2 Seiten.
 
Zuletzt bearbeitet:
Die Fehlermeldung heißt, dass die Funktion sql_get() zwei mal versucht wird zu deklarieren.

Meine Vermutung: Die Datei wird zweimal eingebunden.

Lösung: Den Fehler finden und beheben.

Dreckige Lösung: auf [phpf]include_once[/phpf] umsteigen.
 
Wie bindest du denn deine Funktionen ein?

//edit:
Warum dreckig?
 
Zuletzt bearbeitet:
das dachte ich auch, es gibt diese funktion aber defenitiv nur 1 mal.

PHP:
include "function.php";
 
Irgendwo bindest du deine Funktion zweimal an. Schau dir mal alle include an. Auch function.php darf nur einmal eingebunden werden.
 
danke es geht,

es lag daran das ich in der show.php und in der write.php die function included habe, statt in der guestbook.php(wurzel.php)
 
Also ich mach es immer generell so ich hab eine include.php in der ich alle wichtigen Dateien mit include_once ranziehe so kann ich mir in dem punkt sicher sein. M.E. ist das die "sauberere" Lösung!
 
Und was wenn du nicht in jeder Datei alle eingebundenen Dateien brauchst?
Dann erzeugst du doch sehr viel "[wiki]Overhead[/wiki]"?

Beispiel:
Auf meiner Indexseite brauche ich meine Datenbank-, XML-, Navigations- und Templateklasse.
Im Impressum aber nur die Navigations- und Templateklasse.
Während ich im RSS Feed nur die XML-Klasse verwende.

Wenn ich die aber alle in einer include.php einbinde, dann habe ich immer alles geladen, auch wenn ich es gar nicht benutze.
 
mh schon klar ich meinte damit die funktionen die ich überall brauche.
funktionen die ich nur an bestimmten stellen brauche includiere ich auch nur dort wo ich sie brauche
 
Zurück