1

私は追跡ピクセルを作成しており、この回答を出発点として使用しています。ただし、データベースにデータを挿入しようとするまでは、すべて正常に機能します。その時点で、500 (内部サーバー エラー) が発生します。

これは私のコードです:

<?php
$im=imagecreate(1,1);
$white=imagecolorallocate($im,255,255,255);

imagesetpixel($im,1,1,$white);
header("content-type:image/jpg");
imagejpeg($im);
imagedestroy($im);

$client  = @$_SERVER['HTTP_CLIENT_IP'];
$forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
$remote  = $_SERVER['REMOTE_ADDR'];

function getUserIP() {
    $client  = @$_SERVER['HTTP_CLIENT_IP'];
    $forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
    $remote  = $_SERVER['REMOTE_ADDR'];

    if(filter_var($client, FILTER_VALIDATE_IP)) {
        $ip = $client;
    } else if (filter_var($forward, FILTER_VALIDATE_IP)) {
        $ip = $forward; 
    } else { 
        $ip = $remote;
    }

    return $ip;
}

$user_ip = getUserIP();
$ip_integer = ip2long($user_ip);
$web_url = 'myurl.com';
$sqlWebLeads = "INSERT INTO ip_details (ip_address, web_url) 
    VALUES ('$ip_integer','$web_url')";
$wpdb->query($sqlWebLeads);
?>

何か案は?

4

2 に答える 2

0

wordpress サイトで実行されているため$wpdb->query、グローバル関数であり、通常は定義する必要はありません。

これは魔法ではないので、スタンドアロンの php ファイルを作成すると、$wpdbDB リンクとしてワードプレスのグローバル定義オブジェクトが含まれません。

それを使用するには、ページでそのオブジェクトを設定する必要があります。スタンドアロン スクリプトでの WPDB の使用を参照してください。

$path = $_SERVER['DOCUMENT_ROOT'];

include_once $path . '/wp-config.php';
include_once $path . '/wp-load.php';
include_once $path . '/wp-includes/wp-db.php';
include_once $path . '/wp-includes/pluggable.php';

// $wpdb is available, do stuff
于 2017-01-09T01:18:11.317 に答える