Note that there are some explanatory texts on larger screens.

plurals
  1. POsearching a solution to get/post DOUBLE DATA SUBMISSION
    primarykey
    data
    text
    <blockquote> <p><strong>Possible Duplicate:</strong><br> <a href="https://stackoverflow.com/questions/722547/avoiding-form-resubmit-in-php-when-pressing-f5">Avoiding form resubmit in php when pressing f5</a> </p> </blockquote> <p>I need help on how to prevent the DOUBLE DATA SUBMISSION to mysql database. </p> <p>This usually occurs when after the submit, user hits REFRESH button. </p> <p>Whenever I send data using html web forms to handle them in sever side I'd better omit action attribute of a form which explains that the file will be processed by itself and starting from the first line i place server side php scripts. Before sending data I sctrictly check if all fields are filled correctly and then send that data to future processing. Using php script I'll check if web form button which was clicked is not null and then via established connection to mysql execute manipulation queries. Is using header function to redirect to itself is an optimal way to prevent Double Data Submission???</p> <p>Haven't you any ideas?</p> <p>In addition I'll include the code</p> <pre><code>&lt;?php include_once '../config.php'; include_once '../functions.php'; if (isset($_POST['bDep'])){ $flt=$_POST['flt']; $num=$_POST['fltNum']; $acr=$_POST['acr']; $city=$_POST['city']; $fTime=$_POST['fTime']; $bReg=$_POST['bReg']; $eReg=$_POST['eReg']; $acomp=$_POST['aircomp']; $gate=$_POST['gate']; $dte=$_POST['data']; $tm=explode(":",$fTime); if ($tm[0]&lt;3) $p=1; else $p=0; $otmena=$_POST['cancel']; if ($otmena==1) $stat=4; else $stat=7; $sql="INSERT INTO fltdep(FID, FLT, NUM, DEP, TO_FROM, IN_OUT, dte, Stat, BReg, EReg, Gate, AType, ALn, Cir, Hide ) VALUES (0, '$flt', '$num','$fTime', $city,1, '$dte',$stat,'$bReg','$eReg','$gate',$acr,$acomp,$p,0)"; if (mysql_query($sql)){ echo "&lt;p style='text-color:red;text-align:center;'&gt;Успешно добавлена запись № &lt;/p&gt;"; }else { echo "&lt;p style='text-color:red;text-align:center;'&gt;Ощибка при добавлении к базе&lt;/p&gt;"; } unset($_POST['bDep']); unset($_POST['flt']); } ?&gt; &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt; &lt;html&gt; &lt;head&gt; &lt;meta http-equiv="Content-type" content="text/html; charset=utf-8" /&gt; &lt;title&gt;Заполнение вылетов&lt;/title&gt; &lt;link rel="stylesheet" href="../css/validationEngine.jquery.css" type="text/css"/&gt; &lt;link rel="stylesheet" href="../css/template.css" type="text/css"/&gt; &lt;link rel="stylesheet" href="../themes/base/jquery.ui.all.css" type="text/css"&gt; &lt;link rel="stylesheet" href="../themes/base/flts.css" type="text/css"&gt; &lt;link rel="stylesheet" href="../themes/base/tipsy.css" type="text/css" /&gt; &lt;link rel="stylesheet" href="../themes/base/tipsy-main.css" type="text/css" /&gt; &lt;link href="../themes/base/table.css" rel="stylesheet" type="text/css" /&gt; &lt;script src="../js/jquery-1.6.min.js" type="text/javascript"&gt;&lt;/script&gt; &lt;script src="../js/languages/jquery.validationEngine-en.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt; &lt;script src="../js/jquery.validationEngine.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt; &lt;script src="../js/jquery.maskedinput-1.3.js" type="text/javascript"&gt;&lt;/script&gt; &lt;script src="../ui/jquery.ui.core.js"&gt;&lt;/script&gt; &lt;script src="../ui/jquery.ui.widget.js"&gt;&lt;/script&gt; &lt;script src="../ui/jquery.ui.button.js"&gt;&lt;/script&gt; &lt;script src="../ui/jquery.ui.tabs.js"&gt;&lt;/script&gt; &lt;script src="../ui/jquery.ui.datepicker.js"&gt;&lt;/script&gt; &lt;script type="text/javascript" language="javascript"&gt; jQuery(document).ready(function(){ // binds form submission and fields to the validation engine $("#data").datepicker({ numberOfMonths: 1, dateFormat: 'yy-mm-dd' }); jQuery("#Departures").validationEngine(); }); $(function(){ $('#fTime').mask('99:99',{placeholder:"_"}); $('#bReg').mask('99:99',{placeholder: "_"}); $('#eReg').mask('99:99',{placeholder: "_"}); }); function SetAline() { var fl=new String($('#flt').val()); if (fl.substr(0,2)=='TD' || fl.substr(0,2)=='td' ) { $('#aircomp').val(1); $('#gate').val(2);} else if (fl.substr(0,2)=='TJ' || fl.substr(0,2)=='tj' ) { $('#aircomp').val(1); $('#gate').val(1);} else if (fl.substr(0,2)=='SM' || fl.substr(0,2)=='sm' ) { $('#aircomp').val(2); $('#gate').val(1);} else if (fl.substr(0,2)=='SB' || fl.substr(0,2)=='sb' ) { $('#aircomp').val(3); $('#gate').val(1);} else if (fl.substr(0,2)=='OR' || fl.substr(0,2)=='or' ) { $('#aircomp').val(4); $('#gate').val(1);} else if (fl.substr(0,2)=='TA' || fl.substr(0,2)=='ta' ) { $('#aircomp').val(5); $('#gate').val(1);} else if (fl.substr(0,2)=='SV' || fl.substr(0,2)=='sv' ) { $('#aircomp').val(6); $('#gate').val(1);} else if (fl.substr(0,2)=='UT' || fl.substr(0,2)=='ut' ) { $('#aircomp').val(7); $('#gate').val(1);} else if (fl.substr(0,2)=='SD' || fl.substr(0,2)=='sd' ) { $('#aircomp').val(8); $('#gate').val(1);} else if (fl.substr(0,2)=='YA' || fl.substr(0,2)=='ya' ) { $('#aircomp').val(9); $('#gate').val(1);} else if (fl.substr(0,2)=='CS' || fl.substr(0,2)=='cs' ) { $('#aircomp').val(10);$('#gate').val(1);} else if (fl.substr(0,2)=='D9' || fl.substr(0,2)=='d9' ) { $('#aircomp').val(11);$('#gate').val(1);} } function SetRegTime() { var depTime=$('#fTime').val(); var fl=new String($('#flt').val()); var start,end; if (fl.substr(0,2)=='TD' || fl.substr(0,2)=='td'){ start='01:30'; end='00:20'; }else { start='03:00'; end='00:40'; } $('#bReg').val(TimeDiff(depTime,start)); $('#eReg').val(TimeDiff(depTime,end)); } function TimeDiff(a,b) { var first = a.split(":") var second = b.split(":") var xx; var yy; if(parseInt(first[0]) &lt; parseInt(second[0])){ if(parseInt(first[1]) &lt; parseInt(second[1])){ yy = parseInt(first[1]) + 60 - parseInt(second[1]); xx = parseInt(first[0]) + 24 - 1 - parseInt(second[0]) }else{ yy = parseInt(first[1]) - parseInt(second[1]); xx = parseInt(first[0]) + 24 - parseInt(second[0]) } }else if(parseInt(first[0]) == parseInt(second[0])){ if(parseInt(first[1]) &lt; parseInt(second[1])){ yy = parseInt(first[1]) + 60 - parseInt(second[1]); xx = parseInt(first[0]) + 24 - 1 - parseInt(second[0]) }else{ yy = parseInt(first[1]) - parseInt(second[1]); xx = parseInt(first[0]) - parseInt(second[0]) } }else{ if(parseInt(first[1]) &lt; parseInt(second[1])){ yy = parseInt(first[1]) + 60 - parseInt(second[1]); xx = parseInt(first[0]) - 1 - parseInt(second[0]) }else{ yy = parseInt(first[1]) - parseInt(second[1]); xx = parseInt(first[0]) - parseInt(second[0]) } } if(xx &lt; 10) xx = "0" + xx if(yy &lt; 10) yy = "0" + yy return (xx + ":" + yy); } &lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;form id="Departures" class="formular" method="post" action=""&gt; &lt;fieldset&gt; &lt;legend&gt; ЗАПОЛНЕНИЕ ВЫЛЕТОВ &lt;a href="FillArr.php"&gt;&lt;i&gt;Прилет&lt;/i&gt;&lt;/a&gt; &lt;/legend&gt; &lt;label&gt; &lt;span&gt;Дата : &lt;/span&gt; &lt;input class="validate[required] text-input" type="text" name="data" id="data" maxlength="12" value="&lt;? (isset($_POST['data']))?($_POST['data']): date('Y-m-d') ;?&gt;" /&gt; &lt;/label&gt; &lt;label&gt; &lt;span&gt;Рейс : &lt;/span&gt; &lt;input value="" class="validate[required] text-input" type="text" name="flt" id="flt" maxlength="5" onkeyup="SetAline();"/&gt; &lt;/label&gt; &lt;label&gt; &lt;label&gt; &lt;span&gt;№ рейса : &lt;/span&gt; &lt;input value="" class="validate[required] text-input" type="text" name="fltNum" id="fltNum" maxlength="5"/&gt; &lt;/label&gt; &lt;label&gt; &lt;span&gt;Тип ВС :&lt;/span&gt; &lt;select name="acr" id="acr" class="validate[required]"&gt; &lt;option value=""&gt;Выберите&lt;/option&gt; &lt;?php $AC= &amp; getAC(); while ($rowAC=mysql_fetch_array($AC)){ $i++; echo "&lt;option value='".$rowAC['acode']."'&gt;".$rowAC['name_ru']."&lt;/option&gt;"; } ?&gt; &lt;/select&gt; &lt;/label&gt; &lt;label&gt; &lt;span&gt;А/П прибт :&lt;/span&gt; &lt;select name="city" id="city" class="validate[required]"&gt; &lt;option value=""&gt;Выберите&lt;/option&gt; &lt;?php $city= &amp; getCity(); while ($rowCi=mysql_fetch_array($city)){ $i++; echo "&lt;option value='".$rowCi['code']."'&gt;".$rowCi['abbr_ru']."&lt;/option&gt;"; } ?&gt; &lt;/select&gt; &lt;/label&gt; &lt;label&gt; &lt;label&gt; &lt;span&gt;Время отправления : &lt;/span&gt; &lt;input value="" class="validate[required] text-input" type="text" name="fTime" id="fTime" maxlength="5" onBlur="SetRegTime();"/&gt; &lt;/label&gt; &lt;label&gt; &lt;label&gt; &lt;span&gt;Начало регистрации : &lt;/span&gt; &lt;input value="" class="validate[required] text-input" type="text" name="bReg" id="bReg" maxlength="5" readonly="readonly" /&gt; &lt;/label&gt; &lt;label&gt; &lt;label&gt; &lt;span&gt;Конец регистрации : &lt;/span&gt; &lt;input value="" class="validate[required] text-input" type="text" name="eReg" id="eReg" maxlength="5" readonly="readonly"/&gt; &lt;/label&gt; &lt;label&gt; &lt;span&gt;Авиакомпания :&lt;/span&gt; &lt;select name="aircomp" id="aircomp" class="validate[required]"&gt; &lt;option value=""&gt;Выберите авиакомпанию&lt;/option&gt; &lt;option value="option1"&gt;Таджик Эйр&lt;/option&gt; &lt;?php $Aline= &amp; getAComp(); while ($rowAline=mysql_fetch_array($Aline)){ $i++; echo "&lt;option value='".$rowAline['acode']."'&gt;".$rowAline['name_ru']."&lt;/option&gt;"; } ?&gt; &lt;/select&gt; &lt;/label&gt; &lt;label&gt; &lt;span&gt;Терминал :&lt;/span&gt; &lt;select name="gate" id="gate" class="validate[required]"&gt; &lt;option value=""&gt;Выберите&lt;/option&gt; &lt;option value="1"&gt;1&lt;/option&gt; &lt;option value="2"&gt;2&lt;/option&gt; &lt;/select&gt; &lt;/label&gt; &lt;label&gt; &lt;span&gt;Отмена&lt;/span&gt; &lt;input class="checkbox" type="checkbox" name="cancel" id="cancel" value="1"/&gt; &lt;/label&gt; &lt;/fieldset&gt; &lt;input name="bDep" class="submit" type="submit" value="Заполнить"/&gt;&lt;hr/&gt; &lt;/form&gt; &lt;/body&gt; &lt;/html&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload