$variable bei klick auf Link erhöhen + in txt File

Guten Tag,

ich versuche eine kleine Bewertungsfunktion OHNE db zu schreiben. Zur Zeit gibt es drei anklickbare Links die einen Query enthalten der anschließend mit einer $variablen = $_GET[‚Query_INHALT‘]; ausgelesen wird. Das funktioniert auch! Danach sollte ein Script in (php) die bereits bestehende *.*Datei auslesen und den entsprechenden Wert an der entsprechenden Stelle um 1 erhöhen. Anschließend soll die *.*txt Datei wieder geschlossen werden.

Das Problem:
Sobald ich die Site aufrufe bekomme ich die 3 Links angezeigt, doch wenn ich dann nun auf einen dieser Links klicke kommt wird merkwürdiger Weise immer nur die mittlere $_GET[‚INHALT_Query‘] hochgezählt, (egal ob ich den ersten oder den letzten Link anklicke) und in die *.*txt Datei geschrieben.

Mein Ziel:
Ist es das wenn ich auf den ersten Link klicke auch der erste Wert vor dem Komma in der *.*txt Datei um 1 erhöht wird. Dies wollte ich mit $poll = explode(",",$poll); erreichen.

Mein Problem:
Wie kann ich erreichen das der jeweilige „Get_ Query“ der entsprechenden Zahl zugefügt wird und in die *.*txtDatei gespeichert wird.

Das Script:
//bekomme Querys
if (isset($_GET[‚bla0‘]))
{
$variable[0] = $_GET[‚bla0‘];
}
if (isset($_GET[‚bla1‘]))
{
$variable[1] = $_GET[‚bla1‘];
}
if (isset($_GET[‚bla2‘]))
{
$variable[2] = $_GET[‚bla2‘];
}
?>
Link0 mit Wert 1
Link1 mit Wert 1
Link2 mit Wert 1
//gesamt, bin mir nich sicher so obs stimmt
$total = $variable[0] + $variable[1] + $variable[2];
if (isset($total)) {
$datei = „_FILE_.txt“;
$show = fopen($datei,„r+“);
$poll = fread($show,filesize($datei));
$poll = explode(",",$poll); //string Teilen bei komma
$poll[$total]++;
$poll = $poll[0].",".$poll[1].",".$poll[2]; //formatierung für die Ausgabe
rewind($show);
fputs($show,$poll);
fclose($show);
}
?>

Die *.*Datei: (Beispiel)
12,233,1

Ich freue mich über jeden Beitrag. Vielleicht weiss sonst jemand eine Lösung des Problems mittels xml?

Mit Besten Grüßen!

Hi,
also ich denke, dass der Fehler an Deiner Zusammenstellung der $total-Variable liegt.

Also ich hätte das so gemacht:
Für Link1 würde ich eine 0 posten, für Link2 eine 1 etc.

Wenn Du dann das File ausliest und den STring splittest, bekommst Du ebenfalls ein Array, das aus dem 0ten Element, ersten und zweiten Element besteht.

Und dann brauchst Du nur den entsprechenden Wert aus dem Array um eins hochzählen und wieder in die Datei schreiben.

Das Script:
//bekomme Querys
if (isset($_GET[‚bla0‘]))
{
$variable[0] = $_GET[‚bla0‘];
}
if (isset($_GET[‚bla1‘]))
{
$variable[1] = $_GET[‚bla1‘];
}
if (isset($_GET[‚bla2‘]))
{
$variable[2] = $_GET[‚bla2‘];
}
?>
Link0 mit Wert 1
Link1 mit Wert 1
Link2 mit Wert 1
//gesamt, bin mir nich sicher so obs stimmt
$total = $variable[0] + $variable[1] + $variable[2];
if (isset($total)) {
$datei = „_FILE_.txt“;
$show = fopen($datei,„r+“);
$poll = fread($show,filesize($datei));
$poll = explode(",",$poll); //string Teilen bei komma
$poll[$total]++;
$poll = :blush:poll[0].",".$poll[1].",".$poll[2]; : //formatierung für die Ausgabe
rewind($show);
fputs($show,$poll);
fclose($show);
}
?>

hallo,
ich verstehe zwar nicht ganz was du da machen willst und vor allem warum so kompliziert, aber hier einige Sachen die du beachten solltest:

  • du kannst ja nur einen Link klicken, daher dein $total kann nur ein Wert haben $var1 o. $var2 o. $var3

mit switch oder ähnliches kannst du dann etwa so was machen

$poll = fread($show,filesize($datei));
$p_array = explode(",",$poll);


case $var1:
$p_array[1] = (int)$p_array[1]+1;
break;

zum Schluß dann
$str = $p_array[0];
$str .= „,“.$p_array[1];
$str .= „,“.$p_array[2];

oder $str = implode(",",$p_array);

hoffe das bringt dich weiter…

VG,
Mugos

Hallo,

das Problem leigt darin, das Du auch die entsprechende Variable, bzw. Array erhöhen musst!
$poll[$total]++; - welches Array soll erhöht werden, 0,1 oder 2???

Richtig ist , wie es bei der Ausgabe hier steht,
das Du dann, zuerst mit isset aussuchst, welcher Link angecklickt wurde, und dann auch, wie Du es richtig machts, mit Explode in Variablen übergibst und nun auch hier richtig weitermachst,
$poll = $poll[0].",".$poll[1].",".$poll[2];
indem Du dann das jeweilige Array erhöhst:
$poll[0]++;
dann müsste es gehen.

Gruß Christoph

Guten Tag

vielen Herzlichen Dank für die großartige Unterstützung! Ich habe das jetzt wie folgt gemacht!

$bewertung[0] = $_GET[‚bla0‘];
$bewertung[1] = $_GET[‚bla1‘];
$bewertung[2] = $_GET[‚bla2‘];

$str = implode (’,’, file (’_FILE_.txt’));
$avar = explode(",", $str);
$len = count($avar);
for ($i=0; $i

Nochmals besten Dank für alle Ratschläge! Beste Grüße.