質問する
212 次
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 に答える