dポイントプレゼントキャンペーン実施中!

ども初めまして、匠と申します。よろしくお願いします。

質問は記述の仕方です。(使う関数や考え方)
 

 9/1までに、携帯でも二重投稿防止の投票ホームを作りたいと思っています。

 仕様は

・一人一日一回まで投票できる。

これのみです。

 PCのほうは、クッキーでそのような仕組みを作ったのですが、携帯は携帯個別認識番号なるものを抜き出して、DBに登録しようと考えています。

以下はプログラムです。if文の条件部分がどのように書いたらいいのか迷っています。



//DB登録されている個別認識番号と一致するか

if(送られてきた認識番号がDBに登録されていなかったら){
$sql = "insert into block (`ip`, `time`) values('$ip', '$now_time')";

// データを取り出す
$sql = "SELECT * FROM touhyou ";
$res = mysql_query($sql, $conn) or die("データ抽出エラー");
while( $rec = mysql_fetch_array( $res, MYSQL_ASSOC ) ){
$r_a=$rec['a'];
}
//更新

switch ($post_vote) {
case "aに投票する":
$r_a= $r_a+1;
$sql = "update touhyou set a= $r_a";
mysql_query($sql, $conn);

break;

default :echo"dame";
}


exit;

}

else{
if(現在の時刻と前回訪問から24時間過ぎているを調べる){
認識番号はそのままで時間ののところだけ更新;
投票;
}
else{echo "一日一回しか投票できません";

}

}



 長々と読んでいただきありがとうございます。

是非、よろしくお願いいたします。

A 回答 (1件)

個別認識番号はすでに取っているとします。

($ip)
あと、timeの形式が分からないので適宜修正してください。

$sql = "SELECT * FROM block where ip = '$ip' order by time desc";
$res = mysql_query($sql, $conn);
if ($res and mysql_nom_rows($res)) {
# 未登録
} else {
$rec = mysql_fetch_array($res);
if ($rec['time'] < time()-60*60*24) {
# 24時間以上経っている
} else {
# 投稿してから24時間以内
}

過去の投稿時間を使用しない場合、「REPLACE」を使用したほうがデータ量を抑えられます。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2006/09/10 15:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!