-
Notifications
You must be signed in to change notification settings - Fork 11
/
index.php
108 lines (83 loc) · 4.26 KB
/
index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<?php
/*
* PHP QR Code encoder
*
* Exemplatory usage
*
* PHP QR Code is distributed under LGPL 3
* Copyright (C) 2010-2013 Dominik Dzienia <deltalab at poczta dot fm>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
echo '<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>PHP QR Code Demo</title>
<script type="text/javascript" src="lib/js/qrcanvas.js"></script>
</head>
<body>
<h1>PHP QR Code</h1>
<hr/>';
echo '<a href="examples/index.php">Examples and Demos</a> (<a href="">online</a>)
| <a href="docs/html/index.html">API Documentation</a> (<a href="">online</a>)
| <a href="http://sourceforge.net/projects/phpqrcode/">Online SF project</a>
| <a href="http://phpqrcode.sourceforge.net/">Online SF Main Site</a>
| <a href="http://sourceforge.net/apps/mediawiki/phpqrcode/">Online SF wiki</a>
| <a href="http://sourceforge.net/donate/index.php?group_id=311533">Donate!</a><hr />';
// setup and input processing ----------------------------------------------
//set it to writable location, a place for temp generated PNG files
$FILE_TEMP_DIR = dirname(__FILE__).DIRECTORY_SEPARATOR.'temp'.DIRECTORY_SEPARATOR;
//html PNG location prefix
$FILE_WEB_DIR = 'temp/';
include "lib/full/qrlib.php";
//ofcourse we need rights to create temp dir
if (!file_exists($FILE_TEMP_DIR))
mkdir($FILE_TEMP_DIR);
//processing form input
//remember to sanitize user input in real-life solution !!!
$errorCorrectionLevel = 'L';
if (isset($_REQUEST['level']) && in_array($_REQUEST['level'], array('L','M','Q','H')))
$errorCorrectionLevel = $_REQUEST['level'];
$matrixPointSize = 4;
if (isset($_REQUEST['size']))
$matrixPointSize = min(max((int)$_REQUEST['size'], 1), 10);
$textData = 'PHP QR Code :)';
if (isset($_REQUEST['data']) && (trim($_REQUEST['data']) != '')) {
$textData = $_REQUEST['data'];
}
//config form --------------------------------------------------------------
echo '<form action="index.php" method="post">
Data: <input name="data" value="'.(isset($_REQUEST['data'])?htmlspecialchars($_REQUEST['data']):'PHP QR Code :)').'" /> 
ECC: <select name="level">
<option value="L"'.(($errorCorrectionLevel=='L')?' selected="true"':'').'>L - smallest</option>
<option value="M"'.(($errorCorrectionLevel=='M')?' selected="true"':'').'>M</option>
<option value="Q"'.(($errorCorrectionLevel=='Q')?' selected="true"':'').'>Q</option>
<option value="H"'.(($errorCorrectionLevel=='H')?' selected="true"':'').'>H - best</option>
</select> 
Size: <select name="size">';
for($i=1;$i<=10;$i++)
echo '<option value="'.$i.'"'.(($matrixPointSize==$i)?' selected="true"':'').'>'.$i.'</option>';
echo '</select> 
<input type="submit" value="GENERATE" /></form><hr/>';
//display generated file ---------------------------------------------------
$pngFilename = $FILE_TEMP_DIR.'test'.md5($textData.'|'.$errorCorrectionLevel.'|'.$matrixPointSize).'.png';
QRcode::png($textData, $pngFilename, $errorCorrectionLevel, $matrixPointSize, 2);
echo '<img src="'.$FILE_WEB_DIR.basename($pngFilename).'" /><hr />';
// benchmark ---------------------------------------------------------------
QRtools::timeBenchmark();
// links ---------------------------------------------------------------
echo '<hr />';
echo '</body></html>';