2012-01-12 59 views
0

好的,這是我正在嘗試解決的問題。我有一個索引頁面,其中包含一堆PHP包含在服務器上的其他文件。例如,一個文件來構建我的菜單等。php包含PHP_SELF表單屬性問題

在這些文件中,我正在使用一個包含在每個行上使用刪除按鈕在頁面上構建表的包,以便可以刪除數據如果需要,由用戶提供。有了這樣說,是建立在表的頁面使用這種形式的定義:

<form name=somename id=someid method=post action=<?php $PHP_SELF?> 

那麼發生了什麼,當刪除執行表格試圖張貼到自身,它拋出一個錯誤到地址欄的:

通知:未定義變量:PHP_SELF在C:\ XAMPP \ htdocs中\上線幅\ somefile.php

第39行是表單屬性。

=================================

的索引頁包含此的設置是這樣的:

<div id="container"> 
    <div id="left"> 
     <p>Welcome <?php echo $_SESSION['USERFIRSTNAME']?> <?php echo $_SESSION['USERLASTNAME']?></p> 
    </div> 
    <div id="right"> 
     <?php 
      //navigation menu 
      include('menu.php'); 
     ?> 
    </div> <!-- menu div --> 
    <div class="clear"></div> 
</div> <!-- container div --> 
<div id="userlist"> 
    <?php 
     //build user access links 
     //include('userlist.php'); 
    ?> 
</div><!-- user list div --> 
<div id="dbview"> 
    <?php 
     include('dbview.php'); 
    ?> 
</div> 

dbview.php建立我上面談到的表。

我試圖找出如何執行刪除(它只是更新一個數據庫行),而它刷新回到索引頁。我敢用處理後的當前代碼似乎並不奏效:

if (($someresult)&& ($anotherresult)) 
        { 
         echo'<font color="#FF0000">You have successfully removed item </font>'; 
         header('Location: index.php'); 
         exit; 
        } 
        else 
        { 
         echo'<font color="#FF0000">Error while Removing</font>'; 
        } 

所有的問題似乎是與$ PHP_SELF一部分,但我需要一些幫助。我很抱歉拉出的帖子。希望它是有道理的。如果需要發佈更多的代碼,我也可以這樣做。再次感謝!

+1

試試'$ _SERVER ['PHP_SELF'];' – lfxgroove 2012-01-12 16:53:24

+0

@hakre我找不到任何[docs](http://php.net/manual/en/reserved.constants.php) PHP_SELF'存在,但我確實認爲它。 – DaveRandom 2012-01-12 16:57:56

+0

@DaveRandom對,我的錯。這也不是一個常量。 – hakre 2012-01-12 16:59:31

回答

5

你想要的數據實際上保存在$_SERVER['PHP_SELF']

如果您希望定義一個名爲$PHP_SELF的變量進行定義,那麼我認爲您已經習慣於在啓用了register_globals的服務器上工作,這種情況已不再是這種情況。如果是這種情況,您還應該注意通過$_GET$_POST傳遞的變量也不會被定義。

+0

DaveRandom - 非常感謝你。那正是我所期待的。我現在已經是一個在stackoverflow的成員約3個星期,我發佈的每個問題都得到了有效的回答。你的幫助是最有價值的。再次感謝! – bcar 2012-01-12 17:18:37

+0

@DaveRandom這裏可能值得一提的是衆所周知的[PHP_SELF漏洞利用程序](http://www.phpro.org/tutorials/PHP-Security.html),因爲那些使用PHP_SELF的新手可能沒有意識到它容易受到XSS攻擊,應該被消毒(例如通過調用htmlentities($ _ SERVER ['PHP_SELF']))。如果你只是搜索「PHP_SELF漏洞利用」,那麼有很多這方面的信息。 – HexAndBugs 2012-04-22 11:21:40