-1

phpスクリプトを介してAS3から変数を受け取り、dbに挿入しています。アドレスバーに表示されているように、すべての変数が渡されています..(これは公開から隠したいのですが、方法がわかりません)..次に、変数を取得してdbテーブルに挿入します。すべてのテーブルは大丈夫だと思います。エコーの変数もキャッチしています。すべての変数は機能していますが、「image_name」であり、エコーの$tmp_nameにも変換されていません。これに関するアイデアは..これがvarsを保持しているブラウザの行です。

http://xx.xxx.xx.xxx/wordpress/?page_id=81imageName=WhitetailJackalope%2Epng&imageURL=http%3A%2F%2Flocalhost%2Fxxx%2Fxxx%2FserverImages%2FwhiteTailJackalopeEgg%2Epng&imageID=40

これがPHPです

<?php


$tmp_id=$_GET['imageID'];
$tmp_url=$_GET['imageURL'];
$tmp_name=$_GET['imageName'];

mysql_connect("localhost", "xxx", "xxx") or die(mysql_error()); 
    mysql_query ( "INSERT INTO wp_image_data (`image_id`, `image_url`, `user_name`, `image_name`, `stage`)
        VALUES ('$tmp_id' , '$tmp_url' , '$current_user->user_login' , '$tmp_name' , 1)"); 
    echo 'Testing: ' . $tmp_id . '<br/>'; //displays ok
    echo 'Image: ' . $tmp_name . '<br/>'; //does not display or insert to table
    echo 'Owner: ' . $current_user->user_login . '<br/>'; //displays ok

?>

image_nameのデータベース内のテーブルはVARCHAR(100)utf8_ganeral_ciです。

何か案は ?

私は、私にとって良いと思われるPDO形式でアドバイスされているようにphpを再構築しました。その情報をありがとう:)これが再構築されたコードです。今ワードプレスでURLを再構築する方法を理解する必要があるimage_nameを除いて、それはうまく機能します。

try {

$conn = new PDO("mysql:host=$hostdb; dbname=$namedb", $userdb, $passdb);
$conn->exec("SET CHARACTER SET utf8");      

$sql = "INSERT INTO wp_image_data (image_id, image_url, user_name, image_name, stage)
    VALUES ('$tmp_id', '$tmp_url', '{$current_user->user_login}', '$tmp_name', '1')"; 
$q = $conn->exec($sql);   
$conn = null; 
}
catch(PDOException $e) {
  echo $e->getMessage();
}

    echo 'Testing: ' . $tmp_id . '<br/>';
    echo 'Image: ' . $tmp_name . '<br/>'; 
    echo 'Owner: ' . $current_user->user_login . '<br/>';

今度はURLで作業します...そうです、そしてそれをしている間、アドレスバーで渡された変数を隠す方法はありますか?

4

2 に答える 2

0

page_id値の後にアンパサンドを含めるようにURLを再構築する必要があります。

http://xx.xxx.xx.xxx/wordpress/?page_id=81&imageName=WhitetailJackalope%2Epng&imageURL=http%3A%2F%2Flocalhost%2Fxxx%2Fxxx%2FserverImages%2FwhiteTailJackalopeEgg%2Epng&imageID=40

于 2013-01-13T16:32:29.560 に答える
0

クエリを設定してエコーし、何が渡されているかを確認する必要があります。

$query = "INSERT INTO wp_image_data (`image_id`, `image_url`, `user_name`, `image_name`, `stage`)
        VALUES ('$tmp_id' , '$tmp_url' , '$current_user->user_login' , '$tmp_name' , 1)";

echo $query;

かっこを使用することをお勧めします$current_user->user_login

{$current_user->user_login}

関数の使用をすぐに停止する必要がありmysql_ます。コードはSQLインジェクションに対して脆弱です。詳細については私のコメントを参照してください。

于 2013-01-13T16:32:36.423 に答える