|
|
|
| Доброй ночи!
Кто-то, наверное сталкивался при использовании запроса INSERT INTO $table_name
с проблемой двукратного сохранения одной и той же записи.
Пожже заметил, что такое случается ели содержимое переменной, что сохраняется имеет знак " (в моем случае - это смайлик).
Скажите, пожалуйста, как избежать подобного дефекта? | |
|
|
|
|
|
|
|
для: 1uacomua
(02.12.2007 в 00:20)
| | знак двойные кавычки, это смайлик? Простите какой? | |
|
|
|
|
|
|
|
для: Faraon
(02.12.2007 в 00:47)
| | <IMG src="http://1ua.com.ua/sml/25.gif"> | |
|
|
|
|
|
|
|
для: 1uacomua
(02.12.2007 в 00:20)
| | Двукратно запись может сохранится, если два раза выполняется оператор INSERT INTO - так бывает, если вместо одного щелчка по кнопке произвести двойной щелчёк. | |
|
|
|
|
|
|
|
для: cheops
(02.12.2007 в 12:04)
| | Да, дело в refresh или в двойном щелчке так как я обнаружил что не только переменная, содержащая " двукратно сохраняется.
Но Header("Location: страница_откуда_был_послан_запрос") - для меня не выход так как я хочу после удачного сохрания давать посетителю ссылку для просмотра сохраненной инфы и для автомат. переброса на следующую страницу.
(так как в форуме)
Скажите, пожалуйста, как это сделать, чтобы после добавления записи refresh не делался, а давалась ссылка и автоматом через 5 сек. переброс на следующую страницу. | |
|
|
|
|
|
|
|
для: 1uacomua
(02.12.2007 в 14:48)
| | А если следующий код вставляет несколько записей редирект ведь не поможет?
<?php
require $_SERVER["DOCUMENT_ROOT"]."/adminzone/auth.php";
include($_SERVER["DOCUMENT_ROOT"]."/tex/phplib/db_mysql.inc");
include $_SERVER["DOCUMENT_ROOT"]."/adminzone/login.php";
#PREPARE DATABASE QUERY
$db = new DB_Sql;
$db->Database = 'smida';
$db->Host = 'localhost';
$db->User = user_db;
$db->Password = password_db;
$db->query("set character set cp1251_koi8");
$label=0;
if (isset($_GET['id']))
{
$oid = $_GET['id'];
$sql = "select * from offence where off_id=$oid";
$db->query($sql);
$db->next_record();
$number = $db->f(number);
$name = $db->f(name);
$ter_id = $db->f(ter_id);
$m_data = $db->f(off_p_date);
$data = $db->f(data);
$emi_edrpou = $db->f(emi_edrpou);
$emi_name = $db->f(emi_name);
$text1 = $db->f(text1);
$text2 = $db->f(text2);
$text3 = $db->f(text3);
$city = $db->f(city);
$kod_obl = $db->f(kod_obl);
$label=0;
}
else if (isset($_REQUEST['flag']))
{
if($_REQUEST['flag']==1){
$oid = $_REQUEST['oid'];
$number = $_REQUEST['number'];
$name = strtr($_REQUEST['name'], "'", "`");
// $city = strtr($_REQUEST['city'], "'", "`");
// $kod_obl = $_REQUEST['kod_obl'];
$ter_id = $_REQUEST['ter_id'];
$m_data = $_REQUEST['m_data'];
$data = $_REQUEST['data'];
$emi_edrpou = $_REQUEST['emi_edrpou'];
$emi_name = strtr($_REQUEST['emi_name'], "'", "`");
$text1 = strtr($_REQUEST['text1'], "'", "`");
$text2 = strtr($_REQUEST['text2'], "'", "`");
$text3 = strtr($_REQUEST['text3'], "'", "`");
$label=1;
$array_id=$_REQUEST['array_id'];
}else if($_REQUEST['flag']==2){
session_start();
$oid = '';
$number = $_SESSION['number'];
$name = $_SESSION['name'];
$ter_id = $_SESSION['ter_id'];
$m_data = $_SESSION['m_data'];
$data = $_SESSION['data'];
$emi_edrpou = $_SESSION['emi_edrpou'];
$text1 = $_SESSION['text1'];
$text2 = $_SESSION['text2'];
$text3 = $_SESSION['text3'];
$label=2;
}
//print "emi_edrpou=".$emi_edrpou;
if ($emi_edrpou != "")
{
$array_emi_name=array();
$array_id=array();
if ($_REQUEST['fz']!=""){
//print "fz=".$_REQUEST['fz'];
$array_emi_name[0]=$_REQUEST['fz'];
$array_id[$i]=0;
}else{
$sql = "select id,ufr_name from sm_ufr_name where ufr_edrpou='$emi_edrpou'";
$db->query($sql);
for($i=0;$i<$db->num_rows();$i++){
$db->next_record();
$array_emi_name[$i]=$db->f(ufr_name);
$array_id[$i]=$db->f(id);
}
if ($db->num_rows()==0&&$label!=2){
session_start();
//$_SESSION['oid'] = $oid;
$_SESSION['number'] = $number;
$_SESSION['name'] = $name;
$_SESSION['m_data'] = $m_data;
$_SESSION['data'] = $data;
$_SESSION['emi_edrpou'] = $emi_edrpou;
$_SESSION['text1'] = $text1;
$_SESSION['text2'] = $text2;
$_SESSION['text3'] = $text3;
header("Location:/adminzone/newline.php?ufr_edrpou=$emi_edrpou&first_run=true");
}
}
}
$valid = 1;
if ($m_data == "" || $number == "" || $name == "" || $ter_id == "" || $data == "" || $emi_edrpou == "" || $emi_name == "" ||
$text1 == "" || $text2 == "" || $text3 == "")
{
print ("<p style=\"color:red\">Форма заповнена не повністю!</p><br>");
$valid = 0;
}
if ($valid == 1)
{
if($m_data > date('Y.m.d') or $data>date('Y.m.d')){
echo "Посмотри на даты!!!";
echo date('Y-m-d');
exit;
}
$sql = "select ter_city, ter_rgn_id from sm_rb_ssmsc where ter_id=$ter_id";
$db->query($sql);
$db->next_record();
$city = $db->f(ter_city);
$kod_obl = $db->f(ter_rgn_id);
$query = "select off_id from offence where number like '$number' and off_p_date='$m_data'";
$db->query($query);
//print "<br>".$oid;
//print "<br>".$query;
//print "<br>".$db->num_rows();
if($db->num_rows()!=0)
{
$db->next_record();
$sql = "update offence set ";
$sql .= 'number = \''.$number.'\', ';
$sql .= 'name = \''.$name.'\', ';
$sql .= 'city = \''.$city.'\', ';
$sql .= 'data = \''.$data.'\', ';
$sql .= 'off_p_date = \''.$m_data.'\', ';
$sql .= 'emi_edrpou = \''.$emi_edrpou.'\', ';
$sql .= 'id_sm_ufr_name=\''.$array_id[$emi_name].'\', ';
$sql .= 'emi_name = \''.$array_emi_name[$emi_name].'\', ';
$sql .= 'text1 = \''.$text1.'\', ';
$sql .= 'text2 = \''.$text2.'\', ';
$sql .= 'text3 = \''.$text3.'\', ';
$sql .= 'ter_id = '.$ter_id.', ';
$sql .= 'kod_obl = '.$kod_obl;
$sql .= ' where off_id='.$db->f(off_id);
//print $sql;
$db->query($sql);
$db->query("select max(off_id) as off_id from offence");
$db->next_record();
$oid = $db->f(off_id);
}
else
{
$sql = "insert offence (id_sm_ufr_name,number, name, city, data, emi_edrpou, emi_name, text1, text2, text3, ter_id, kod_obl, off_p_date) values (";
$sql .= '\''.$array_id[$emi_name].'\', ';
$sql .= '\''.$number.'\', ';
$sql .= '\''.$name.'\', ';
$sql .= '\''.$city.'\', ';
$sql .= '\''.$data.'\', ';
$sql .= '\''.$emi_edrpou.'\', ';
$sql .= '\''.strtr($array_emi_name[$emi_name], "'", "`").'\', ';
$sql .= '\''.$text1.'\', ';
$sql .= '\''.$text2.'\', ';
$sql .= '\''.$text3.'\', ';
$sql .= $ter_id.', ';
$sql .= $kod_obl.', ';
$sql .= '\''.$m_data.'\')';
//print $sql;
session_start();
$inserted=$_SESSION['inserted'];
//print "inserted=".$inserted;
$db->query("select off_id from offence where number like '$number' and off_p_date='$m_data'");
if($db->num_rows()==0 && $inserted!=1){
$_SESSION['inserted'] = 1;
$db->query($sql);
$_SESSION['inserted'] = '';
}
$db->query("select max(off_id) as off_id from offence");
$db->next_record();
$oid = $db->f(off_id);
$db->query("select * from reestr where kod='".$emi_edrpou."' and info='offence'");
if ($db->num_rows() == 0)
{
$sql = "insert reestr (kod, nazva, info, obl) values (";
$sql .= '\''.$emi_edrpou.'\', ';
$sql .= '\''.$emi_name.'\', ';
$sql .= '\'offence\', ';
$sql .= $kod_obl.')';
$db->query($sql);
}
}
}
}
?>
<html><head>
<title>Зона адміністрування сайту www.smida.gov.ua - постанови про правопорушення</title>
<link href="/tex/style.css" rel="stylesheet" type="text/css">
</head>
<a href="/adminzone/search.php">Повернутися до переліку</a>
<table align="left" class="formTable" border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#bbbbbb" id="AutoNumber1" >
<colgroup>
<col width="250px"/><col width="750px"/>
</colgroup>
<form action='/adminzone/offence.php' METHOD='POST'>
<tr><td colspan="2"><h3 style="text-align:left;">Введення/редагування постанови про правопорушення:</h3></td></tr>
<input type='hidden' name='oid' value='<?php echo $oid; ?>'>
<input type='hidden' name='flag' value='1'>
<tr><td colspan="2"> </td></tr>
<tr>
<td><ul><li>Дата отримання: </ul></td>
<td style="text-align:left"> <input class="srch" type="text" name="m_data" size=50 style="width:100px" value='<?php echo $m_data; ?>'></td>
</tr>
<tr>
<td><ul><li>Номер постанови: </ul></td>
<td style="text-align:left"> <input class="srch" type="text" name="number" size=50 style="width:100px" value='<?php echo $number; ?>'></td>
</tr>
<tr>
<td><ul><li>Назва постанови: </ul></td>
<td style="text-align:left"> <input class="srch" type="text" name="name" size=50 style="width:400px" value='<?php echo $name; ?>'></td>
</tr>
<tr>
<td><ul><li>Автор:</li></ul></td>
<td style="text-align:left"><select class="srch" style="width:300px" name="ter_id">
<?php
$sql = "select ter_id, ter_name from sm_rb_ssmsc order by ter_id asc";
$db->query($sql);
while($db->next_record())
{
if ($ter_id == $db->f(ter_id))
print '<option selected=true value='.$db->f(ter_id).'>'.$db->f(ter_name);
else
print '<option value='.$db->f(ter_id).'>'.$db->f(ter_name);
}
?>
</select></td>
</tr>
<tr>
<td><ul><li style="color:gray">Територія:</li></ul></td>
<td style="text-align:left;"><select class="srch" disabled="true" style="width:300px" name="kod_obl">
<?php
$sql = "select kod_obl, naim_obl from obl order by kod_obl asc";
$db->query($sql);
while($db->next_record())
{
if ($kod_obl == $db->f(kod_obl))
print '<option selected=true value='.$db->f(kod_obl).'>'.$db->f(naim_obl);
else
print '<option value='.$db->f(kod_obl).'>'.$db->f(naim_obl);
}
?>
</select></td>
</tr>
<tr>
<td><ul><li style="color:gray">Місто: </ul></td>
<td style="text-align:left"> <input class="srch" disabled="true" type="text" name="city" size=50 style="width:200px" value='<?php echo $city; ?>'></td>
</tr>
<tr>
<td><ul><li>Дата: </ul></td>
<td style="text-align:left"> <input class="srch" type="text" name="data" size=50 style="width:100px" value='<?php echo $data; ?>'></td>
</tr>
<tr>
<td><ul><li>Назва емітента: </ul></td>
<td style="text-align:left">
<?php if($emi_edrpou!="fz" ){
print"<select class=\"srch\" style=\"width:300px\" name=\"emi_name\">";
for($i=0;$i<count($array_emi_name);$i++){
if ($i==0)
print "<option selected=true value=".$i.">".$array_emi_name[$i];
else{
print "<option value=".$i.">".$array_emi_name[$i];
}
}
}else{
print "<input class=\"srch\" type=\"text\" name=\"fz\" size=50 style=\"width:100px\" value=''>";
print "<input class=\"srch\" type=\"hidden\" name=\"emi_name\" size=50 style=\"width:100px\" value='0'>";
print "<input class=\"srch\" type=\"hidden\" name=\"emi_edrpou\" size=50 style=\"width:100px\" value='$emi_edrpou'>";
}
print "</select>";
print "<input type=\"button\" style=\"width:120px\" name=\"\" value=\"Редагувати\" size=35 onclick=\"window.open('/adminzone/ufr_name/edit_form.php?kod=$emi_edrpou')\">" ?>
</td>
</tr>
<tr>
<td><ul><li>Код ЄДРПОУ емітента: </ul></td>
<td style="text-align:left"> <input class="srch" type="text" name="emi_edrpou" size=50 style="width:100px" value='<?php echo $emi_edrpou; ?>'>
<input type="submit" style="width:120px" name="seach_emi_edrpou" value=Знайти size=35></td>
</tr>
<tr>
<td><ul><li>Вступ: </ul></td>
<td style="text-align:left"> <textarea class="srch" name="text1" size=50 style="width:750px;height:100px"><?php echo $text1; ?></textarea></td>
</tr>
<tr>
<td><ul><li>Встановив: </ul></td>
<td style="text-align:left"> <textarea class="srch" name="text2" size=50 style="width:750px;height:300px"><?php echo $text2; ?></textarea></td>
</tr>
<tr>
<td><ul><li>Постановив: </ul></td>
<td style="text-align:left"> <textarea class="srch" name="text3" size=50 style="width:750px;height:200px"><?php echo $text3; ?></textarea></td>
</tr>
<tr><td colspan="3"> </td></tr>
<tr><td colspan="3"> </td></tr>
<tr height="25"><td colspan="3" style="text-align:center">
<input type="button" style="width:120px" name="" value="Нова постанова" size=35 onclick="document.location.href('/adminzone/offence.php')">
<input type="submit" style="width:120px" name="" OnDblClick="alert('Не клацайте двічі на кнопці')" value=<?php echo $oid=="" ? "Внести до бази даних" : "Зберегти"; ?> size=35>
<?php echo $oid!="" ? "<input type=\"button\" style=\"width:120px\" name=\"\" value=\"Переглянути\" size=35 onclick=\"window.open('/emitents/offence_zvit.php?id=$oid')\">" : ""; ?>
<tr><td colspan="3"> </td></tr>
</td>
</tr>
</form>
</table>
</html>
|
| |
|
|
|
|
|
|
|
для: Перекоти-поле
(13.12.2007 в 10:50)
| |
$db->query("set character set cp1251_koi8");
|
сюрр.... | |
|
|
|
|
|
|
|
для: 1uacomua
(02.12.2007 в 14:48)
| | А что разве через хидер нельзя перенаправить пользователя на нужную вам страницу, а только на "страница_откуда_был_послан_запрос"? Ну добавили запись, header("куда надо"), а уж выводить просмотр добавленного или иного - разве это трудно устроить, зачем 5 сек.? | |
|
|
|
|