-1

我有如下表格:

<form action="campionat.php?competitii='.$idcompetitie.'">
    <input type="submit" name="upgrade" value="inainte" />
</form>

campionat.php

    if($_POST['upgrade']=="inainte")
    {    
        $lvlupstadion   = $levelstadio+1;
        $cost               = 10000000*$lvlupstadion;
        $bugetnou       = $buget - $cost;

        $q = mysql_query("UPDATE echipa SET levelstadion='".$lvlupstadion."' , buget='".$bugetnou."' WHERE (`echipa`='".$echipa."') AND (`user`='".$id."') AND (`competitie`='".$competitie."')") ;
        if (!$q)
        {
            echo  mysql_error($q);
        }
        echo $lvlupstadion.$bugetnou.$echipa.$id.$competitie;
    }

为什么我的数据库没有改变并且我的脚本没有提醒我错误?

4

5 回答 5

2

<form>标记的默认方法是 GET。

由于您的表单没有指定方法,因此它将发送一个 get。在这种情况下$_POST['upgrade']不可用。

如果你改变

<form action="campionat.php?competitii='.$idcompetitie.'">
    <input type="submit" name="upgrade" value="inainte" />
</form>

<form method="post" action="campionat.php?competitii='.$idcompetitie.'">
    <input type="submit" name="upgrade" value="inainte" />
</form>

它应该工作。

请参考这个问题:什么是默认的表单 HTTP 方法?

于 2013-06-26T08:34:23.520 回答
1

您的表单没有method,因此它将默认为GET。这是一个问题,因为您正在尝试访问$_POST['upgrade']永远不会设置的访问。

将方法设置为post

<form method="post" ... >

来自W3C 文档

方法

可能的(不区分大小写)值为“get”(默认值)和“post”

于 2013-06-26T08:34:26.313 回答
1

你的表格缺少东西。您必须在 $_GET 和 $_POST 之间进行选择。+ 你在用 $q 做什么?

于 2013-06-26T09:53:30.077 回答
0

将值存储在隐藏字段中,然后将其发送到另一个页面

<form action="campionat.php" method="post">
<input type="hidden" name="competitii" value="<?php echo $idcompetitie; ?>">
<input type="submit" name="upgrade" value="inainte" />
</form>

您的重定向不是从表单发布方法发送值。

于 2013-06-26T08:33:39.970 回答
0

如果

(`user`='".$id."')

是一个 ID (int) 你不需要简单的报价。它可能会帮助你

于 2013-06-26T08:29:55.373 回答