处理POST变量

时间:2015-05-14 00:44:52

标签: php html post input content-management-system

我的PHP-Fusion输入(插件)有问题。我创建了一个POST表单,但是当我尝试调用那些POST变量时,它们不会回显(我计划将它们添加到数据库中)。我的代码:

$id_ucznia = $_GET["id"];
$result2   = dbquery("SELECT id,imiona,nazwiska,dom,punkty FROM ".DB_ZAPISY." WHERE (funkcja = 'Student') AND (id = '".$id_ucznia."')");

if (dbrows($result2)) {

    while ($data2 = dbarray($result2)) {

        echo '<form method="POST" action="">
                  <input type="hidden" name="uczen_id" value="'.$id_ucznia.'">
                  <table border="0" align="center">
                      <tr><td align="right">Imiona ucznia: </td> <td align="left"><input type="text" class="input" name="imiona" value="'.$data2["imiona"].'" disabled></td></tr>
                      <tr><td align="right">Nazwiska ucznia: </td> <td align="left"><input type="text" class="input" name="nazwiska" value="'.$data2["nazwiska"].'" disabled></td></tr>
                      <tr><td align="right">Dom ucznia: </td> <td align="left"><input type="text" class="input" name="dom" value="'.$data2["dom"].'" disabled></td></tr>
                      <tr><td align="right">Aktualne punkty: </td> <td align="left"><input type="text" class="input" name="punkty_start" value="'.$data2["punkty"].'" disabled></td></tr>
                      <tr><td align="right">Punkty do dodania: </td> <td align="left"><input type="text" class="input" name="ile"></td></tr>
                      <tr><td align="right">Uzasadnienie: </td> <td align="left"><input type="text" class="input" name="zaco" maxlength="500"></td></tr>
                      <tr><td colspan="2" align="center"><input type="submit" class="button" name="dodaj_punkty" value="Dodaj punkty"></td></tr>
                  </table>
              </form>
        ';

    }

}

if (isset($_POST['dodaj_punkty'])) {

    $imiona           = $_POST["imiona"];
    $nazwiska         = $_POST['nazwiska'];
    $dom              = $_POST['dom'];
    $punkty_start     = $_POST['punkty_start'];
    $ile              = $_POST['ile'];
    $zaco             = $_POST['zaco'];
    $punkty_uczen_end = $punkty_start + $ile;
    $kto_akcja        = $userdata['user_name'];
    $kto_id           = $userdata['user_id'];
    $komu             = ''.$imiona.' '.$nazwiska.'';
    $dzis             = date("Y-m-d H:i:s");
    $result3          = dbquery("SELECT id,nazwa,punkty FROM ".DB_DOMY." WHERE `nazwa` = '".$dom."'");

    if (dbrows($result3)) {

        while ($data3 = dbarray($result3)) {

            $id_domu          = $data3["id"];
            $nazwa            = $data3["nazwa"];
            $punkty_dom_start = $data3["punkty"];

        }

    }

    $punkty_dom_end = $punkty_dom_start + $ile;
    echo 'Dla ucznia ('.$imiona.$nazwiska.') dodano: '.$punkty_uczen_end.' a dla domu ('.$id_domu.$nazwa.'): '.$punkty_domu_end.' ';

    $resulta = dbquery("UPDATE ".DB_DOMY." SET punkty = '{$punkty_dom_end}' WHERE id = '{$id_domu}';");
    $resultb = dbquery("INSERT INTO ".DB_RANKING_DOMOW." (ile, akcja, kto, komu, opis) VALUES ('{$ile}','+','{$kto_akcja}','{$komu}','{$zaco}');");
    $resultc = dbquery("UPDATE ".DB_ZAPISY." SET punkty = '{$punkty_uczen_end}' WHERE id = '{$uczen_id}';");
    $resultd = dbquery("INSERT INTO ".DB_RU." (kiedy, kto_dane, kto_id, komu, ile, zaco, co) VALUES ('{$dzis}','{$kto_akcja}','{$kto_id}','{$komu}','{$ile}', '{$zaco}', '+');");

    redirect(FUSION_SELF.$aidlink."&wykonane");

}

1 个答案:

答案 0 :(得分:0)

HTML表单输入元素设置为disabled,因此不会提交其值。可能是readonlyhidden - 属性。

提供的代码在使用前会复制(冗余)一些变量。关于内容管理系统使用此做法来保存表单发布数据的已清理副本(以防止SQL injection)。