| Autor | Zpráva | ||
|---|---|---|---|
| Rad Profil |
#1 · Zasláno: 3. 3. 2016, 08:11:01
Dobrý den,
dlouho mám problém s vkládáním záznamu do mysql databáze z formuláře v IE. Po vyplnění polí a odeslání ke zpracování pomocí PHP se POUZE v prohlížečí IE vloží záznam dvojitě - jako by se odeslal dvakrát. Ani google mi nepomohl. Nevíte, prosím, někdo, jak to ošetřit? Kód: require "./db_spojeni.php";
$vzkaz=$_POST['vzkaz'];
$jmeno=$_POST['jmeno'];
$sql_prikaz="INSERT INTO vzkaznik(text,jmeno,datum,id) "
."VALUES('"
.mysqli_real_escape_string($db_spojeni,$vzkaz)
."','"
.mysqli_real_escape_string($db_spojeni,$jmeno)
."',NOW(),NULL)";
$zapis=mysqli_query($db_spojeni, $sql_prikaz);
if ($zapis)
{
echo 'Příspěvek byl vložen';
mysqli_close($db_spojeni);
echo '<script language="JavaScript">
<!--
window.location="./index.php?stranka=vzkaznik#0";
// -->
</script>';
}
else
{
echo '<span class="tlako muj_font">Chyba!</span><br><br>';
} |
||
| Kajman Profil |
#2 · Zasláno: 3. 3. 2016, 08:17:36
Po zápisu přesměrujte přes http hlavičku ne přes javascript.
if ($zapis)
{
mysqli_close($db_spojeni);
header("Location: ./index.php?stranka=vzkaznik#0");
exit;
} |
||
| Rad Profil |
#3 · Zasláno: 3. 3. 2016, 08:20:04
Vyzkouším, děkuji moc za pomoc.
|
||
| Rad Profil |
#4 · Zasláno: 3. 3. 2016, 16:22:54
Tak to bohužel nepomohlo :-( Už nevím, co s tím...
|
||
| Kajman Profil |
#5 · Zasláno: 3. 3. 2016, 20:30:12
Ještě můžete zkusit ošetřit doubleclick, něco jako
Vícenásobný submit skript ruší posílání submit name |
||
| Chamurappi Profil |
#6 · Zasláno: 3. 3. 2016, 21:55:11
Reaguji na Rada:
„se POUZE v prohlížečí IE vloží záznam dvojitě - jako by se odeslal dvakrát“ A ve skutečnosti se odesílá kolikrát? Co vidíš třeba ve Fiddlerovi? To odeslání se děje úplně normálně? Žádný JS do toho neintervenuje? Žádný AJAX? Žádné volání submitu z onsubmitu? O takovéto chybě slyším prvně.
|
||
| leorond Profil |
Co zkusit omezit odesílání například antispamovou otázkou nebo nějakou časovou prodlevou před odesíláním nového formuláře?
Ještě bych se zeptal, toto je celý script? žádná podmínka $_GET nebo $_POST? Myslím tím například na začátek uložit if(isset($_POST["zpracovat"]))Jelikož kdyby toto byl celý script tak kdyby na něj někdo jen přišel třeba přes URL tak už se zapisuje do databáze |
||
|
Časová prodleva: 10 let
|
|||
0