0

以下のコードがあり、URL のパラメーターを使用してデータベースから一致を取得しようとしています。「何かに失敗しました」というエラー メッセージが表示され続けます。URL は次のとおりです。

http://www.examplesite.com/template.php?eventname=3506   

コード:

<?php
require_once("./source/include/membersite_config.php");

if(!$fgmembersite->CheckLogin())
{
    $fgmembersite->RedirectToURL("login.php");
    exit;
}

// Make a MySQL Connection
...

// Retrieve the variable from the url
if(!empty($_GET['eventname'])) {
    $eventname = $_GET['eventname'];
} else {
    //set default value for $eventname or maybe output an error because eventname isn't set
    echo '<p>', 'something failed', '</p>';
}
4

2 に答える 2

0

補足:クエリに入力したものをエスケープしないことで、データベースを妨害しないでください。

$result = mysql_query("SELECT * FROM events WHERE event_id = '$eventname'")

代わりにmysql_real_esape_string ($eventname)を使用してください。

于 2013-01-04T20:34:20.760 に答える
0

何かがクエリ文字列に干渉していない限り、コードは機能するはずです。

初め

次の行を置き換えます。

echo '<p>', 'something failed', '</p>';

と:

printf("<pre>Something Failed:\n%s\n</pre>", var_export($_GET, true));
exit;

エラーメッセージに意味のあるデータが含まれて終了するため、スクリプトの残りの部分で不良/欠落データを続行しません。[ printfも学習するのに非常に便利な関数です]

2番

上記で何もわからない場合は.htaccess、クエリ文字列をいじっている RewriteRule が配置されている可能性のあるファイルをサイト内で探してください。

于 2013-01-04T20:04:07.210 に答える