Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 即使字段为空,也会执行mysql查询_Javascript_Php_Html_Mysql_Ajax - Fatal编程技术网

Javascript 即使字段为空,也会执行mysql查询

Javascript 即使字段为空,也会执行mysql查询,javascript,php,html,mysql,ajax,Javascript,Php,Html,Mysql,Ajax,我为我的学校网站为学生创建了一个简单的标签系统。现在标签系统工作得很好,现在我还必须将标签保存在一个通知表中,并带有相应的文章id,以便以后通知学生他们在哪篇文章中被标记,即使我已经做到了这一点。但是现在,如果您在键入文章时偶然想要删除标记,您不需要标记此人,那么第一个put标记也会在db中更新 //ajax代码(attach.php) 看起来您的问题出现在php代码中的if语句中: 即使$\u POST['v']是空的,并且sql仍然被执行 下面是另一个线程的引用: " 使用!empty而不是

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

//ajax代码(attach.php)


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

下面是另一个线程的引用:

" 使用!empty而不是isset。isset对于$\u POST返回true,因为$\u POST数组是超全局的并且始终存在(set)

或者最好使用$\u服务器['REQUEST\u METHOD']=='POST' "

或者在我看来。 放

希望有帮助;)



hm,问题是“即使字段为空也会执行mysql查询”,对吗?这是因为每次单击
.addname
,都会运行
attach.php
;所以只需在script
if($\u POST['v'])
和javascript:
if(username)
;顺便说一句,如果你打算使用
mysql\u query
,出于安全考虑,请使用
mysql\u real\u escape\u string
<代码>mysql\u查询(“插入到notify(not\e)值(.mysql\u real\u escape\u string($u)。”
我检查了同样的问题,发送请求后,你在这里发布一个
var\u dump($\u post)
?因此,理论上,代码:
if(isset($\u POST)&&isset($\u POST['v'])&&$\u POST['v'])
应该决定您的问题。即使这样也没有帮助,但我认为您是对的,每次我单击要标记的名称(.addname),查询都会执行,因此我想我必须修复那里的错误。hm;检查-在
$(this).attr('title')
mb中的内容。它不是每次按
.addname
时都为空的。如果($\u POST['v'])
相同,则会导致php解释器将隐式类型转换为bool;但是,你给了我一个想法,所以它可能会发生,
$\u POST['v']
不是空的,而是有空格的,所以我们可以做一个可能的变体:
$\u POST['v']=preg\u replace('/\s+/','',$\u POST['v'])
,然后检查
如果($\u POST['v'])
condition。这没有任何区别,但有一点是肯定的,每次我选择标记时都会执行查询,因此如果您能帮助我找出如何防止这种情况发生,那将非常有用。我想知道如果没有其他工作,我会把一个删除查询我已经修改了你的代码,并检查它是否为我工作良好,请检查现在。空间尝试与preg或字符串repalce功能。
<?php
include('config.php');
if(isset($_POST))
{
$u=$_POST['v'];

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

?>
<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>
if ($_POST['v']){
    //sql query
}
 <?php
include('config.php');

 $u = $_POST["v"];

 //echo $a;


  if($u != '')
   {

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



 ?>