こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

MYSQLにデータが送信されない

こんにちは
PHPもDBも初心者です。

現在、(1)トップページにある画像のurlをcheck.phpに送信して、(2)DB内のimg_urlと照合し、(3)照合されたイメージにpointを1追加した後、(4)またトップページに戻るというプログラムを組もうとしてるのですが、うまくいきません。

ソースはこれです↓

----------------------------------------------------------------------------------
index.php

<?php

$image = array(
"img/img1.jpg",
"img/img2.jpg",
"img/img3.jpg",
"img/img4.jpg",
"img/img5.jpg",
"img/img6.jpg",
);
$image = $image[rand(0, count($image)-1)];
echo '<a href="./check.php?url='.$image.'"><img src="'.$image.'" alt=""></a>';
?>
----------------------------------------------------------------------------------



check.php

----------------------------------------------------------------------------------

<?php
mysql_connect('****','****','****')or die(mysql_error());
mysql_select_db('******')or die(mysql_error());
mysql_query('SET NAMES UTF-8');

$url = htmlspecialchars($_GET['url']);

if( !$url == ' ') {
mysql_query('UPDATE image SET point=point+1 WHERE img_url = "$url"')or die(mysql_error());

header ('Location: ./index.php');
exit();
} else {
echo('画像の情報が送信されていません。');
}
?>
----------------------------------------------------------------------------------

まだまだわからないことだらけで、稚拙な内容だとは思いますが
よろしくお願いします。

投稿日時 - 2012-02-10 10:53:12

QNo.7296641

困ってます

質問者が選んだベストアンサー

>echo '<a href="./check.php?url='.$image.'"><img src="'.$image.'" alt=""></a>';

URLに書く文字列はurlencodeする習慣を

echo '<a href="./check.php?url=' . urlencode($image) . '"><img src="'.$image.'" alt=""></a>';


>$url = htmlspecialchars($_GET['url']);

htmlspecialcharsしている意図がわかりません(ブラウザに返すhtmlソースではないので、意味がない)。


>mysql_query('UPDATE image SET point=point+1 WHERE img_url = "$url"')or die(mysql_error());

mysql_queryの引数は単引用符で括っていますから、変数名はparseされません(変数名を括っている二重引用符は「phpスクリプトとして」リテラルを括っているのではない)。またエスケープは必ず行ってください(セキュリティ上の大穴になります)。

$sql = sprintf("update image set point=point+1 where img_url='%s'", mysql_real_escape_string($url));

投稿日時 - 2012-02-10 13:37:14

お礼

本当にありがとうございます!
おかげで2日悩んだ問題が解決しました。

いつか自分のような初心者の方々に、shimixさんのようにアドバイスをできるよう努力します!
ありがうございました。

投稿日時 - 2012-02-10 14:16:35

ANo.1

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問