0
4

2 に答える 2

1

$_GET 変数は、URL にクエリ文字列がある場合にのみ入力されます (これは通常、フォームが GET メソッドで送信されたことを意味します)。
したがって、最初$_GETに値が含まれているかどうかを確認してから、次の値を使用する必要があります。

if(isset($_GET['post']) && isset($_GET['page'))
{
    $post   = mysqli_real_escape_string($_GET['post']);
    $page   = intval($_GET['page']);
}

stringコードの最初の行では、へのキャストは役に立ちmysqli_real_escape_stringません。とにかく文字列を返します。
コードの 2 行目:

  • を使用してmysql_real_escape_stringいるため、使用intval: 整数値には余分なエスケープは必要ありません
  • へのキャストintは役に立ちません。これはすでに行われていますintval

重要なお知らせ:

すべての mysql_* 関数は推奨されておらず、PHP の将来のバージョンでは削除されるため、MySQLi または PDOを使用する必要があります(私のコード サンプルでは MySQLi を使用しました)。

于 2012-09-11T21:41:41.293 に答える
0

このエラーは、警告が伝えていることを正確に意味します。

$_GET は、HTTP GET パラメータとして渡される項目の配列です。

$_GET['page']キー「post」または「page」を$_GET['post']持つアイテムが連想配列にないため、未定義のインデックス警告が表示されます。

何が起こっているのかを把握する 1 つの方法は、$_GET 配列全体を var_dump() して、その内容を確認することです。

var_dump($_GET)

于 2012-09-11T20:53:15.267 に答える