2012-02-20 13 views
0

マップ上でモンスターを拾うことができるマップスクリプトを作成しました。 マップページがあり、キャッチをクリックすると、そこにモンスターを挿入する別のページに移動します。 問題は、ユーザーがクリックして再びキャッチをクリックしてから、同じモンスターを再び追加することです。クローンモンスターのバックボタン付きで再提出フォーム

私の質問は、もしあなたが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ためにそれらを取り、追加しますモンスターをクリックすると、そのモンスターをクリックして再びクリックすると、同じモンスターが追加されます。 これを止める方法はありますか?

答えて

0

この表示に既に$ _SESSION変数が追加されている可能性があります。そしてヘッダー部分で、$ _SESSIONが存在するかどうか確認してください。

+0

しかし、私は、ユーザーが地図上に戻ってくるブラウザをクリックして、変数が設定されていないと言いました。だから彼らはモンスターをキャッチし、モンスターキャッチがセットされていると、ユーザーがクリックして戻ってきてマップに戻り、モンスターキャッチはセットされません。あなたが戻ってキャッチして、それからキャッチしてほしい..... – user1121083

+0

あなたは戻ってくるボタンを押すのを止めたいのですか、それとも後ろのボタンを押すと、それを捕まえるために全く新しいモンスターが作られますか? jQueryやAJAXを使って、モンスターをクリックするとDBに追加して、新しいモンスターをつくることを考えましたか? – romo

+0

それは捕獲する全く新しいモンスターを作成します。私はajaxを知らない。私の全サイトが基づいているphpとsqlだけを知っているだけです。 – user1121083

0

POSTの後にユーザーをリダイレクトすると(header("Location: [url]");)、バックフォワード&の更新データの問題を修正する必要があります。

関連する問題