2012-01-14 10 views
-2

に次のコードを制限されるのは、XAMPPに未定義のインデックスを与えることはなく、他のApacheサーバ上でこのエラーは、このエラーは確かに、すべてのシステム上に存在することになるXAMPPがUNDEFINED INDEXエラーのみXAMPP

<?php 
    if($_POST['names']!=""&&$_POST['n']!="") 
    { 
    print_r($_POST); 
    } 
?> 

<form action="undefiend_error.php" method="post" > 
<input type="text" name="names" value=""> 
<input type="text" name="n" value=""> 
<input type="hidden" name="nd" value=""> 
<input type="submit" value="submit" > 
</form> 

答えて

0

未定義のインデックス/変数エラーが誤ったコードのみに限定されているかどうかを確認するためにempty()を使用することができます。

実行中のシステムにもかかわらず、エラーが発生したコードは常にエラーを生成します。いくつかの設定を使用してエラーメッセージを発言できますが、エラー自体はコード内に残ります。

したがって、エラーを訂正する必要があります。エラーメッセージではありません。

これを修正するには、変数が必要かどうかをチェックする必要があります。 oousの上のWouterの方法は大丈夫です。従って、

if($_SERVER['REQUEST_METHOD'] === 'POST') 
{ 
    print_r($_POST); 
} 

は必須フィールドがない場合にのみエラーを発生させます - 物事のエラーメッセージのためです。

1

に限定されていますあなたのXAMPPサーバーはおそらくphp.iniにdisplay_errors = onを持っています。画面に警告が表示されないサーバーのエラーログを表示する場合は、error_reporting = 0以外のログに記録する必要があります。他のシステムでこのエラーが表示されない場合、それは発生しているわけではありません。PHPは表示またはログに記録されないように設定されています。フォームが送信されたかどうかを確認、すべての

// Check that both `$_POST['names']` and `$_POST['n']` exist with `isset()` 
if(isset($_POST['names']) && isset($_POST['n']) && $_POST['names'] != "" && $_POST['n']!="") 
{ 
    print_r($_POST); 
} 
+0

原因は明らかにdisplay_errorsではなくerror_reporting valueです。実際、オープニングポストには「表示」という言葉はありません。 –

+0

このコードは私のマシンでは正しく実行されていませんが、XAMPPのマシンでエラーが発生しました – VasudhaivaKutumbakam

+0

@ Col.Shrapnel既に 'error_reporting'について別のビットが追加されています –

1

まず:

<?php 
    if($_SERVER['REQUEST_METHOD'] === 'POST') 
    { 
    // Form submitted 
    } 
?> 

あなたは$_POST値があるかどうかをテストするためにisset()を使用する必要があるか、未定義のインデックス通知を取得します

投稿項目が設定されているかどうかを確認するにはisset()を使用してください。 そして、少なくとも、あなたはポスト項目が空である(またはNULLまたは0)

-2

PHPは、使用するすべての変数を最初に定義する必要があることを思い出させます。あるいは、それが外から来たのであれば、存在をチェックしてください。これを試してください

if(!empty($_GET))?$vars=$_GET:$vars=error; 
echo $vars['n']; 
echo $vars['names']; 
+0

$ _GETは決して空ではありません。このコードは同じエラーを生成します –

+0

これは私のために働く – VasudhaivaKutumbakam

関連する問題