Warning: array_key_exists

toddyy

Mitglied
HI,
ich muss nach einem Serverwechsel ein Newsscript wiederherstellen. Das Script schmeisst folgende Fehlermeldung 5x untereinander:
Code:
Warning: array_key_exists(): The second argument should be either an array or an object in /home/www/webxxx/html/admin/tmp_func_include.php on line 18
Darunter erscheinen die News dann alle korrekt. In der Zeile steht das hier.

Code:
if (array_key_exists($key, $Recordsets[$k])>0) {

Die PHP Version ist 4.3.10 Was auf dem ursprünglichen Server war weiss ich nicht. Leider sind aus dem Script alle Copyrioghthinweise entfernt worden ;-] , sodasss ich leider auch nicht den Coder kontaktieren kann, oder mal eine frische Version holen kann. Das ganze ist (hoffe ich) opensource.

Bitte nicht als Antwort auf php.net oder ähnliche Seiten verweisen..... ich bin kein coder....
 
Die Fehlermeldung lässt verlauten, dass der zweite Parameter kein Array ist. Warum das so ist, müsstest du anhand des Skriptes allein herausfinden.
 
ich poste hier mal die ersten 40 zeilen der datei....vielleicht kann mir dann jemand helfen. leider weiss ioch nicht wie ich das fixen kann oder ob ich noch was anlegen mus etc...
Code:
<?php
//v 04-02-27 - 01
function findreplace($key) {
	global $Recordsets;
	$return = "";
	$format = "";
	if ($key=="_navigation") {
		return getLastNavi();
	}
	
	if (ereg("~", $key)) {
		$splitkey = explode("~",$key);
		$format = $splitkey[0];
		$key = $splitkey[1];
	}
	
	for ($k=count($Recordsets);$k>=0;$k--) {
		if (array_key_exists($key, $Recordsets[$k])>0) {
			$return = $Recordsets[$k][$key];
			$k = (-1);
		}
	}
	return myFormat($format, $return);
}

function myFormat($format, $value) {
	$day["Mon"]="Montag";
	$day["Tue"]="Dienstag";
	$day["Wed"]="Mittwoch";
	$day["Thu"]="Donnerstag";
	$day["Fir"]="Freitag";
	$day["Sat"]="Samstag";
	$day["Sun"]="Sonntag";
	if (substr($format,0,1)=="[" && substr($format,-1)=="]" && $value=="") {
		return substr($format,1,-1);
	}
	switch ($format) {
		case "":
			return $value;
			break;
 
So ganz spontan wuerde ich mal behaupten, dass das
PHP:
        for ($k=count($Recordsets);$k>=0;$k--) {
                if (array_key_exists($key, $Recordsets[$k])>0) {
                        $return = $Recordsets[$k][$key];
                        $k = (-1);
                }
        }
eher so aussehen sollte:
PHP:
if (array_key_exists($key,$Recordsets))
{
 $return=$Recordsets[$key];
}
Man kann dummerweise nicht sehen wie $Recordsets gefuellt wird, daher erhebe ich hier keinerlei Anspruch auf Richtigkeit.
 
Dann ist zwar die Fehlermeldung weg....aber die News werden auch nicht angezeigt. Leider habe ich die Stelle mit den Records nicht gefunden....argh....ich komme da nicht weiter....
 
Dann zeig doch mal das ganze Script her, am besten in [ php ]-Tags und nicht in [ code ]-Tags, dann gibt's wenigstens Syntax-Highlighting.
 
Zurück