Seite 1 von 1

phpBB Variablen in PHP-script einfügen

Verfasst: 27.05.2010 15:56
von Lhasa
Problem ist eigentlich recht simple, aber ich bekomm es einfach nicht gelöst, vielleicht ist das auch so einfach wie ich mir das vorstelle nicht möglich. Ich möchte per <!-- PHP --> ein script laufen lassen dass eine andere datenbank ausliest aber Variablen aus dem phpBB Custom Profil Fields verwendet ....

phpBB 3.05

Auszug aus viewtopic_body.html (prosilver template)

<!-- IF postrow.S_PROFILE_BW_ID -->
<!-- PHP -->


$dbs_server = "geheim"; // Server, meistens localhost
$dbs_user = "geheim"; // Benutzername fuer Datenbank
$dbs_passwd = "geheim"; // Password fuer Datenbank
$dbs_name = "geheim"; // Name der Datenbank
$member = "bw_member"; // Tabelle der Member

// Datenbankverbindung herstellen

$verbindung = mysql_connect("$dbs_server","$dbs_user","$dbs_passwd") ;
if (!$verbindung) {
echo "Keine Verbindung zur Datenbank möglich!\n";
exit;
}
mysql_select_db("$dbs_name");

$result = mysql_query(" SELECT * FROM $member WHERE Id = {postrow.PROFILE_BW_ID_VALUE} ");
while($row = mysql_fetch_array($result))
{
echo'<dd>Strength:' . $row[str] . ' </dd> ';
}

<!-- ENDPHP -->
<!-- ENDIF -->

das Rotmarkierte geht leider nicht wenn ich da per Hand was anderes eintrage zeigt er logischerweise auf allen profilen das gleiche an. Hat jemand eine Idee?

Re: phpBB Variablen in PHP-script einfügen

Verfasst: 05.06.2010 23:36
von Lhasa
*push*

hat da keiner ne idee?

Re: phpBB Variablen in PHP-script einfügen

Verfasst: 10.08.2010 18:20
von Lhasa
*push*

Re: phpBB Variablen in PHP-script einfügen

Verfasst: 10.08.2010 19:49
von Pyramide
Ich erbarme mich mal und sortiere mal grob nach Schwere des Fehlers:
  • Datenbankzugangsdaten sollten auf gar keinen Fall im Template stehen
  • Für jeden Beitrag eine neue Datenbankverbindung aufzubauen ist eine extrem schlechte Idee - zumal die Tabelle vermutlich sowieso auf dem selben Server liegt und somit gar keine neue Datenbankverbindung nötig wäre
  • PHP-Code im Template ist nur für extrem simple Fälle gedacht - eine Parameterübergabe wie du sie dir vorstellst ist nicht vorgesehen
  • Select * is evil
  • Auf Array-Indizes wird außerhalb von Strings mit String-Keys zugegriffen ($row['str'])
  • Für Code in Beiträgen gibt es den

    Code: Alles auswählen

     BBCode[/list]
    Du solltest den Code sauber umschreiben (idealerweise Nutzung des DBAL) und dann in die zugehörige .php Datei verschieben.