tag:forum.selfhtml.org,2005:/self Versand von Hochkomma in Web-Formular – SELFHTML-Forum 2021-01-22T10:24:22Z https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780698#m1780698 Paul 14 2021-01-21T15:25:57Z 2021-01-21T15:25:57Z Versand von Hochkomma in Web-Formular <p>Hallo, ich habe ein (php-) Formular, das sich selbst aufruft, um eine Vorschau vor dem endgültigen Absenden zu generieren. Das klappt auch wunderbar, nur wenn von Userseite ein Hochkomma eingegeben wurde, bricht der versendete Inhalt dann genau an dieser Stelle ab.</p> <p>Die entsprechende Codezeile ohne Eingabe eines Hochkommas sieht so aus:</p> <pre><code class="block language-php"><span class="token operator"><</span>input type<span class="token operator">=</span><span class="token string single-quoted-string">'hidden'</span> name<span class="token operator">=</span><span class="token string single-quoted-string">'message_v'</span> value<span class="token operator">=</span><span class="token string single-quoted-string">'Guns n Roses'</span> <span class="token operator">/</span><span class="token operator">></span> </code></pre> <p>Man kann sich vorstellen, was passiert, wenn jemand hier ein vor dem n ein Hochkomma eingibt:</p> <pre><code class="block language-php"><span class="token operator"><</span>input type<span class="token operator">=</span><span class="token string single-quoted-string">'hidden'</span> name<span class="token operator">=</span><span class="token string single-quoted-string">'message_v'</span> value<span class="token operator">=</span><span class="token string single-quoted-string">'Guns '</span>n Roses' <span class="token operator">/</span><span class="token operator">></span> </code></pre> <p>Und schon haben wir den Salat. Ich habe da einen Drehwurm im Hirn, aus dem ich alleine nicht rauskomme: Wenn ich die message vorher beispielsweise mit addslashes() escape, bekomme ich im Vorschau-Formular hübsch Backslashes, was aber nichts an der Problematik ändert, denn das HTML-Formular bricht dann einfach hinter dem Backslash ab, weil dort ja trotzdem ein Hochkomma steht, das den "value" beendet:</p> <pre><code class="block language-php"><span class="token operator"><</span>input type<span class="token operator">=</span><span class="token string single-quoted-string">'hidden'</span> name<span class="token operator">=</span><span class="token string single-quoted-string">'message_v'</span> value<span class="token operator">=</span><span class="token string single-quoted-string">'Guns \'n Roses'</span> <span class="token operator">/</span><span class="token operator">></span> </code></pre> <p>Wann, wie bzw. wo muss ich also für die korrekte Behandlung des Hochkommas sorgen?</p> https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780699#m1780699 Matthias Apsel matthias.apsel@selfhtml.org https://brückentage.info 2021-01-21T15:31:20Z 2021-01-21T15:31:20Z Versand von Hochkomma in Web-Formular <p>Hallo Paul 14,</p> <blockquote> <p>Wann, wie bzw. wo muss ich also für die korrekte Behandlung des Hochkommas sorgen?</p> </blockquote> <p>Im HTML-Kontext kannst du es als <code>&apos;</code> kodieren. Oder du verwendest für die Ausgabe im HTML-Kontext <code>htmlspecialchars()</code>, was dir diese Aufgabe abnimmt. Das sollte man grundsätzlich tun, wenn unbekannte Zeichenfolgen ausgegeben werden sollen.</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Du kannst das Projekt SELFHTML unterstützen,<br> indem du bei Amazon-Einkäufen <a href="https://smile.amazon.de/ch/314-570-45498" rel="nofollow noopener noreferrer">Amazon smile</a> (<a href="https://www.amazon.de/gp/help/customer/display.html?ie=UTF8&nodeId=202035970%5D" rel="nofollow noopener noreferrer">Was ist das?</a>) nutzt. </div> https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780702#m1780702 Robert B. 2021-01-21T15:47:42Z 2021-01-21T15:47:42Z Versand von Hochkomma in Web-Formular <p>Hallo Paul,</p> <p>neben den Antworten von <a href="/users/2" class="mention registered-user" rel="noopener noreferrer">@Matthias Apsel</a> und <a href="/users/12802" class="mention registered-user" rel="noopener noreferrer">@localhorst</a> sei der Vollständigkeit halber noch auf den berühmten Wiki-Artikel zum <a href="https://wiki.selfhtml.org/wiki/Programmiertechnik/Kontextwechsel" rel="nofollow noopener noreferrer">Kontextwechsel</a> verwiesen.</p> <p>Viele Grüße<br> Robert</p> https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780701#m1780701 localhorst 2021-01-21T15:36:26Z 2021-01-21T15:36:26Z Versand von Hochkomma in Web-Formular <blockquote> <p>Hallo Paul 14,</p> <blockquote> <p>Wann, wie bzw. wo muss ich also für die korrekte Behandlung des Hochkommas sorgen?</p> </blockquote> <p>Im HTML-Kontext kannst du es als <code>&apos;</code> kodieren. Oder du verwendest für die Ausgabe im HTML-Kontext <code>htmlspecialchars()</code>, was dir diese Aufgabe abnimmt. Das sollte man grundsätzlich tun, wenn unbekannte Zeichenfolgen ausgegeben werden sollen.</p> </blockquote> <p>... und den Schalter <strong>ENT_QUOTES</strong> nicht vergessen :-)</p> <p>LG + Gesundheit!<br> Localhorst</p> https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780708#m1780708 Paul 14 2021-01-21T16:44:06Z 2021-01-21T16:44:06Z Versand von Hochkomma in Web-Formular <p>Danke, Localhorst, das war die Lösung! ich hatte htmlspecialchars() in meinem code, aber ohne ENT_QUOTES, weil ich dachte, dass standardmäßig ohne zusatzflag alle Zeichen umkodiert werden. War aber nicht so. Jetzt klappts:-)</p> https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780713#m1780713 dedlfix 2021-01-21T17:13:32Z 2021-01-21T17:13:32Z Versand von Hochkomma in Web-Formular <p>Tach!</p> <blockquote> <p>... und den Schalter <strong>ENT_QUOTES</strong> nicht vergessen :-)</p> </blockquote> <p>Ja, damit kann man im vorliegenden Fall das Problem lösen. Aber will man dauernd das Flag angeben? Eigentlich nicht. Und deshalb sollte man die Werte von HTML-Attributen mit doppelten Anführungszeichen einfassen, auch wenn die Regeln einfache Anführungszeichen erlauben.</p> <p>dedlfix.</p> https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780709#m1780709 Paul 14 2021-01-21T16:44:33Z 2021-01-21T16:44:33Z Versand von Hochkomma in Web-Formular <p>Danke für den Tipp!</p> https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780749#m1780749 Paul 14 2021-01-22T00:23:31Z 2021-01-22T00:23:31Z Versand von Hochkomma in Web-Formular <p>Verstehe. Aber was tue ich, wenn ich z.B. HTML-Code wie diesen:</p> <pre><code class="block language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">'</span>hidden<span class="token punctuation">'</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">'</span>message_v<span class="token punctuation">'</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">'</span>$message_v<span class="token punctuation">'</span></span> <span class="token punctuation">/></span></span> </code></pre> <p>an eine Variable übergeben möchte, muss ich ihn ja in Anführungszeichen setzen, also so:</p> <pre><code class="block language-php"><span class="token variable">$meineVariable</span><span class="token operator">=</span><span class="token string double-quoted-string">"<input type='hidden' name='message_v' value='<span class="token interpolation"><span class="token variable">$message_v</span></span>' />"</span> </code></pre> <p>Womit ich beide Arten von Anführungszeichen benötige, oder nicht? Jetzt mal abgesehen von der Nowdoc-Syntax...</p> https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780750#m1780750 Matthias Apsel matthias.apsel@selfhtml.org https://brückentage.info 2021-01-22T05:21:57Z 2021-01-22T05:21:57Z Versand von Hochkomma in Web-Formular <p>Hallo Paul 14,</p> <blockquote> <pre><code class="block language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">'</span>hidden<span class="token punctuation">'</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">'</span>message_v<span class="token punctuation">'</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">'</span>$message_v<span class="token punctuation">'</span></span> <span class="token punctuation">/></span></span> </code></pre> <p>an eine Variable übergeben möchte, muss ich ihn ja in Anführungszeichen setzen, also so:</p> </blockquote> <p>Das ist nicht klug,</p> <blockquote> <pre><code class="block language-php"><span class="token variable">$meineVariable</span><span class="token operator">=</span><span class="token string double-quoted-string">"<input type='hidden' name='message_v' value='<span class="token interpolation"><span class="token variable">$message_v</span></span>' />"</span> </code></pre> </blockquote> <p>eine solche Variable haben zu wollen.</p> <pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token comment">// php code, der alle nötigen Variablen liefert</span> <span class="token delimiter important">?></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>hidden<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>message_v<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token php language-php"><span class="token delimiter important"><?=</span><span class="token variable">$message_v</span><span class="token delimiter important">?></span></span><span class="token punctuation">"</span></span><span class="token punctuation">></span></span> </code></pre> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Du kannst das Projekt SELFHTML unterstützen,<br> indem du bei Amazon-Einkäufen <a href="https://smile.amazon.de/ch/314-570-45498" rel="nofollow noopener noreferrer">Amazon smile</a> (<a href="https://www.amazon.de/gp/help/customer/display.html?ie=UTF8&nodeId=202035970%5D" rel="nofollow noopener noreferrer">Was ist das?</a>) nutzt. </div> https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780758#m1780758 dedlfix 2021-01-22T07:07:17Z 2021-01-22T07:07:17Z Versand von Hochkomma in Web-Formular <p>Tach!</p> <blockquote> <p>Verstehe. Aber was tue ich, wenn ich z.B. HTML-Code wie diesen:</p> </blockquote> <p>Ich fahre am besten, indem ich generell für PHP-Code die einfachen Anführungszeichen verwende. Nur in Situationen, in denen ich eine Variablenauflösung oder Escapesequenz ( wie <code>\n</code>) brauche, verwende ich als Ausnahme die doppelten.</p> <blockquote> <pre><code class="block language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">'</span>hidden<span class="token punctuation">'</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">'</span>message_v<span class="token punctuation">'</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">'</span>$message_v<span class="token punctuation">'</span></span> <span class="token punctuation">/></span></span> </code></pre> <p>an eine Variable übergeben möchte, muss ich ihn ja in Anführungszeichen setzen, also so:</p> <pre><code class="block language-php"><span class="token variable">$meineVariable</span><span class="token operator">=</span><span class="token string double-quoted-string">"<input type='hidden' name='message_v' value='<span class="token interpolation"><span class="token variable">$message_v</span></span>' />"</span> </code></pre> <p>Womit ich beide Arten von Anführungszeichen benötige, oder nicht?</p> </blockquote> <p>Diese Situation kommt nicht vor, weil dabei der Kontextwechsel nicht beachtet wird.</p> <pre><code class="block language-php"><span class="token variable">$meineVariable</span> <span class="token operator">=</span> <span class="token string single-quoted-string">'<input type="hidden" name="message_v" value="'</span> <span class="token operator">.</span> <span class="token function">htmlspecialchars</span><span class="token punctuation">(</span><span class="token variable">$message_v</span><span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string single-quoted-string">'" />'</span><span class="token punctuation">;</span> </code></pre> <p>Der Kontextwechsel sollte immer direkt an Ort und Stelle beachtet werden, damit man sieht, dass er nicht vergessen wurde.</p> <p>Somit löst sich die Variablenauflösung in Wohlgefallen auf und mit dieser die Notwendigkeit der doppelten Anführungszeichen. Aber: Der Code ist nun nicht mehr einfach lesbar, weil der String zusammengestückelt wird. Abhilfe kann <code>sprintf()</code> schaffen.</p> <pre><code class="block language-php"><span class="token variable">$meineVariable</span> <span class="token operator">=</span> <span class="token function">sprintf</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'<input type="hidden" name="message_v" value="%s" />'</span><span class="token punctuation">,</span> <span class="token function">htmlspecialchars</span><span class="token punctuation">(</span><span class="token variable">$message_v</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>Aber auch das ist noch nicht der Weisheit letzter Schluss. Welcher zwingender Grund besteht denn, den HTML-Code in einer Variable haben zu wollen? Wenn man sich an das EVA-Prinzip (Eingabe → Verarbeitung → Ausgabe) hält, ist die Ausgabe kein Teil der Verarbeitung. Sie kommt am Ende und kann direkt erfolgen.</p> <pre><code class="block language-php">// Ende der Verarbeitung ?> ... <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>form</span> <span class="token attr-name">...</span><span class="token punctuation">></span></span> ... <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>hidden<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>message_v<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><?=htmlspecialchars($message_v))<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span> ... <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>form</span><span class="token punctuation">></span></span> ... </code></pre> <p>Damit erübrigen sich die Anführungszeichen von selbst. Außerdem ist der HTML-Code nun nicht mehr in einem String versteckt. Eine Menge Editoren und IDEs können nun auch mit Syntaxhervorhebung und weiterer Unterstützung dienen, weil sie den HTML-Code als solchen erkennen können und nicht nur als beliebige Daten sehen.<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup></p> <p>Abschließend ist noch zu sagen, dass man auch im Ausgabeteil Logik benötigt. Zum Beispiel weil man Array-Daten in einer Schleife ausgeben möchte, oder weil eine Bedingung unterschiedliche Ausgaben benötigt. Wenn die Bedingung komplex zu ermitteln ist, steht sie im V-Teil und wird als einfacher Wert (z.B. true/false) an den Ausgabeteil gegeben. Im Ausgabeteil selbst steht hauptsächlich HTML-Code. Für die benötigten Kontrollstrukturen der Logik (if/for) wird stellenweise wieder in den PHP-Modus gewechselt. Man kann dabei die <a href="https://www.php.net/manual/en/control-structures.alternative-syntax.php" rel="nofollow noopener noreferrer">alternative Syntax für Kontrollstrukturen</a> verwenden, aber das ist Geschmackssache.</p> <p>Beispiel:</p> <pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$errors</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token delimiter important">?></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>p</span><span class="token punctuation">></span></span>Verarbeitung fehlgeschlagen. Gründe:<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>p</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>ul</span><span class="token punctuation">></span></span> <span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token keyword">foreach</span> <span class="token punctuation">(</span><span class="token variable">$errors</span> <span class="token keyword">as</span> <span class="token variable">$error</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token delimiter important">?></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>li</span><span class="token punctuation">></span></span><span class="token php language-php"><span class="token delimiter important"><?=</span> <span class="token function">htmlspecialchars</span><span class="token punctuation">(</span><span class="token variable">$error</span><span class="token punctuation">)</span> <span class="token delimiter important">?></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>li</span><span class="token punctuation">></span></span> <span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token punctuation">}</span> <span class="token delimiter important">?></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>ul</span><span class="token punctuation">></span></span> <span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span> <span class="token delimiter important">?></span></span> Ausgabe der Daten, wenn kein Fehler auftrat <span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token punctuation">}</span> <span class="token delimiter important">?></span></span> </code></pre> <p>oder in alternativer Syntax:</p> <pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$errors</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token delimiter important">?></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>p</span><span class="token punctuation">></span></span>Verarbeitung fehlgeschlagen. Gründe:<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>p</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>ul</span><span class="token punctuation">></span></span> <span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token keyword">foreach</span> <span class="token punctuation">(</span><span class="token variable">$errors</span> <span class="token keyword">as</span> <span class="token variable">$error</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token delimiter important">?></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>li</span><span class="token punctuation">></span></span><span class="token php language-php"><span class="token delimiter important"><?=</span> <span class="token function">htmlspecialchars</span><span class="token punctuation">(</span><span class="token variable">$error</span><span class="token punctuation">)</span> <span class="token delimiter important">?></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>li</span><span class="token punctuation">></span></span> <span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token keyword">endforeach</span><span class="token punctuation">;</span> <span class="token delimiter important">?></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>ul</span><span class="token punctuation">></span></span> <span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token keyword">else</span><span class="token punctuation">:</span> <span class="token delimiter important">?></span></span> Ausgabe der Daten, wenn kein Fehler auftrat <span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token keyword">endif</span><span class="token punctuation">;</span> <span class="token delimiter important">?></span></span> </code></pre> <p>dedlfix.</p> <hr class="footnotes-sep"> <section class="footnotes"> <ol class="footnotes-list"> <li id="fn1" class="footnote-item"><p>Ja, es gibt auch einige gute IDEs, die auch eingebetteten Code in String erkennen und unterstützen können. <a href="#fnref1" class="footnote-backref">↩︎</a></p> </li> </ol> </section> https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780752#m1780752 localhorst 2021-01-22T05:52:34Z 2021-01-22T05:52:34Z Versand von Hochkomma in Web-Formular <p>Hallo,</p> <blockquote> <blockquote> <pre><code class="block language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">'</span>hidden<span class="token punctuation">'</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">'</span>message_v<span class="token punctuation">'</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">'</span>$message_v<span class="token punctuation">'</span></span> <span class="token punctuation">/></span></span> </code></pre> <p>an eine Variable übergeben möchte, muss ich ihn ja in Anführungszeichen setzen, also so:</p> </blockquote> <p>Das ist nicht klug,</p> <blockquote> <pre><code class="block language-php"><span class="token variable">$meineVariable</span><span class="token operator">=</span><span class="token string double-quoted-string">"<input type='hidden' name='message_v' value='<span class="token interpolation"><span class="token variable">$message_v</span></span>' />"</span> </code></pre> </blockquote> <p>eine solche Variable haben zu wollen.</p> <pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token comment">// php code, der alle nötigen Variablen liefert</span> <span class="token delimiter important">?></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>hidden<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>message_v<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token php language-php"><span class="token delimiter important"><?=</span><span class="token variable">$message_v</span><span class="token delimiter important">?></span></span><span class="token punctuation">"</span></span><span class="token punctuation">></span></span> </code></pre> </blockquote> <p>Wo werden die Werte escaped?<br> Das kann man <strong>so</strong> leider nicht sehen.</p> <p><strong>BTW:</strong><br> Man könnte den Weg auch anders herum gehen, und sich eine kleine wiederverwendbare Funktion erstellen, die dan HTML-String aus einem Array heraus erstellt. Dann kümmert sich die Funktion zukünftig um das Escapen und den Zusammenbau.</p> <p>LG + Gesundheit<br> Localhorst</p> <p>LG</p> https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780753#m1780753 Matthias Apsel matthias.apsel@selfhtml.org https://brückentage.info 2021-01-22T06:08:48Z 2021-01-22T06:08:48Z Versand von Hochkomma in Web-Formular <p>Hallo localhorst,</p> <blockquote> <p>Wo werden die Werte escaped?<br> Das kann man <strong>so</strong> leider nicht sehen.</p> </blockquote> <p>Ja, richtig.</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Du kannst das Projekt SELFHTML unterstützen,<br> indem du bei Amazon-Einkäufen <a href="https://smile.amazon.de/ch/314-570-45498" rel="nofollow noopener noreferrer">Amazon smile</a> (<a href="https://www.amazon.de/gp/help/customer/display.html?ie=UTF8&nodeId=202035970%5D" rel="nofollow noopener noreferrer">Was ist das?</a>) nutzt. </div> https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780759#m1780759 localhorst 2021-01-22T07:25:11Z 2021-01-22T07:25:11Z Versand von Hochkomma in Web-Formular <p>Moin Dedlfix,</p> <blockquote> <p>Aber auch das ist noch nicht der Weisheit letzter Schluss. Welcher zwingender Grund besteht denn, den HTML-Code in einer Variable haben zu wollen?</p> </blockquote> <p>Wie gestaltest Du die datengesteuerte, bzw. revolvierende Ausgabe, z.B. von Tabellen und/oder Listen?</p> <p>Da ist der HTML-Anteil zwangsläufig variabel.</p> <p>LG + Gesundheit<br> Localhorst</p> https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780763#m1780763 Matthias Apsel matthias.apsel@selfhtml.org https://brückentage.info 2021-01-22T08:07:04Z 2021-01-22T08:07:04Z Versand von Hochkomma in Web-Formular <p>Hallo localhorst,</p> <blockquote> <p>Wie gestaltest Du die datengesteuerte, bzw. revolvierende Ausgabe, z.B. von Tabellen und/oder Listen?</p> <p>Da ist der HTML-Anteil zwangsläufig variabel.</p> </blockquote> <p>Na so wie im $errors-Beispiel gezeigt, oder verstehe ich dich falsch?</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Du kannst das Projekt SELFHTML unterstützen,<br> indem du bei Amazon-Einkäufen <a href="https://smile.amazon.de/ch/314-570-45498" rel="nofollow noopener noreferrer">Amazon smile</a> (<a href="https://www.amazon.de/gp/help/customer/display.html?ie=UTF8&nodeId=202035970%5D" rel="nofollow noopener noreferrer">Was ist das?</a>) nutzt. </div> https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780764#m1780764 dedlfix 2021-01-22T08:12:20Z 2021-01-22T08:12:20Z Versand von Hochkomma in Web-Formular <p>Tach!</p> <blockquote> <p>Wie gestaltest Du die datengesteuerte, bzw. revolvierende Ausgabe, z.B. von Tabellen und/oder Listen?</p> </blockquote> <p>Der V-Teil erstellt/berechnet die für die Ausgabe benötigten Daten. Der Ausgabeteil hat alles direkt verwendbar zur Verfügung, um die Ausgabe zu erstellen. Logik dafür und Hilfsfunktionen kann er verwenden.</p> <p>Wenn das Projekt sehr komplex ist, nehme ich ein Framework, das dafür Lösungsvorschläge anbietet, zum Beispiel, indem es in sich selbständige Module anbietet, die man bei Bedarf mehrfach in die Ausgabe einbinden kann.<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup> Im einfachsten Fall kann man Funktionen zur Kapselung verwenden, die im Ausgabeteil aufgerufen sich um komplexere Teile der Ausgabe kümmern.</p> <p>dedlfix.</p> <hr class="footnotes-sep"> <section class="footnotes"> <ol class="footnotes-list"> <li id="fn1" class="footnote-item"><p>Frag nicht nach Namen, ich hab schon lange keinen Bedarf gehabt, so etwas mit PHP umzusetzen. Aber wenn ich was nennen soll, dann Angular mit seinen Components oder ASP.NET MVC mit Views und darin Partials zum Kapseln. <a href="#fnref1" class="footnote-backref">↩︎</a></p> </li> </ol> </section> https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780766#m1780766 localhorst 2021-01-22T08:49:58Z 2021-01-22T08:49:58Z Versand von Hochkomma in Web-Formular <p>Hallo Matthias,</p> <blockquote> <blockquote> <p>Wie gestaltest Du die datengesteuerte, bzw. revolvierende Ausgabe, z.B. von Tabellen und/oder Listen?</p> <p>Da ist der HTML-Anteil zwangsläufig variabel.</p> </blockquote> <p>Na so wie im $errors-Beispiel gezeigt, oder verstehe ich dich falsch?</p> </blockquote> <p>Wo finde ich das Beispiel? Habe da wohl selber gerade einen 404-Status...</p> <p>Ich persönlich packe bei linearen Tabellen (alle Zeilen gleich aufgebaut) immer einen Tabellenblock (<em><tr></em> bis <em></tr></em>) in eine Variable. Die kann auch aus einer Vorlagendatei geladen werden. Damit wären die Quotierungsprobleme schon mal beseitigt. Für die Werte werden Platzhalter vorgehalten, die per <strong>str_replace</strong> dann fertig escaped eingestanzt werden.</p> <p>Das ist aber für kleine Angelegenheiten oversized. Darum interessieren mich immer andere Lösungswege.</p> <p>Und meine Versuche auch noch einen AL für die zu verwendende Auszeichnungssprache vorzusehen, waren bisher nicht erfolgreich. Anregungen sind daher höchst willkommen.</p> <p>LG + Gesundheit!<br> Localhorst</p> https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780767#m1780767 Matthias Apsel matthias.apsel@selfhtml.org https://brückentage.info 2021-01-22T08:53:36Z 2021-01-22T08:53:36Z Versand von Hochkomma in Web-Formular <p>Hallo localhorst,</p> <blockquote> <p>Wo finde ich das Beispiel? Habe da wohl selber gerade einen 404-Status...</p> </blockquote> <p><a href="https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780758#m1780758" rel="noopener noreferrer">https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780758#m1780758</a>, ganz unten im Beitrag</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Du kannst das Projekt SELFHTML unterstützen,<br> indem du bei Amazon-Einkäufen <a href="https://smile.amazon.de/ch/314-570-45498" rel="nofollow noopener noreferrer">Amazon smile</a> (<a href="https://www.amazon.de/gp/help/customer/display.html?ie=UTF8&nodeId=202035970%5D" rel="nofollow noopener noreferrer">Was ist das?</a>) nutzt. </div> https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780768#m1780768 Der Martin 2021-01-22T08:54:13Z 2021-01-22T08:54:13Z Versand von Hochkomma in Web-Formular <p>Moin,</p> <blockquote> <blockquote> <p>Na so wie im $errors-Beispiel gezeigt, oder verstehe ich dich falsch?</p> </blockquote> <p>Wo finde ich das Beispiel? Habe da wohl selber gerade einen 404-Status...</p> </blockquote> <p><a href="https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780758#m1780758" rel="noopener noreferrer">guckstu hier</a>.</p> <p>Live long and <s>pros</s> healthy,<br>  Martin</p> <div class="signature">-- <br> Für welches Tier mühen wir uns am meisten ab? - Für die Katz'. </div> https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780769#m1780769 Rolf B 2021-01-22T09:02:02Z 2021-01-22T09:39:57Z Versand von Hochkomma in Web-Formular <p>Hallo localhorst,</p> <blockquote> <p>Ich persönlich packe bei linearen Tabellen (alle Zeilen gleich aufgebaut) immer einen Tabellenblock (<tr> bis </tr>) in eine Variable.</p> </blockquote> <p>Warum packst Du nicht die Daten für die Zellen in eine Variable? HTML Aufbereitung gehört nicht in die Verarbeitung. Und ein solches Datenarray existiert doch vermutlich ohnehin. Das gibst Du dann im A-Teil der EVA einfach aus. Im wirklichen Leben wird das komplexer sein, sicher. Und eventuell gibt es Logik, die die Zellenaufbereitung oder die Datenauswahl steuert. Je nach Komplexität macht man das im Ausgabeteil, oder schafft sich vorher eine passende Sicht auf die Daten. Entweder über ein weiteres Array, oder über eine <a href="https://www.php.net/manual/en/language.generators.overview.php" rel="nofollow noopener noreferrer">Generatorfunktion</a> - ab PHP 5.5 verfügbar.</p> <pre><code class="block language-php"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>table</span><span class="token punctuation">></span></span> <span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token keyword">foreach</span> <span class="token punctuation">(</span><span class="token variable">$daten</span> <span class="token keyword">as</span> <span class="token variable">$zeile</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token delimiter important">?></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>tr</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>td</span><span class="token punctuation">></span></span><span class="token php language-php"><span class="token delimiter important"><?=</span> <span class="token function">htmlspecialchars</span><span class="token punctuation">(</span><span class="token variable">$zeile</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'id'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token delimiter important">?></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>td</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>td</span><span class="token punctuation">></span></span><span class="token php language-php"><span class="token delimiter important"><?=</span> <span class="token function">htmlspecialchars</span><span class="token punctuation">(</span><span class="token variable">$zeile</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'name'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token delimiter important">?></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>td</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>td</span><span class="token punctuation">></span></span><span class="token php language-php"><span class="token delimiter important"><?=</span> <span class="token function">htmlspecialchars</span><span class="token punctuation">(</span><span class="token variable">$zeile</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'vorname'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token delimiter important">?></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>td</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>td</span><span class="token punctuation">></span></span><span class="token php language-php"><span class="token delimiter important"><?=</span> <span class="token variable">$zeile</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'geburtsdatum'</span><span class="token punctuation">]</span><span class="token operator">-></span><span class="token function">format</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'d.m.Y'</span><span class="token punctuation">)</span><span class="token delimiter important">?></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>td</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>tr</span><span class="token punctuation">></span></span> <span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token keyword">endforeach</span><span class="token punctuation">;</span> <span class="token delimiter important">?></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>table</span><span class="token punctuation">></span></span> </code></pre> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - obstruxi </div> https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780770#m1780770 Matthias Apsel matthias.apsel@selfhtml.org https://brückentage.info 2021-01-22T09:10:08Z 2021-01-22T09:10:08Z Versand von Hochkomma in Web-Formular <p>Hallo Rolf B,</p> <p>abgesehen davon, dass ein paar php-Tags an der falschen Stelle sitzen : So mach ich das auch.</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Du kannst das Projekt SELFHTML unterstützen,<br> indem du bei Amazon-Einkäufen <a href="https://smile.amazon.de/ch/314-570-45498" rel="nofollow noopener noreferrer">Amazon smile</a> (<a href="https://www.amazon.de/gp/help/customer/display.html?ie=UTF8&nodeId=202035970%5D" rel="nofollow noopener noreferrer">Was ist das?</a>) nutzt. </div> https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780771#m1780771 localhorst 2021-01-22T09:19:03Z 2021-01-22T09:26:32Z Versand von Hochkomma in Web-Formular <p>Hallo Rolf,</p> <blockquote> <blockquote> <p>Ich persönlich packe bei linearen Tabellen (alle Zeilen gleich aufgebaut) immer einen Tabellenblock (<tr> bis </tr>) in eine Variable.</p> </blockquote> <p>Warum packst Du nicht die Daten für die Zellen in eine Variable?</p> </blockquote> <p>Das widerspricht der Trennung von passiver und aktiver Logik und somit dem Trennungsgrundsatz der Workflowschichten.</p> <p>Die Gestalterin der Beschreibungsvorgaben (HTML), diejenige der Gestaltung (CSS) und diejenige der Programmlogik (hier PHP) sollen strikt trennbar sein/bleiben. Datenhaltung (z.B. mySQL) wäre dann eine zusätzliche Schicht. Und diese wird dann nochmals getrennt in DEL, DML, DDL und RLL (Request Logging), sowie Rechtemanagement.</p> <p>Das (erster Teil) ist mit deiner Methode (schon) unmöglich.</p> <p>LG + Gesundheit<br> Localhorst</p> https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780772#m1780772 dedlfix 2021-01-22T09:20:20Z 2021-01-22T09:20:20Z Versand von Hochkomma in Web-Formular <p>Tach!</p> <blockquote> <p>[...] oder schafft sich vorher eine passende Sicht auf die Daten.</p> </blockquote> <p>Für die Leser, die mit dem Begriff "Sicht" (oder englisch View oder auch Data View, Table View) nichts anzufangen wissen, ein Beispiel:</p> <p>Ein Personendatensatz in einer DB enthält unter anderem ein Geburtsdatum. In der Ausgabe soll das Alter zu sehen sein. Wenn das Projekt insgesamt hinreichend trivial ist, könnte man einfach eine Hilfsfunktion schreiben, die das bei der Ausgabe umrechnet. Damit vermischt man aber Datenverarbeitung und Ausgabe. Eine Sicht erstellt man, indem man vom Datensatz aus dem DBMS eine Kopie erzeugt, dabei aber die nicht benötigten Teile weglässt (sofern man sie nicht gleich beim SELECT ausklammern kann), und im Falle des Beispiels ein Feld hinzufügt, in dem das berechnete Alter abgelegt wird. Der Vorgang dazu heißt Mapping, und es gibt dafür auch Array-Funktionen für Massendaten (array_map() in PHP oder in Javascript die Methode map() vom Array-Objekt). Somit erhält man sozusagen einen temporären Datensatz, speziell für die Ausgabe aufbereitet, also eine andere Sicht auf die Daten.</p> <p>dedlfix.</p> https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780774#m1780774 Rolf B 2021-01-22T09:40:12Z 2021-01-22T09:40:12Z Versand von Hochkomma in Web-Formular <p>Hallo Matthias,</p> <p>Autsch. Fixed.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - obstruxi </div> https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780773#m1780773 dedlfix 2021-01-22T09:35:42Z 2021-01-22T09:35:42Z Versand von Hochkomma in Web-Formular <p>Tach!</p> <blockquote> <p>Das widerspricht der Trennung von passiver und aktiver Logik und somit dem Trennungsgrundsatz der Workflowschichten.</p> </blockquote> <p>Das kann man so machen, ist aber meist nicht praktisch, und wird auch in vielen Frameworks nicht auf diese Weise getrennt.</p> <blockquote> <p>Die Gestalterin der Beschreibungsvorgaben (HTML), diejenige der Gestaltung (CSS) und diejenige der Programmlogik sollen strikt trennbar sein/bleiben.</p> </blockquote> <p>Wie kennzeichnet man aber nun, an welcher Stelle im Template Logik (Bedingung, Wiederholung, Variablen) stattzufinden hat? Wenn man dazu eine Sprache erfindet, kommt man vom angeblichen Regen in die Traufe. Statt PHP im HTML-Teil hat man nun Elemente einer weiteren Template-Syntax darin, und ein zusätzliches System, das diese Syntax parsen und verarbeiten muss. Am Ende bildet man damit auch nur nach, was PHP bereits mitbringt. Der Nutzen, den man davon hat, muss sich ganz schön anstrengen, um Aufwand und Komplexität zu rechtfertigen.</p> <p>dedlfix.</p> https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780777#m1780777 Rolf B 2021-01-22T09:52:06Z 2021-01-22T09:52:06Z Versand von Hochkomma in Web-Formular <p>Hallo localhorst,</p> <blockquote> <blockquote> <p>Warum packst Du nicht die Daten für die Zellen in eine Variable?</p> </blockquote> </blockquote> <blockquote> <p>Das widerspricht der Trennung von passiver und aktiver Logik und somit dem Trennungsgrundsatz der Workflowschichten.</p> </blockquote> <p>Ich würde das gern diskutieren, aber mir fehlen die Worte. Vielleicht habe ich anderswo gelernt als du...</p> <p>Aktive und passive Logik? Sagt mir nichts. Tante Google sagt das auch nichts. Könntest Du das bitte definieren, bzw. zum Nachlesen eine Quelle für eine Definition nennen?</p> <p>Mir bekannte Schichten sind Datenhaltung, Businesslogik, Steuerungslogik und Präsentation. Die werden unter dem Namen Softwareschichten geführt. Meinst Du die? Oder sind Workflowschichten etwas anderes, mir ebenfalls unbekanntes?</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - obstruxi </div> https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780780#m1780780 Matthias Apsel matthias.apsel@selfhtml.org https://brückentage.info 2021-01-22T09:58:23Z 2021-01-22T09:58:23Z Versand von Hochkomma in Web-Formular <p>Hallo dedlfix,</p> <blockquote> <p>Eine Sicht erstellt man, indem man vom Datensatz aus dem DBMS eine Kopie erzeugt, dabei aber die nicht benötigten Teile weglässt (sofern man sie nicht gleich beim SELECT ausklammern kann), und im Falle des Beispiels ein Feld hinzufügt, in dem das berechnete Alter abgelegt wird.</p> </blockquote> <p>Auch innerhalb des SELECT – oder?</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Du kannst das Projekt SELFHTML unterstützen,<br> indem du bei Amazon-Einkäufen <a href="https://smile.amazon.de/ch/314-570-45498" rel="nofollow noopener noreferrer">Amazon smile</a> (<a href="https://www.amazon.de/gp/help/customer/display.html?ie=UTF8&nodeId=202035970%5D" rel="nofollow noopener noreferrer">Was ist das?</a>) nutzt. </div> https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780787#m1780787 Rolf B 2021-01-22T10:16:37Z 2021-01-22T10:16:37Z Versand von Hochkomma in Web-Formular <p>Hallo dedlfix,</p> <p>ich meinte keine DB Sicht. Da gibt's die auch, sicher, aber man kann auch innerhalb der Anwendung ein Array mit den benötigten Daten für das UI erzeugen (oder auch was komplexeres, ein ViewModel), und zumindest in meinem Umfeld haben wir das auch eine Sicht genannt.</p> <p>Wenn man es mit einer Generatorfunktion macht, wird der Sichtaspekt noch deutlicher - denn ein DBMS tut ja mit einem VIEW nichts anderes, als ein SELECT-Ergebnis als Table bereitzustellen, damit ich on the fly darauf eine weitere Query anwenden kann.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - obstruxi </div> https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780786#m1780786 dedlfix 2021-01-22T10:12:47Z 2021-01-22T10:12:47Z Versand von Hochkomma in Web-Formular <p>Tach!</p> <blockquote> <blockquote> <p>Eine Sicht erstellt man, indem man vom Datensatz aus dem DBMS eine Kopie erzeugt, dabei aber die nicht benötigten Teile weglässt (sofern man sie nicht gleich beim SELECT ausklammern kann), und im Falle des Beispiels ein Feld hinzufügt, in dem das berechnete Alter abgelegt wird.</p> </blockquote> <p>Auch innerhalb des SELECT – oder?</p> </blockquote> <p>Ja, im Prinzip kann man das Alter auch gleich im SELECT berechnen lassen. Dann erstellt man bereits beim Abfragen eine Sicht/View auf die eigentlich gespeicherten Daten. Andererseits gibt es auch genügend Argumente, das nicht so zu tun. Das Alter ist ja nur ein einfaches Beispiel. Je komplexer die Aufgabenstellung wird, desto umfangreicher wird auch der SELECT-Teil. Eine Möglichkeit ist, die Komplexität in einer aus SQL bekannten VIEW zu verstecken. Damit verlagert man aber Aufgaben ins DBMS und man muss "hier" und "da" berücksichtigen, wenn Änderungen oder Fehlersuche anstehen.</p> <p>Ein Punkt sind auch ORMs. Die machen die 08/15-Datenabfragen meist recht einfach, aber Formeln im SELECT anzuwenden ist oft nur umständlich möglich.</p> <p>Daten kommen heutzutage aber auch aus anderen Quellen, wo man keinen Zugriff oder nur begrenzte Möglichkeiten hat, die SELECT-Klausel oder das dortige Äquivalent dazu zu formulieren. Dann muss man in Nachhinein bei sich im Programmcode die gewünschte Sicht schaffen.</p> <p>Wie auch immer, ob man diesen oder jenen Weg geht, sollte man sowieso besser anhand der individuellen Projektanforderungen entscheiden.</p> <p>dedlfix.</p> https://forum.selfhtml.org/self/2021/jan/21/versand-von-hochkomma-in-web-formular/1780790#m1780790 dedlfix 2021-01-22T10:24:22Z 2021-01-22T10:24:22Z Versand von Hochkomma in Web-Formular <p>Tach!</p> <blockquote> <p>ich meinte keine DB Sicht. Da gibt's die auch, sicher, aber man kann auch innerhalb der Anwendung ein Array mit den benötigten Daten für das UI erzeugen (oder auch was komplexeres, ein ViewModel), und zumindest in meinem Umfeld haben wir das auch eine Sicht genannt.</p> </blockquote> <p>Ja, letzteres und nicht den konkreten Fall SQL-VIEW wollte ich etwas erklären. Mir schien, dass diese Erklärung für Paul 14 nützlich wäre.</p> <p>dedlfix.</p>