geschweiften Klammern, Formular action und Variable ausgeben
Susanne
- php
Hallo Forum,
folgendes, ich möchte weitestgehend auf das ewige öffnen (<?php) und schließen (?>) von PHP verzichten und Tabellen sowie Formulare in den geschweiften Klammern ausführen lassen!
Jetzt probiere ich aber seit Stunden folgenden Codeschnipsel:
if (isset($ausgabe1[3]) || empty($ausgabe1[3])) echo htmlspecialchars($ausgabe1[3], ENT_QUOTES);
in das Action Attribut vom Formular einzubauen!
<?php
while ($ausgabe1 = @mysql_fetch_array($resultabfrage1, MYSQL_NUM))
{
echo "<table border="0" cellspacing="1" cellpadding="0" width="150">";
echo "<tr>";
echo "<td>";
echo "<div align="center">";
echo "<form name="forms" method="post" action="" target="_blank">";
echo “</form>”;
echo “</div>”;
echo “</td>”;
echo “</tr>”;
echo “</table>”;
}
?>
Das Problem ist das der ganze Codeschnipsel im Browserquelltext angezeigt wird, es sollte aber dort nur die Ausgabe der Variablen stehen.
Ich hoffe Ihr könnt mir weiterhelfen!
Vielen Dank im Voraus!
Hi,
folgendes, ich möchte weitestgehend auf das ewige öffnen (<?php) und schließen (?>) von PHP verzichten und Tabellen sowie Formulare in den geschweiften Klammern ausführen lassen!
Ausführen lassen?
Tabellen und Formular werden serverseitig nicht "ausgeführt".
Du meinst vermutlich schlicht und einfach das Verlassen des PHP-Bereiches in einem Scriptcode?
Jetzt probiere ich aber seit Stunden folgenden Codeschnipsel:
if (isset($ausgabe1[3]) || empty($ausgabe1[3])) echo htmlspecialchars($ausgabe1[3], ENT_QUOTES);
in das Action Attribut vom Formular einzubauen!
Wenn du das so machen willst - dann sorge dafür, dass du dich zum Beginn dieser bedingten Anweisung an einer Stelle im Code befindest, an der auch wieder PHP-Code erwartet wird.
<?php
while ($ausgabe1 = @mysql_fetch_array($resultabfrage1, MYSQL_NUM))
{
echo "<table border="0" cellspacing="1" cellpadding="0" width="150">";
echo "<tr>";
echo "<td>";
echo "<div align="center">";
Warum gibst du hier immer noch so viel statischen HTML-Code per PHP aus - ich dachte, das wolltest du lassen?
Das Problem ist das der ganze Codeschnipsel im Browserquelltext angezeigt wird, es sollte aber dort nur die Ausgabe der Variablen stehen.
Dann hast du wohl nicht korrekt ziwschen PHP- und nicht-PHP-Bereichen getrennt.
MfG ChrisB
Hi ChrisB,
Danke für Deine Antwort!
Ausführen lassen?
Tabellen und Formular werden serverseitig nicht "ausgeführt".
Du meinst vermutlich schlicht und einfach das Verlassen des PHP-Bereiches in einem Scriptcode?
Ich meinte dass ich den PHP-Bereich nicht verlassen möchte!
Wenn ich den PHP bereich verlassen möchte, dann würde ich Ihn schließen mit ?>.
Beispiel:
?>
<table border="0" cellspacing="0" cellpadding="0" width="150">
<tr>
<td>
<div align="center">
<form name="forms" method="post" action="<?php if (isset($ausgabe1[3]) || empty($ausgabe1[3])) echo htmlspecialchars($ausgabe1[3], ENT_QUOTES);?>" target="_blank">
und so weiter……
<?php
Hier wieder PHP öffnen
So funktioniert es auch mit dem Action Attribut und der Anzeige im Quelltext. Das möchte ich aber nicht weil sonst in meinem Script dann (übertriebener Maßen) 1.000-mal PHP geöffnet und wieder geschlossen werden müsste.
MfG,
Susanne
Hi,
Ich meinte dass ich den PHP-Bereich nicht verlassen möchte!
Warum nicht? Wenn du weitgehend statischen Inhalt ausgibst, dann ist das normalerweise weitaus sinnvoller.
So funktioniert es auch mit dem Action Attribut und der Anzeige im Quelltext. Das möchte ich aber nicht weil sonst in meinem Script dann (übertriebener Maßen) 1.000-mal PHP geöffnet und wieder geschlossen werden müsste.
Wenn nicht, dann musst du dich - weniger übertriebener Maßen - an tausenden von Stellen um korrektes Escaping statischer Ausgabebestandteile kümmern, was einfach entfallen kann, wenn du den PHP-Bereich für diese verlässt.
Und darüber hinaus haben wir ausser "funzt nich" immer noch keine konkrete Problembeschreibung vorliegen.
MfG ChrisB
Hi ChrisB,
Ich meinte dass ich den PHP-Bereich nicht verlassen möchte!
Warum nicht? Wenn du weitgehend statischen Inhalt ausgibst, dann ist das normalerweise weitaus sinnvoller.
Vielleicht habe ich hier auch nur einen Denkfehler, ich finde dass das ewige öffnen und schließen von PHP, nur um eine kleine Sache zu erreichen, ein wenig umständlich und nicht sauber programmiert ist! Wenn es doch die Möglichkeit gibt so etwas zu Unterlassen, sprich mit:
echo "<form name="forms" method="post" action="" target="_blank">";
was soll daran sinnvoller sein extra für diesen Teil PHP zu schließen?
Sorry, das verstehe ich irgendwie nicht!
Und darüber hinaus haben wir ausser "funzt nich" immer noch keine konkrete Problembeschreibung vorliegen.
Funzt nich habe ich nie geschrieben und eine Problembeschreibung liegt Dir auch im ersten Beitrag vor!
Aber noch mal:
Ich wollte lediglich von euch wissen, wie oder ob es überhaupt möglich ist in diesem action="" Attribut if (isset($ausgabe1[3]) || empty($ausgabe1[3])) echo htmlspecialchars($ausgabe1[3], ENT_QUOTES); unterzubringen ohne das es im Quelltext aufgeführt wird? Nur die Echoausgabe soll angezeigt werden.
Danke für Deine Antwort!
Mit freundlichen Grüßen
Susanne
Hi,
Vielleicht habe ich hier auch nur einen Denkfehler, ich finde dass das ewige öffnen und schließen von PHP, nur um eine kleine Sache zu erreichen, ein wenig umständlich und nicht sauber programmiert ist!
Nein, andersherum - das ist unsauber:
Wenn es doch die Möglichkeit gibt so etwas zu Unterlassen, sprich mit:
echo "<form name="forms" method="post" action="" target="_blank">";
was soll daran sinnvoller sein extra für diesen Teil PHP zu schließen?
Was soll daran sinnvoll *sein*, diesen Inhalt mit PHP auszugeben, wenn ian ihm *nichts* dynamisch ist?
Funzt nich habe ich nie geschrieben und eine Problembeschreibung liegt Dir auch im ersten Beitrag vor!
Du hast nur geschrieben, dass du irgendwas probiert hättest - aber nicht *wie*.
Ich wollte lediglich von euch wissen, wie oder ob es überhaupt möglich ist in diesem action="" Attribut if (isset($ausgabe1[3]) || empty($ausgabe1[3])) echo htmlspecialchars($ausgabe1[3], ENT_QUOTES); unterzubringen ohne das es im Quelltext aufgeführt wird? Nur die Echoausgabe soll angezeigt werden.
Ja, es ist möglich.
Wie (beispielsweise) - das schrieb ich auch schon.
MfG ChrisB