Diskuze: Časově omezený formulář
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 8 zpráv z 8.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.


Trošku to upřesni. Čeho chceš docílit, jak to aktuálně vypadá, pokud už máš formulář a jen ho chceš časově omezit apod.
Pokud ti jde jen jednoduše o to, aby formulář šel uložit jen v určitém časovém intervalu, tak nejjednodušší řešení je dát si do formuláře skryté políčko se zašifrovaným časem a po odeslání formuláře kontrolovat, jestli je čas po rozšifrování v povoleném časovém intervalu.
Potřebuješ skryté políčko s ID, které si uložíš na serveru. To bude
identifikovat konkrétní otevření formuláře a nést si informaci o tom, kdy
byl formulář spuštěn. Po odeslání kontroluješ, zda byl čas přesáhnut a
pokud bude delší, než 40 minut, tak formulář zahodíš (s rezervou
několika vteřin, kvůli prodlevě v odeslání)
Dále by se hodilo přidat políčko s časem spuštění i do formuláře, aby
jsi ho mohl vytáhnout javascriptem a podle toho uživateli zobrazit odpočet
času.
Diky za nasmerovani. ID mam v databazi. Akorad si lamu hlavu jak to zapsat v
PHP a Java Scriptu. Mam chabe zkusenosti
.
Zdravím,
zkouším rozjet na localu tento odpočet, ale nějak se mi to nedaří.
Odpočet se skládá ze dvou souborů odpocet.php a odpocet.js . Nějaká rada
prosím, kde dělám chybu?
odpocet.php
<html>
<BODY>
<head>
<title>neco</title>
<link rel="stylesheet" type="text/css" href="pokus.css">
</head>
<form action="neco.php" method="post">
<p id="odpocet" data-konec="12/24/2063 15:18:40" data-hlaska="Čas vypršel!" data-zbyva="Do odpočtu zbývá:"></p>
<script>
odpocet(document.getElementById('odpocet'));
</script>
<?php
?>
<!-- Tlačítko pro výpočet IQ -->
<input type="image" name="imageButton" id="imageButton" alt="..." src="images/ikona_spocitej Iq.jpg">
</form>
</BODY>
</html>
odpocet.js
var vterina = 1000;
var minuta = vterina * 60;
var hodina = minuta * 60;
var den = hodina * 24;
var rok = den * 365.24219;
var slova = {
roku: ["rok", "roky", "let"],
dnu: ["den", "dny", "dnů"],
hodin: ["hodina", "hodiny", "hodin"],
minut: ["minuta", "minuty", "minut"],
vterin: ["vteřina", "vteřiny", "vteřin"]
};
function sklonovani(pocet, co) {
if (pocet == 1) return slova[co][0];
if (pocet < 5 && pocet > 0) return slova[co][1];
return slova[co][2];
}
function odpocet(el) {
var konec = new Date(el.getAttribute("data-konec"));
var ted = new Date();
var rozdil = konec - ted;
if (rozdil < vterina) {
el.innerHTML = el.getAttribute("data-hlaska");
return;
}
var zbyva = {
roku: Math.floor(rozdil / rok),
dnu: Math.floor(rozdil % rok / den),
hodin: Math.floor((rozdil % den) / hodina),
minut: Math.floor((rozdil % hodina) / minuta),
vterin: Math.floor((rozdil % minuta) / vterina)
}
var vypis = el.getAttribute("data-zbyva");
for (co in zbyva) {
var pocet = zbyva[co];
if (pocet > 0) vypis += " " + pocet + " " + sklonovani(pocet, co);
}
el.innerHTML = vypis;
setTimeout(function() {
odpocet(el);
}, vterina);
}
Zobrazeno 8 zpráv z 8.