0

ここにこのコードがあり、スクリプトのどこかにコードの2番目の部分があります。スクリプトを実行すると、次の通知が表示されます。

注意:未定義の変数:215行目のC:\ xampp \ htdocs \ BB \ Shoppingcart.phpのメッセージ
注意:未定義のインデックス:218行目のC:\ xampp \ htdocs \ BB\shoppingcart.phpのカート

コードは次のとおりです。

if(isset($_REQUEST['command']) && $_REQUEST['command']=='add' && $_REQUEST['productid']>0)

{
    remove_product($_REQUEST['pid']);
}
else if(isset ($_REQUEST['command'])=='clear'){
    unset($_SESSION['cart']);
}
else if(isset ($_REQUEST['command'])=='update'){
    $max=count($_SESSION['cart']);
    for($i=0;$i<$max;$i++){
        $pid=$_SESSION['cart'][$i]['productid'];
        $q=intval($_REQUEST['product'.$pid]);
        if($q>0 && $q<=999){
            $_SESSION['cart'][$i]['qty']=$q;
        }
        else{
            $msg='Some proudcts not updated!';
        }
    }
}

215行目と218行目です。

<div style="color:#F00"><?php  echo $msg?></div>

if(is_array($_SESSION['cart'])){

私は問題を見つけることができませんでした、私はネットで何時間も探していました。ありがとう

4

3 に答える 3

1

$ _SESSION['cart']と$msgは特定の条件でのみ設定するため、これらの条件が真でない場合、それらは未定義です。コードで未定義の変数またはインデックスを使用することはできません。行215と218を次のように変更すると、問題は発生しません。

<div style="color:#F00"><?php  if (isset($msg)) {echo $msg;} ?></div>

if(isset($_SESSION['cart']) && is_array($_SESSION['cart'])){
于 2013-02-10T08:24:35.450 に答える
1

最初に、コードの最初の部分で上記の$ msgをnul、つまり$ msg = nullとして定義します。または、echo isset($ msg)を使用して直接呼び出すことができますか?$ msg:'';

エラーの最初の行を解決します

次に、コードを段階的にデバッグして、$msgに値が含まれていない理由を次のように変更します。elseif(isset($ _REQUEST ['command'])=='clear')からelse if(isset($ _REQUEST [ 'コマンド'])&&($ _REQUEST['コマンド']=='クリア'))

問題を解決できる可能性があります。一度確認してから戻ってきてください。そうでない場合は、別の方法で問題を見つけることができます。

于 2013-02-10T08:22:55.523 に答える
0

取り除くには:

注意:未定義の変数:215行目のC:\ xampp \ htdocs \ BB\shoppingcart.phpのmsg

変数を常に使用できるようにするには、この命令をスクリプトの先頭に置きます。

$msg = '';

そして通知のために:

注意:未定義のインデックス:218行目のC:\ xampp \ htdocs \ BB\shoppingcart.phpのカート

session_start();を入れてみてください。スクリプトの最初の指示。

于 2013-02-10T08:18:46.573 に答える