ゲーム用の簡単なバトル スクリプトを作成しようとしていますが、バトルの後、プレイヤーが更新をクリックしてモンスターと再び戦うことができるようにしたくありません..またはサブミットを何度も押したくないです勝つための報酬を獲得し続ける..では、人が攻撃ボタンを押して戦闘が結果を表示した後、これが起こらないようにするために何をする必要がありますか? 問題を修正するだけでなく、プレーヤーをログアウトする session_destroy() を試みた場合:/
ここに私のコードがありますか?
if(isset($_POST['Submit']))
{
$player=$_SESSION['username'];
$playerstats1="SELECT * from users where username='$player'";
$playerstats2=mysql_query($playerstats1) or die ("Could not find player");
$playerstats3=mysql_fetch_array($playerstats2);
$pokemonstat1="SELECT * from user_pokemon where belongsto='$player' AND slot='1'";
$pokemonstat2=mysql_query($pokemonstat1) or die ("Could not find pokemon");
while($row = mysql_fetch_array($pokemonstat2)){
$yourmonster="SELECT * from pokemon where name='".$row['pokemon']."'";
$yourmonster2=mysql_query($yourmonster) or die ("Cannot select battle the pokemon");
$yourmonster3=mysql_fetch_array($yourmonster2);
$monstername=$_SESSION['pokemon'];
$monstername=strip_tags($monstername);
$selmonster="SELECT * from pokemon where name='$monstername'";
$selmonster2=mysql_query($selmonster) or die ("Cannot select battle the pokemon");
$selmonster3=mysql_fetch_array($selmonster2);
$totalskill=$yourmonster3[att] * $row['level'] + $selmonster3[att] * 5;
$randomnumber=rand(1,$totalskill);
if($randomnumber<=$yourmonster3[att] * $row['level'])
{
echo "<center>";
echo "you have won!";
echo "</center>";
} else {
echo "<center>";
echo "you have lost!";
echo "</center>";
}
}
}
再度更新しました。
$battle_id = md5(uniqid(rand(), true));
echo $battle_id;
// $battle_id would be something like 9a8ab59df7079208843086e9b49a7862
// initialise the battle log
if(!isset($_SESSION['battle_log']) || !is_array($_SESSION['battle_log']))
{
$_SESSION['battle_log'] = array();
}
// Check if the battle hasn't been played
if(!in_array($battle_id, $_SESSION['battle_log']))
{
// add played battle to the log
// ... your battle code goes here
if(isset($_POST['Submit']))
{
$player=$_SESSION['username'];
$playerstats1="SELECT * from users where username='$player'";
$playerstats2=mysql_query($playerstats1) or die ("Could not find player");
$playerstats3=mysql_fetch_array($playerstats2);
$pokemonstat1="SELECT * from user_pokemon where belongsto='$player' AND slot='1'";
$pokemonstat2=mysql_query($pokemonstat1) or die ("Could not find pokemon");
while($row = mysql_fetch_array($pokemonstat2)){
$yourmonster="SELECT * from pokemon where name='".$row['pokemon']."'";
$yourmonster2=mysql_query($yourmonster) or die ("Cannot select battle the pokemon");
$yourmonster3=mysql_fetch_array($yourmonster2);
$monstername=$_SESSION['pokemon'];
$monstername=strip_tags($monstername);
$selmonster="SELECT * from pokemon where name='$monstername'";
$selmonster2=mysql_query($selmonster) or die ("Cannot select battle the pokemon");
$selmonster3=mysql_fetch_array($selmonster2);
$totalskill=$yourmonster3[att] * $row['level'] + $selmonster3[att] * 5;
$randomnumber=rand(1,$totalskill);
if($randomnumber<=$yourmonster3[att] * $row['level'])
{
echo "<center>";
echo "you have won!";
echo "</center>";
} else {
echo "<center>";
echo "you have lost!";
echo "</center>";
}
}
}
$_SESSION['battle_log'][] = $battle_id;
}else {
echo "Don't try to cheat...";
}