Seite 1 von 2

Resource-ID / smilies_pass() - keine Lösung in Sicht...

Verfasst: 10.03.2004 17:48
von andreasbecker
Achtung! Bitte letzte Postings durchlesen! Danke!

Hallo!

Nachdem die Forensuche nicht wirklich das hergegeben hat, was mir weiterhelfen konnte, hab ich mich kurzerhand registriert; hier mein Problem:

Ich arbeite momentan an einer Art Portalseite mit News, Link auf Profil, PM Postfach, usw. des eingeloggten Users, das Übliche halt ;-)
Klappt auch alles wunderbar, bis auf das Umwandeln der Smilies!

Ich habe übrigens die phpbb Version 2.0.6, sowie eine unangetastete mysql4.php, trotzdem erhalte ich folgenden Fehler beim Aufruf aus meinem Skript heraus:

Warning: mysql_query(): 12 is not a valid MySQL-Link resource in c:\inetpub\wwwroot\sduel\forum\db\mysql4.php on line 118

Also die Fehlermeldung, die ausgespuckt wird, wenn der Query daneben geht, ordnungsgemäß kommt noch ein "Could not obtain Smily Data" hinterher, sowie einige Headerfehler, weil ich mich außerhalb des Rootverzeichnisses befinde, jedoch obiger Fehler macht mir etwas Kopfschmerzen, zumal einerseits das Umwandeln des BBCodes funktioniert, außerdem die Abfrage an sich in Ordnung ist (was auch Test in Mysql Front ergibt), es ist ja auch ein simples SELECT * FROM tabelle...

Wer weiß Rat?

Verfasst: 11.03.2004 09:21
von Acid
Wie schaut denn der Query aus?
Und was hat er mit der smilies_pass() Funktion zu tun?

Verfasst: 11.03.2004 11:16
von andreasbecker
Das ist meine Funktion, die den Text aufbereiten soll:

Code: Alles auswählen

function bbencode_text ($text, $uid)
{
	if ( $uid != '' )
	{
		$text = bbencode_second_pass($text, $uid);
		$text = make_clickable($text);
	}

	$text = smilies_pass($text);

	return $text;
}// of bbencode_text()
Besagter Fehler in der mysql4.php tritt genau dann auf, wenn ich die smilies_pass() Zeile hinzufüge - kommentiere ich sie aus, ist der Fehler verschwunden...

edit: Ich sehe gerade, dass mir ein echo mehrere verschiedene Querys ausgibt, wobei der fehlerhafte (durch meinen eigenen Aufruf verursachte) ein einfaches "SELECT * FROM phpbb_smilies" ist, wie gesagt, händisch ausprobiert funktioniert der Query natürlich problemlos...

Verfasst: 11.03.2004 11:17
von netzmeister
Hallo,
und was macht die Funktion smilies_pass ?
Poste die mal bitte.

Gruß netzmeister

Verfasst: 11.03.2004 11:24
von andreasbecker
Die smilies_pass ist zu finden in der bbcode.php (im include-Verzeichnis) und soll halt die Smilie- "Übersetzungen" aus der db holen, dabei kommt es (nur bei meinem eigenen Aufruf) zum Fehler:

Code: Alles auswählen

function smilies_pass($message)
{
	static $orig, $repl;

	if (!isset($orig))
	{
		global $db, $board_config;
		$orig = $repl = array();

		$sql = 'SELECT * FROM ' . SMILIES_TABLE;
		if( !$result = $db->sql_query($sql) )
		{
			message_die(GENERAL_ERROR, "Couldn't obtain smilies data", "", __LINE__, __FILE__, $sql);
		}
		$smilies = $db->sql_fetchrowset($result);

		if (count($smilies))
		{
			usort($smilies, 'smiley_sort');
		}

		for ($i = 0; $i < count($smilies); $i++)
		{
			$orig[] = "/(?<=.\W|\W.|^\W)" . phpbb_preg_quote($smilies[$i]['code'], "/") . "(?=.\W|\W.|\W$)/";
			$repl[] = '<img src="'. $board_config['smilies_path'] . '/' . $smilies[$i]['smile_url'] . '" alt="' . $smilies[$i]['emoticon'] . '" border="0" />';
		}
	}

	if (count($orig))
	{
		$message = preg_replace($orig, $repl, ' ' . $message . ' ');
		$message = substr($message, 1, -1);
	}
	
	return $message;
}

Verfasst: 11.03.2004 12:07
von netzmeister
Hallo,
hast du folgenden Code im Kopf Deiner "neuen" Portal-Seite ?

Code: Alles auswählen

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
Gruß netzmeister

Verfasst: 11.03.2004 12:18
von andreasbecker
Jau, ist vorhanden, wie gesagt, selbst die BBCode-Codierung funzt ja, nur die Smilies wehren sich standhaft...

Verfasst: 16.03.2004 16:19
von andreasbecker
Ok, ich hab mich jetzt mal etwas in die mysql4.php eingelesen und bin zu folgendem Schluss gekommen:

Aufgrund der Fehlermeldung
"Warning: mysql_error(): 12 is not a valid MySQL-Link resource in c:\inetpub\wwwroot\sduel\forum\db\mysql4.php on line 329"

scheint es so, als wenn die Resource ID #12 zwar noch in der internen Variable gespeichert ist, die Verbindung zur db aber wohl verworfen wurde. Wie kann das sein?

Hoch damit gemäß Forenregeln -> Topic Bumping 8) + Topicname geändert!

Verfasst: 16.03.2004 19:51
von Acid
hmm.. verlink doch ma diese Dateien, die du für´s Portal nutzen möchtest, als *.txt Versionen.

Verfasst: 17.03.2004 11:15
von andreasbecker
Ok, hier also:

bbcode.php

mysql4.php