schon wieder eine PHP Frage

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von ThaHammer, 25.03.2005.

  1. ThaHammer

    ThaHammer Thread Starter MacUser Mitglied

    MacUser seit:
    01.06.2004
    Beiträge:
    3.277
    Zustimmungen:
    13
    Diesesnette, kleine Skript ärgert mich!
    Der Link mit a href geht nicht wirklich, er übergibt mal wieder nichts.
    Warum geht das mit dem href nicht?

    <?php
    include ("header.php"); // öffnet eine HMTL Seite mit ein paar Vorgaben
    $button="leer"; // Vorbelegung
    echo "<center>"; ?> // wurde nur zum Testen als HTML angelegt!
    <p><a href="<?php echo "Link-test.php?button=aendern"; ?>">&Auml;ndern</a> - <a href="Link-test.php?button=reset">Reset</a>
    <?php

    echo sizeof($button); // Nur zur Überprüfung!

    if(is_string($button)) // auch nur zum Testen ob richtig übergeben wurde!
    {
    echo "<p>String &uuml;bergeben $button ";
    if($button=="reset")
    {
    echo "<p>Ich mache einen Reset";
    $button ="leer234";
    }
    elseif ($button=="aendern")
    {
    echo "<p>aendern"; // Einfach erst einmal eine Ausgabe, egal was!
    $button ="leer56757";
    }
    elseif($empty($button))
    {
    echo "<p>Fehler!";
    $button ="4353454leer";
    }
    }
    else
    {
    echo "Fehler kein String &uuml;bergeben!";
    }

    echo "</center>";
    include("foot.php"); // schließt nur die HTML Seite korrekt
    ?>
     
  2. Hilarious

    Hilarious MacUser Mitglied

    MacUser seit:
    25.11.2004
    Beiträge:
    2.184
    Zustimmungen:
    5
    Vermutlich ist bei Deiner PHP-Installation die Konfigurationsoption "register_globals" abgeschaltet (das empfohlene Verhalten seit den ersten PHP-4-Versionen). Dies sollte auch besser so bleiben ;)

    Um nun herauszufinden, welcher Parameter per HTTP-GET übermittelt wurde, müsstest Du die superglobale Variable $_GET abfragen. Hierbei handelt es sich um ein assoziatives Array, welches mit dem Feldschlüssel des GET-Parameters belegt wird. In Deinem Fall müsste in $_GET ['button'] der Wert entweder 'aendern' oder 'reset' stehen.

    Welche Werte in $_GET (oder anderen Variablen) zu finden sind, erhältst Du mit einem einfachen Variablendump:

    <? echo "<pre>\n", print_r ($_GET), "</pre>\n"; ?>

    Viel Erfolg!
     
  3. MacADochNit

    MacADochNit MacUser Mitglied

    MacUser seit:
    11.11.2004
    Beiträge:
    13
    Zustimmungen:
    0
    echo "<p><a hre... ...Reset</a>";

    versuchen
     
  4. wegus

    wegus MacUser Mitglied

    MacUser seit:
    13.09.2004
    Beiträge:
    14.713
    Zustimmungen:
    1.348
    @thahammer: bitte verwende doch die PHP-Code-Tags des Forums

    php
    .
    .
    .
    /php


    nat. jeweils in eckigen Klammern!
    dies erhöht die Lesbarkeit enorm und erleichtert es den Anderen Deinen PHP-Code zu lesen!
     
    Zuletzt bearbeitet: 25.03.2005
  5. ThaHammer

    ThaHammer Thread Starter MacUser Mitglied

    MacUser seit:
    01.06.2004
    Beiträge:
    3.277
    Zustimmungen:
    13
    So? ich komme noch nicht ganz damit zurecht, übe aber fleisig! :-D

    Ja, ich habe Gestern noch die festen Treads hier gelesen und bin auch über das mit $_GET gestolpert. ich habe es ausprobiert, jetzt geht es!
    Wie gehe ich denn mit dem Problem grundsätzlich um?

    Formulardaten abfragen ist jetzt kein Problem, aber wie die Daten abfragen die ich per href übergebe? Genauso?
    Jetzt habe ich soviele Bücher und Dokumente zu PHP, aber genau dieses Thema wieder stark vernachlässigt!
     
  6. Hilarious

    Hilarious MacUser Mitglied

    MacUser seit:
    25.11.2004
    Beiträge:
    2.184
    Zustimmungen:
    5
    Hi ThaHammer,

    für Deine Frage müsstest Du Dich ein wenig mit dem Hypertext Transfer Prokotoll (HTTP) auseinandersetzen. Um zum Beispiel macuser.de aufzurufen, sendet Dein Browser einen HTTP-Request an den Server. Dies kann zum Beispiel so aussehen:
    Code:
    GET / HTTP/1.1
    Host: www.macuser.de
    ...
    
    Darauf antwortet der Server lakonisch:
    Code:
    HTTP/1.x 200 OK
    ...
    
    Klickt der Benutzer in Deinem Beispiel auf einen Link an den zusätzlich noch Parameter angehängt werden, werden diese an den GET-Befehl vom Browser angehängt:

    Code:
    GET /Link-test.php?button=aendern HTTP/1.1
    Host: beiThaHammer.Daheim
    
    Das, was am Fragezeichen hängt, können ja auch mehrere Parameter sein und diese finden von PHP nennt aufgebrezelt Platz im assoziativen Array $_GET. Wenn Du ein Formular verwendest, welches als Methode POST verwendet, findest Du die Formularparameter im Array $_POST. Es gibt noch weitere...

    Lass Dir einfach mal per get_defined_vars () alles ausgeben, was Dein PHP-Parser alles so weiß...
     
  7. Katana

    Katana MacUser Mitglied

    MacUser seit:
    30.08.2004
    Beiträge:
    989
    Zustimmungen:
    0
    wenn du das assoziative array $_REQUEST benutzt, findest du darin sowohl via GET als auch via POST übergebene daten ...
     
Die Seite wird geladen...

Diese Seite empfehlen