0

我为我的学校网站为学生创建了一个简单的标记系统。现在标记系统工作得很好,现在我还必须将标记保存在带有相应文章 ID 的通知表中,以便以后通知学生他们已经标记了哪些文章,即使我设法做到了。但是现在,如果您偶然想在键入文章时删除标签,而您不需要标记该人,那么第一个放置标签也会在数据库中更新。

//ajax 代码 (attach.php)

<?php
include('config.php');
if(isset($_POST))
{
$u=$_POST['v'];

mysql_query("INSERT INTO `notify` (`not_e`) VALUES ('$u')");
}

?>

// 标签系统 js 代码

<script type="text/javascript">
var id = '<?php echo $id ?>';
$(document).ready(function()
{

var start=/%/ig;
var word=/%(\w+)/ig;

$("#story").live("keyup",function() 
{
var content=$(this).text();
var go= content.match(start);
var name= content.match(word);
var dataString = 'searchword='+ name;

if(go.length>0)
{
$("#msgbox").slideDown('show');
$("#display").slideUp('show');
$("#msgbox").html("Type the name of someone or something...");
if(name.length>0)

{
$.ajax({
type: "POST",
url: "boxsearch.php",
data: dataString,
cache: false,
success: function(html)
{
$("#msgbox").hide();
$("#display").html(html).show();
}
});

}
}
return false();
});

$(".addname").live("click",function() 
{
var username=$(this).attr('title');
$.ajax({
type: "POST",
url: "attach.php",
data: {'v': username},
});
var old=$("#story").html();
var content=old.replace(word,""); 
$("#story").html(content);
var E="<a class='blue' contenteditable='false' href='profile2.php?id="+username+"'>"+username+"</a>";
$("#story").append(E);
$("#display").hide(); 
$("#msgbox").hide();
$("#story").focus();
});
});
</script>
4

2 回答 2

0

看起来您的问题出现在 php 代码中的 if 语句中:即使 $_POST['v'] 为空并且 sql 仍然被执行。

有来自另一个线程的报价:

" 使用 !empty 代替 isset。isset 为 $_POST 返回 true,因为 $_POST 数组是超全局的并且始终存在(设置)。

或者更好地使用 $_SERVER['REQUEST_METHOD'] == 'POST' "

或者在我看来。就放

if ($_POST['v']){
    //sql query
}

希望能帮助到你;)

于 2013-10-13T18:14:29.880 回答
0
 <?php
include('config.php');

 $u = $_POST["v"];

 //echo $a;


  if($u != '')
   {

    mysql_query("your insert query");
  }
   else
       {
       }



 ?>
于 2013-10-14T10:03:30.360 回答