napadlo me to vyresit pomoci cookies ale to se me moc nezamlouva... neda se to zajistit nejak jednoduseji?
po zpracovani parametru ve skriptu dej pomoci header presmerovani na nejakou stranku. pak kdyz da reload, tak se mu nacte ta stranka, kam se to presmerovalo, a parametry uz to odesilat nebude
njn ale jak osetrit tohle... kdyz dam header az na konec.. uz mi to hlasi ze jiz byli hlavicky odeslany... neni to zpusebeno tim require nebo include? jenze ten musim mit prozmenu vlozen uz na zacatku... nevite nekdo co s tim?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<?php
require "./kviz_data.php";
$zapisot="";
$spravnychodpovedi=0;
$krok=1;
$arr_sprodp=$pocetmoznosti+1;
while($krok<=$pocetotazek):
//zda jsem dostal nějakou odpověď
if (empty(${"a".$krok}) ):
${"a".$krok}="nevyplneno";
endif;
if (${"a".$krok}==${"q".$krok}[$arr_sprodp]):
//odpověď byla správná
$spravnychodpovedi++; //pocitani spravnych odpovedi
$zapisot.="1"; //zápis konkrétní správné odp.
else:
//odpověď byla špatná, žádná či nerelevantní
$zapisot.="0"; //zápis konkrétní špatné odp.
endif;
$krok++;
endwhile;
$score=Round($spravnychodpovedi/$pocetotazek*100);
Include("nastaveni.php");
$id_spojeni = mysql_connect('localhost','qqq','qqq');
if (!$id_spojeni)
die('Spojení s MySQL databází se nezdařilo.');
$vysledek_vybrani = mysql_select_db('sgatlantis5507',$id_spojeni);
if (!$vysledek_vybrani)
die('Databázi se nepodařilo vybrat.');
$id_vysledku = mysql_query('SELECT * FROM `kviz_01` ORDER BY `skore` DESC LIMIT 0, 78',$id_spojeni);
if (!$id_vysledku)
die('Nepodařilo se poslat SQL dotaz do databáze.');
$nazev_tabulky_kviz = "kviz_01";
$nick= strip_tags($nick);
if ($nick=="") $nick="neumim se podepsat";
$datum=Date("j.m.Y H:i:s");
MySQL_Query("INSERT INTO $nazev_tabulky_kviz VALUES ('', '$nick', '$score', '$datum')") or chyba();
mysql_close($id_spojeni);
header("Location: http://www.qqq.cz/kviz_zobraz_vyhodnoceni.php");
?>
pred pouziti header a jinych funkci co pracujou s hlavickama nemuzes mit zadny vystup. takze vyhod ten doctype. k cemu ho tam mas?
jasne jasne jasne... to uz me doslo taky jeste nez sem si to od tebe precet... mam ale jinej problem... jedna se o kviz... v souboru kviz.php se kviz vyplni a odesle parametry souboru kviz_vyhodnoceni... ten je zpracuje a zapise do sql databaze a puvodne i jeste vypsal informace jak uzivatel dopad... ale to bylo nebezpecny kvuli reloadu... informace by se znova zapsali do databaze... proto sem to rozdelil a kviz.php vola kviz_vyhodnoceni ktery to zapise do tabulky a presmeruje na kviz_zobraz_vyhodnoceni ktery by mel informace o tom jak sem dopad vypsat... jenze ja nechci vypisova ty data z databaze ale trochu jina ktera se hodi jen docasne pro zobrazeni... takze potrebuju tomu kviz_zobraz_vyhodnoceni predat i ty promenny z kviz_vyhodnoceni ale to obycejnym presmerovani pomoci header nedocilim... jak tohle zajistit... lze to vubec? jeste me napadlo pouzit require nebo include ale to vlozi cely soubor vcetne funkcniho kodu a ne jen promenne pokud vim... takze v mem pripade by sem to jaksi zacyklil...
a vubec... neslo by to udelat jinak nez presmerovanim?
Já když ukládám příspěvky do DB, tak zabraňuju opakovaným odesíláním tím, že vyberu poslední data uložená v tabulce a porovnám je. Pokus se shodují s odeslanýma datama s formuláře, tak příspěvek nevložím. Ale Header() mi fakt přijde taky jednodušší.
osobne jsem si osvojil jisty postup, kdy formular na strance smeruju na specialni skript (napr. execute.php), tam se provedou veskera osetreni, zapisy, delety apod., vygeneruje se prislusna hlaska, ktera se ulozi do session a pote se zase presmeruju na volaci stranku (nejcasteji). Diky tomu nemuze tedy dojit k uvadenym problemum s refreshem a navic v tom mam imho vetsi prehled :)
rek bych ze si to spatne pochopil s tim header(location)
musis to udelat tak, jak pise broli, cili napsat kviz.php, ve kterem se to vyplni a posle na skript vyhodnoceni.php - ten to ulozi do databaze a nebude mit zadny vystup! a na konci bude to presmerovani(header) na soubor zobrazenivysledku.php, kterej zobrazi vysledek, tim padem kdyz da uzivatel reload, tak se reloadne to zobrazenivysledku.php a do databaze uz se nepude, protoze ro dela to vyhodnoceni.php
a nebo to udelaj, jak pise blahapet, ja to delam taky tak
Taky to delam jako Broli ... navic se to stava prehlednejsi nez kdyz moc michate php a html.