我有一点形式:
//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>
就是这样:
如您所见,我在comment
textarea
它会毫无问题地转到下一页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.");
?>
为什么这两个变量作为空格传递?
答案 0 :(得分:1)
在ModifyNoteScript.php
中,$_POST
变量必须为:
$UNIT= $_POST['UNIT']; // uppercase
$COMID= $_POST['COMID']; // uppercase
$NOTE= $_POST['Comment'];
答案 1 :(得分:1)
检查name
代码和$_POST
索引之间的大小写差异。
您可以随时尝试var_dump($_POST)
查看您的内容。
答案 2 :(得分:1)
首先,您的脚本对XSS攻击开放,因为您没有进行任何验证(至少它是如何出现的)。
$UNIT = $_GET['unit']; // should be $_POST['UNIT']
$COMID = $_GET['comid']; // should be $_POST['COMID']
在使用POST提交时,您尝试获取两个GET变量,并且是大写的。 请记住,GET和POST变量区分大小写。
此外,您还有一个input[type=hidden]
和textarea
具有相同的name
,并且都已提交。您应该更改其中一个以避免混淆。