1. Dashboard
  2. Artikel
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. HTML - Webmaster Forum
  2. HTML / Webmaster Forum
  3. HTML & CSS Forum

<Form>

  • Shyne
  • 29. Dezember 2007 um 09:03
  • Shyne
    Fortgeschrittener
    Beiträge
    159
    • 29. Dezember 2007 um 09:03
    • #1

    hallo

    dieser tag hab ich irgendwie nie verstanden. ich weiss dass es sich für formulare handelt. jedoch was bezweckt man mit "action"?

    und wenn benutze ich method=post und wann benutze ich method=get?

  • synaptic
    Forum Guru
    Reaktionen
    11
    Beiträge
    10.917
    • 29. Dezember 2007 um 09:45
    • #2

    http://de.selfhtml.org

  • Shyne
    Fortgeschrittener
    Beiträge
    159
    • 29. Dezember 2007 um 10:00
    • #3
    PHP
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Feedbacks</title>
    </head>
    <body>
    
    
    <?php
    if ($action == "add") {
    echo "action = add";
    }
    else {
    ?>
    
    
    <form action="Feedbacks.php?action=add" method="get" target=_top>
    * Name/Firma <input type=text name=name>
    
    
      
      Email  <input type=text name=mail>
    
    
      
      Homepage <input type=text name=hp>
    
    
    
    
     
    <textarea name="text" cols="35" rows="8"></textarea>
    
    
    
    
    <input type="submit" value=Senden>
    </form>
    <?php
    }
    ?>
    </body>
    </html>
    Alles anzeigen


    Wird hier die variable "action" nicht gesetzt oder warum erscheint bei mir das echo nicht?

  • Lizzard
    Prinz(essin)
    Beiträge
    788
    • 29. Dezember 2007 um 11:27
    • #4

    Versuch es mal so:

    PHP
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Feedbacks</title>
    </head>
    <body>
    
    
    <?php
    $action = $_GET["action"];
    if ($action == "add") {
    echo "action = add";
    }
    else {
    ?>
    
    
    <form action="Feedbacks.php?action=add" method="get" target=_top>
    * Name/Firma <input type=text name=name>
    
    
      
      Email  <input type=text name=mail>
    
    
      
      Homepage <input type=text name=hp>
    
    
    
    
     
    <textarea name="text" cols="35" rows="8"></textarea>
    
    
    
    
    <input type="submit" value=Senden>
    </form>
    <?php
    }
    ?>
    </body>
    </html>
    Alles anzeigen

    Das Ansprechen einer Get-Variable (genauso wie von Post-Variablen) direkt über den Variablennamen ist veraltet.
    Ansonsten hast du m.E. den Sinn von Get/Post sowie von Action="" schon verstanden oder?

    Grüße,
    Lizzard

    Sometimes you have a programming problem and it seems like the best solution is to use regular expressions; now you have two problems.

  • Shyne
    Fortgeschrittener
    Beiträge
    159
    • 29. Dezember 2007 um 12:19
    • #5

    hmm ... da ändert sich aber leider immer noch nichts.

  • komma
    Interessierte/r
    Beiträge
    105
    • 29. Dezember 2007 um 12:23
    • #6

    Es geht auch anders, ohne $action:

    PHP
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Feedbacks</title>
    </head>
    <body>
    
    
    <?php
    
    
    if ($_GET) {
    echo "action = add";
    }
    else {
    ?>
    
    
    <form action="Feedbacks.php" method="get" target=_top>
    * Name/Firma <input type=text name=name>
    
    
      
      Email  <input type=text name=mail>
    
    
      
      Homepage <input type=text name=hp>
    
    
    
    
     
    <textarea name="text" cols="35" rows="8"></textarea>
    
    
    
    
    <input type="submit" value=Senden>
    </form>
    <?php
    }
    ?>
    </body>
    </html>
    Alles anzeigen

    [Blockierte Grafik: http://heroes-chat.com/advertise/banner4.jpg]

  • phpfan
    Gast
    • 29. Dezember 2007 um 12:33
    • #7

    if ($_GET)

    AUA!!! Grauenhafter geht es wohl nicht mehr!

    Code
    if (isset($_GET['action']) && $_GET['action'] == "add")
    { 
       echo "action = add"; 
    }
  • Shyne
    Fortgeschrittener
    Beiträge
    159
    • 29. Dezember 2007 um 12:33
    • #8

    Danke komma, es klappt ;)

  • phpfan
    Gast
    • 29. Dezember 2007 um 12:35
    • #9
    Zitat von Shyne

    Danke komma, es klappt ;)


    Das Script bzw. die Abfrage von "komma" ist Schrott!!!

  • Shyne
    Fortgeschrittener
    Beiträge
    159
    • 29. Dezember 2007 um 12:41
    • #10

    phpfan liegt das problem bei mir oder warum funktioniert dein beispiel bei mir nicht?

  • komma
    Interessierte/r
    Beiträge
    105
    • 29. Dezember 2007 um 12:42
    • #11

    Bei dir sollte das hier reichen:

    Code
    if (isset($_GET['action']) {

    [Blockierte Grafik: http://heroes-chat.com/advertise/banner4.jpg]

  • phpfan
    Gast
    • 29. Dezember 2007 um 12:52
    • #12

    Ein Beispiel:

    PHP
    <?php
    
    
      if (isset($_POST['name']))
      {
         echo "Name: " . $_POST['name'] . "
    
    
               Vorname: " . $_POST['name'] . "
    
    
               eMail: " . $_POST['email'];
      }
      else
      {
        echo "<form action='" . $_SERVER['SCRIPT_NAME'] . "' method='post'>
              Name: <input type='text' name='name'>
    
    
              Vorame: <input type='text' name='vorname'>
    
    
              eMail: <input type='text' name='email'>
    
    
              <input type='submit' name='submit' value='Abschicken'>
              </form>";
      }
    ?>
    Alles anzeigen
  • Shyne
    Fortgeschrittener
    Beiträge
    159
    • 29. Dezember 2007 um 13:11
    • #13

    ahso ... ja das problem war dann wohl dass ich statt method=POST, method=GET verwendete?!

    ich habs jetzt mal so ausprobiert:

    Code
    if ($_GET['action'])
    { 
       echo "action = add"; 
    }

    klappt auch sehr gut.

  • phpfan
    Gast
    • 29. Dezember 2007 um 13:22
    • #14

    if ($_GET['action'])

    Auch falsch!!!

    schreibe mal an den Anfang des Scriptes die Zeilen

    error_reporting(E_ALL);
    ini_set("display_errors", true);

    Dann haut dir PHP nämlich die Zeile beim ersten Aufruf des Scriptes um die Ohren!

  • Shyne
    Fortgeschrittener
    Beiträge
    159
    • 29. Dezember 2007 um 13:40
    • #15

    hmm ... ich weiss eigentlich gar nicht wieso. denn if ($_GET['action']) klingt für mich ja eigentlich logisch.

    abgesehen davon, müsste es nicht if (isset($_GET['action'])) heissen, statt if (isset($_POST['action'])) ? denn bei mir funktioniert nur die GET-methode.

  • phpfan
    Gast
    • 29. Dezember 2007 um 16:37
    • #16

    1. Ob du $_GET oder $_POST nehmen musst, hängt von method= im Formular ab.

    2. if ($_GET['action']) ist garnicht logisch. Wenn die Seite das erste Mal aufgerufen wird, also nicht vom Formular, dann ist $_GET['action'] nicht gesetzt und mit einer nicht existenten Variablen kann man logischerweise keinen Vergleich machen. PHP ist da sehr gnädig, wenn man das error_reporting nicht hochschraubt. Deshalb solltest du die oben erwähnten Zeilen während der Entwicklung eines Scriptes immer einbauen.

Tags

  • server
  • email
  • text
  • post
  • form
  • input
  • code
  • php
  • error
  • formular
  • script
  • display
  • action
  • schrott
  • variable
  • submit
  • value
  • echo
  • isset
  1. Datenschutzerklärung
  2. Impressum
Community-Software: WoltLab Suite™
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
Zitat speichern