2014-05-22 125 views
0

我已經建立了一個網站,用戶在這個網站上玩一個簡單的猜測動物遊戲的系統。腳本連接到的數據庫是一個表二叉樹,每行都有一個節點ID。我需要在屏幕上打印包含當前遊戲階段的URL,以便複製並粘貼它時,會讓另一個用戶訪問同一點。我該怎麼做呢?如何將節點ID附加到我的網絡鏈接?

$query = "SELECT `message`, `parentID`,`answerYesID`, `answerNoID`, `nodeID` FROM  `creature`"; 
$where = ""; 

if(isset($_POST['answer'])){ 

$_SESSION['node'] = $_POST['answer'];} 

elseif (isset($_SESSION['node'])){ $where = "WHERE `nodeID` = '{$_SESSION['node']}'";} 

else { $where = "WHERE `parentID` IS NULL";} 

?> 

<?php 
if (isset($_POST['reset'])){ 

     $where = "WHERE `parentID` IS NULL"; 
     $_SESSION['node'] = 1; 
     echo $_SESSION['node']; 
} 

if (isset($_POST['submit']) && (isset ($_POST['answer']))){ 

     $where = "WHERE `nodeID` = '{$_POST['answer']}'"; 

}elseif (isset($_POST['submit']) && (!isset ($_POST['answer']))){ 

     $where = "WHERE `nodeID` = '{$_SESSION['node']}'"; 

     } 
echo'<div class="form">'; 
$result = mysqli_query($dbconn, $query.$where); 
$row = mysqli_fetch_assoc($result); 

echo "<p class = \"answer\">"; 
echo$row['message']; 
echo "</p>"; 

?> 

<form action="assignment.php" method="POST"> 
<input type="radio" name="answer" value="<?php echo $row['answerYesID'];?>">Yes 
<input type="radio" name="answer" value="<?php echo $row['answerNoID'];?>">No 
<input type="submit" name="submit" value="submit" class = "submit"> 
<input type='submit' name='reset' value='reset' class = "reset"> 
<a href="assignment.php"target="_blank" class = "link">click here...</a> 
</form> 

</div> 

<div class = "speech"> 
<span class= "welcome" ><h1>Welcome!</h1></span> 
<p>My name is Barry and I'm the game keeper.<br> 
This is the Creatures Expert Game. Answer <br> 
the first question to begin. Let's see if I can <br>guess what creature you are  thinking of!<br> 
<br> Hit the reset button to restart at anytime.</p> 
<a><img src="speech.png"></a> 
</div> 
<div class ="sparky"> 
<a><img src="sparkydog.png"></a> 
</div> 

<div class ="sign"> 
<a><img src="sign.png"></a> 
</div> 
</body> 

</html> 

頁是在s573022.neongrit.net/assignment

+1

你很容易受到[SQL注入攻擊(HTTP:// bobby-tables.com)。 –

回答

0

可見由於您使用的,而不是HREF SESSION = 「assignment.php」 你可以迴應:

<a href="assignment.php?nodeId=<?=$_SESSION['node']?>" target="_blank" class = "link">click here...</a> 

但現有代碼的問題在於,只有在檢測到$ _POST ['answer']時才設置$ _SESSION ['node'],如果您不提交表單,這是不可能的。

因此,你需要首先檢查是否有節點ID在文件的最開始在URL中設置像這樣:

if (isset($_GET['nodeId']) && $_GET['nodeId'] != '') { 
    $_SESSION['node'] = $_GET['nodeId']; 
} 
else { //do whatever you do now to get the answer } 
+0

謝謝,我已經在使用$ _SESSION ['node']進行跟蹤,我只需要一種附加方法,以便打印的URL可以粘貼到新的瀏覽器中,並且遊戲的相同點將被打開 – user3519506

+0

@ user3519506我編輯了我上面的答案。請讓我知道現在是否更清楚。 – christosPan

相關問題