php 投票システム
データベースと連動した投票システムを考えております。
phpとMySQLを使用したもので、対応するボタンを押すと1票投じられるというものです。
この仕組み自体は実現できたのですが、
ブラウザの更新ボタンを押すと、『情報を再送信する必要があります』と表示され、『はい』を押すと、自動的に1票投じられてしまいます。
スクリプトは以下のようになるのですが、上記のような不具合を修正するためにはどうすればよいのでしょうか。
アドバイス、具体的なソース、また、他の部分における修正すべき箇所など、ご指摘いただきたいと思います。
よろしくお願いいたします。
<?php
echo "<table border=0>";
echo "<tr><td colspan=4 align=left><img src=logo-touhyou.gif></td></tr>";
echo "<tr><td><form method=post action=";
echo $_SERVER["PHP_SELF"];
echo "><input type=hidden value=1 name=posi><input type=image src=logo-posi-s.gif border=0></form></td>";
echo "<td><form method=post action=";
echo $_SERVER["PHP_SELF"];
echo "><input type=hidden value=1 name=deep><input type=image src=logo-deep-s.gif border=0></form></td></tr></table>";
$posi=$_POST["posi"];
$deep=$_POST["deep"];
if ($posi==1){
$server="mysql..jp";
$dbname="LA";
$user="LA";
$pass="";
$conn = mysql_connect($server,$user,$pass);
$conndb = mysql_select_db($dbname);
$sql="SELECT posi FROM test WHERE id =1 LIMIT 1";
$res=mysql_query($sql);
while($row = mysql_fetch_assoc($res)) {
$row_con=mb_convert_encoding($row["posi"], "shift_jis", "auto");
echo $row_con;
echo "<br>";
$number1=1;
$after=$row_con+$number1;
echo $after;
echo "<br>";
mysql_query("LOCK TABLES test WRITE");
$sql_1="UPDATE test SET posi='$after3' WHERE id =1 LIMIT 1";
$ins=mysql_query($sql);
mysql_query("UNLOCK TABLES");
if ($ins_1){
echo "ポジティブ投票完了";
}
$sql_2="SELECT posi FROM test WHERE id =1 LIMIT 1";
$res_2=mysql_query($sql_2);
while($row_2 = mysql_fetch_assoc($res_2)) {
$row_con_2=mb_convert_encoding($row_2["posi"], "shift_jis", "auto");
echo $row_con_2;
}
}
mysql_close($conn);
}
if ($deep==1){
$server="mysql..jp";
$dbname="LA";
$user="LA";
$pass="";
$conn = mysql_connect($server,$user,$pass);
$conndb = mysql_select_db($dbname);
$sql2="SELECT deep FROM test WHERE id =2 LIMIT 1";
$res2=mysql_query($sql2);
while($row2 = mysql_fetch_assoc($res2)) {
$row_con2=mb_convert_encoding($row2["deep"], "shift_jis", "auto");
echo $row_con2;
echo "<br>";
$number1=1;
$after2=$row_con2+$number1;
echo $after2;
echo "<br>";
mysql_query("LOCK TABLES test WRITE");
$sql2_2="UPDATE test SET deep='$after2' WHERE id =2 LIMIT 1";
$ins2=mysql_query($sql2_2);
mysql_query("UNLOCK TABLES");
if ($ins2){
echo "ディープ投票完了";
}
$sql2_2="SELECT deep FROM test WHERE id =4 LIMIT 1";
$res2_2=mysql_query($sql2_2);
while($row2_2 = mysql_fetch_assoc($res2_2)) {
$row_con2_2=mb_convert_encoding($row2_2["deep"], "shift_jis", "auto");
echo $row_con2_2;
}
}
mysql_close($conn);
}
?>
お礼
ありがとうございます。 プロキシですか、勉強してみます!! まずはお礼まで。