Variable per Link erhöhen

Html

Erfahrenes Mitglied
Hallo habe hier ein super simples Problem. Aber leider keine Lösung.

Möchte gerne eine Variable beim Klick auf einen Link um 1 erhöhen. Der erste Klick funktioniert, danach tut sich aber nix mehr.

Hier mein code:

PHP:
<?php

if($_GET['action']=="weiter")
{

$test++;

}


echo "<a href=up.php?action=weiter>weiter</a>";

echo $test;

?>


Sorry für die einfache Frage, aber lerne gerade PHP.


mfg,Olli
 
Nach dem dein Script ausgeführ wurde "stirbt" die Variable.

Du musst die irgendwo zwischen speichern. Datenbank oder einfach einer datei.

PHP:
<?
$datei = fopen("datei.txt", "r");

$zahl = fgets($datei);

fclose($datei);

$zahl++;

$datei = fopen("datei.txt", "w");

fputs($datei, $zahl);

echo $zahl;

?>
 
PHP:
<?php
if ($_GET['action']=="weiter") {
$test=$_GET["test"];
echo $test;
}
$test=$test+1;
echo "<a href=\"test.php?action=weiter&test=". $test ."\">weiter</a>";
?>

So funktionierts....
Das Problem war, dass die Variable nicht mehr hochgezählt wurde, da der Abschnitt mit der if-Schlaufe nicht aktualisiert wurde und so die Variable weg war.

Deshalb übergibt das Script nun die neue Variable immer wieder per GET und so zählt es sie auch hoch.


EDIT: genau d-Stench.. nur das ich die Variable per GET zwischenspeichere bei meinem Beispiel...
 
Stimmt

muss aber noch beachten, dass die $_GET-Lösung nach dem Schließen des Browsers das Zählen wieder bei 0 anfängt und die Lösung mit der Datei immer wieder hochzählt.

Je nach Einsatz musst dich für eine der beiden entscheiden.

Gruß
d-Stench
 
Du musst den Wert serverseitig zwischenspeichern. Denn nachdem das Skript durchgelaufen und der Wert erhöht wurde, werden die Ressourcen wieder freigegeben, womit auch alle verarbeiteten Variablenwerte weg sind.
Serverseitig stehen dir allgemein drei Möglichkeiten der persistenten Sicherung zur Verfügung: eine normale Datei, eine Datenbank oder – das wohl einfachste – eine Sitzung, in der die Daten gespeichert werden.
 
Zurück