我目前正在构建一个获得唯一值的系统,并将其用作登录名,即参考号。然后参考编号搜索数据库并将所有相应的数据输出到另一个页面,我正在努力解决这个问题,我的代码是:
的index.php
<input name="search_box" type="text" class="auto-style1" id="search_box" style="width: 240px; height: 30px" maxlength="12">
<input type="submit" name="search" value="Enter" class="auto-style1" style="width: 63px; height: 30px"></td>
<?php $reasons = array("search_box" => "Please Enter Valid Reference Number", "" => "Error"); if ($_GET["loginFailed"]) echo $reasons[$_GET["reason"]]; ?>
</form>
Check.php
<?php
include "conn.php";
mysql_connect("localhost","root") or die(header("location:index.php?loginFailed=true&reason=search_box"));
mysql_select_db("DB1") or die(header("location:index.php?loginFailed=true&reason=search_box"));
$reference1 = $_POST['search_box'];
$sql = "SELECT * FROM test_table1 WHERE No =$R1";
$result = mysql_query($sql) or die(mysql_error());
if ($result)
$count = mysql_num_rows($result);
else
$count = 0;
if($count == 1)
{
session_register('search_box');
header("location:result.php");
}
else
{
echo (header("location:index.php?loginFailed=true&reason=search_box"));
}
?>
Output.php
<?php
include "conn.php";
$sq2 = "SELECT * FROM test_table1";
if (isset($_POST['search']))
{
$search_term = mysql_real_escape_string($_POST['search_box']);
$sq2 .= "WHERE No = '{$search_term}'";
}
$query= mysql_query($sq2, $con);
while($row = mysql_fetch_array($query)) { ?>
<font size="4" face="Calibri"><b> Ref Number: </b> </font><?php echo $row['No']; ?></td>
<p>
<font size="4" face="Calibri"><b> Location: </b></font><?php echo $row['Country']; ?></td>
<p>
<?php
mysql_close($con);
?>
你们给予的任何帮助都将受到高度赞赏,谢谢。
Qwerty键盘。
答案 0 :(得分:1)
你的问题(你现在可能想知道的那个问题(因为似乎还有一些潜在的问题和漏洞))在Output.php
。
当您从Login_check.php
调用该文件时(因为您正在重定向浏览器),您$_POST
数组不再包含任何数据。
为了让自己更轻松,为什么不include "Output.php";
而不是headers()
重定向浏览器?这样您就不需要再次重新初始化Output.php
中的会话或数据库。
如果您需要此重定向,请在初始化会话后将$_POST['search']
存储到$_SESSION['search']
,然后在$_SESSION['search']
中更改为Output.php
而不是(因为您拥有它)现在)到$_POST['search']
希望有所帮助。
答案 1 :(得分:0)
所以我假设您有一张表donations
,其中您有捐赠的donId
(参考编号),捐赠者的donName
,donCountry
捐赠者来自的国家和donAmount
他们捐赠了多少钱。
你的文件看起来像这样(我不打扰html的所有正确的标题,所以结果将不是一个w3c有效的HTML,但它应该在你的浏览器中没有问题。
我想我必须说你不应该使用mysql_query
而所有其他mysql_...
函数都使用mysqli_*
。下面的代码虽然仍旧使用旧的已经弃用的mysql_函数,所以根据你的兴趣将它升级到mysqli(这是一个家庭作品;)(lol)
档案donInfo.php
:
<html>
<body>
<form action='donInfo.php' method='post'>
<label for='donId'>Reference No.:</label>
<input type='text' size='6' name='donId' id='donId' value='' />
<input type='submit' name='do' value=' Show me! ' style='margin-left:2em;'/>
</form>
<?php
/* table definition:
CREATE TABLE donations (
donId int unsigned not null,
donCountry varchar(80) not null,
donName varchar(80) not null,
donAmount numeric(11,2) not null,
PRIMARY KEY (donId)
)
*/
if (!isset($_POST['do']) || !isset($_POST['donId']) || !$_POST['donId'])
exit;
require_once 'connection.php';
$don=mysql_fetch_assoc(
mysql_query('SELECT * '.
'FROM donations '.
'WHERE donId="'.mysql_real_escape_string($_POST['donId'],$con).'"',$con));
if ($don===false || !$don['donId'])
print '<h3>Donation id #'.$_POST['donId'].' does not exist!</h3>';
else {
print '<h3>Information about donation id #'.$_POST['donId'].'</h3>'.
'State: '.$don['donCountry'].'<br/>'.
'Donator: '.$don['donName'].'<br/>'.
'Amount: $ '.number_format($don['donAmount'],2).'<br/>'.
'<hr/>';
$sumP=mysql_fetch_assoc(
mysql_query('SELECT SUM(donAmount) total, COUNT(*) donx '.
'FROM donations '.
'WHERE donName="'.mysql_real_escape_string($don['donName'],$con).'" '.
'GROUP BY donName',$con));
print '<h4>Donations from '.$don['donName'].':</h4>'.
'Total Amount: $ '.number_format($sumP['total'],2).'<br/>'.
'Donated <b>'.number_format($sumP['donx'],0).'</b> times to date.<br/>'.
'<hr/>';
$sumC=mysql_fetch_assoc(
mysql_query('SELECT SUM(donAmount) total, COUNT(DISTINCT donName) donators, COUNT(*) donx '.
'FROM donations '.
'WHERE donCountry="'.mysql_real_escape_string($don['donCountry'],$con).'" '.
'GROUP BY donCountry',$con));
print '<h4>Donations from '.$don['donCountry'].':</h4>'.
'Total Amount: $ '.number_format($sumC['total'],2).'<br/>'.
'Total of <b>'.number_format($sumC['donx']).'</b> donations from <b>'.number_format($sumC['donators'],0).'</b> donators.<br/>'.
'<hr/>';
$sumW=mysql_fetch_assoc(
mysql_query('SELECT SUM(donAmount) total, COUNT(DISTINCT donName) donators, COUNT(DISTINCT donCountry) countries, COUNT(*) donx '.
'FROM donations '.
'GROUP BY 1=1',$con));
print '<h4>Donations Total:</h4>'.
'Total Amount: $ '.number_format($sumW['total'],2).'<br/>'.
'Total of <b>'.number_format($sumW['donx']).'</b> donations from <b>'.number_format($sumW['countries'],0).'</b> countries and <b>'.number_format($sumW['donators'],0).'</b> donators.<br/>'.
'<hr/>';
}
?>
</body>
</html>
我已经测试了代码,所以它应该运行良好。我正在使用你的connection.php
脚本(我猜)你正在初始化你的数据库。
简要描述它的作用: 要求提供ID,然后在提交时检查它是否存在,如果是,它将打印有关该捐赠ID的信息,该ID的用户信息,该ID的国家和总捐赠统计。如果捐赠ID不存在,它只会说:在等待输入另一个ID时不存在。