如何在提交时传递多个变量?

时间:2013-03-04 19:11:30

标签: php html http post get

我有一点形式:

//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>

就是这样:

enter image description here

如您所见,我在comment

中设置变量textarea

它会毫无问题地转到下一页ModifyNoteScript.php。

但是,其他两个变量UNITCOMID由于某种原因被传递为[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."); 




?>

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

3 个答案:

答案 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,并且都已提交。您应该更改其中一个以避免混淆。