schon wieder eine PHP Frage

T

ThaHammer

Aktives Mitglied
Thread Starter
Dabei seit
01.06.2004
Beiträge
3.303
Reaktionspunkte
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
?>
 
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!
 
echo "<p><a hre... ...Reset</a>";

versuchen
 
@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:
wegus schrieb:
@thahammer: bitte verwende doch die PHP-Code-Tags des Forums

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

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

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!
 
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ß...
 
wenn du das assoziative array $_REQUEST benutzt, findest du darin sowohl via GET als auch via POST übergebene daten ...
 
Zurück
Oben Unten