[英]Passing data between pages?
我忘記了如何正確地做到這一點。 我基本上想要一個PHP頁面將數據發送到數據庫(submitscore.php),另一個從數據庫中獲取它們並將它們顯示在表格中(showscore.php):
submitscore.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);
}
?>
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);
?>
我問,因為這樣做會給出錯誤Notice: Undefined index: score
和Notice: Undefined index: playername
submitscore.php
頁面上的submitscore.php
。
它沒有將任何記錄插入數據庫,也沒有顯示表格。
謝謝。
你的codes
容易受到sql injection
你應該在將值插入數據庫之前使用mysql_real_escape_string
函數。
你不需要
$scorefromflash = $_POST['score'];
$namefromflash = $_POST['playername'];
在節目分數頁面...
這是代碼,對我有用:
submitscore.php:
<?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");
}
?>
showscore.php
<?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);
?>
插入數據后,它會將您重定向到頁面,其中顯示包含所有數據的表格。 更改數據庫憑據。 這是我用於測試的GET請求:
http://domain/submitscore.php?score=1&playername=2
我想你正試圖設置一個標題,用$_POST['score'] and $_POST['playername']
將頁面重新加載到showscore.php
在submitscore.php中試試這個:
header("location: ./showscore.php?player=$namefromflash&score=$scorefromflash");
並在showscore.php內使用:
$scorefromflash = $_REQUEST['score'];
$namefromflash = $_REQUEST['playername'];
第一:你的代碼不是保存。 使用類似mysql_escape_string
東西
這不是一個真正的錯誤。 它(就像它說的那樣)是一個通知。 您不使用isset
函數來檢查是否設置了變量。 這個變量有可能沒有值,因為之前的頁面沒有發送它。
如果你使用而不是
$scorefromflash = $_POST['score'];
用這個:
$scorefromflash = isset($_POST['score'])?$_POST['score']:null
然后這個通知就會消失。 還有其他$_POST
值
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.