マップ上でモンスターを拾うことができるマップスクリプトを作成しました。 マップページがあり、キャッチをクリックすると、そこにモンスターを挿入する別のページに移動します。 問題は、ユーザーがクリックして再びキャッチをクリックしてから、同じモンスターを再び追加することです。クローンモンスターのバックボタン付きで再提出フォーム
私の質問は、もしあなたが2つのページを持っていれば、とにかく前に戻って同じ結果を得るのを止めることからですか?
はここに私のマップスクリプト
<?php
$con = mysql_connect("localhost","blah","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("blah", $con);
$qry = mysql_query("SELECT * FROM pokemon
WHERE type1='fire' AND swap='1' ");
$max = mysql_num_rows($qry) - 3; // i.e.: 5 rows would be 0,1,2,3,4
$random_number = mt_rand(0, $max);
$result = mysql_query("SELECT * FROM pokemon
WHERE type1='fire' AND swap='1' LIMIT ".$random_number.", 1");
$resultarray = mysql_fetch_array($result);
echo "<br>";
echo "<br>";
?>
<center>
<br />
<?php
$username = strip_tags(addSlashes($_SESSION['username'])); // Remove any nasties
$pokeID = strip_tags(addSlashes($resultarray['id'])); // Remove any nasties
$pokeNAME = strip_tags(addSlashes($resultarray['type1'])); // Remove any nasties
$pokePIC = strip_tags(addSlashes($resultarray['pic'])); // Remove any nasties
$_SESSION['runonce'] == 1
?>
<span class="style7"><strong>Pokemon Name :</strong> <?php echo $resultarray['name'] ?>
<br />
<strong>Pokemon Type :</strong> <?php echo $resultarray['type1'] ?> </span><br />
<?php echo '<img src="http://myurl.net/'.$resultarray['pic'].'" width="100" height="100" />'; ?>
</center>
<center>
<form action="test678.php" method="post">
<input type="hidden" name="username" value="<?php echo $_SESSION['username']; ?>" />
<input type="hidden" name="id" value="<?php echo $resultarray['id']; ?>" />
<input type="hidden" name="poke_name" value="<?php echo $resultarray['name']; ?>" />
<input type="hidden" name="poke_type" value="<?php echo $resultarray['type1']; ?>" />
<input type="hidden" name="poke_pic" value="<?php echo $resultarray['pic'] ?>" />
<input type="hidden" name="token" value="<?php echo md5($resultarray['name'].$salt.$resultarray['id']);?>" />
<input type="submit" name="Catch" value="Catch" />
</form>
が続いてここtest678.php
<?php
session_set_cookie_params(1200,'/','.pokemontoxic.net');
$salt = "jsdhgkjshgg";
?>
<?php
$error = Array();
$username = isset($_POST['username']) ? $_POST['username'] : $error[] = "No Username defined";
$id = isset($_POST['id']) ? $_POST['id'] : $error[] = "No ID defined";
$poke_name = isset($_POST['poke_name']) ? $_POST['poke_name'] : "No Pokeman Data defined (name)";
$poke_type = isset($_POST['poke_type']) ? $_POST['poke_type'] : "No Pokemon Data defined (type)";
$poke_pic = isset($_POST['poke_pic']) ? $_POST['poke_pic'] : "No Pokemon Data defined (picture)";
if (!empty ($error))
{ $html = <<<ERROR_HTML
<html>
<head>
<title>Errors Detected</title>
</head>
<body>
<H3>Errors Have Been Detected</H3>
<p>
[ERRORS]
</p>
</body>
</html>
ERROR_HTML;
$str = "<ol>";
for ($i = 0; $i < count($errors); $i++)
{ $str .= "<li>". $errors[$i] ."</li>";
}
$str .= "</ol>";
$html = str_replace("[ERRORS]", $str, $html);
die($html);
}
$con = mysql_connect("localhost","ghgh","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("iuiiui", $con);
mysql_query("INSERT INTO user_pokemon
(pokemon, belongsto, exp, time_stamp, slot, level) VALUES('$poke_name','".$_SESSION['username']."', 100,'".time()."','0' ,'5')
") or die(mysql_error());
echo $poke_name."<br>";
unset($_POST['username']);
unset($_POST['id']);
unset($_POST['poke_name']);
unset($_POST['poke_type']);
unset($_POST['poke_pic']);
unset($id);
unset($poke_name);
unset($poke_type);
unset($poke_pic);
/*
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
*/
?>
ですので、ユーザはmap.phpにフォームを送信する、それはtest678.phpためにそれらを取り、追加しますモンスターをクリックすると、そのモンスターをクリックして再びクリックすると、同じモンスターが追加されます。 これを止める方法はありますか?
しかし、私は、ユーザーが地図上に戻ってくるブラウザをクリックして、変数が設定されていないと言いました。だから彼らはモンスターをキャッチし、モンスターキャッチがセットされていると、ユーザーがクリックして戻ってきてマップに戻り、モンスターキャッチはセットされません。あなたが戻ってキャッチして、それからキャッチしてほしい..... – user1121083
あなたは戻ってくるボタンを押すのを止めたいのですか、それとも後ろのボタンを押すと、それを捕まえるために全く新しいモンスターが作られますか? jQueryやAJAXを使って、モンスターをクリックするとDBに追加して、新しいモンスターをつくることを考えましたか? – romo
それは捕獲する全く新しいモンスターを作成します。私はajaxを知らない。私の全サイトが基づいているphpとsqlだけを知っているだけです。 – user1121083