【问题标题】:Insert to database when button is click单击按钮时插入数据库
【发布时间】:2012-02-24 20:21:47
【问题描述】:

我有一个按钮,点击它会将语句插入数据库,但是即使没有点击按钮,插入语句也已经运行。为什么?

<?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>

【问题讨论】:

  • 这比表单提交更适合 ajax。

标签: php database button insert


【解决方案1】:

您需要定义提交的内容?试试这个:

if(isset($_POST['submit'])){
    //Query or something 
}

这段代码说如果某些输入被命名 = 提交设置(点击/发布)然后查询将被执行。

【讨论】:

    【解决方案2】:

    您需要更具体地确定您检查的密钥是否存在,因为您的 Facebook 应用程序总是通过 POST 方法获取,因为这就是 Facebook 注入签名请求的方式。

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

    【讨论】:

      【解决方案3】:

      把代码改成

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

      【讨论】:

        【解决方案4】:

        检查$_POST 是不是像这样的empty()

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

        【讨论】:

        • 每次页面刷新进入数据库时​​,问题依然存在。
        • if 语句中打印$_POST 变量并检查值
        猜你喜欢
        • 1970-01-01
        • 2017-06-07
        • 2015-03-30
        • 2015-04-10
        • 1970-01-01
        • 1970-01-01
        • 2021-12-06
        • 2016-06-22
        • 2014-06-20
        相关资源
        最近更新 更多