GET id: adressleiste ok, php liest falsch aus *erledigt*

  • Ich sitze an einer umfangreicheren Seite mit zig formularen die alle die entsprechenden verarbeitungsdatein über action='index.php?id=xx' aufrufen.

    index.php nutzt dann eine switch-funktion anhand welcher der include() für die entsprechende datei ausgeführt wird:


    Funktioniert überall einwandfrei.

    Jetzt habe ich grad eine neue Seite mit einem Feedback-Formular eingefügt.
    Eröffnungstag und submit-button wie bei allen anderen formularen auch:

    Code
    <form action='index.php?id=22' method='post'>
    <input type='submit' value='' name='feedback' style='background:url(\"./grafiken/senden.gif\");width:65px;height:20px;border:0' />
    </form>

    Ich schicke das Formular, in der adressleiste des browser wird ganz normal "http://xxx.xxxxxx.xx/index.php?id=22" angezeigt.
    Es wird aber die start.php aufgerufen und wenn ich mir vor der switch-anweisung die den content läd die $_GET['id'] ausgeben lasse steht eine 1 drin.
    Gehe ich jetzt in die adressleiste und drücke Enter, so läd er er mir wieder ganz normal das feedback-formular....

    ich bin grad leicht am verzweifeln, hat jemand eine idee?

  • steht das formular innerhalb eines anderen Formulares? -Versuch es doch mal mit einem redirect, was dabei rauskommt.

    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.
    [Blockierte Grafik: http://www.snippr.de/social/img/logo.png]
    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  • hmm...

    Zitat


    $id = (int)$_POST['id'];

    Zitat


    <form action='index.php' method='post'>
    <input type='hidden' name='id' value='22' />
    <input type='submit' value='' name='feedback' style='background:url(\"./grafiken/senden.gif\");width:65px;height:20px;border:0' />
    </form

  • ich komm grad nicht mehr klar...
    bitte schlachte mich jemand wegen elementarer blödheit...

    es läuft jetzt, der fehler war folgender:
    ich hatte zum abfragen von get-variablen meist den $_REQUEST-array genutzt, mir war der unterschied zwischen $_REQUEST und $_GET gar nicht so ganz klar gewesen.... zum glück hilft google und nun bin ich schlauer und weiß, dass $_REQUEST sowohl die $_POST als auch die $_GET inhalte bereitstellt...

    und besagtes feedback-formular enthält ein hiddenfeld welches mit 'id' benannt ist...
    im laufe des rumprobierens und verzweifelns hatte ich dann zwar die zeile
    $id = (int)$_REQUEST['id']
    geändert in
    $id = (int)$_GET['id']
    so wie es auch oben in meinem posting steht... allerdings hatte ich diese datei danach nicht neu hochgeladen (schlagt mich, tretet mich, gebt mir tiernamen...).

    So, beim auslesen von $_REQUEST['id'] standen php nun natürlich sowohl $_GET['id'] aus der url, als auch $_POST['id'] aus dem Formular zur verfügung, und es wurde die $_POST['id'] genommen.

    Wer sich jetzt über mich lustig machen will, bitte schön, ich hab's verdient... :(

    Sorry fürs zuspammen des boards mit diesem sinnlosen thread... :/