usp: Fragezeichen bei get-Parameter unterdrücken

Hallo!

Ist es irgendwie möglich im Input-Tag zu definieren, dass die Eingabe nicht an ein ? angehängt werden soll?

Zur Zeit sieht das Ergebnis bei mir so aus:

domain.com/?foo/

Ich möchte aber:

domain.com/foo/

Ich könnte natürlich per PHP das ? im Nachhinein entfernen, aber es wäre mir lieb, wenn es noch eine andere Möglichkeit gäbe (ich benutze CakePHP und da will ich nicht in der Core rummachen).

Hat jemand eine Idee?

  1. Hallo!

    Ist es irgendwie möglich im Input-Tag zu definieren, dass die Eingabe nicht an ein ? angehängt werden soll?

    Was meinst du damit? Dass keine '?' (am Anfang) eingegeben werden dürfen? Und was willst du überhaupt eigentlich erreichen? Wie sieht dein Code aus?

    Zur Zeit sieht das Ergebnis bei mir so aus:
    domain.com/?foo/
    Ich möchte aber:
    domain.com/foo/

    Das sind keine GET-Parameter. Das sind Verzeichnisnamen, die du da an das "domain.com/" anhängst.

    Ich könnte natürlich per PHP das ? im Nachhinein entfernen, aber es wäre mir lieb, wenn es noch eine andere Möglichkeit gäbe (ich benutze CakePHP und da will ich nicht in der Core rummachen).

    Du könntest es mit JavaScript versuchen. Allerdings kann das vom User abgeschaltet werden. Dann hast du wieder keine Sicherung.
    Serverseitig ist auf jeden Fall besser. Ob PHP, Perl oder sonstirgendwas ist egal.

    ciao, Lukas

    --
    Nach einem Korrspondentenbericht der New York Times aus der umkämpften Stadt, wurden zur „Ausschaltung eines einzigen feindlichen Scharfschützen mehrere 500-Pfund-Bomben, 35 Artilleriegranaten des Kalibers 255, zehn Schüsse aus der Abrams-Panzerkanone sowie 30 000 Patronen leichter Munition benötigt”. „Die Gebäude waren daraufhin Ruinen”, schreibt die New York Times, „aber der Scharfschütze schoss weiter...”
  2. echo $begrüßung;

    Ist es irgendwie möglich im Input-Tag zu definieren, dass die Eingabe nicht an ein ? angehängt werden soll?

    Input-Elemente definieren nur, welche Daten das Formular enthalten soll. Für das Versenden ist es nicht zuständig und hat für eine Beeinflussung des Versendevorgangs auch keine Attribute. Auch dem Formular, das Parameter für den Versand erhalten kann, kennt nur die beiden Methoden GET und POST. Und die beherrschen wohl alle Browser perfekt. Andere Anwendungsfälle sind nicht vorgesehen. DU kannst auch nicht beinflussen, dass bei einem Formular mit method=GET der Browser ein ?name1=value&name2=value2 an die unter action angegebene URL hängt. Jedenfalls geht so etwas nur mit einem Eingriff in den üblichen Ablauf, wie er nur mit einer clientseitigen Programmierung realisiert werden kann.

    domain.com/?foo/
    Ich könnte natürlich per PHP das ? im Nachhinein entfernen, aber es wäre mir lieb, wenn es noch eine andere Möglichkeit gäbe (ich benutze CakePHP und da will ich nicht in der Core rummachen).

    Geht es dir darum, in der URL kein ? stehen zu haben? Das musst du schon beim Request nach einer URL regeln. Wenn der Browser den Request erst einmal abgesendet hat, lässt sich die URL-Zeile nicht mehr beinflussen. (Falls jemand auf den Gedanken Redirect kommt: das ist ja ein neuer Request, nicht mehr der gleiche. Und mod_rewrite? Einzelne GET-Parametern lassen sich damit nicht in URL-Bestandteile umformen, so dass man wenigstens dem aufgerufenen Script eine andere URL hätte vorgaukeln können.)

    Wie kommt denn CakePHP an seine Parameter ran? Wertet es selbständig die URL des Requests aus? Kann man sie ihm auch zu Fuß übergeben? Gibt es keine Möglichkeit, die vorhandene Funktionalität zu erweitern?

    echo "$verabschiedung $name";