[PHP] globale Variablen

Toengel

Commander
Registriert
Aug. 2001
Beiträge
2.524
Tachchen,

also ich haben eine index.php und eine test.php, die ich per INCLUDE Befehl in der index.php lade. Hier erstmal das Wichtigste aus der test.php:
PHP:
<?
$zeile = ($zeile + 1);
echo($zeile);
echo ("<input type=\"button\" name=\"vor\" value=\"ADD\" style=\"width:150\" onClick=\"location.href='".$PHP_SELF."'\"><br>");
?>
Mehr oder weniger kann man das sich als Zaehler vorstellen. Immer wenn ich auf den Button ADD klicke soll $zeile um 1 erhoeht werden. Leider ist beim ersten Klick auf den Button die Variable $zeile gar nicht mehr belegt. Wie kann ich das machen, dass mein Zaehler funktioniert, ohne dass ich die Variabel ueber die URL uebergebe?

Toengel@Alex
 
Ich hab schon länger nichts mehr mit PHP gemacht, aber folgendes müsste funktionieren:

Das HTML-Input-Feld ist in ein FORM eingebettet, richtig?
In dem Formular musst du die Datentransfermethode festlegen, METHOD="post" oder METHOD="GET".
Jenach dem welche Methode du verwendest solltest du entweder mit $_GET[zeile] oder mit $_POST[zeile] an deine Variable kommen.
 
also auch einen button kannste doch normal nur in einer form benutzen, sonst weiss der browser nicht wohin er die infos schicken soll
 
btw du kannst auch
PHP:
 $zeile++; // verwenden anstannt
$zeile = $zeile+1;

spart speicherplatz ;)
 
Ich würde den HTML Code in der Art schreiben:
Code:
<FORM ACTION="wasauchimmer.de/zaehler.php" METHOD="post">
   <INPUT TYPE="text" NAME="zeile">
   <INPUT TYPE="submit">
</FORM>

der PHP-Teil müsste dann so aussehen:
Code:
$_POST[zeile++];

Noch Fragen :D ?
 
also gut, hier handelt es sich eindeutig um einen denkfehler :) aber oke ich zeigs dir schritt für schritt:

Du musst einer Variable immer zuerst einen Wert zuweisen, weil aus nix+1 wird auch nicht 1 :) daher solltest du mal die $zeile = "0"; setzen. Ich zeig dir mal mit Beschreibungen wie das ganze vor sich gehen sollte :)


PHP:
<?
 $zeile = $_GET[zeile];

IF (!isset($zeile)) {
 $zeile = "0"; //Wenn es noch keine $zeile gibt, dann wird sie jetzt definiert, definition des wertes
}else{ //oder wenn es schon einen wert gibt -> erhöhen!
$zeile++; //<-- einfachere weise einen wert um [b]1[/b] zu erhöhen
};


 echo "Auf diesen Button haben sie schon ".$zeile." Mal geklickt!<br>"; // Ausgabe von $zeile
echo "<form action='$_SERVER[PHP_SELF]?zeile=$zeile' method='post'>
<input type='submit' value='Klick auf mich :)'></form>"; 

?>
hierbei handelt es sich um die html ausgabe :) das $_SERVER[PHP_SELF] ist die url an die die FORM geschickt werden soll, das ?zeile=$zeile übergibt dem script über die url den derzeitigen Wer von $zeile, welchen wir beim neu laden des Scripts wieder um 1 erhöhen, wird der Browser allerdings einmal geschlossen, beginnt das ganze wieder bei 0!
 
Zurück
Oben