WinFuture-Forum.de: Problem Mit Php Code - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Problem Mit Php Code


#1 Mitglied ist offline   MakaveliTha 

  • Gruppe: aktive Mitglieder
  • Beiträge: 276
  • Beigetreten: 10. September 05
  • Reputation: 0

geschrieben 10. November 2005 - 03:48

Habe ein kleines problem mit einem php script

wenn ich es aufrufe bekomme ich folgende meldung:

Fatal error: Call to a member function on a non-object in ******************\index.php on line 422

hab die index.php mit Ultraedit geöffnet und geschaut was in line 422 steht

$channels = $DB_site->query("

was könnte daran der fehler sein? bin echt überfragt ;/
0

Anzeige



#2 Mitglied ist offline   axx 

  • Gruppe: aktive Mitglieder
  • Beiträge: 487
  • Beigetreten: 19. Mai 05
  • Reputation: 0

geschrieben 10. November 2005 - 10:24

In Zeile 422 wird eine Funktion query() aufgerufen, die nicht verfügbar ist. Diese Funktion ist Teil des Objektes DB_site. Das Objekt wurde nicht initialisiert, deshalb kann auf die Funktion nicht zugegriffen werden.
Du solltest etwas in dieser Art finden:
$DB_site = new DB_site;

0

#3 Mitglied ist offline   MakaveliTha 

  • Gruppe: aktive Mitglieder
  • Beiträge: 276
  • Beigetreten: 10. September 05
  • Reputation: 0

geschrieben 10. November 2005 - 13:20

das hier ist das gesamte script

/////////// IRC Manager  ///////////


  $channels = $DB_site->query("	 <----- Das hier ist line 422
			SELECT * 
			FROM `irc_channel`
		");
		
while ($channel = $DB_site->fetch_array($channels))
{
	$nick_style = explode('||', $channel['nick_style']);
				
	$ops	 = explode(' ', $channel['operators']);
	$halfops = explode(' ', $channel['halfops']);
	$voiced  = explode(' ', $channel['voiced']);
	$users   = explode(' ', $channel['users']);
				
	if (!empty($ops[0]))
	{
		foreach ($ops AS $op)
		{
			$channel['nick_list'] .= str_replace('{nick}', $op, $nick_style[0] . ', ');
		}
	}

	if (!empty($halfops[0]))
	{				
		foreach ($halfops AS $halfop)
		{
			$channel['nick_list'] .= str_replace('{nick}', $halfop, $nick_style[1]) . ', ';
		}
	}

	if (!empty($voiced[0]))
	{				
		foreach ($voiced AS $voice)
		{
			$channel['nick_list'] .= str_replace('{nick}', $voice, $nick_style[2]) . ', ';
		}
	}

	if (!empty($users[0]))
	{				
		foreach ($users AS $user)
		{
			$channel['nick_list'] .= str_replace('{nick}', $user, $nick_style[3]) . ', ';
		}
	}
				
	$channel['nick_list'] = substr($channel['nick_list'], 0, -2);
				
	if ($channel['activity'] > 100)
	{
		$channel['alevel'] = 5;
	}
	else if($channel['activity'] == 0)
	{
		$channel['alevel'] = 0;
	}
	else
	{
		$channel['activity'] *= .05;
	
		$channel['alevel'] = round($channel['activity']);
	
		if ($channel['alevel'] < 1)
		{
			$channel['alevel'] = 1;
		}
	}
				
	$channel['aname'] = $channel["act$channel[alevel]"];
	
	$channel['online_max'] = number_format($channel['online_max']);
	$channel['online'] = number_format($channel['online']);
	
	$channel['date_max'] = vbdate($vboptions['dateformat'], $channel['dateline_max']);
	$channel['time_max'] = vbdate($vboptions['timeformat'], $channel['dateline_max']);
	
	eval('$irc_channels .= "' . fetch_template('irc_loggedin') . '";');
		
	unset($channel['nick_list']);
}

Dieser Beitrag wurde von MakaveliTha bearbeitet: 10. November 2005 - 13:21

0

#4 Mitglied ist offline   axx 

  • Gruppe: aktive Mitglieder
  • Beiträge: 487
  • Beigetreten: 19. Mai 05
  • Reputation: 0

geschrieben 10. November 2005 - 13:32

Ich habe wohl vorhin etwas wirr geredet. Die Funktion query() ist in der KLASSE DB_site (kann auch anders heißen) enthalten. Um auf diese Funktion zugreifen zu können, muss erst ein Objekt der Klasse DB_site erzeugt werden.
Das sollte also oberhalb der Zeile 422 erfolgt sein, ist es aber offensichtlich nicht. Das Objekt wird mit dem Schlüsselwort 'new' erzeugt.
Wo der Fehler jetzt exakt ist, musst du leider selbst suchen. Vielleicht fängst du damit an, eine Klasse DB_site zu suchen. Ist diese nicht vorhanden, durchsuche die Klassen nach der funktion 'query()', schließlich auch das script nach der Zeile, die das Objekt erzeugt.
0

#5 Mitglied ist offline   MakaveliTha 

  • Gruppe: aktive Mitglieder
  • Beiträge: 276
  • Beigetreten: 10. September 05
  • Reputation: 0

geschrieben 10. November 2005 - 13:53

ok werd mich mal damit auseinander setzten, thx ^^
0

#6 Mitglied ist offline   FutureCrasher 

  • Gruppe: aktive Mitglieder
  • Beiträge: 249
  • Beigetreten: 12. April 03
  • Reputation: 0
  • Wohnort:Nürnberg

geschrieben 10. November 2005 - 21:29

Beitrag anzeigenZitat (axx: 10.11.2005, 13:32)

Ich habe wohl vorhin etwas wirr geredet. Die Funktion query() ist in der KLASSE DB_site (kann auch anders heißen) enthalten. Um auf diese Funktion zugreifen zu können, muss erst ein Objekt der Klasse DB_site erzeugt werden.
Das sollte also oberhalb der Zeile 422 erfolgt sein, ist es aber offensichtlich nicht. Das Objekt wird mit dem Schlüsselwort 'new' erzeugt.
Wo der Fehler jetzt exakt ist, musst du leider selbst suchen. Vielleicht fängst du damit an, eine Klasse DB_site zu suchen. Ist diese nicht vorhanden, durchsuche die Klassen nach der funktion 'query()', schließlich auch das script nach der Zeile, die das Objekt erzeugt.


öhrm ja genau... nur leider isses nich gesagt, dass das die Klasse DB_site sein muss.
Die Meldung besagt nur, dass die Variable $DB_site keine Referenz auf ein Objekt hat.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0