0

我有一个小表格:

//GET the unit and community id
$UNIT = $_GET['unit'];
$COMID = $_GET['comid'];

...//i have echoed $UNIT and $COMID to ensure that they do have values
...

<form action="ModifyNoteScript.php" method="post"  />
        <input name="Comment" type="hidden" value="<?php echo $Comment; ?>" />
        <input name="UNIT" type="hidden" value="<?php echo $UNIT; ?>" />
        <input name="COMID" type="hidden" value="<?php echo $COMID; ?>" />
        <textarea name="Comment" cols="55" rows="6" class="text1" id="Comment"><?php echo $Comment; ?>
        </textarea>
        <br />
        <input type="submit" name="sendnotify" class="formbutton" id="Submit" value="Replace previous note with current" />
      </form>

就是这个:

在此处输入图像描述

如您所见,我正在将变量设置commenttextarea

它毫无问题地传递到下一页 ModifyNoteScript.php。

UNIT但是,其他两个变量COMID由于某种原因被传递为[blanks]

这是 ModifyNoteScript.php 的样子:

<?php
include '../Check.php';
include '../CustomConnect.php';

$UNIT= $_POST['unit']; 
$COMID= $_POST['comid']; 
$NOTE= $_POST['Comment']; 


    $comment_update = mssql_query("UPDATE pmp_property__unit
    SET  
    comments = '$NOTE'
    WHERE 
    communityidy='$COMID' and
    unit='$UNIT'") 
             or die ("Changes to Record could not be Saved."); 




?>

为什么这两个变量作为空白传递?

4

3 回答 3

1

ModifyNoteScript.php中,$_POST变量必须是:

$UNIT= $_POST['UNIT']; // uppercase
$COMID= $_POST['COMID']; // uppercase
$NOTE= $_POST['Comment']; 
于 2013-03-04T19:14:03.157 回答
1

name检查标签和$_POST索引之间的大小写差异。

你总是可以尝试var_dump($_POST)看看你得到了什么。

于 2013-03-04T19:16:49.547 回答
1

首先,您的脚本对 XSS 攻击开放,因为您没有进行任何验证(至少它是这样显示的)。

$UNIT = $_GET['unit']; // should be $_POST['UNIT']
$COMID = $_GET['comid']; // should be $_POST['COMID']

您正在尝试获取两个 GET 变量,同时它们是使用 POST 提交的并且是大写的。请记住,GET 和 POST 变量区分大小写。

你也有一个input[type=hidden]和一个textarea相同的name,它们都被提交了。您应该更改其中之一以避免混淆。

于 2013-03-04T19:19:16.673 回答