-6

非常に単純な電子メール追跡ピクセルを設定しようとしています...当初の予想よりも単純ではないことが証明されています。

私のサーバーはLinuxとmysqlv。5.1.65を実行しています

<?php

$username = '*******';
$db_password = '*******';
$database = '*******';

$IP = $_SERVER['REMOTE_ADDR'];

$CAMPAIGN = $_GET['MID'];

mysql_connect('localhost',$username,$db_password);
@mysql_select_db($database) or die( "Unable to select database");

mysql_query("INSERT INTO email_table VALUES ('$CAMPAIGN', '$IP',)") or die(mysql_error() );
mysql_close();
exit;
?>

私が得ているのは:SQL構文にエラーがあります。1行目の「)」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

4

1 に答える 1

2

最後に余分なカンマがあるようです:

INSERT INTO email_table VALUES ('$CAMPAIGN', '$IP',)

試す:

INSERT INTO email_table VALUES ('$CAMPAIGN', '$IP')

ところで、私はあなたのコードをあまり判断しませんが、IPによる人の追跡はあまり信頼できません。たとえば、企業ファイアウォールの背後にある多くの企業トラフィックが同じIPアドレスを使用する可能性があります。

また、HTTP POSTからのもののようです。これは、SQLをパラメーター化して$CAMPAIGNいない場合にセキュリティの問題になる可能性があります。

于 2012-11-14T23:27:51.877 に答える