2012-01-12 12 views
0

申し訳ありませんが、ここで私は解決しようとしている私の問題です。私はインデックスページは、サーバー上の他のファイルに含まれているPHPの束で構築されている。たとえば、私のメニューなどを構築するファイルPHPはPHP_SELFフォームの属性の問題を含む

これらのファイルのうち、私は、データを削除できるように、各行の削除ボタンを使ってページにテーブルを作成するインクルードを使って作業しています必要に応じてユーザによって選択される。それは言われていると、テーブルを作成ページは、このフォーム定義を使用している:

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

まあ起こっていただきましたが、削除が実行されると、フォームが自分自身に投稿しようとすると、それがアドレスバーにエラーをスローし、ありますの:

お知らせ:未定義の変数:CでPHP_SELF:\ xamppの\ htdocsにライン上のWebの\ 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は、私が上記の話をしていたテーブルを作成します。

私はインデックスページに戻ってリフレッシュしている間、私はどのように私は(単純にDBの行を更新する)を実行することができます把握しようとしています。

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

+0

@hakre [docs](http://php.net/manual/en/reserved.constants.php) PHP_SELF'は存在しますが、私は実際にそれができたと考えました。 – DaveRandom

+0

@DaveRandom権利、私のせいです。それもconstではありません。 – hakre

答えて

5

実際には、データは$_SERVER['PHP_SELF']に保持されています。

$PHP_SELFという名前の変数が定義されていると思われる場合は、register_globalsが有効になっているサーバーでの作業に慣れていると思われます。この場合、$_GET$_POSTで渡される変数も定義されないことに注意してください。

+0

Daveランダム - ありがとうございます。それはまさに私が探していたものでした。私は約3週間今stackoverflow上のメンバーであり、私が投稿するすべての質問はとても効率的に答えられています。あなたの助けが最も貴重です。再度、感謝します! – bcar

+0

@DaveRandomよく知られている[PHP_SELF exploit](http://www.phpro.org/tutorials/PHP-Security.html)は、PHP_SELFを初めて使う人にはXSS攻撃の脆弱性を認識していないかもしれないと言えるでしょうhtmlentities($ _ SERVER ['PHP_SELF'])を呼び出すなどして)消毒する必要があります。これについては、 "PHP_SELF exploit"を検索するだけで十分です。 – HexAndBugs

関連する問題