NorfiPC
NorfiPC » Códigos » Generador de QR code

Códigos de un generador de QR code en PHP para un sitio web


Crear un formulario para insertar en una página web o usar en la computadora offline que permita crear códigos QR. Código para impedir la inyección de códigos SQL e imagen de verificación para impedir la validación automática. Códigos para copiar y archivos para descargar gratis.
Códigos de un generador de QR code en PHP para un sitio web
En otras páginas de nuestro sitio habrás visto generadores que los lectores usan para crear sus propios códigos QR.
Funcionan con un sencillo script en PHP que cualquiera puede crear para insertar en su sitio web o incluso para utilizar en la computadora sin conexión a internet.
Es este articulo compartimos los códigos necesarios para crearlo.



Requisitos para crear el generador de códigos QR


Los requisitos para crear el generador son solo dos, un servidor que ofrezca soporte para PHP y que tenga habilitada la librería GL.
Existen dos opciones:
- Subir los archivos a cualquier servidor en la red.
- Instalar Apache con PHP en el equipo local, en este caso se podrá disponer de la función offline.
Lee más información sobre Apache y PHP.



Archivos del generador


Hay una pequeña librería del software libre disponible en Sourceforge.net llamada: "PHPQRCode".
Contiene todos los archivos necesarios para crear el generador de códigos QR.
Puedes descargarla completa a tu equipo usando el siguiente enlace: http://phpqrcode.sourceforge.net/.
Más abajo en esta misma página tienes la opción de descargar solo los archivos elementales.

Código del generador de códigos QR


Hacer funcionar PHPQRCode no es difícil.
Si tienes conocimientos de PHP no necesitas leer más, el archivo que descargues contiene en su interior todo lo necesario, cada archivo incluye comentarios con explicación de su uso.
Si no sabes nada de PHP no te desanimes, sigue los siguientes pasos:
• Descomprime el archivo que descargues y extrae de su interior solo los archivos llamados: "index.php" y "phpqrcode.php"
• Crea una carpeta de nombre "generador-qr" y copia los archivos anteriores a su interior.
• Edita el archivo index.php con el Bloc de notas u otro editor de texto plano como Notepad++ o PSPad.
• Busca la línea 33 con el siguiente contenido:
include "qrlib.php";
Sustitúyela por:
include "phpqrcode.php";
• Es todo, guarda los cambios.
• Sube o mueve la carpeta generador-qr con sus archivos al servidor.
• Para iniciar el generador solo carga en un navegador web: http://servidor/generador-qr/index.php



Código completo con formulario para crear códigos QR


Más fácil aun y más completa es la siguiente opción.
El siguiente código lo hemos empleado en nuestro sitio durante mucho tiempo.
Incluye un formulario, el código para impedir la inyección de códigos SQL en la entrada y una imagen de verificación para impedir la validación automática.
✓ En la primera y segunda línea del código se hace referencia a la carpeta de nombre "temp" que se debe crear para albergar los archivos temporales.
✓ Se hace referencia al archivo "phpqrcode.php"
✓ Se hace referencia al archivo "image.php" que crea la imagen de verificación, el código para crearlo está más abajo.
<?php    
    $PNG_TEMP_DIR = dirname(__FILE__).DIRECTORY_SEPARATOR.'../temp'.DIRECTORY_SEPARATOR;
    $PNG_WEB_DIR = '../test/qr/temp/';   
    include "phpqrcode.php"; 
    if (!file_exists($PNG_TEMP_DIR))
        mkdir($PNG_TEMP_DIR);    
    $filename = $PNG_TEMP_DIR.'test.png';

    $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);

    if (isset($_REQUEST['data'])) { 

        if (trim($_REQUEST['data']) == '')
            die('No hay datos! <a href="?">Volver</a>');            

        $filename = $PNG_TEMP_DIR.'test'.md5($_REQUEST['data'].'|'.$errorCorrectionLevel.'|'.$matrixPointSize).'.png';        
    }     
    echo '<img src="'.$PNG_WEB_DIR.basename($filename).'" alt="Imagen con el código QR generado"><br><br>';  

    echo '<form action="" method="post"><div>		
