如何将节点ID附加到我的Web链接?

时间:2014-05-22 13:54:03

标签: php

我建立了一个网站,用户可以通过该系统轻松猜出动物游戏。脚本连接的数据库是一个表二进制树,每行都有一个节点ID。我需要在包含游戏当前阶段的屏幕上打印URL,这样如果它被复制和粘贴,它将需要另一个用户到同一点。我该怎么做?

$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 个答案:

答案 0 :(得分:0)

由于您使用的是SESSION,而不是href =“assignment.php”,您可以回复:

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

但是现有代码的问题在于,只有在检测到$ _POST ['answer']时才设置$ _SESSION ['node'],如果你不提交表单,这是不可能的。

因此,您需要首先检查在文件的最开头是否在URL中设置了nodeId:

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