portseven: GET & POST

tag,

ich wollte mal fragen wie ihr sowas machen würdet. Ich habe z.b ein Button der mir alle User anzeigt. In der Form ist das Attribute "POST". (Method="POST").

Ich gebe die Daten per POST rüber an die "load.php".

Davor habe ich aber noch ein Button gedrückt, wo meine URL dann so aussieht nach dem klicken:

load.php?sort=newest

Jetzt habe ich in meiner Load.php sowas z.b stehen:

<?php

if(isset($_GET["sort"]) && $_GET["sort"] == "newest") {

	$stmt = $pdo->prepare("SELECT * FROM user LIMIT 5;");
	$stmt->execute();

	while($row = $stmt->fetch())  { 
	
	....

}
?>

Jetzt zeigt er mir keine Beiträge an. Wie kann ich es also machen, dass er mir die Beiträge anzeigen kann mit $_GET["sort"] ?

  1. tag,

    Ich gebe die Daten per POST rüber an die "load.php".

    Davor habe ich aber noch ein Button gedrückt, wo meine URL dann so aussieht nach dem klicken:

    load.php?sort=newest

    Jetzt habe ich in meiner Load.php sowas z.b stehen:

    Da musst Du halt beide Arrays auswerten $_GET und $_POST. Machn Dump und guckt Dir doch an was da drinsteht. MfG

  2. Aloha ;)

    Wenn ich dich recht verstehe hast du eine Seite mit Formular unter load.php?sort=newest, von der aus per POST Werte an sich selbst geschickt werden, und du fragst dich, wie du nach dem Abschicken an load.php an das ?sort=newest rankommst, da dir deine Seite sonst nichts anzeigt. Korrekt soweit?

    Dann wäre in meinen Augen die Lösung, im action-Attribut des Formular nicht load.php einzutragen, sondern load.php?sort=newest bzw. load.php?sort=MitPHPeingefügterWertvomSeitenaufruf.

    Mehr gibt meine Glaskugel bei der dürftigen Informationslage nicht her.

    Grüße,

    RIDER

    --
    Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
    # Twitter # Steam # YouTube # Self-Wiki # Selfcode: sh:) fo:) ch:| rl:) br:^ n4:? ie:% mo:| va:) js:) de:> zu:} fl:( ss:) ls:[
    1. Lass Dich nicht beirren von der Request-Method. Der Query_String wird bei jedem Request gesendet:

      POST /p.php?query=123 HTTP/1.0
      Connection: Close
      Content-Length: 3
      Content-Type: application/x-www-form-urlencoded
      Host: egal
      
      =================================================================
      HTTP/1.1 200 OK
      Date: Thu, 17 May 2018 18:45:47 GMT
      Server: Apache/2.2.14 (Win32) PHP/5.3.0 mod_fastcgi/mod_fastcgi-SNAP-0910052141 mod_perl/2.0.7 Perl/v5.16.3
      X-Powered-By: PHP/5.3.0
      Content-Length: 139
      Connection: close
      Content-Type: text/plain; Charset=UTF-8
      
      Array
      (
          [post] => Array
              (
                  [x] => y
              )
      
          [get] => Array
              (
                  [query] => 123
              )
      
      )
      
      <?php
      header('Content-Type: text/plain; Charset=UTF-8');
      print_r( array('post' => $_POST, 'get' => $_GET));
      ?>
      

      D.h., wenn <form method="POST" action="/p.php?query=123"> gesetzt ist, macht der Browser schon ein POST. Action dito, s. nebenstehend.

      Entscheidend ist, was man serverseitig als Kriterium für die gewünschte Aktion betrachtet. Also, ob dieser sog. Schlüsselparameter in $_GET oder $_POST angesiedelt ist.

      MfG

      1. Aloha ;)

        Lass Dich nicht beirren von der Request-Method. Der Query_String wird bei jedem Request gesendet:

        Ich glaube du hast nicht recht verstanden was ich geschrieben habe, denn genau...

        D.h., wenn <form method="POST" action="/p.php?query=123"> gesetzt ist

        ...das war ja mein Lösungsvorschlag?

        Mir ist das schon klar, ich denke nur dem OP ist genau das nicht klar.

        Grüße,

        RIDER

        --
        Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
        # Twitter # Steam # YouTube # Self-Wiki # Selfcode: sh:) fo:) ch:| rl:) br:^ n4:? ie:% mo:| va:) js:) de:> zu:} fl:( ss:) ls:[