Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在页面之间传递数据?_Php_Mysql - Fatal编程技术网

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

我忘了如何正确地做这件事。我基本上希望一个PHP页面将数据发送到数据库(submitcore.PHP),另一个页面从数据库中获取数据并将其显示在表中(showscore.PHP):

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

<?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中,更新了我现在拥有的内容。它没有显示任何错误,但也没有在表中显示数据库中的数据。