使用唯一编号打印HTML页面

时间:2013-07-25 10:36:41

标签: php html ajax

我有一个php页面,其中我从上一页捕获了不同的值,还有一个打印按钮,打印所有这些字段,包括唯一编号。当用户点击打印按钮时,记录将被插入数据库并在屏幕上显示打印窗口。但问题是html页面上有一个唯一的编号,例如,如果两个人同时登录,则将获得相同的唯一编号,并且两者都能够打印具有相同唯一编号的同一页面。

我如何控制此问题,我也尝试将用户重定向到上一页,但它无效。

这是我的php页面,我使用ajax调用

<?php
$conn = mysql_connect('localhost','','') or die ("");
mysql_select_db("") or die ("Database Problem");
$query = "select * from print where a = $a;
$result = mysql_query($query);
if(mysql_num_rows($result) == 0)
{
    $query = "INSERT INTO print () VALUES () 
    $result = mysql_query($query) or die();
    if(mysql_affected_rows()<>1)
    {
        header ("Location:mainpage.php?uniquenumber=xy");
    }
}

3 个答案:

答案 0 :(得分:0)

你可以使用unisid http://php.net/manual/en/function.uniqid.php 生成唯一ID

答案 1 :(得分:0)

客户端需要什么样的单一序列?我的意思是让用户可以访问和编辑它是有点危险的,如果它是一个重要的价值。

如果您只需要这个数字来区分打印表中的不同条目,为什么不使用此表的auto_increment索引?

另一种解决方案是会话变量。当用户成功登录时,会根据多个变量(用户名,时间,浏览器)生成此唯一ID,这将确保此ID不会重复出现。然后像这样存储变量:

session_start();
$_SESSION['ID']=$unique_ID;

然后,您可以在任何其他PHP脚本中读取它:

session_start();
$unique_ID=$_SESSION['ID'];

答案 2 :(得分:0)

您可以在插入数据库之前验证唯一编号(在打印之前)。如果存在唯一的no,则抛出错误消息&#34;唯一的no已被使用&#34;并给出另一个唯一的数字(通过再次加载HTML页面或做其他事情)。