【发布时间】:2018-06-09 03:42:56
【问题描述】:
我目前正在使用 Raspberry Pi 做一个简单的项目。我有一个简单的 Apache 2 服务器正在运行,带有 MySQL 和几个 PHP/HTML 页面。其中一页是下面调用barcode.php 的一页。在barcode.php 中,您在user_id 字段中输入User_ID,然后按回车或按查找按钮,它将在数据库中搜索该用户并显示该用户信息和图片。
以上所有操作都可以手动操作,甚至可以通过扫描 QR 码使用条形码扫描仪。现在,我想集成一个 RFID 阅读器(RFID READER RC522)。当用户在读卡器上扫描他/她的卡时,我希望它像条形码扫描仪一样工作,并在 user_id 字段中输入数字代码,然后按 Enter,这样页面就可以返回用户数据。
我对此很陌生。我怎样才能在我的barcode.php中实现它?用户扫描的地方,它会放在 user_id 字段中。
这是barcode.php:
<?php
// Initialize the variables
$user_id = "";
$osha = "";
$firstname = "";
$lastname = "";
$company = "";
$trade = "";
$email = "";
$picture = "";
$reg_date = "";
// PHP code to search data in a MySQL database and set it in input text
if(isset($_POST['search']))
{
// Connect to MySQL
$dbc = mysqli_connect("127.0.0.1", "root", "1234", "demodb");
// id to search
$user_id = mysqli_real_escape_string($dbc, $_POST['user_id']);
$query = "SELECT * FROM Users WHERE user_id = '$user_id' LIMIT 1";
$rs = mysqli_query($dbc, $query);
if (mysqli_num_rows($rs) == 1)
{
$row = mysqli_fetch_array($rs);
$osha = $row['osha'];
$firstname = $row['firstname'];
$lastname = $row['lastname'];
$company = $row['company'];
$trade = $row['trade'];
$email = $row['email'];
$picture = $row['picture'];
$reg_date = $row['reg_date'];
$query1 = "INSERT INTO scan (user_id, osha, firstname, lastname, company, trade, email, picture) VALUES (" .
"'" . $user_id . "'," .
"'" . mysqli_real_escape_string($dbc, $osha ) . "', " .
"'" . mysqli_real_escape_string($dbc, $firstname) . "', " .
"'" . mysqli_real_escape_string($dbc, $lastname ) . "', " .
"'" . mysqli_real_escape_string($dbc, $company ) . "', " .
"'" . mysqli_real_escape_string($dbc, $trade ) . "', " .
"'" . mysqli_real_escape_string($dbc, $email ) . "', " .
"'" . mysqli_real_escape_string($dbc, $picture ) . "')";
mysqli_query($dbc, $query1);
}
else
{
echo "Undefined ID";
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<title>User Search</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!--===============================================================================================-->
<link rel="icon" type="image/png" href="images/icons/favicon.ico"/>
<!--===============================================================================================-->
<link rel="stylesheet" type="text/css" href="vendor/bootstrap/css/bootstrap.min.css">
<!--===============================================================================================-->
<link rel="stylesheet" type="text/css" href="fonts/font-awesome-4.7.0/css/font-awesome.min.css">
<!--===============================================================================================-->
<link rel="stylesheet" type="text/css" href="vendor/animate/animate.css">
<!--===============================================================================================-->
<link rel="stylesheet" type="text/css" href="vendor/css-hamburgers/hamburgers.min.css">
<!--===============================================================================================-->
<link rel="stylesheet" type="text/css" href="vendor/select2/select2.min.css">
<!--===============================================================================================-->
<link rel="stylesheet" type="text/css" href="css/util.css">
<link rel="stylesheet" type="text/css" href="css/main.css">
<!--===============================================================================================-->
<style>
.button {
background-color: #4CAF50;
border: none;
color: white;
padding: 15px 32px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 16px;
margin: 4px 2px;
cursor: pointer;
}
</style>
</head>
<body>
<div class="contact1">
<div class="container-contact1">
<div class="contact1-pic js-tilt" data-tilt>
<?php echo "<img src= '$picture' height='400' width='400' alt='Image not found' onerror=this.onerror=null;this.src='images/scanbarcode.png'; >" ?>
</div>
<form action="barcode.php" method="post">
<div class="wrap-input1 validate-input" data-validate = "SCAN ID TO SEARCH">
<input class="input1" type="text" name="user_id" placeholder="SCAN ID TO SEARCH" autofocus>
<span class="shadow-input1"></span>
</div>
<div class="wrap-input1 validate-input" >
<input class="input1" type="text" name="osha" placeholder="OSHA #" value="<?= htmlspecialchars($osha) ?>">
<span class="shadow-input1"></span>
</div>
<div class="wrap-input1 validate-input" >
<input class="input1" type="text" name="firstname" placeholder="First Name" value="<?= htmlspecialchars($firstname) ?>">
<span class="shadow-input1"></span>
</div>
<div class="wrap-input1 validate-input" >
<input class="input1" type="text" name="lastname" placeholder="Last Name" value="<?= htmlspecialchars($lastname) ?>">
<span class="shadow-input1"></span>
</div>
<div class="wrap-input1 validate-input" >
<input class="input1" type="text" name="company" placeholder="Company Name" value="<?= htmlspecialchars($company) ?>">
<span class="shadow-input1"></span>
</div>
<div class="wrap-input1 validate-input" >
<input class="input1" type="text" name="trade" placeholder="Trade Name" value="<?= htmlspecialchars($trade) ?>">
<span class="shadow-input1"></span>
</div>
<input type="button" onclick="window.location='auth.php'" class="button" value="Admin"/>
<input type="submit" name="search" value="Find" class="button" >
</form>
</div>
</div>
<!--===============================================================================================-->
<script src="vendor/jquery/jquery-3.2.1.min.js"></script>
<!--===============================================================================================-->
<script src="vendor/bootstrap/js/popper.js"></script>
<script src="vendor/bootstrap/js/bootstrap.min.js"></script>
<!--===============================================================================================-->
<script src="vendor/select2/select2.min.js"></script>
<!--===============================================================================================-->
<script src="vendor/tilt/tilt.jquery.min.js"></script>
<script >
$('.js-tilt').tilt({
scale: 1.1
})
</script>
</body>
</html>
这是名为 Read.py 的简单 Python 脚本
#!/usr/bin/env python
import RPi.GPIO as GPIO
import SimpleMFRC522
import MFRC522
import signal
continue_reading = True
reader = SimpleMFRC522.SimpleMFRC522()
def end_read(signal,frame):
print "Ctrl+C captured, ending read."
continue_reading = False
GPIO.cleanup()
signal.signal(signal.SIGINT, end_read)
MIFAREReader = MFRC522.MFRC522()
while continue_reading:
id, text = reader.read()
print(id)
print(text)
在终端上,扫描卡时返回以下数据:
pi@raspberrypi:/var/www/html/app/RFID/SPI-Py/MFRC522-python $ sudo python Read1.py
140248588882
我想将该数字数据 (140248588882) 发送到我的barcode.php 页面中的 user_id 字段。我怎样才能做到这一点?
【问题讨论】:
-
HTML 内容似乎格式不正确(例如,HTML 标记
form和 HTML 标记div重叠)。您可以在其上运行 WWW 验证器。
标签: php python html raspberry-pi