PHP-Variable in Tabellenzelle

SilentWarrior

Erfahrenes Mitglied
Hi

Ich bin mir nicht ganz sicher, ob ich hier oder im MySQL-Forum posten soll - verschiebt den Thread also, wenn er hier falsch ist.

Es geht um folgendes: Ich habe eine DB, darin hat's Tabellen. (Oje... ich bin wohl etwas müde. *g*) Jedenfalls befindet sich in einer Tabelle eine Zelle mit folgendem Inhalt:
PHP:
<a href="<?php echo basename($_SERVER['PHP_SELF']); ?>?id=5">Linktext</a>
Der PHP-Code wird logischerweise nicht interpretiert, was ich aber gerne hätte. Mit [phpf]eval[/phpf] hab ich's auch schon probiert, war leider nicht das, wonach ich suchte. Also wenn mir jemand weiterhelfen könnte, wäre das echt super.

Achja, nochwas: Ihr seht ja selbst, dass ich den Dateinamen ziemlich umständlich herausfinde (basename($_SERVER['PHP_SELF'])) - geht das irgendwie einfacher? Weil ich hab mal bei http://www.php.net gesucht, hab aber keine Variable gefunden, die mir einfach nur den Dateinamen ausgibt.

TIA, Grüsse

SilentWarrior
 
Zuletzt bearbeitet:
Wenn ich ganz ehrlich sein soll verstehe ich nicht recht was du möchtest...

Zu dem Dateinamen:
PHP:
$_SERVER['PHP_SELF'];
Anders gehts meines Wissens leider nicht ;)
 
Also wegen dem Dateinamen: Wenn ich $_SERVER['PHP_SELF'] eingebe, wird zwar der Dateiname angezeigt, allerdings immer mit einem vorangehenden Slash. Und das kann in manchen Fällen zu Problemen führen. (Kann dir jetzt leider grad kein Beispiel nennen, hatte das nur früher mal. :-()

Nun, nochmal zum Problem: Wenn ich die Tabellenzelle "einfach so" auslese, steht dann nachher im Quellcode genau der Inhalt der Zelle, also das hier:
PHP:
<a href="<?php echo basename($_SERVER['PHP_SELF']); ?>?id=5">Linktext</a>
Es soll aber das da stehen (vorausgesetzt, der Dateiname ist index.php):
PHP:
<a href="index.php?id=5">Linktext</a>
Jetzt klarer?
 
AAhhhhmmmm...
Bist du sicher das PHP korrekt installiert ist !?
Ist das der einzige PHP-Teil in der Datei, oder gibt es andere, die aber trotzdem geparsed werden?
 
Zuletzt bearbeitet:
Ich weiß nicht in wie weit es dir hilft, aber so hab ich es mit
[phpf]eval[/phpf] gemacht:
PHP:
$str = '<a href="'.basename($_SERVER['PHP_SELF']).'?id=5">Linktext</a>';
@eval ("\$str = \"$str\";");
echo $str;
 
Das Problem voodoo ist, dass du die Zeichenfolge zusammenfügst. Und das macht er ja nicht. Er hat in der Zeichenolge ja eben den php-Code drin stehen und muss den nun nochmal ausführen, was aber nicht geht ;)
 
Aber wenn er's mit <?php in die Datenbank einträgt kann er's
doch auch mit '.foo().' machen. Notfalls kann man doch vorher
noch via einer der unzähligen replace-Funktionen das ganze
entsprechend formatieren :)
 
Also ich würde diesen Code aus deiner Datenbank rausnehmen. Ich hab mal deine Sache ein wenig geändert

PHP:
<?php

$FILE_SELF = basename($_SERVER['PHP_SELF']);

$slink = "<a href='$FILE_SELF?id=5'>Linktext</a>";
eval ("\$slink = \"\$slink\";");
echo $slink;
?>

Du müsstest einfach in einer PHP-Datei eine Variable bestimmen, die du dann immer da nehmen kannst. es ändert sich ja nichts dran :) $_SERVER['PHP_SELF'] spuckt ja immer das Selbe aus.

Die Variable $slink ist das Ausgelesene aus deiner Datenbank.
 
Zurück