Seite 1 von 1

fetch row bringt leeres Ergebnis

Verfasst: 18.11.2005 23:38
von Martin Truckenbrodt
Hallo,
ich setze folgenden Code auf zwei Webseiten ein:

Code: Alles auswählen

if(($edit == "yes") AND ($useremail != ""))
{
	$sql = "SELECT newsletter_id, newsletter_title, newsletter_description FROM ". PHPMN_NEWSLETTER_TABLE ." WHERE newsletter_id = '$id'";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Could not query PHPMN NEWSLETTER information', '', __LINE__, __FILE__, $sql);
	}
	$entry = array();
	if ( !($entry = $db->sql_fetchrow($result)) )
	{
		message_die(GENERAL_ERROR, 'Could not query PHPMN NEWSLETTER information extraction', '', __LINE__, __FILE__, $result);
	}
	$topicalview = $topical;
	if ($topical == "not subscribed")
	{
		$topicalview = $lang['L_PHPMN_NOTSUBSCRIBED'] ;
	}
	$template->assign_block_vars('action', array(
		'ID' => $id,
		'NAME' => $entry[1],
		'DESCRIPTION' => $entry[2],
		'TOPICAL' => $topical,
		'TOPICALVIEW' => $topicalview,
		'USERNAME' => $username,
		'USEREMAIL' => $useremail
		));
}
Auf der eine Webseite funktioniert die Sache. Auf der anderen Webseite (auf dem selben Webserver - selbe DAtenbank - aber andere Tabellenpräfixe) enthält das Array $entry keine Daten. Bin ziemlich ratlos.
Die SQL Abfrage $sql paßt.
Die entsprechende Tabelle lese ich woanders im Skript ohne Probleme nochmal aus.

Kann es an den Daten liegen? Machen da bestimmte Zeichen Probleme?

Danke und Gruß Martin

Verfasst: 20.11.2005 13:00
von Martin Truckenbrodt
Hallo,
ich habe mal noch ein paar Sachen getestet.

Die Variable $id wird korrekt übergeben.
Zur SQL injection Verhinderung verwende ich übrigens folgenden phpBB Code:

Code: Alles auswählen

if ( isset($HTTP_GET_VARS[PHPMN_ID]) || isset($HTTP_POST_VARS[PHPMN_ID]) )
{
	$id = ( isset($HTTP_GET_VARS[PHPMN_ID]) ) ? intval($HTTP_GET_VARS[PHPMN_ID]) : intval($HTTP_POST_VARS[PHPMN_ID]);
}
else
{
	$id = "";
}
Trage ich bei der WHERE Bedingung anstatt $id eine Zahl fest ein, funzt die Sache auch nicht.

:-?

Gruß Martin

Verfasst: 20.11.2005 21:14
von Martin Truckenbrodt
Hallo,
ich habe

Code: Alles auswählen

		'NAME' => $entry[1],
		'DESCRIPTION' => $entry[2],
mit

Code: Alles auswählen

		'NAME' => $entry['newsletter_title'],
		'DESCRIPTION' => $entry['newsletter_description'],
ersetzt und die Sache funzt.

Wieso die Sache auf der einen Seite funzte und auf der anderen Seite nicht, ist mir nach wie vor unerklärlich.

Wie lautet die Erklärung?

Danke und Gruß Martin