-2

このエラーが発生した理由が理解できないようです。これは$pid変数では機能するようですが、では機能しないようです$type

更新:エラーを修正しましたが、連結変数'になりました。$type。''; 以下のリンクでは、ページにまったく表示されていません。

5行目は次のとおりです。

$page=$_GET["type"];

コード:

 if (!$_GET["type"]){
 $page="";
 }else{
$page=$_GET["type"];
}

  $sqlCommand="SELECT id,Type FROM cart WHERE Type='$page'";
$query = mysql_query($sqlCommand) or die (mysql_error());
 $menu ="";
while($row=mysql_fetch_array($query)){
$pid=$row["id"];
  $type=$row["Type"];

  $menu= '<a STYLE="text-decoration:none; color:white" href="pt.php?pid=1&type=' .       $type .    '">' . $type . '</a>';
 $menu2= '<a STYLE="text-decoration:none; color:white" href="pt.php?pid=7&type=' .     $type . '">' . $type . '/a>';
4

5 に答える 5

1

$ _GETグローバル変数で「type」キーが見つからない場合は、PHPNoticeUndefinedインデックスが提供されます。この通知が必要ない場合は、実行してみてください

if (! isset($_GET["type"]))
{
...
}
于 2013-02-28T19:00:21.807 に答える
0

もしそうならvar_dump($_GET)、あなたはおそらく「タイプ」へのエントリがないことに気付くでしょう。エラーは、$_GET配列にこのエントリがないことを示しています。

于 2013-02-28T18:57:10.073 に答える
0

あなたの問題は

$sqlCommand="SELECT id,Type FROM cart WHERE Type='$page'";

時折、

$page変数を渡さない

、このエラーが発生します

デフォルト値を$pageに設定する必要があります。

if(!isset($_GET["type"])){
 $page="default";
 }else{
$page=$_GET["type"];
}

defaultdefaultあなたのページのコンテンツを保持します

于 2013-02-28T18:59:46.317 に答える
0

設定するには、URLは$_GET['type']次のようになっている必要があります。http://domain.tld/someplace.php?type=stuff

また、適切なテストは次のとおりです。

if(isset($_GET['type'])
    $page=$_GET['type'];
else
    $page = "";
于 2013-02-28T19:19:43.300 に答える
0

@ Mark-Evans; V_Kの返信は回答としてマークされます。私は三項演算子を使用することを好みます:

$page = isset($_GET['type']) ? $_GET['type'] : '';

$ _GET ['type']が設定されている場合、$pageに割り当てられます。私はこれを次のようなループよりも好む

if(!isset($_GET['type'])) {...} else {...}

PS:クエリで$ page変数をmysql_real_escape_string()することを忘れないでください!または、mysqiとプリペアドステートメントを使用することをお勧めします。ext / mysql関数は非推奨であり、PHPの将来のバージョンで削除される予定です。これにより、SQLインジェクションやクロスサイトスクリプティング攻撃を防ぐことができます(少し)。

于 2013-02-28T19:53:43.493 に答える