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>

これだよ:

ここに画像の説明を入力してください

ご覧のとおり、変数commentを設定していますtextarea

問題なく次のページModifyNoteScript.phpに渡されます。

ただし、他の2つの変数UNITCOMID、何らかの理由で次のように渡されます。[blanks]

ModifiedNoteScript.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."); 




?>

これらの2つの変数がブランクとして渡されるのはなぜですか?

4

3 に答える 3

1

まず、検証を行っていないため、スクリプトはXSS攻撃に対して開かれます(少なくともそのように表示されます)。

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

POSTで送信され、大文字である2つのGET変数を取得しようとしています。GET変数とPOST変数では大文字と小文字が区別されることに注意してください。

また、同じとがinput[type=hidden]あり、両方とも送信されます。混乱を避けるために、そのうちの1つを変更する必要があります。textareaname

于 2013-03-04T19:19:16.673 に答える
1

nameタグと$_POSTインデックスの大文字と小文字の違いを確認してください。

いつでも試してみて、var_dump($_POST)何が得られるかを確認できます。

于 2013-03-04T19:16:49.547 に答える
1

ではModifyNoteScript.php$_POST変数は次のようにする必要があります。

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