如果(isset($ _ GET ['确认'])),我在这里做错了什么?

时间:2012-04-06 16:16:30

标签: php

我的确认不会触发查询?谁能看到我做错了什么?

url:http://www.example.co.uk/registerinterest.php?productid=125&confirm=Confirm

<div class="confirminterest">
     <form action="registerinterest.php?productid=' . $productid . '" method="post" enctype="multipart/form-data">
       <input name="confirm" type="submit" id="confirm" value="Confirm" />
     <input name="cancel" type="button" id="cancel" value="Cancel" /></form>
   </div>

 if (isset($_GET['Confirm'])) {
         $addinterest = mysql_query("INSERT INTO tm_credits_spent (fk_customer_id, fk_product_id, int_credits_spent) VALUES('$pid','$productid','$adminfee')") or die (mysql_error());
}

6 个答案:

答案 0 :(得分:3)

当您的表单使用POST方法时,您正在寻找GET数据。由于您要将数据插入数据库,因此POST是正确的,因此请将$_GET替换为$_POST

当您的按钮被命名为Confirm时,您也在寻找confirm。 PHP区分大小写,因此也要替换它。

$_POST['confirm']

您似乎也面临SQL injection的风险。

答案 1 :(得分:1)

添加我自己的答案,因为其他人错过了输入的名称是“确认”,而不是“确认”(这是它的值)。

因此,您必须检查isset() $_POST['confirm'],而不是$_POST['Confirm']$_GET['confirm']

答案 2 :(得分:0)

您的表单正在发送POSTdata,而不是GET。更改表单的方法,或检查$_POST['confirm']

答案 3 :(得分:0)

您已将方法设置为发布。试试$ _POST ['确认'];

答案 4 :(得分:0)

在您的GET字符串和表单(使用POST)中,字段为"confirm",而非"Confirm"。请注意小写'c'

尝试:if (isset($_GET['confirm'])) {(或if (isset($_POST['confirm'])) {)。

答案 5 :(得分:-1)

你在html中使用php变量可能就是这个问题 替换它;

<form action="registerinterest.php?productid=' . $productid . '" method="post" enctype="multipart/form-data">

<form action="registerinterest.php?productid=' .<?php $productid ?>. '" method="post" enctype="multipart/form-data">

并且使用$_POST['confirm']作为条件。