0

PHPファイルで次のエラーが発生しています。

注意:未定義のインデックス:13行目の/clientdata/zeus-dynamic-1/c/r/crowndoor.com.au/www/crowntest/contact.phpのerrStr

注意:未定義のインデックス:20行目の/clientdata/zeus-dynamic-1/c/r/crowndoor.com.au/www/crowntest/contact.phpで送信されます

ブラウザウィンドウの上部に表示されます。次のコマンドを使用して通知をオフにしてみました:error_reporting(E_ALL ^ E_NOTICE); しかし、それは何の違いももたらさないようです。現在、未定義のインデックスを修正しようとしています。私のPHPは次のとおりです。

<?php
session_name("fancyform");
session_start();


$_SESSION['n1'] = rand(1,20);
$_SESSION['n2'] = rand(1,20);
$_SESSION['expect'] = $_SESSION['n1']+$_SESSION['n2'];


$str='';
if($_SESSION['errStr'])
{
    $str='<div class="error">'.$_SESSION['errStr'].'</div>';
    unset($_SESSION['errStr']);
}
if (!isset($_POST['errStr'])) 
{
//If not isset -> set with dumy value 
$_POST['errStr'] = "undefine"; 
}

$success='';
if($_SESSION['sent'])
{
    $success='<h1>Thank you!</h1>';

    $css='<style type="text/css">#contact-form{display:none;}</style>';

    unset($_SESSION['sent']);
}
?>

これらの通知が表示されないようにする方法について誰かが考えている場合は、それは素晴らしいことです。

4

7 に答える 7

1

PHP ページの上部にコードを追加します。

<?php error_reporting(0); ?>
于 2012-07-03T06:15:47.770 に答える
1

これは、探している配列インデックスが存在しないことを意味します。それを処理する 2 つの方法は、それが存在することを確認することです。このエラー メッセージは、アプリのロジックの欠陥を指摘しています。または、インデックスが正当に存在しない可能性がある場合は、issetアクセスする前に確認するために使用します。The Definitive Guide To PHP's isset And empty を参照してください。

于 2012-07-03T06:09:02.017 に答える
0

次のような通知のターン:

error_reporting(E_ALL & ~E_NOTICE)

および/または最初に配列キーの存在を確認してください。

$sent = array_key_exists('sent', $_SESSION) ? $_SESSION['sent'] : null;
于 2012-07-03T06:14:50.933 に答える
0

isset()と同じように使ってみません$_POST['errStr']か?

于 2012-07-03T06:08:07.010 に答える
0

最初にキーが存在するかどうかを確認する必要があります。

if(isset($_SESSION['errStr']) && $_SESSION['errStr']) {
于 2012-07-03T06:08:10.367 に答える
0

13 行目を次のように変更します。

if($_SESSION['errStr'])

に:

if(isset($_SESSION['errStr']))
于 2012-07-03T06:08:43.660 に答える
0

ただし、php.ini 設定に干渉することなく手動で確認できます。これは、サーバーを移行するときに展開がさらに複雑になるためです。

手動で確認するには、次のコードを参照してください...コードのどこかの行でそれを行っています...

<?php
if (isset($_SESSION['sent'])) {
    $success='<h1>Thank you!</h1>';
    $css='<style type="text/css">#contact-form{display:none;}</style>';
        unset($_SESSION['sent']);
}
?>
于 2012-07-03T06:10:17.560 に答える