Php 在页面之间传递数据?
我忘了如何正确地做这件事。我基本上希望一个PHP页面将数据发送到数据库(submitcore.PHP),另一个页面从数据库中获取数据并将其显示在表中(showscore.PHP): submitcore.php:Php 在页面之间传递数据?,php,mysql,Php,Mysql,我忘了如何正确地做这件事。我基本上希望一个PHP页面将数据发送到数据库(submitcore.PHP),另一个页面从数据库中获取数据并将其显示在表中(showscore.PHP): submitcore.php: if(isset($_POST['score']) && isset($_POST['playername'])) { $scorefromflash = mysql_real_escape_string($_POST['score']); $namef
if(isset($_POST['score']) && isset($_POST['playername']))
{
$scorefromflash = mysql_real_escape_string($_POST['score']);
$namefromflash = mysql_real_escape_string($_POST['playername']);
$con = mysql_connect("servername","username","password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("testdb", $con);
$sql = "INSERT INTO test (Name, Score) VALUES ('$namefromflash', '$scorefromflash')";
header("./showscore.php");
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
mysql_close($con);
}
?>
<?php
if(isset($_REQUEST['score']) && isset($_REQUEST['playername']))
{
$con = mysql_connect("host","user","password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("database", $con);
$scorefromflash = mysql_real_escape_string($_REQUEST['score']);
$namefromflash = mysql_real_escape_string($_REQUEST['playername']);
$sql = "INSERT INTO test (Name, Score)
VALUES ('$namefromflash', '$scorefromflash')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
mysql_close($con);
header("Location: showscore.php");
}
?>
header("location: ./showscore.php?player=$namefromflash&score=$scorefromflash");
showscore.php
<?php
$con = mysql_connect("server","username","password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("testdb", $con);
echo ("Name: ".$namefromflash);
echo ("Score: ".$scorefromflash);
$result = mysql_query("SELECT * FROM test ORDER BY Score DESC");
echo "<table border='1'>
<tr>
<th>Name</th>
<th>Score</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['Name'] . "</td>";
echo "<td>" . $row['Score'] . "</td>";
echo "</tr>";
}
echo "</table>";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
mysql_close($con);
?>
<?php
$con = mysql_connect("host","user","password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("database", $con);
$result = mysql_query("SELECT * FROM test ORDER BY Score DESC");
if (!$result)
{
die('Error: ' . mysql_error());
}
echo "<table border='1'>
<tr>
<th>Name</th>
<th>Score</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['Name'] . "</td>";
echo "<td>" . $row['Score'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
?>
我这样问是因为这样做会在submitcore.php
页面上出现错误Notice:Undefined index:score
和Notice:Undefined index:playername
它没有向数据库中插入任何记录,也没有显示表
谢谢。您的
代码
容易受到sql注入的攻击
在将值插入数据库之前,您应该使用mysql\u real\u escape\u string
函数
你不需要
$scorefromflash = $_POST['score'];
$namefromflash = $_POST['playername'];
在show score page…下面是代码,它对我很有用: submitcore.php:
if(isset($_POST['score']) && isset($_POST['playername']))
{
$scorefromflash = mysql_real_escape_string($_POST['score']);
$namefromflash = mysql_real_escape_string($_POST['playername']);
$con = mysql_connect("servername","username","password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("testdb", $con);
$sql = "INSERT INTO test (Name, Score) VALUES ('$namefromflash', '$scorefromflash')";
header("./showscore.php");
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
mysql_close($con);
}
?>
<?php
if(isset($_REQUEST['score']) && isset($_REQUEST['playername']))
{
$con = mysql_connect("host","user","password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("database", $con);
$scorefromflash = mysql_real_escape_string($_REQUEST['score']);
$namefromflash = mysql_real_escape_string($_REQUEST['playername']);
$sql = "INSERT INTO test (Name, Score)
VALUES ('$namefromflash', '$scorefromflash')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
mysql_close($con);
header("Location: showscore.php");
}
?>
header("location: ./showscore.php?player=$namefromflash&score=$scorefromflash");
我想您正在尝试设置一个标题,以便使用
$\u POST['score']和$\u POST['playername']
在submitcore.php中尝试以下操作:
if(isset($_POST['score']) && isset($_POST['playername']))
{
$scorefromflash = mysql_real_escape_string($_POST['score']);
$namefromflash = mysql_real_escape_string($_POST['playername']);
$con = mysql_connect("servername","username","password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("testdb", $con);
$sql = "INSERT INTO test (Name, Score) VALUES ('$namefromflash', '$scorefromflash')";
header("./showscore.php");
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
mysql_close($con);
}
?>
<?php
if(isset($_REQUEST['score']) && isset($_REQUEST['playername']))
{
$con = mysql_connect("host","user","password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("database", $con);
$scorefromflash = mysql_real_escape_string($_REQUEST['score']);
$namefromflash = mysql_real_escape_string($_REQUEST['playername']);
$sql = "INSERT INTO test (Name, Score)
VALUES ('$namefromflash', '$scorefromflash')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
mysql_close($con);
header("Location: showscore.php");
}
?>
header("location: ./showscore.php?player=$namefromflash&score=$scorefromflash");
在showscore.php中使用:
$scorefromflash = $_REQUEST['score'];
$namefromflash = $_REQUEST['playername'];
第一:你的代码没有保存。使用类似于
mysql\u escape\u string的东西
这不是一个真正的错误。它(就像上面说的)是一个通知。您不需要使用isset
功能来检查变量是否已设置。这个变量可能没有值,因为之前的页面没有发送它
如果您使用而不是
$scorefromflash = $_POST['score'];
使用以下命令:
$scorefromflash = isset($_POST['score'])?$_POST['score']:null
那么这个通知就不见了。另外,对于其他$\u POST
值是否能够将数据存储在数据库中?mysql函数已被弃用。请看一看PDO或mysqli。或者为什么他需要发送$_REQUEST['playername']和$_REQUEST['score'],因为他只是想根据自己的问题显示数据库中的数据……因为他把数据放在了回音中。我不知道为什么,但如果这是他想要的,让他知道。用我现在拥有的更新。它没有显示任何错误,但也没有在表中显示数据库中的数据。echos
只是为了测试变量是否正常工作。为什么他需要$_REQUEST['playername]&$_REQUEST['score',因为他只是想根据自己的问题显示数据库中的数据。@santanukumar他在submitcore.php中询问有关通知的问题。在这个文件中,他正在插入数据。这就是我使用它的原因。但根据他的问题,他的意图是显示数据库记录,他不知道是否需要这两个值从数据库中显示。我只是尝试将名称和分数发送到数据库,然后在showscores.php的表中显示它们page@Liam我想,你是在问通知的事。我看到你用了我的密码。您需要指定插入记录的id
,以从数据库获取showscore.php中的数据。你不会这么做的。这就是为什么它不起作用。用我现在拥有的更新。它没有显示任何错误,但也没有在表中显示数据库中的数据。您正在ufoinvasion中插入数据,但试图使用res table访问它。它应该在showscore.php中按Score DESC从ufoinvasion顺序选择*此外,插入期间选择的数据库是mysql\u SELECT\u db(“bg29li”,$con);但是您使用的是mysql\u select\u db(“testdb”,$con);在showscore.php中,更新了我现在拥有的内容。它没有显示任何错误,但也没有在表中显示数据库中的数据。