Introduce los datos a codificar:<br><textarea rows="4" cols="58" class="ent" name="data">'.(isset($_REQUEST['data'])?htmlspecialchars($_REQUEST['data']):' ').'</textarea><br>		
        ECC:&nbsp;<select class="campos" name="level">
            <option value="L"'.(($errorCorrectionLevel=='L')?' selected':'').'>L - menor</option>
            <option value="M"'.(($errorCorrectionLevel=='M')?' selected':'').'>M</option>
            <option value="Q"'.(($errorCorrectionLevel=='Q')?' selected':'').'>Q</option>
            <option value="H"'.(($errorCorrectionLevel=='H')?' selected':'').'>H - el mejor</option>
        </select>&nbsp;
        Tamaño de la imagen:&nbsp;<select class="campos" name="size">';
        
    for($i=1;$i<=10;$i++)
        echo '<option value="'.$i.'"'.(($matrixPointSize==$i)?' selected':'').'>'.$i.'</option>';
        
    echo '</select><br>
	Introduce los caracteres que ves en la imagen<br>
	    <img style="margin-top:4px;" alt="Numeros aleatorios" src="../image.php">  
        <input class="campos" type="text" name="num"><br>
        <input class="campos" type="submit" value="GENERAR"></div>
		</form><br>';
 session_start(); 
$_REQUEST = (get_magic_quotes_gpc() ? array_map('stripslashes', $_REQUEST) : $_REQUEST); //satinizar
if($_SESSION['img_number'] != $_POST['num']){ 
  echo'<div style="color:red;">Los caracteres no se corresponden.<br> 
 Trate de nuevo por favor</div>'; 
}else{ 	
QRcode::png($_REQUEST['data'], $filename, $errorCorrectionLevel, $matrixPointSize, 2); 
}         
?> 
Copia el código anterior y pégalo en el lugar de la página donde debe mostrarse el formulario.
La página debe poseer la extensión .PHP



Código para crear el archivo en PHP que crea la imagen de verificación


<?php 
header("Content-type: image/png"); 
$string = "abcdefghijklmnopqrstuvwxyz0123456789"; 
for($i=0;$i<5;$i++){ 
    $pos = rand(0,36); 
    $str .= $string{$pos}; 
} 

$img_handle = ImageCreate (60, 22) or die ("Es imposible crear la imagen"); 
//Image size (x,y) 
$back_color = ImageColorAllocate($img_handle,102,102,153); 
//Background color RBG 
$txt_color = ImageColorAllocate($img_handle,255,255,255); 
//Text Color RBG 
ImageString($img_handle, 31, 5, 0, $str, $txt_color); 
Imagepng($img_handle); 

session_start(); 
$_SESSION['img_number'] = $str; 
?>  
Copia el código anterior, pégalo en un archivo de texto y renómbralo a: "image.php"
Mostramos los códigos en esta página usando el tema Desert de Prettify, un proyecto para resaltar el código en páginas web, disponible gratis en Github.
Lee más información detallada: Crear snipetts adaptables para mostrar código fuente en las páginas



Descargar todos los archivos del generador


Más fácil aun es descargar todos los archivos necesarios, incluyendo el formulario, el archivo "phpqrcode.php" y el "image.php".
Usa el siguiente enlace.

Crear un generador de códigos QR en Javascript


En otro artículo de nuestro sitio puedes leer como hacer un formulario para crear los códigos empleando Javascript.
En este caso funciona perfectamente offline sin conexión a internet ya que JavaScript se ejecuta en el navegador web.
Lee como hacerlo y descarga gratis los archivos necesarios.
Como crear un generador de QR code en Javascript que funciona offline

Páginas relacionadas



Comparte esta página




Sígueme en las redes sociales


Sígueme en Google Plus Sígueme en Facebook Sígueme en Twitter Sígueme en Pinterest





 
Inicio | Mapa del sitio | Sobre mí | RSS | Buscar