2012-02-02 111 views
1

单击它时会有一个按钮将语句插入到数据库,但即使没有单击该按钮,insert语句已经运行.why?单击按钮时插入数据库

<?php 
header('P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"'); 
include_once 'mysqli.connect.php'; 
include_once 'fbmain.php'; 

if($me){ 
    $fbid= $facebook->api('/me'); 
    $fbme = $fbid['id']; 
    $fbName = $fbid['name'] ; 
    $fbEmail = $fbid['email']; 
} 
    if (isset($_POST)){ 
     mysqli_query($mysqli, "INSERT INTO members (fbId, name, email) values ('$fbme', '$fbName', '$fbEmail')") or die(mysql_error()); 
    } 
?> 
<html> 
<form action="" method="post"> 
    <input type="image" src="../images/buy.png" name="submit" width="60"height="30" /> 
</form> 
</html> 
+0

这比表单提交更适合于ajax。 – mowwwalker 2012-02-02 06:27:33

回答

0

检查$_POSTempty()这样

if (!empty($_POST)){ 
     mysqli_query($mysqli, "INSERT INTO members (fbId, name, email) values ('$fbme', '$fbName', '$fbEmail')") or die(mysql_error()); 
    } 
+0

每当页面刷新进入数据库时​​,问题仍然会发生。 – user1175105 2012-02-02 06:31:53

+0

在if语句中打印'$ _POST'变量并检查值 – maxjackie 2012-02-02 06:40:40

0

更改代码

if (isset($_POST['submit'])){ 
    mysqli_query($mysqli, "INSERT INTO members (fbId, name, email) 
values ('$fbme', '$fbName', '$fbEmail')") or die(mysql_error()); 
} 
0

你需要更具体的了解您检查是否存在哪个键,如您的Facebook应用程序始终通过POST方法获取,因为这是Facebook如何注入已签名的请求。

奇怪我知道,但这是Facebook的你。

相关问题