编辑:感谢所有有用的答案,我解决了。
我似乎无法找到这个问题的答案,而且它可能非常简单。
我只是在创建一个有趣的页面,您可以从1-10中猜出一个数字。人1输入一个秘密号码,该人2将猜测。但是,我有很多问题从密码中存储 $ _POST。
TL; DR我无法将secretNumber的信息存储到guessnumber_guessed.php文件中。例如,查看guessnumber_guessed。 if语句的第一部分,如果inputNumber等于secretNumber,它应该说是正确的。问题是,variblae是未定义的,如何“传递信息”?
希望你们明白我的观点,非常感谢帮助
以下是代码:
guessnumber_welcome:
<form method="post" action="guessnumber.php">
<input type="text" name="secretNumber" placeholder="Type the secret number">
<input type="submit" name="submit" value="Send">
</form>
guessnumber.php:
<form method="post" action="guessnumber_guessed.php">
<input type="text" name="inputNumber" placeholder="Guess the secret number">
<input type="submit" name="submit" value="Guess!">
</form>
<?php
$secretNumber = $_POST["secretNumber"]
?>
guessnumber_guessed.php:
<form method="post" action="">
<input type="text" name="inputNumber" placeholder="Guess the secret number">
<input type="submit" name="submit" value="Guess!">
</form>
<?php
$inputNumber = $_POST["inputNumber"];
if ($inputNumber == $secretNumber) {
echo "<p id=\"correctAnsw\"> CORRECT! </p>";
}
else if ($inputNumber == 2) {
echo "<p id=\"wrongAnsw\">You're very close. Go up a little!</p>";
}
else if ($inputNumber==4) {
echo "<p id=\"wrongAnsw\">You're very close. Go down a little!</p>";
}
else if ($inputNumber > 10) {
echo "<p id=\"wrongAnsw\">The number is you guessed is too high. Stay within the borders!</p>";
}
else if ($inputNumber < 1) {
echo "<p id=\"wrongAnsw\">The number is you guessed is too low. Stay within the borders!</p>";
}
else {
echo "<p id=\"wrongAnsw\">This is not the number. Try a new one!</p>";
}
?>
答案 0 :(得分:2)
会议无济于事。他们是面向用户的。如果第一个人正在使用该页面输入一个号码而第二个人在此之后,则在同一个会话中,在同一个浏览器上,您可以使用会话机制。
如果你正试图制作一个多用户游戏&#34;这两个人有不同的浏览器,这意味着你必须:
答案 1 :(得分:1)
我遇到了类似的问题,试图在两个脚本之间传递一些url字符串,用于“两步”上传器。 在我看来,有两种解决方案,取决于您想要的安全级别:
在 guessnumber.php 中将$ _POST ['secretNumber']值放入输入类型=“隐藏”
<input type="hidden" value="<?php echo $_POST['secretNumber']; ?>">
这样,该值将通过POST传递给第二个脚本,并将在$ _POST数组中提供。
这种方法对于敏感数据是不安全的,因为只需通过浏览器devtool访问html源的每个人都可以读取或修改它!
第二种更安全的解决方案是使用 php session
在 guessnumber.php 中启动php会话并以这种方式保存值:
if ( !session_id() ) {
session_start();
}
$_SESSION['secretNumber'] = $_POST['secretNumber'];
然后在 guessnumber_guessed.php 恢复会话并从那里获取值
if ( !session_id() ) {
session_start();
}
$secretNumber = $_SESSION['secretNumber'];
我强烈推荐第二种解决方案 希望它有所帮助:)