ERLEDIGT
JA
JA
ANTWORTEN
17
17
ZUGRIFFE
849
849
EMPFEHLEN
-
29.07.04 22:38 #1
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:Der PHP-Code wird logischerweise nicht interpretiert, was ich aber gerne hätte. Mit eval() 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.PHP-Code:<a href="<?php echo basename($_SERVER['PHP_SELF']); ?>?id=5">Linktext</a>
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 www.php.net gesucht, hab aber keine Variable gefunden, die mir einfach nur den Dateinamen ausgibt.
TIA, Grüsse
SilentWarriorGeändert von SilentWarrior (29.07.04 um 22:43 Uhr)
-
29.07.04 23:08 #2
- Registriert seit
- Jul 2003
- Ort
- Gronau, Nordrhein-Westfalen, Germany, Germany
- Beiträge
- 634
Wenn ich ganz ehrlich sein soll verstehe ich nicht recht was du möchtest...
Zu dem Dateinamen:
Anders gehts meines Wissens leider nichtPHP-Code:$_SERVER['PHP_SELF'];
-
29.07.04 23:24 #3
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:Es soll aber das da stehen (vorausgesetzt, der Dateiname ist index.php):PHP-Code:<a href="<?php echo basename($_SERVER['PHP_SELF']); ?>?id=5">Linktext</a>Jetzt klarer?PHP-Code:<a href="index.php?id=5">Linktext</a>
-
30.07.04 00:36 #4
- Registriert seit
- Jul 2003
- Ort
- Gronau, Nordrhein-Westfalen, Germany, Germany
- Beiträge
- 634
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?Geändert von Operator_Jon (30.07.04 um 00:39 Uhr)
-
Ich weiß nicht in wie weit es dir hilft, aber so hab ich es mit
eval() gemacht:
PHP-Code:$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
Du müsstest einfach in einer PHP-Datei eine Variable bestimmen, die du dann immer da nehmen kannst. es ändert sich ja nichts dranPHP-Code:<?php
$FILE_SELF = basename($_SERVER['PHP_SELF']);
$slink = "<a href='$FILE_SELF?id=5'>Linktext</a>";
eval ("\$slink = \"\$slink\";");
echo $slink;
?>
$_SERVER['PHP_SELF'] spuckt ja immer das Selbe aus.
Die Variable $slink ist das Ausgelesene aus deiner Datenbank.
-
Wieso nimmst du nicht gleich $_SERVER['SCRIPT_NAME']?
Markus Wulftange
-
30.07.04 12:51 #10
Danke, Leute! Die Idee mit dem Ersetzen ist gar nicht mal so übel. Werd mir das mal näher anschauen.
Darum.Wieso nimmst du nicht gleich $_SERVER['SCRIPT_NAME']?
-
So sollte es doch funktionieren:
PHP-Code://Dies holst du aus der Datenbank
$link = "<a href='{self}?id=5'>Linktext</a>";
//Hier wird der Platzhalter ersetzt
$link=str_replace("{self}",basename($_SERVER['PHP_SELF']),$link);
//Hier kannstes denn anzeigen...
echo $link;
-
08.08.04 16:49 #12
Da bin ich wieder. KoMtuR hat versucht, mir die ganze Sache zu erklären - vielen Dank erstmal dafür!
Nur geholfen hat's leider nichts, ich verstehe immer noch Bahnhof... 
Es ist eben so, dass neben dem Dateinamen noch etliche weitere Variablen hinzukommen und ich diese eigentlich lieber direkt im jeweiligen Feld in der DB definieren würde als unzählige str_replace's zu verwenden.
Folgenden Code hab ich in der Datenbank drin:Im Quelltext steht folgendes:PHP-Code:<a href='" . $_SERVER['PHP_SELF'] . "?id=5'>Linktext</a>
Nur steht nachher im Quelltext der Seite immer noch folgendes:PHP-Code:eval("\$value = \"\$value\";");
echo $value;
Langsam komme ich mir vor wie der grösste Depp. Kann mir mal jemand ein funktionierendes Beispiel geben? Also Text in der DB und entsprechende Stelle im Code? Wäre echt super. Auch für eine Erklärung, wie das blöde eval() überhaupt funktioniert, wäre ich sehr dankbar.PHP-Code:<a href='" . $_SERVER['PHP_SELF'] . ?id=5'>Linktext</a>
MfG
SilentWarrior (verzweifelt langsam)
-
PHP-Code:
eval ("\$value = \"$value\";");
»
-
14.08.04 10:05 #14
Oh! Äh... danke!

(Verdammt, ist das peinlich...
)
/edit: So, gleich die nächste Frage. Es funktioniert jetzt, danke _voodoo! (Manchmal sieht man den Baum vor lauter Wäldern nicht.
) Aber: In der DB steht jetzt folgender Code (der Backslash vor dem ersten Anführungszeichen wurde vom Forum entfernt):Und meine eval()-Zeile sieht folgendermassen aus:PHP-Code:<a href=\"" . $_SERVER['PHP_SELF'] . "?id=1\">News</a><br />
<a href=\"" . $_SERVER['PHP_SELF'] . "?id=2\">Newsarchiv</a>
Das klappt wie gesagt auch wunderbar. Mir gefallen aber diese ganzen \" nicht - lieber wäre es mir, wenn ich mit Apostrophen (') arbeiten könnte. So habe ich es probiert:PHP-Code:eval ("\$value = \"$value\";");
Das funktioniert aber nicht, auch nicht, wenn ich die eval()-Zeile wie folgt ändere:PHP-Code:<a href="' . basename($_SERVER['PHP_SELF']) . '?id=1">News</a><br />
<a href="' . basename($_SERVER['PHP_SELF']) . '?id=2">Newsarchiv</a>
Kann mir jemand helfen? Vermutlich brauche ich wieder nur so einen kleinen Hinweis wie den von _voodoo, aber ich komme irgendwie nicht drauf. Diese Fehlermeldung erscheint:PHP-Code:eval ('$value = "' . $value . '";');
Viel anfangen kann ich damit leider nicht, ich habe nämlich keine Ahnung, was ein "encapsed string" sein soll.Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /usr/export/www/vhosts/funnetwork/hosting/silentwarrior/index.php(39) : eval()'d code on line 1Geändert von SilentWarrior (14.08.04 um 13:43 Uhr)
-
Vielleicht gehts ja so

PHP-Code:eval ('$value = "$value";');
"Kreativität heißt, aus dem Chaos Ordnung zu schaffen."
Georg Stefan Troller (*1921), östr. Journalist
Tutorials:
Ähnliche Themen
-
TabellenZelle/RadioButton
Von MikeDe im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 29.09.06, 13:01 -
Tabellenzelle als iframe
Von Nino im Forum HTML & XHTMLAntworten: 0Letzter Beitrag: 02.11.05, 21:58 -
div an tabellenzelle ausrichten
Von GuenniFD im Forum HTML & XHTMLAntworten: 6Letzter Beitrag: 06.05.05, 17:49 -
Hover bei Tabellenzelle
Von computers im Forum HTML & XHTMLAntworten: 3Letzter Beitrag: 26.12.03, 22:27 -
Hover auf Tabellenzelle
Von Jamonit im Forum CSSAntworten: 2Letzter Beitrag: 24.09.03, 17:27





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren