Autor Zpráva
XQgint
Profil *
Zdravim, mam soubor anketa.php a v něm mam tohle:


<?php

if ($action == "send"): // tady začíná kód, který se vykoná po odeslání formuláře

if (File_Exists ("stats.txt")): // existuje soubor se statistikou?
$fp = FOpen ("stats.txt", "r");
$stats = Explode ("#", FRead ($fp, 999)); // načteme obsah souboru do pole, jednotlivé části řetězce oddělené znakem # přijdou do jednotlivých buněk
FClose ($fp);
else:
for ($i = 0; $i <= 5; $i++) $stats[$i] = 0; // pokud ještě soubor neexistuje, dáme všude nuly
endif;

if ($stats[0] != $REMOTE_ADDR) $stats[$znamka]++; // pokud tato známka přišla z jiné adresy než ta předchozí, přičteme ji
$stats[0] = $REMOTE_ADDR; // aktualizujeme poslední IP adresu

$hlasu = 0; // celkový počet hlasů (známek)
$suma = 0; // celková suma (počet každé známky násobená její hodnotou)
for ($i = 1; $i <= 5; $i++):
$hlasu += $stats[$i]; // přičteme počet této známky k celkovému počtu
$suma += $i * $stats[$i]; // přičteme počet známky krát její hodnotu k celkové sumě

$prumer = (Round (100 * $suma / $hlasu)) / 100; // průměrná známka zaokrouhlená na dvě desetinná místa
endfor;
$fp = FOpen ("stats.txt", "w"); // uložíme aktuální statistiky
FWrite ($fp, Implode ($stats, "#"));
FClose ($fp);
?>
<center><font face="tahoma" size="2">
(1 - nejlepší, 5 - nejhorší)<br>Díky za hodnocení. Celkem tohle oznámkovalo <? echo $hlasu; ?>
lidí průměrnou známkou<? echo $prumer; ?>.
</font></center>

<?php else: ?>

<form action="anketa.php" method="post">
<center><font face="tahoma" size="2">
Tokyo Drift (F & F)<br>
<font size="1">(1 - nejlepší, 5 - nejhorší)</font><br>
<input type="radio" name="znamka" value="1" checked>1
<input type="radio" name="znamka" value="2">2
<input type="radio" name="znamka" value="3">3
<input type="radio" name="znamka" value="4">4
<input type="radio" name="znamka" value="5">5
<input type="hidden" name="action" value="send"><br>
<input type="submit" value="Oznámkuj!">
</font></center>
</form>

<?php endif; ?>



problém je, že mi nejde echo $prumer ani echo $hlasu nikde jinde, než po odeslání hlasu, kdy zo napíše "díky za hlasování..." , a já bych to potřeboval aby to šlo i tam kde to známkuju, snad mi poradíte...
Miloš
Profil
Neechuj $prumer a hlasu, ale $_POST['prumer'] a $_POST['hlasu'] (posíláš-li formulář jako post; pokud jako get, pak $_GET['prumer'] a $_GET['hlasu']).
krteczek
Profil
opět script psaný v php3, koukni se na: http://cz.php.net/manual/cs/language.variables.predefined.php včetně diskuze pod textem.
XQgint
Profil *
buďto to nejde, nebo něco dělam blbě:

<?
................
echo $_POST['prumer'] = (Round (100 * $suma / $hlasu)) / 100; // průměrná známka zaokrouhlená na dvě desetinná místa
................
?>

blablabla

<?php else: ?>

<? echo $_POST['prumer'] ?>
krteczek
Profil
1. <input type="submit" value="Oznámkuj!"> => <input type="submit" name="oznamkuj" value="Oznámkuj!">

2.
 

$znamka = 0;
if(isset($_POST['oznamkuj']))
{
if((!empty($_POST['znamka'])) && (ctype_digit($_POST['znamka']) === true))
{
switch($_POST['znamka'])
{
case 1; $znamka = 1; break
case 2; $znamka = 2; break;
case 3; $znamka = 3; break;
case 4; $znamka = 4; break;
case 5; $znamka = 5; break;
default; $znamka = 0; break;
}
if($znamka > 0)
{
//nacteni a pricteni a ulozeni do souboru
}
}
}

Takhle bych to resil ja :-)
krteczek
Toto téma je uzamčeno. Odpověď nelze zaslat.