php $_GET Groß oder kleinschreibung – SELFHTML-Forum Forum als Ergänzung zum SELFHTML-Wiki und zur Dokumentation SELFHTML https://forum.selfhtml.org/self?srt=yes php $_GET Groß oder kleinschreibung Mon, 19 Aug 19 15:48:52 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756057?srt=yes#m1756057 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756057?srt=yes#m1756057 <p>Tach,</p> <p>ich bin blutiger Anfänger mit PHP und habe eine Frage die mir Google nicht eindeutig erklären konnte.</p> <p>Wenn ich mit PHP $_GET Variablen in einem Script aufnehme kann ich das ganz einfach auswerten wenn ich genau weiß wie die Variable in der URL geschrieben wurde. z.B. $_GET['meinevar'] kommt in der Url meinscript.php?meinevar=1</p> <p>Was mache ich aber wenn der User oder die externe Software die Variable versehentlich so schreibt: meinscript.php?meineVar=1 dann müsste die aufgenommene Variable doch so heißen $_GET['meineVar']</p> <p>Gibt es eine Möglichkeit die Groß und Kleinschreibung für die Bezeichnung der $GET Variablen zu ignorieren?</p> <p>Danke + Gruß Walter</p> php $_GET Groß oder kleinschreibung Mon, 19 Aug 19 16:00:23 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756058?srt=yes#m1756058 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756058?srt=yes#m1756058 <p>Hallo Walter,</p> <p>du könntest Dir mit <a href="https://www.php.net/manual/en/function.array-change-key-case.php" rel="nofollow noopener noreferrer">array_change_key_case</a> eine Kopie des $_GET Superglobal machen:</p> <pre><code class="block language-php"><span class="token variable">$getVars</span> <span class="token operator">=</span> <span class="token function">array_change_key_case</span><span class="token punctuation">(</span><span class="token variable">$_GET</span><span class="token punctuation">,</span> <span class="token constant">CASE_LOWER</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$meineVar</span> <span class="token operator">=</span> <span class="token variable">$_GET</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'meinevar'</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token comment">// ist Blödsinn, danke an TOM</span> <span class="token variable">$meineVar</span> <span class="token operator">=</span> <span class="token variable">$getVars</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'meinevar'</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token comment">// klappt jetzt immer</span> </code></pre> <p>(Code nach Hinweis von Tom editiert)</p> <p>Da Du Dich als Anfänger outest, hier noch der Hinweis auf die kontextgerechte Behandlung. Was Du vom User bekommst, ist stets mit größtem Misstrauen zu behandeln. Wenn Du $meineVar für eine Datenbankabfrage verwenden willst, verwende ein prepared statement oder verwende die entsprechende escape-Funktion des Datenbanktreibers.</p> <p>Wenn Du den Inhalt von $meineVar (oder das, was in der Datenbank gespeichert war) wieder zum Browser senden willst, verwende htmlspecialchars(). Andernfalls werden Dir alle Zeichen, die für den jeweiligen Kontext Sonderzeichen sind, die DB-Abfrage oder die Browser-Ausgabe zerreißen. Bei böswilligem Inhalt auch die Datenbank oder den Computer des Browsers.</p> <p>Eine Alternative zu array_change_key_case wäre auch noch das sequenzielle Durchlaufen von $_GET mit einer foreach-Schleife, aber ich denke, dass array_change_key_case eleganter und schneller ist. Du musst es ja nur einmal aufrufen, auch wenn Du 47 Get-Parameter abholst...</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> php $_GET Groß oder kleinschreibung Mon, 19 Aug 19 16:16:14 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756060?srt=yes#m1756060 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756060?srt=yes#m1756060 <p>Lieber Walter,</p> <blockquote> <p>z.B. $_GET['meinevar'] meinscript.php?meineVar=1</p> </blockquote> <pre><code class="block language-php"><span class="token keyword">foreach</span> <span class="token punctuation">(</span><span class="token variable">$_GET</span> <span class="token keyword">as</span> <span class="token variable">$key</span> <span class="token operator">=></span> <span class="token variable">$value</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">strtolower</span><span class="token punctuation">(</span><span class="token variable">$key</span><span class="token punctuation">)</span> <span class="token operator">==</span> <span class="token string single-quoted-string">'meinevar'</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token comment">// meinevar/meineVar/mEiNeVaR</span> <span class="token function">do_something</span><span class="token punctuation">(</span><span class="token variable">$value</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> </code></pre> <p>Liebe Grüße</p> <p>Felix Riesterer</p> php $_GET Groß oder kleinschreibung Mon, 19 Aug 19 16:19:37 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756062?srt=yes#m1756062 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756062?srt=yes#m1756062 <p>Tach!</p> <blockquote> <p>Gibt es eine Möglichkeit die Groß und Kleinschreibung für die Bezeichnung der $GET Variablen zu ignorieren?</p> </blockquote> <p>Ich würde versuchen, mich nicht darauf einzulassen. Gibt es einen Grund, warum ein User oder eine externe Software sich nicht an deine Vorgaben hält und eine andere Schreibweise verwendet? Oder anders gefragt, ist es notwendig, die falschen Schreibweisen zu berücksichtigen? Ist es zu viel Aufwand, die andere Software so zu ändern, dass sie richtige Requests erzeugt? Dem nächsten gefällt vielleicht die Schreibweise mit dem Binnenmajuskel nicht und schickt dir lieber einen Bindestrich zwischen den Wörtern. Oder er schreibt den Parameternamen auf irgeneine beliebige andere Weise anders. Abweichende Groß- oder Kleinschreibung lässt sich mit der von Rolf genannten Funktion ja noch sehr einfach korrigieren. Aber irgendwann wird dein Korrekturaufwand größer als der Nutzen. Versuch mal lieber, ob du deine Anwender nicht zur Verwendung der richtigen Schreibweise bewegen kannst.</p> <p>dedlfix.</p> php $_GET Groß oder kleinschreibung Mon, 19 Aug 19 16:23:12 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756064?srt=yes#m1756064 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756064?srt=yes#m1756064 <p>(steht inzwischen schon ähnlich da, ich lass es trotzdem mal stehen)</p> <p>Das ist zwar nicht was du hören willst, aber eine andere Sichtweise wäre diese:</p> <blockquote> <p>wenn der User oder die externe Software die Variable versehentlich so schreibt</p> </blockquote> <p>... dann hat sie oder er die Variable falsch geschrieben und es ist sowohl in Ordnung als auch nachvollziehbar wenn dein Programm nicht funktioniert.</p> <p>Mit solchen Versuchen zur Fehlerkorrektur machst du dir nur das Leben schwer.<br> Ich würde bekanntgeben "genau so wird das geschrieben, dann funktioniert es". Fertig.</p> php $_GET Groß oder kleinschreibung Mon, 19 Aug 19 17:32:08 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756072?srt=yes#m1756072 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756072?srt=yes#m1756072 <blockquote> <p>Gibt es eine Möglichkeit die Groß und Kleinschreibung für die Bezeichnung der $GET Variablen zu ignorieren?</p> </blockquote> <p>Wozu soll das gut sein? Gerade GET Parameter sind URL-Bestandteile die sehr leicht zu manipulieren sind. Also Benutzereingaben und gerade die sollten einer umfangreichen Prüfung standhalten. Wozu selbstverständlich auch die richtige Schreibweise gehört. Insbesondere dann wenn es sich um Schlüsselparameter handelt: Die legt nämlich der Programmierer fest, nicht der Anwender.</p> <p>MFG</p> php $_GET Groß oder kleinschreibung Mon, 19 Aug 19 16:10:51 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756059?srt=yes#m1756059 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756059?srt=yes#m1756059 <p>Hello,</p> <blockquote> <p>Hallo Walter,</p> <p>du könntest Dir mit <a href="https://www.php.net/manual/en/function.array-change-key-case.php" rel="nofollow noopener noreferrer">array_change_key_case</a> eine Kopie des $_GET Superglobal machen:</p> <pre><code class="block language-php"><span class="token variable">$getVars</span> <span class="token operator">=</span> <span class="token function">array_change_key_case</span><span class="token punctuation">(</span><span class="token variable">$_GET</span><span class="token punctuation">,</span> <span class="token constant">CASE_LOWER</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$meineVar</span> <span class="token operator">=</span> <span class="token variable">$_GET</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'meinevar'</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token comment">// klappt jetzt immer</span> </code></pre> </blockquote> <p>Du meintest bestimmt:</p> <pre><code class="block language-php"><span class="token variable">$meineVar</span> <span class="token operator">=</span> <span class="token variable">$getVars</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'meinevar'</span><span class="token punctuation">]</span><span class="token punctuation">;</span> </code></pre> <p>Das originale $_GET-Array hast Du doch nicht verändert.</p> <p>Und unnötiges Umkopieren in Einzelvariablen (Skalare) ist iBäh!</p> <p>Glück Auf<br> Tom vom Berg</p> <div class="signature">-- <br> Es gibt nichts Gutes, außer man tut es!<br> Das Leben selbst ist der Sinn. </div> php $_GET Groß oder kleinschreibung Mon, 19 Aug 19 16:17:45 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756061?srt=yes#m1756061 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756061?srt=yes#m1756061 <p>Lieber Rolf,</p> <blockquote> <p>eine Kopie des $_GET Superglobal machen:</p> </blockquote> <p>wozu? <code>strtolower($key)</code> existiert.</p> <p>Liebe Grüße</p> <p>Felix Riesterer</p> php $_GET Groß oder kleinschreibung Mon, 19 Aug 19 17:05:25 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756067?srt=yes#m1756067 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756067?srt=yes#m1756067 <p>Hallo TS,</p> <p>oops, sorry.</p> <p>Ja, umkopieren ist grundsätzlich erstmal Bäh, aber wenn man case-insensitive auf $_GET zugreifen will, muss man entweder umkopieren oder ein foreach laufen lassen. Warum ich umkopieren bevorzuge:</p> <ul> <li>eine PHP Library-Funktion dürfte meines Erachtens schneller sein als ein selbstprogrammierter foreach</li> <li>ein einzelner array_change_key_case() ist weniger Code als eine selbstprogrammierte foreach Schleife</li> <li>wenn man mehr als einen $_GET-Parameter abfragt, hat man mehrere foreach oder schreibt eine Helper-Funktion oder hat im foreach mehrere Abfragen - alles lääästig</li> <li>der Copy-on-Write Mechanismus von PHP dürfte dafür sorgen, dass die GET-Daten nicht umkopiert, sondern nur referenziert werden. D.h. die Speicherkosten sind überschaubar.</li> </ul> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> php $_GET Groß oder kleinschreibung Mon, 19 Aug 19 17:09:09 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756069?srt=yes#m1756069 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756069?srt=yes#m1756069 <p>Hallo dedlfix,</p> <p>dachte ich zuerst auch. Aber ich hatte auch ein bisschen in SO geschmökert, bevor ich antwortete. Da gab es zum einen den Hinweis auf eine Schreibweisenänderung, bei der man rückwärtskompatibel bleinen wollte, und dann beschrieb jemand den Fall, wo die URL beim Seitenaufruf vom Betriebssystem vermatscht wurde.</p> <p><a href="https://stackoverflow.com/questions/4211420/php-case-insensitive-parameters" rel="noopener noreferrer">https://stackoverflow.com/questions/4211420/php-case-insensitive-parameters</a></p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> php $_GET Groß oder kleinschreibung Mon, 19 Aug 19 17:26:25 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756071?srt=yes#m1756071 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756071?srt=yes#m1756071 <p>Hello Rolf,</p> <blockquote> <p>Ja, umkopieren ist grundsätzlich erstmal Bäh,</p> </blockquote> <p>Du hast auch gelesen, dass ich "Umkopieren [von Arrayelementen] in Skalare" geschrieben bzw. gemeint habe?</p> <p>In deinem Beispiel ist das vorherige komplette Kopieren des Arrays in ein "Arbeits-Array" durchaus angemessen. Andere Module des Systems benötigen ja vielleicht noch die Originaldaten.</p> <p>Grundsätzlich sollte man Dedlfixs Einwand aber berücksichtigen, und gar keine Varianzen zulassen. Das reißt nur Löcher in die Sicherheitsstrategien, sollte man welche haben ;-)</p> <p>Und den speziellen Anwendungsfall des OP kennen wir noch nicht, und ob es dafür keine bessere Lösung gibt.</p> <p>Glück Auf<br> Tom vom Berg</p> <div class="signature">-- <br> Es gibt nichts Gutes, außer man tut es!<br> Das Leben selbst ist der Sinn. </div> php $_GET Groß oder kleinschreibung Mon, 19 Aug 19 19:11:19 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756077?srt=yes#m1756077 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756077?srt=yes#m1756077 <p>Hallo zusammen, vielen Dank für die vielen Antworten und die interessante Diskusion. array_change_key_case ist genau was ich gesucht habe. <a href="/users/27" class="mention registered-user" rel="noopener noreferrer">@dedlfix</a>: In meinem Fall ist es tatsächlich so das unterschiedliche Produkte die Variablen unterschiedlich aufrufen können. Die API ist hier nur auf die Namen festgeschrieben, nicht auf die Groß und Kleinschreibung, liegt wohl daran das es aus alter Zeit stammt (ein CGI Programm, wo die Schreibweise egal war) Gruß Walter</p> php $_GET Groß oder kleinschreibung Tue, 20 Aug 19 06:01:46 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756082?srt=yes#m1756082 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756082?srt=yes#m1756082 <blockquote> <p>Hallo zusammen, vielen Dank für die vielen Antworten und die interessante Diskusion. array_change_key_case ist genau was ich gesucht habe. <a href="/users/27" class="mention registered-user" rel="noopener noreferrer">@dedlfix</a>: In meinem Fall ist es tatsächlich so das unterschiedliche Produkte die Variablen unterschiedlich aufrufen können. Die API ist hier nur auf die Namen festgeschrieben, nicht auf die Groß und Kleinschreibung, liegt wohl daran das es aus alter Zeit stammt (ein CGI Programm, wo die Schreibweise egal war) Gruß Walter</p> </blockquote> <p>HTTP Parameter waren noch nie caseinsensitive. Ganz im Gegenteil, die zur CGI/1.1 Spezifikation gehörigen Enctypes application/x-www-form-urlencoded und multipart/form-data sind strict byteorientiert und das waren die shcon immer.</p> <p>MFG</p> php $_GET Groß oder kleinschreibung Tue, 20 Aug 19 08:16:30 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756115?srt=yes#m1756115 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756115?srt=yes#m1756115 <p>Hallo Email,</p> <p>du hast sicher recht, aber wenn er nun mal früher ein CGI hatte, das großzügig war und die Namen case-insensitive abgefragt hat, dann sitzt er jetzt auf der Legacy und braucht er einen Workaround.</p> <p>Wenn ein Schwarm unkoordinierter Clients in der Welt ist, kann man die kaum noch einfangen - es sei denn, man betreibt learning by failing und fragt von heute auf morgen strikt auf die Schreibweise ab, die in der Doku steht (sofern es eine gibt und sofern dort die Schreibweise konsistent ist). Denjenigen, die dann auf die Nase fallen, erklärt man, dass sie sich doch gefälligst ans Handbuch zu halten hätten.</p> <p>Wäre Walter Oracle oder Microsoft, hätte er das ohne Skrupel getan.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> php $_GET Groß oder kleinschreibung Wed, 21 Aug 19 06:37:21 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756197?srt=yes#m1756197 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756197?srt=yes#m1756197 <blockquote> <blockquote> <p>Hallo zusammen, vielen Dank für die vielen Antworten und die interessante Diskusion. array_change_key_case ist genau was ich gesucht habe. <a href="/users/27" class="mention registered-user" rel="noopener noreferrer">@dedlfix</a>: In meinem Fall ist es tatsächlich so das unterschiedliche Produkte die Variablen unterschiedlich aufrufen können. Die API ist hier nur auf die Namen festgeschrieben, nicht auf die Groß und Kleinschreibung, liegt wohl daran das es aus alter Zeit stammt (ein CGI Programm, wo die Schreibweise egal war) Gruß Walter</p> </blockquote> <p>HTTP Parameter waren noch nie caseinsensitive. Ganz im Gegenteil, die zur CGI/1.1 Spezifikation gehörigen Enctypes application/x-www-form-urlencoded und multipart/form-data sind strict byteorientiert und das waren die shcon immer.</p> </blockquote> <p>Ergänzung: Der CGI/1.1 Standard betrachtet Requestheader auch als Parameter. Diese werden allesamt in Großschreibung umgewandelt, HTTP_ACCEPT, HTTP_COOKIES, HTTP_ACCEPT_LANGUAGE usw. wobei aus Bindestrichen Unterstriche werden. Alle Header finden sich lt. CGI/1.1 in der Serverumgebung, in PHP ist das ein Array wo Großkleinschreibung selbstverständlich gilt.</p> <p>MFG</p> php $_GET Groß oder kleinschreibung Tue, 20 Aug 19 09:41:49 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756124?srt=yes#m1756124 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756124?srt=yes#m1756124 <blockquote> <p>aber wenn er nun mal früher ein CGI hatte, das großzügig war und die Namen case-insensitive abgefragt hat, dann sitzt er jetzt auf der Legacy und braucht er einen Workaround.</p> </blockquote> <p>Das hätte ich gerne mal gewusst wo dieser Blödsinn herkommt. Und nein einen Workaround gibt es nicht. MFG</p> php $_GET Groß oder kleinschreibung Tue, 20 Aug 19 09:49:45 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756127?srt=yes#m1756127 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756127?srt=yes#m1756127 <p>Hallo,</p> <blockquote> <p>Das hätte ich gerne mal gewusst wo dieser Blödsinn herkommt. Und nein einen Workaround gibt es nicht. MFG</p> </blockquote> <p>Da hätte ich gerne mal gewusst wo dieser Blödsinn herkommt, dass du meinst, einen Workaround gäbe es nicht.</p> <p>Gruß<br> Kalk</p> php $_GET Groß oder kleinschreibung Tue, 20 Aug 19 10:01:40 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756129?srt=yes#m1756129 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756129?srt=yes#m1756129 <p>Du kannst Dir gerne weitere Enctypes ausdenken. Hast Du das schonmal gemacht? Gründe dafür gibt es. Aber es gab noch nie einen Grund, Parameter caseintensitive zu machen, das sehe ich nicht einmal als Workaround sondern einfach nur als Pfusch. MFG</p> php $_GET Groß oder kleinschreibung Tue, 20 Aug 19 10:32:28 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756134?srt=yes#m1756134 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756134?srt=yes#m1756134 <p>Hallo Email,</p> <blockquote> <p>einfach nur Pfusch.</p> </blockquote> <p>Ob das damals, als es erstmalig gebaut wurde, Pfusch war oder eine eklige Notwendigkeit, können wir durch unser kleines Guckloch in die Vergangenheit schlecht beurteilen.</p> <p>Aber egal was der Grund war, das „Feature“ ist nun vorhanden und wird von Clients verwendet. Deshalb ist es schwer weg zu bekommen. Je nach dem, wie wichtig die Verfügbarkeit dieses Dienstes ist, kann man sich für Pragmatismus (=case insensitivity übernehmen) oder Radikalität (strikt eingehaltene Schnittstelle und Absturz der Clients, die sich nicht dran halten) entscheiden.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> Parameter caseinsensitive Tue, 20 Aug 19 17:14:00 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756181?srt=yes#m1756181 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756181?srt=yes#m1756181 <blockquote> <p>es gab noch nie einen Grund, Parameter caseinsensitive zu machen</p> </blockquote> <p>Vielleicht lief die ganze Chose mal auf einem IIS oder WAMPP und hat auf <code>q=FooMatic</code> reagiert indem eine Datei 'foomatic.txt', 'FOOMATIC.TXT' oder 'FooMatic.txt' geöffnet wurde. Was halt da war.</p> php $_GET Groß oder kleinschreibung Tue, 20 Aug 19 20:38:15 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756184?srt=yes#m1756184 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756184?srt=yes#m1756184 <p>Lieber Rolf Rost,</p> <blockquote> <p>es gab noch nie einen Grund, Parameter caseintensitive zu machen, das sehe ich nicht einmal als Workaround sondern einfach nur als Pfusch.</p> </blockquote> <p>bist Du Dir sicher, dass alle Proxyserver damit keinen Pfusch machen?</p> <p>Liebe Grüße</p> <p>Felix Riesterer</p> php $_GET Groß oder kleinschreibung Tue, 20 Aug 19 11:24:28 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756140?srt=yes#m1756140 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756140?srt=yes#m1756140 <blockquote> <blockquote> <p>einfach nur Pfusch.</p> </blockquote> <p>Ob das damals, als es erstmalig gebaut wurde, Pfusch war oder eine eklige Notwendigkeit, können wir durch unser kleines Guckloch in die Vergangenheit schlecht beurteilen.</p> </blockquote> <p>Das kannst Du beurteilen wie Du möchtest. Aus meiner Sicht ist es Pfusch, weil die Geschäftslogik über Schlüsselparameter abgebildet wird und damit im Code festgeschrieben ist. An dieser Stelle caseinsensitiv zu arbeiten ist gober Unfug. MFG</p> php $_GET Groß oder kleinschreibung Tue, 20 Aug 19 11:29:27 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756142?srt=yes#m1756142 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756142?srt=yes#m1756142 <p>Hallo Email,</p> <blockquote> <blockquote> <blockquote> <p>einfach nur Pfusch.</p> </blockquote> <p>Ob das damals, als es erstmalig gebaut wurde, Pfusch war oder eine eklige Notwendigkeit, können wir durch unser kleines Guckloch in die Vergangenheit schlecht beurteilen.</p> </blockquote> <p>Das kannst Du beurteilen wie Du möchtest. Aus meiner Sicht ist es Pfusch, weil die Geschäftslogik über Schlüsselparameter abgebildet wird und damit im Code festgeschrieben ist. An dieser Stelle caseinsensitiv zu arbeiten ist gober Unfug. MFG</p> </blockquote> <p>Inwiefern bildest du die Geschäftslogik in Parametern ab, wenn du Parameter Case-Insensitive machst?</p> <p>Dein Argument ist nicht schlüssig.</p> <p>LG,<br> CK</p> <div class="signature">-- <br> <a href="https://wwwtech.de/about" rel="noopener noreferrer">https://wwwtech.de/about</a> </div> php $_GET Groß oder kleinschreibung Tue, 20 Aug 19 11:36:47 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756144?srt=yes#m1756144 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756144?srt=yes#m1756144 <blockquote> <p>Inwiefern bildest du die Geschäftslogik in Parametern ab, wenn du Parameter Case-Insensitive machst?</p> </blockquote> <p>Die Frage ergibt keinen Sinn. Die Geschäftslogik wird über Schlüsselparameter abgebildet und die legt der Programmierer fest. Und zwar casesensitive, MFG</p> php $_GET Groß oder kleinschreibung Tue, 20 Aug 19 11:38:58 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756145?srt=yes#m1756145 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756145?srt=yes#m1756145 <p>Hallo Email,</p> <blockquote> <blockquote> <p>Inwiefern bildest du die Geschäftslogik in Parametern ab, wenn du Parameter Case-Insensitive machst?</p> </blockquote> <p>Die Frage ergibt keinen Sinn.</p> </blockquote> <p>Das mag daran liegen, dass deine Argumentation keinen Sinn ergibt.</p> <blockquote> <p>Die Geschäftslogik wird über Schlüsselparameter abgebildet und die legt der Programmierer fest. Und zwar casesensitive, MFG</p> </blockquote> <p>Warum sollte es einen Unterschied machen, ob ich Parameter Case-Sensitive betrachte oder nicht? Warum sollte das eine „die Geschäftslogik über Schlüsselparameter abbilden“ (deine Wortwahl), aber das andere nicht?</p> <p>Deine Argumentation ist nicht schlüssig.</p> <p>LG,<br> CK</p> <div class="signature">-- <br> <a href="https://wwwtech.de/about" rel="noopener noreferrer">https://wwwtech.de/about</a> </div> php $_GET Groß oder kleinschreibung Tue, 20 Aug 19 11:48:09 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756146?srt=yes#m1756146 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756146?srt=yes#m1756146 <blockquote> <p>Warum sollte es einen Unterschied machen, ob ich Parameter Case-Sensitive betrachte oder nicht?</p> </blockquote> <p>Darum:</p> <pre><code class="block language-perl"><span class="token keyword">if</span><span class="token punctuation">(</span> <span class="token variable">$self</span><span class="token operator">-></span>param<span class="token punctuation">(</span><span class="token string">'edit'</span><span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token keyword">elsif</span><span class="token punctuation">(</span> <span class="token variable">$self</span><span class="token operator">-></span>param<span class="token punctuation">(</span><span class="token string">'show'</span><span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token keyword">else</span><span class="token punctuation">{</span> <span class="token keyword">die</span> <span class="token string">"Unbekannter Parameter\n"</span> <span class="token punctuation">}</span> </code></pre> <p>Schlüsselparameter, fest codiert.</p> php $_GET Groß oder kleinschreibung Tue, 20 Aug 19 11:49:35 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756147?srt=yes#m1756147 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756147?srt=yes#m1756147 <p>Tach!</p> <blockquote> <blockquote> <p>Warum sollte es einen Unterschied machen, ob ich Parameter Case-Sensitive betrachte oder nicht?</p> </blockquote> <p>Darum:</p> <pre><code class="block language-perl"><span class="token keyword">if</span><span class="token punctuation">(</span> <span class="token variable">$self</span><span class="token operator">-></span>param<span class="token punctuation">(</span><span class="token string">'edit'</span><span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token keyword">elsif</span><span class="token punctuation">(</span> <span class="token variable">$self</span><span class="token operator">-></span>param<span class="token punctuation">(</span><span class="token string">'show'</span><span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token keyword">else</span><span class="token punctuation">{</span> <span class="token keyword">die</span> <span class="token string">"Unbekannter Parameter\n"</span> <span class="token punctuation">}</span> </code></pre> <p>Schlüsselparameter, fest codiert.</p> </blockquote> <p>Das ist dein Problem, wenn du das so tust, und keine allgmeine Gesetzmäßigkeit, so wie du das darzustellen versuchst.</p> <p>dedlfix.</p> php $_GET Groß oder kleinschreibung Tue, 20 Aug 19 11:49:38 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756148?srt=yes#m1756148 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756148?srt=yes#m1756148 <p>Hallo Email,</p> <blockquote> <blockquote> <p>Warum sollte es einen Unterschied machen, ob ich Parameter Case-Sensitive betrachte oder nicht?</p> </blockquote> <p>Darum:</p> <pre><code class="block language-perl"><span class="token keyword">if</span><span class="token punctuation">(</span> <span class="token variable">$self</span><span class="token operator">-></span>param<span class="token punctuation">(</span><span class="token string">'edit'</span><span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token keyword">elsif</span><span class="token punctuation">(</span> <span class="token variable">$self</span><span class="token operator">-></span>param<span class="token punctuation">(</span><span class="token string">'show'</span><span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token keyword">else</span><span class="token punctuation">{</span> <span class="token keyword">die</span> <span class="token string">"Unbekannter Parameter\n"</span> <span class="token punctuation">}</span> </code></pre> <p>Schlüsselparameter, fest codiert.</p> </blockquote> <p>Implementierungsdetail.</p> <pre><code class="block language-perl"><span class="token keyword">sub</span> <span class="token function">param</span> <span class="token punctuation">{</span> <span class="token keyword">my</span> <span class="token variable">$key</span> <span class="token operator">=</span> shift<span class="token punctuation">;</span> <span class="token keyword">return</span> <span class="token variable">%data</span><span class="token punctuation">{</span>lc <span class="token variable">$key</span><span class="token punctuation">}</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> <p>LG,<br> CK</p> <div class="signature">-- <br> <a href="https://wwwtech.de/about" rel="noopener noreferrer">https://wwwtech.de/about</a> </div> php $_GET Groß oder kleinschreibung Tue, 20 Aug 19 11:51:50 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756149?srt=yes#m1756149 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756149?srt=yes#m1756149 <p>Tach!</p> <blockquote> <blockquote> <blockquote> <p>Warum sollte es einen Unterschied machen, ob ich Parameter Case-Sensitive betrachte oder nicht?</p> </blockquote> <p>Darum:</p> <pre><code class="block language-perl"><span class="token keyword">if</span><span class="token punctuation">(</span> <span class="token variable">$self</span><span class="token operator">-></span>param<span class="token punctuation">(</span><span class="token string">'edit'</span><span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token keyword">elsif</span><span class="token punctuation">(</span> <span class="token variable">$self</span><span class="token operator">-></span>param<span class="token punctuation">(</span><span class="token string">'show'</span><span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token keyword">else</span><span class="token punctuation">{</span> <span class="token keyword">die</span> <span class="token string">"Unbekannter Parameter\n"</span> <span class="token punctuation">}</span> </code></pre> <p>Schlüsselparameter, fest codiert.</p> </blockquote> <p>Das ist dein Problem, wenn du das so tust, und keine allgmeine Gesetzmäßigkeit, so wie du das darzustellen versuchst.</p> </blockquote> <p>Wie willst Du denn sonst die Logik über HTTP schleifen wenn nicht über Parameter?</p> <p>Da bin ich mal gespannt auf Deine Antwort. MFG</p> php $_GET Groß oder kleinschreibung Tue, 20 Aug 19 12:17:40 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756156?srt=yes#m1756156 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756156?srt=yes#m1756156 <p>Hallo Christian,</p> <p>du verstehst das nicht. Es ist in seinem Framework so drin und darum unbedingt richtig so.</p> <p>Und er hat ja auch nicht völlig unrecht. Die einschlägigen RfCs (z.B. <a href="https://tools.ietf.org/html/rfc3986#section-6.2.3" rel="nofollow noopener noreferrer">https://tools.ietf.org/html/rfc3986#section-6.2.3</a>) sagen klar, dass man nur Schema und Host normalisieren muss und den Rest nicht sollte. Meint: Schema und Host sind case-insensitive gedacht, und der Rest ist per Default case-sensitive gedacht.</p> <p>Wie Mike Kagansky (dessen Qualifikation ich nicht einordnen kann) <a href="https://stackoverflow.com/questions/15641694/are-uris-case-insensitive" rel="noopener noreferrer">hier</a> vor 3 Jahren schrieb, gelten die entsprechenden RfCs für die Clients, nicht für die Server, und er schließt daraus, dass ein Client keine Annahmen treffen darf, wie ein Server seine URIs interpretiert. Der Server ist dagegen frei darin, in seiner Interpretation großzügig zu sein. Das entspricht auch generell der Internet-Philosophie: Sei strikt in dem, was Du erzeugst, und großzügig in dem, was Du verstehst.</p> <p>Insofern ist ein Server, der Query-Parameter case-insensitive prüft, im Recht. Er muss es nicht tun, aber er darf es. Die Clients dürfen allerdings nicht davon ausgehen, dass er das tut. Wenn sie es tun, gehen sie kaputt, sobald jemand den Server austauscht.</p> <p>Und das ist hier der Punkt. Das alte CGI des OP war case-insensitive und hatte Clients, die mit unterschiedlicher Schreibung unterwegs sind. Der OP hat den Wunsch, diese Clients nicht abzuschießen und möchte darum weiter case-insensitive bleiben. Dazu ist er nicht verpflichtet, aber kein RfC verbietet es. Also darf er es tun.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> php $_GET Groß oder kleinschreibung Tue, 20 Aug 19 12:04:02 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756152?srt=yes#m1756152 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756152?srt=yes#m1756152 <p>Tach!</p> <blockquote> <p>Wie willst Du denn sonst die Logik über HTTP schleifen wenn nicht über Parameter?</p> <p>Da bin ich mal gespannt auf Deine Antwort.</p> </blockquote> <p>Deine Betrachtungsweise mit den von dir so genannten Schlüsselparametern ist nicht die einzige. Die Art und Weise, wie man aus der URL den auszuführenden Programmteil bestimmt, steht und fällt jedenfalls nicht mit der Schreibweise. Ansonsten kannst du dir gern meine beiden hauptsächlich verwendeten Frameworks anschauen, wie das dort gelöst ist: <a href="https://docs.microsoft.com/en-us/aspnet/core/mvc/overview" rel="nofollow noopener noreferrer">ASP.NET MVC</a> und <a href="https://angular.io/docs" rel="nofollow noopener noreferrer">Angular</a>. Die von dir gewünschten Teile befinden sich unter "Routing".</p> <p>dedlfix.</p> php $_GET Groß oder kleinschreibung Tue, 20 Aug 19 13:20:13 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756164?srt=yes#m1756164 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756164?srt=yes#m1756164 <p>Tach!</p> <blockquote> <blockquote> <p>Wie willst Du denn sonst die Logik über HTTP schleifen wenn nicht über Parameter?</p> <p>Da bin ich mal gespannt auf Deine Antwort.</p> </blockquote> <p>Deine Betrachtungsweise mit den von dir so genannten Schlüsselparametern ist nicht die einzige. Die Art und Weise, wie man aus der URL den auszuführenden Programmteil bestimmt, steht und fällt jedenfalls nicht mit der Schreibweise.</p> </blockquote> <p>Sauberer Code und insbesondere Teamarbeit steht und fällt mit der Schreibweise. Sogar mit der Einrückung. Wenn jeder Kollege die Parameter anders schreibt, ist das ein Chaos. Dass man es machen kann ist hier nicht die Frage. Und auch nicht das Wie.</p> <p>MFG</p> php $_GET Groß oder kleinschreibung Tue, 20 Aug 19 12:23:59 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756157?srt=yes#m1756157 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756157?srt=yes#m1756157 <p>Hallo Rolf,</p> <blockquote> <p>du verstehst das nicht. Es ist in seinem Framework so drin und darum unbedingt richtig so.</p> </blockquote> <p>Schon klar. Genau diese Denke wollte ich ja in Frage stellen.</p> <blockquote> <p>Und er hat ja auch nicht völlig unrecht. Die einschlägigen RfCs (z.B. <a href="https://tools.ietf.org/html/rfc3986#section-6.2.3" rel="nofollow noopener noreferrer">https://tools.ietf.org/html/rfc3986#section-6.2.3</a>) sagen klar, dass man nur Schema und Host normalisieren muss und den Rest nicht sollte. Meint: Schema und Host sind case-insensitive gedacht, und der Rest ist per Default case-sensitive gedacht.</p> </blockquote> <p>Wenn du den folgenden Absatz nicht ergänzt hättest, hätte ich dir hier vehement widersprechen müssen </p> <blockquote> <p>Wie Mike Kagansky (dessen Qualifikation ich nicht einordnen kann) <a href="https://stackoverflow.com/questions/15641694/are-uris-case-insensitive" rel="noopener noreferrer">hier</a> vor 3 Jahren schrieb, gelten die entsprechenden RfCs für die Clients, nicht für die Server, und er schließt daraus, dass ein Client keine Annahmen treffen darf, wie ein Server seine URIs interpretiert. Der Server ist dagegen frei darin, in seiner Interpretation großzügig zu sein. Das entspricht auch generell der Internet-Philosophie: Sei strikt in dem, was Du erzeugst, und großzügig in dem, was Du verstehst.</p> </blockquote> <p>Ja. Aber mir ging es in dem Fall gar nicht um den Standard (wobei ich die Auslegung von Mike Kagansky teile), sondern um die Aussage „case-sensitive bildet die Geschäftslogik ab, case-insensitive tut das nicht.“ Denn mir will tatsächlich einfach nicht in den Kopf, warum das so sein sollte. Und auch, warum das „Pfusch“ sein sollte ist mir schleierhaft.</p> <p>Ob man das schön findet, das ist eine andere Frage. Ich persönlich empfinde es auch als hübscher, wenn man Parameter case-sensitive auswertet, aber das ist ein reines Geschmacksurteil und mir käme nicht in den Sinn, jemanden als Pfuscher zu bezeichnen, wenn er case-insensitive arbeitet.</p> <p>LG,<br> CK</p> <div class="signature">-- <br> <a href="https://wwwtech.de/about" rel="noopener noreferrer">https://wwwtech.de/about</a> </div> php $_GET Groß oder kleinschreibung Tue, 20 Aug 19 12:37:53 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756159?srt=yes#m1756159 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756159?srt=yes#m1756159 <p>Hallo Christian,</p> <p>dass das Auslesen von Parametern aus dem HTTP Request Geschäftslogik ist, würde ich auch bestreiten. Es ist technische Infrastruktur, wie auch das Routing des Requests zur passenden Implementierung.</p> <p>Es kann Teil der Geschäftslogik sein, case-sensitive zu prüfen. Wenn die Geschäftslogik sich mit Schreibweisen beschäftigt. Ich meine jedoch, dass das in den meisten Fällen nicht der Fall ist und case-sensitivity in der <strong>Geschäfts</strong>logik irrelvant ist oder sogar stört.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> php $_GET Groß oder kleinschreibung Tue, 20 Aug 19 12:39:08 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756160?srt=yes#m1756160 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756160?srt=yes#m1756160 <p>Hallo Rolf,</p> <blockquote> <p>dass das Auslesen von Parametern aus dem HTTP Request Geschäftslogik ist, würde ich auch bestreiten. Es ist technische Infrastruktur, wie auch das Routing des Requests zur passenden Implementierung.</p> </blockquote> <p> ja, das denke ich auch. Aber das Fass wollte ich gar nicht erst aufmachen…</p> <p>LG,<br> CK</p> <div class="signature">-- <br> <a href="https://wwwtech.de/about" rel="noopener noreferrer">https://wwwtech.de/about</a> </div> php $_GET Groß oder kleinschreibung Tue, 20 Aug 19 14:29:30 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756167?srt=yes#m1756167 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756167?srt=yes#m1756167 <p>Hallo Email,</p> <blockquote> <p>Sauberer Code und insbesondere Teamarbeit steht und fällt mit der Schreibweise. Sogar mit der Einrückung.</p> </blockquote> <p>Ja. Ja! <em>Jaa!</em> - kein Zweifel daran.</p> <p>Einheitliche Schreibweise der URL-Parameter ist good practice, niemand widerspricht Dir darin.</p> <blockquote> <p>Wenn jeder Kollege die Parameter anders schreibt, ist das ein Chaos.</p> </blockquote> <p>Auch darin nicht.</p> <p>Wir widersprechen Dir zum einen darin, dass das Business Logik ist. Nein, es ist technische Infrastruktur.</p> <p>Ich widerspreche Dir zum anderen darin, dass es für den OP der beste Weg ist, diese good practice unverzüglich zu implementieren. Das Legacy-Chaos ist beim OP bereits eingetreten. Er hat einen Schwarm divergierender Clients. Niemand weiß, wieviel Aufwand eine Sanierung bedeutet. Wäre sie gut möglich, hätte der OP vermutlich nicht gefragt.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> php $_GET Groß oder kleinschreibung Wed, 21 Aug 19 05:08:17 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756190?srt=yes#m1756190 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756190?srt=yes#m1756190 <p>Hallo Felix Riesterer,</p> <blockquote> <p>bist Du Dir sicher, dass alle Proxyserver damit keinen Pfusch machen?</p> </blockquote> <p>Bist du dir sicher, dass kein Proxiserver damit Pfusch macht? </p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Pantoffeltierchen haben keine Hobbys.<br> ¯\_(ツ)_/¯ </div> php $_GET Groß oder kleinschreibung Wed, 21 Aug 19 06:50:16 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756198?srt=yes#m1756198 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756198?srt=yes#m1756198 <p>Tach!</p> <blockquote> <p>Ergänzung: Der CGI/1.1 Standard betrachtet Requestheader auch als Parameter. Diese werden allesamt in Großschreibung umgewandelt, [...] Alle Header finden sich lt. CGI/1.1 in der Serverumgebung, in PHP ist das ein Array [...]</p> </blockquote> <p>Das stimmt so nicht. Nur eine ausgewählte Menge an Request-Headern ist in CGI spezifiziert. Auch landet der Rest unter PHP nicht in $_SERVER.</p> <blockquote> <p>ist das ein Array wo Großkleinschreibung selbstverständlich gilt.</p> </blockquote> <p>Das gilt in PHP für jedes Array. Und man kann <code>array_change_key_case()</code> auch auf dieses Array anwenden, wenn man mag. Das ist also auch kein Argument, zwingend eine bestimmte Schreibweise einhalten zu müssen.</p> <p>dedlfix.</p> php $_GET Groß oder kleinschreibung Wed, 21 Aug 19 07:18:12 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756203?srt=yes#m1756203 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756203?srt=yes#m1756203 <p>Hallo Emaipl,</p> <p>Ergänzung: RfC2616 legt fest, dass Header-Namen ein <strong>token</strong> und case-insensitive sind. Token bedeutet ein bytecodiertes ASCII ZEichen aus dem Code-Intervall [33,126] abzüglich der folgenden Zeichen: ()<>[]{}@,;:=?/\ und doppeltes Anführungszeichen.</p> <p>Deswegen darf der CGI-Standard definieren, dass sie für CGI-Anwendungen in Großschrift umgewandelt werden. Die Umwandlung von - in _ könnte problematisch sein, weil im RfC beide Zeichen grundsätzlich in dem Token, das den Headername bildet, erlaubt sind, ist es aber nicht, weil alle Headernamen nur das - verwenden.</p> <p>Quelle: <a href="https://tools.ietf.org/html/rfc2616#section-4.2" rel="nofollow noopener noreferrer">https://tools.ietf.org/html/rfc2616#section-4.2</a> - in 2014 durch 723x RfCs überlagert, aber da CGI älter ist, dürften diese grundsätzlichen Dinge noch gelten. Ich hatte jetzt keine Lust, einen Schwarm Update-RfCs zu studieren.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> php $_GET Groß oder kleinschreibung Wed, 21 Aug 19 07:37:25 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756208?srt=yes#m1756208 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756208?srt=yes#m1756208 <p>Tach!</p> <blockquote> <p>Ergänzung: Der CGI/1.1 Standard betrachtet Requestheader auch als Parameter. Diese werden allesamt in Großschreibung umgewandelt, HTTP_ACCEPT, HTTP_COOKIES, HTTP_ACCEPT_LANGUAGE usw. wobei aus Bindestrichen Unterstriche werden. Alle Header finden sich lt. CGI/1.1 in der Serverumgebung, in PHP ist das ein Array wo Großkleinschreibung selbstverständlich gilt.</p> </blockquote> <p>Ein vorangestelltes <code>HTTP_</code> ist der entscheidende Punkt, den du nicht erwähnt hast. Lediglich die Umwandlung in Großschreibung. Mit dem <code>HTTP_</code> finden sich dann doch die Header in $_SERVER.</p> <p>dedlfix.</p> php $_GET Groß oder kleinschreibung Wed, 21 Aug 19 07:13:09 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756201?srt=yes#m1756201 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756201?srt=yes#m1756201 <p>Tach!</p> <blockquote> <blockquote> <p>Ergänzung: Der CGI/1.1 Standard betrachtet Requestheader auch als Parameter. Diese werden allesamt in Großschreibung umgewandelt, [...] Alle Header finden sich lt. CGI/1.1 in der Serverumgebung, in PHP ist das ein Array [...]</p> </blockquote> <p>Das stimmt so nicht. Nur eine ausgewählte Menge an Request-Headern ist in CGI spezifiziert.</p> </blockquote> <p>Serverkonfiguration! Ich hatte schon Server die zeigten das Passwort eines REMOTE_USER in Klartext -- Mit Sicherheit kein Standard.</p> <p>MFG</p> php $_GET Groß oder kleinschreibung Wed, 21 Aug 19 07:29:16 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756206?srt=yes#m1756206 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756206?srt=yes#m1756206 <p>Tach!</p> <blockquote> <blockquote> <blockquote> <p>Ergänzung: Der CGI/1.1 Standard betrachtet Requestheader auch als Parameter. Diese werden allesamt in Großschreibung umgewandelt, [...] Alle Header finden sich lt. CGI/1.1 in der Serverumgebung, in PHP ist das ein Array [...]</p> </blockquote> <p>Das stimmt so nicht. Nur eine ausgewählte Menge an Request-Headern ist in CGI spezifiziert.</p> </blockquote> <p>Serverkonfiguration!</p> </blockquote> <p>Deine hingeworfenen Stichwörter machen für mich nicht verständlich, was du auszudrücken versuchst. Die Serverkonfiguration legt fest, was im CGI-Standard definiert ist?</p> <p>Aber selbst wenn die Serverkonfiguration festlegt, was (unabhängig von der Erwähnung im CGI-Standard) via CGI oder anderen Schnittstellen zum Programm durchgereicht wird, stimmt die Aussage nicht. Um alle Header zu bekommen, unabhängig von dem, was PHP aus CGI oder anderen Quellen zuzüglich eigener Ergänzungen im Array $_SERVER auswählt, muss man <a href="https://www.php.net/manual/en/function.apache_request_headers.php" rel="nofollow noopener noreferrer">apache_request_headers()</a> nehmen, um an alle Header zu kommen.</p> <p>dedlfix.</p> php $_GET Groß oder kleinschreibung Wed, 21 Aug 19 07:26:38 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756205?srt=yes#m1756205 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756205?srt=yes#m1756205 <blockquote> <p>Hallo Emaipl,</p> <p>Ergänzung: RfC2616 legt fest, dass Header-Namen ein <strong>token</strong> und case-insensitive sind. Token bedeutet ein bytecodiertes ASCII ZEichen aus dem Code-Intervall [33,126] abzüglich der folgenden Zeichen: ()<>[]{}@,;:=?/\ und doppeltes Anführungszeichen.</p> <p>Deswegen darf der CGI-Standard definieren, dass sie für CGI-Anwendungen in Großschrift umgewandelt werden. Die Umwandlung von - in _ könnte problematisch sein, weil im RfC beide Zeichen grundsätzlich in dem Token, das den Headername bildet, erlaubt sind, ist es aber nicht, weil alle Headernamen nur das - verwenden.</p> <p>Quelle: <a href="https://tools.ietf.org/html/rfc2616#section-4.2" rel="nofollow noopener noreferrer">https://tools.ietf.org/html/rfc2616#section-4.2</a> - in 2014 durch 723x RfCs überlagert, aber da CGI älter ist, dürften diese grundsätzlichen Dinge noch gelten. Ich hatte jetzt keine Lust, einen Schwarm Update-RfCs zu studieren.</p> </blockquote> <p>Aber schön daß Du es hier ergänzt hast!</p> <p>Und jetzt können wir mal darüber nachdenken was für einen Sinn es machen würde, wenn ein Client einen Customheader <code>x-hr</code> sendet, der Server das nach <code>HTTP_X_HR</code> umwandelt (das macht er sowieso) und ein Programmierer das unbedingt als <code>X-hR</code> sowie ein anderer Programmierer das als <code>x_Hr</code> abgefragt haben möchte.</p> <p>MFG</p> php $_GET Groß oder kleinschreibung Wed, 21 Aug 19 07:48:43 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756212?srt=yes#m1756212 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756212?srt=yes#m1756212 <p>Hallo Email,</p> <blockquote> <p>der eine - der andere - x-Hr - X_Hr</p> </blockquote> <p>Es ging um die Clients. Der eine schickt 'Content-Type', der andere 'content-type', der dritte vielleicht 'CONTENT_TYPE'. Weil Header case-insensitive sind, weiß jeder Programmierer, dass er das case-insensitive abfragen <strong>muss</strong>. CGI erleichert das durch Konvertierung in Großschrift und verzeiht durch Wandlung von - in _ auch noch einen weiteren Fehler.</p> <p>Walter möchte auch Fehler verzeihen. Er hat undisziplizierte Clients, die userId, UserID oder userid als Query-Parameter schicken, und <strong>will</strong> deshalb die Query-Parameternamen ebenfalls case-insensitive prüfen.</p> <p>Dahammas doch. CGI ist das Vorbild für Walters gewünschtes Vorgehen. War doch gar nicht so schwer, die Logik in seiner Idee zu entdecken </p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> php $_GET Groß oder kleinschreibung Wed, 21 Aug 19 15:39:31 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756258?srt=yes#m1756258 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756258?srt=yes#m1756258 <p>Tach!</p> <blockquote> <blockquote> <blockquote> <blockquote> <p>Ergänzung: Der CGI/1.1 Standard betrachtet Requestheader auch als Parameter. Diese werden allesamt in Großschreibung umgewandelt, [...] Alle Header finden sich lt. CGI/1.1 in der Serverumgebung, in PHP ist das ein Array [...]</p> </blockquote> <p>Das stimmt so nicht. Nur eine ausgewählte Menge an Request-Headern ist in CGI spezifiziert.</p> </blockquote> <p>Serverkonfiguration!</p> </blockquote> <p>Deine hingeworfenen Stichwörter machen für mich nicht verständlich, was du auszudrücken versuchst. Die Serverkonfiguration legt fest, was im CGI-Standard definiert ist?</p> </blockquote> <p>Die Serverkonfiguration ist eine Duchführungsbestimmung zur Umsetzung von Standards.</p> <p>MFG</p> php $_GET Groß oder kleinschreibung Wed, 21 Aug 19 08:31:23 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756220?srt=yes#m1756220 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756220?srt=yes#m1756220 <p><strong>Eine</strong> Umwandlung ergibt einen logischen Sinn. Deswegen ja mein Hinweis auf den Standard bezüglich der Header wo diese eine Umwandlung standardmäßig stattfindet. Schließlich haben Anwender keinen bzw. nur begrenzten Einfluß darauf, welche Schreibweise ein Browser beim Senden der Requestheader verwendet. So findet sich die vom Anwender bevorzugte Sprache stets in HTTP_ACCEPT_LANGUAGE.</p> <p>Parameter (Enctypes application/x-www-form-urlencoded und multipart/form-data) jedoch werden vom Browser nicht namentlich verändert. Die legt der Programmierer/Designer fest und so wie er die ins Programm bzw. HTML <code><input name="ort" /></code> schreibt, werden die auch gesendet.</p> <p>MFG</p> php $_GET Groß oder kleinschreibung Wed, 21 Aug 19 09:09:46 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756224?srt=yes#m1756224 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756224?srt=yes#m1756224 <p>Tach!</p> <blockquote> <p><strong>Eine</strong> Umwandlung ergibt einen logischen Sinn. Deswegen ja mein Hinweis auf den Standard bezüglich der Header wo diese eine Umwandlung standardmäßig stattfindet.</p> </blockquote> <p>Der vorliegende Fall betraf den Querystring und nicht die HTTP-Header. Angenommen, dein "eine Umwandlung"-Argument ergäbe einen Sinn, dann ist diese eine Umwandlung der Aufruf der Funktion <code>array_change_key_case()</code>. Server und PHP haben ansonsten nichts am Querystrig geändert - abgesehen von der Zerlegung für <code>$_GET</code>.</p> <p>Ansonsten ist es in meinen Augen im Prinzip völlig irrelevant, wie oft und welche Änderungen stattfinden, damit das Programm am Ende sein Ziel erreichen kann. Es ist lediglich Aufwand. Das Argument, möglichst keine alternativen Schreibweisen zuzulassen, dient vorwiegend dafür, diesen Aufwand kleinzuhalten.</p> <p>dedlfix.</p> php $_GET Groß oder kleinschreibung Wed, 21 Aug 19 12:09:43 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756238?srt=yes#m1756238 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756238?srt=yes#m1756238 <p>hi <a href="/users/6547" class="mention registered-user" rel="noopener noreferrer">@Rolf B</a></p> <blockquote> <p><strong>Eine</strong> Umwandlung ergibt einen logischen Sinn. Deswegen ja mein Hinweis auf den Standard bezüglich der Header wo diese eine Umwandlung standardmäßig stattfindet. Schließlich haben Anwender keinen bzw. nur begrenzten Einfluß darauf, welche Schreibweise ein Browser beim Senden der Requestheader verwendet. So findet sich die vom Anwender bevorzugte Sprache stets in HTTP_ACCEPT_LANGUAGE.</p> <p>Parameter (Enctypes application/x-www-form-urlencoded und multipart/form-data) jedoch werden vom Browser nicht namentlich verändert. Die legt der Programmierer/Designer fest und so wie er die ins Programm bzw. HTML <code><input name="ort" /></code> schreibt, werden die auch gesendet.</p> </blockquote> <p>PS: Ich habe gerade eine etwas umfangreichere Klasse am Wickel, mein Forum. Als Kompaktklasse (ich nenne diese Bauform so) befinden sich Code (ca 300 Zeilen) und das HTML-Template (ca 100 Zeilen) in einer Datei, natürlich sauber voneinander getrennt.</p> <p>Der Controller kontrolliert eine Handvoll Parameter: edit, update, rmthread, rmsub, show und putmesg. Wobei die ersten 4 an das intern konfigurierte admin-Attribut gebunden sind, z.B.:</p> <pre><code class="block language-perl"><span class="token keyword">elsif</span><span class="token punctuation">(</span><span class="token variable">$self</span><span class="token operator">-></span>param<span class="token punctuation">(</span><span class="token string">'edit'</span><span class="token punctuation">)</span> <span class="token operator">&&</span> <span class="token variable">$self</span><span class="token operator">-></span>eav<span class="token punctuation">(</span><span class="token string">'admin'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{</span><span class="token punctuation">}</span> </code></pre> <p>Genau dieselben Parameter finden sich im HTML Template, was zusammen mit dem Code zur gleichen Zeit im Editor ist, wieder und damit im Browser. D.h., die Schreibweise ist natürlich auch dieselbe.</p> <p>Selbst wenn ich jetzt einen Parser hätte der alle Parameter nach uppercase wandeln würde, wäre ist doch Unfug, als eine Person mit einem Editor in einundderselben Datei darauf bestehen zu wollen daß zur Parameterkontrolle die Schreibweise beliebig sein soll. Über diese Frage hat auch meine Frau nur mit dem Kopf geschüttelt.</p> <p>MFG</p> php $_GET Groß oder kleinschreibung Wed, 21 Aug 19 12:13:56 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756240?srt=yes#m1756240 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756240?srt=yes#m1756240 <blockquote> <p>Über diese Frage hat auch meine Frau nur mit dem Kopf geschüttelt.</p> </blockquote> <p>Wenn Deine Frau über sonst nix den Kopf schüttelt: WIN!</p> php $_GET Groß oder kleinschreibung Wed, 21 Aug 19 12:56:42 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756243?srt=yes#m1756243 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756243?srt=yes#m1756243 <blockquote> <blockquote> <p>Über diese Frage hat auch meine Frau nur mit dem Kopf geschüttelt.</p> </blockquote> <p>Wenn Deine Frau über sonst nix den Kopf schüttelt: WIN!</p> </blockquote> <p>Man kanns auch so formulieren: Wenn ein Team von Programmierern, sagen wir 10 Mitarbeiter, es nicht auf die Reihe kriegen, sich über die Schreibweise (Groß- Kleinschreibung) einer Handvoll Parameter zu einigen, ist das dann ein Thema für die Gewerkschaft oder ein Thema für den Betriebsrat?</p> <p> </p> <p>PS: Aber ich kann mir mittlerweile denken wo dieser Blödsinn herkommt. Nicht von einem alten CGI sondern von der Unsitte, Funktionen namentlich und Klassennamen über sogenannte Pseudoklassen auf URLs abzubilden.</p> <div class="signature">-- <br> Schiefer geht nicht sagte der Schieferdecker nach getaner Arbeit. </div> php $_GET Groß oder kleinschreibung Wed, 21 Aug 19 13:05:42 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756244?srt=yes#m1756244 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756244?srt=yes#m1756244 <p>Hallo,</p> <blockquote> <p>ist das dann ein Thema für die Gewerkschaft oder ein Thema für den Betriebsrat?</p> </blockquote> <p>Du musst die Frage deiner Frau anders stellen:<br> Hat die Gewerkschaft eigentlich einen Betriebsrat und wenn nein, dürfen Betriebsräte dann wenigstens Mitglied in der Gewerkschaft sein?</p> <p>Gruß<br> Kalk</p> php $_GET Groß oder kleinschreibung Wed, 21 Aug 19 13:11:43 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756246?srt=yes#m1756246 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756246?srt=yes#m1756246 <p>Hi,</p> <blockquote> <p>Hat die Gewerkschaft eigentlich einen Betriebsrat und wenn nein, dürfen Betriebsräte dann wenigstens Mitglied in der Gewerkschaft sein?</p> </blockquote> <p>vor einiger Zeit auf <a href="https://www.swr3.de/" rel="nofollow noopener noreferrer">SWR3</a> gehört:</p> <p>F: Dürfen Finanzbeamte eigentlich ihren Kaffee schwarz trinken?<br> A: Ja, aber sie dürfen die Tasse nicht absetzen.</p> <p>Ciao,<br>  Martin</p> <div class="signature">-- <br> Computer müssen weiblich sein: Eigensinnig, schwer zu durchschauen, immer für Überraschungen gut - aber man möchte sie nicht missen. </div> php $_GET Groß oder kleinschreibung Wed, 21 Aug 19 13:17:02 Z https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756247?srt=yes#m1756247 https://forum.selfhtml.org/self/2019/aug/19/php-get-gross-oder-kleinschreibung/1756247?srt=yes#m1756247 <p>Hi,</p> <blockquote> <blockquote> <p>Hat die Gewerkschaft eigentlich einen Betriebsrat und wenn nein, dürfen Betriebsräte dann wenigstens Mitglied in der Gewerkschaft sein?</p> </blockquote> <p>vor einiger Zeit auf <a href="https://www.swr3.de/" rel="nofollow noopener noreferrer">SWR3</a> gehört:</p> <p>F: Dürfen Finanzbeamte eigentlich ihren Kaffee schwarz trinken?<br> A: Ja, aber sie dürfen die Tasse nicht absetzen.</p> </blockquote> <p>Beamter kommt mit blauem Auge nach Hause. Frau: Na, wieder aufm Stempelkissen eingeschlafen!?</p> <p><a href="https://www.chefkoch.de/forum/2,31,113321/Der-Hund-des-Gewerkschafters.html" rel="nofollow noopener noreferrer">Der Hund des Gwerkschafters</a></p>