123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- <?php
- // echo "<h3><a href=''>Создать новый тип метки для компании $companyname</a></h3>";
- // echo "<h3><a href=''>Отобразить текущие метки для компании $companyname</a></h3>";
- echo "<h3>Создать метку, закодированную в QR код:</h3><hr/>";
-
- //set it to writable location, a place for temp generated PNG files
- $PNG_TEMP_DIR = dirname(__FILE__).DIRECTORY_SEPARATOR.'temp'.DIRECTORY_SEPARATOR;
-
- //html PNG location prefix
- $PNG_WEB_DIR = 'temp/';
- include "phpqrcode/qrlib.php";
-
- //ofcourse we need rights to create temp dir
- if (!file_exists($PNG_TEMP_DIR))
- mkdir($PNG_TEMP_DIR);
-
-
- $filename = $PNG_TEMP_DIR.'test.png';
-
- //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 = 6;
- if (isset($_REQUEST['size']))
- $matrixPointSize = min(max((int)$_REQUEST['size'], 1), 10);
- if (isset($_REQUEST['data'])) {
-
- //it's very important!
- if (trim($_REQUEST['data']) == '')
- echo('<span style=\'color:red\'><h3>Данные не должны быть пустыми!</h3></span>');
- else {
- if ($type == '3')
- $hex_string = $_REQUEST['data'];
- else {
- $buf = pack("lll", $type, $_REQUEST['objtype'], $_REQUEST['data']); //заголовок - номер пакета 1б и длина 2б. v-ushort, c- byte, C- ubyte, s - short, L - int, l - uint
- $hex_string = base64_encode($buf);
- }
- //echo "type $type";
- echo "<p><br>data: $hex_string</p>";
- // user data
- $filename = $PNG_TEMP_DIR . 'test' . md5($hex_string . '|' . $errorCorrectionLevel . '|' . $matrixPointSize) . '.png';
- //$filename = $PNG_TEMP_DIR.'test'.md5($_REQUEST['data'].'|'.$errorCorrectionLevel.'|'.$matrixPointSize).'.png';
- QRcode::png($hex_string, $filename, $errorCorrectionLevel, $matrixPointSize, 2);
- }
-
- } else {
-
- //default data
- //echo 'You can provide data in GET parameter: <a href="?data=like_that">like that</a><hr/>';
- QRcode::png('PHP QR Code :)', $filename, $errorCorrectionLevel, $matrixPointSize, 2);
-
- }
-
- //display generated file
- echo '<img src="'.$PNG_WEB_DIR.basename($filename).'" /><hr/>';
-
- //config form
- $sel1 = '';
- $sel2 = '';
- $sel3 = '';
- if ($type == '1')
- $sel1 = 'selected';
- if ($type == '2')
- $sel2 = 'selected';
- if ($type == '3')
- $sel3 = 'selected';
- echo '<form action="?act=markers" method="post">
- <b>Тип метки:</b> <select name="type">
- <option '.$sel1.' value="1">Сотрудник</option>
- <option '.$sel2.' value="2">Помещение</option>
- <option '.$sel3.' value="3">Текст</option>
- <option '.$sel4.' value="4">ТМЦ (Объект)</option>
- </select>
- <br>
- ID или текст: <input name="data" value="'.(isset($_REQUEST['data'])?htmlspecialchars($_REQUEST['data']):'').'" />
- Тип объекта: <input name="objtype" value="'.(isset($_REQUEST['objtype'])?htmlspecialchars($_REQUEST['objtype']):'').'" />
- ECC: <select name="level">
- <option value="L"'.(($errorCorrectionLevel=='L')?' selected':'').'>L - наименьшее</option>
- <option value="M"'.(($errorCorrectionLevel=='M')?' selected':'').'>M</option>
- <option value="Q"'.(($errorCorrectionLevel=='Q')?' selected':'').'>Q</option>
- <option value="H"'.(($errorCorrectionLevel=='H')?' selected':'').'>H - лучшее</option>
- </select>
- Размер: <select name="size">';
-
- for($i=1;$i<=10;$i++)
- echo '<option value="'.$i.'"'.(($matrixPointSize==$i)?' selected':'').'>'.$i.'</option>';
-
- echo '</select>
- <input type="submit" value="Создать"><br>
- <input name="Save" type="button" id="Save" onClick="" value="Сохранить созданную метку">
- </form><hr/>';
-
- // benchmark
- // QRtools::timeBenchmark();
-
|