Foros del Web » Programando para Internet » PHP »

Generar Código de verificación con FPDF y PHP

Estas en el tema de Generar Código de verificación con FPDF y PHP en el foro de PHP en Foros del Web. Estoy realizando un proyecto de una organización técnica, en donde una persona al ser aprobado y a la vez que se haya cerrado el curso ...
  #1 (permalink)  
Antiguo 23/09/2015, 22:22
 
Fecha de Ingreso: septiembre-2015
Mensajes: 2
Antigüedad: 8 años, 7 meses
Puntos: 0
Pregunta Generar Código de verificación con FPDF y PHP

Estoy realizando un proyecto de una organización técnica, en donde una persona al ser aprobado y a la vez que se haya cerrado el curso puede optar por su certificacion, para el el certificado utilicé FPDF , php y base de datos mysql, mi duda es como puedo insertar un código de verificación aleatorio sin que se repita , que se muestre en el certificado y que se guarde en la base de datos???, alguien me podría dar una idea por favor...

Código PHP:
//resultcertificado.php

<?php

// Constantes conexión con la base de datos
define("server"'localhost');
define("user"'root');
define("pass"'');
define("mainDataBase"'otec');

// Variable que indica el status de la conexión a la base de datos
$errorDbConexion false;


// Función para extraer el listado de usuarios
function rCert($linkDB,$cliente){

    
$statusTipo = array("Activo" => "btn-success",
                        
"Suspendido" => "btn-warning");

    
$salida '';

    
$consulta $linkDB -> query("SELECT modulo.mo_cod, modulo.mo_nombre, certificado.cer_emision, certificado.cer_exp, certificado.cer_intentos FROM certificado,modulo WHERE certificado.mo_cod = modulo.mo_cod AND  certificado.cl_id = '$cliente' AND modulo.mo_estado = 'Cerrado'");
    
//AND modulo.mo_estado = 'Cerrado'


    
if($consulta -> num_rows != 0){
        
$n 1;
        
// convertimos el objeto
    
echo   "<div class='panel panel-success'>
                <div class='panel-heading'>
                     <h3 class='panel-title'><i class='fa fa-eye-slash'></i><b>&nbsp; Estado Actual</b></h3>
                </div>
                <div class='panel-body'>
                    <div class='row'>
                        <div class='col-md-12'>
                            <div class='form-group'>
                                <div class='col-sm-2 col-sm-offset-5 col-xs-4 col-xs-offset-4'>
                                    <i class='fa fa-check-circle-o fa-5x'></i>
                                </div>
                                <div class='col-sm-4 col-sm-offset-4 col-xs-12'>
                                    <h3 align='center'>Disponible</h3>
                                </div>
                            </div>
                            
                        </div>
                    </div>
                </div>
            </div>" 
;
    echo   
"<div class='panel panel-success'>
                <div class='panel-heading'>
                    <h3 class='panel-title'><i class='fa fa-folder-open-o'></i><b>&nbsp; Detalle</b></h3>
                </div>
                <div class='panel-body'>
                    <div class='row'>
                        <div class='col-md-12'>
                               <div class='table-responsive'>
                                <table class='table table-hover table-striped table-bordered'>
                                    <thead> 
                                        <tr>
                                            <th>#</th>
                                            <th>Nombre</th>
                                            <th>Fecha Emision</th>
                                            <th>Fecha Expiracion</th>
                                            <th>Accción</th>
                                        </tr>
                                    </thead>
                                    <tbody> "
;

        while(
$listadoOK $consulta -> fetch_assoc())
        { 
                echo 
'<tr>';
                    echo 
'<td>'.$n.'</td>';
                    echo 
'<td>Certificacion en '.$listadoOK['mo_nombre'].'</td>';
                    echo 
'<td>'.$listadoOK['cer_emision'].'</td>';
                    echo 
'<td>'.$listadoOK['cer_exp'].'</td>';
                    echo 
'<td><a class = "btn btn-warning" href = "certificado/certificado.php?cliente='.$cliente.'&modulo='.$listadoOK['mo_cod'].'" target = "_blank">Generar</a></td>';
                echo 
'<tr>';
            ;
            
$n++;
        }
    echo   
"                        </tbody>
                                </table>
                            </div>

                        </div>
                    </div>
                </div>
            </div>"
;

    }
    else{
    echo   
"<div class='panel panel-success'>
                <div class='panel-heading'>
                    <h3 class='panel-title'><i class='fa fa-eye-slash'></i></i><b>&nbsp; Estado Actual</b></h3>
                </div>
                <div class='panel-body'>
                    <div class='row'>
                        <div class='col-md-12'>
                            <div class='form-group'>
                                <div class='col-sm-2 col-sm-offset-5 col-xs-4 col-xs-offset-4'>
                                    <i class='fa fa-refresh fa-spin fa-5x'></i>
                                </div>
                                <div class='col-sm-4 col-sm-offset-4 col-xs-12'>
                                    <h3 align='center'>En Espera</h3>
                                </div>
                                <div class='col-sm-10 col-sm-offset-1'
                                    <p align='center'>Actualmente no disponible, se requiere el cierre académico</p>
                                </div>
                            </div>

                        </div>
                    </div>
                </div>
            </div>"
;
    }

}


// Verificar constantes para conexión al servidor
if(defined('server') && defined('user') && defined('pass') && defined('mainDataBase'))
{
    
// Conexión con la base de datos
    
    
$mysqli = new mysqli(serveruserpassmainDataBase);
    
    
// Verificamos si hay error al conectar
    
if (mysqli_connect_error()) {
        
$errorDbConexion true;
    }

    
// Evitando problemas con acentos
    
$mysqli -> query('SET NAMES "utf8"');
}
Código PHP:
//certificado.php , estructura de pdf

<?php
session_start
();
if (!isset(
$_SESSION['id'])) {
    
session_unset();
    
session_destroy();
    
header("Location:../../login.php");
}
$cliente $_GET['cliente'];
$modulo $_GET['modulo'];



if (
$_SESSION['id']==$cliente && $_SESSION['id_modulo']==$modulo) {
$cl $cliente;
include (
'../../../funciones/conexion.php');
$sql "UPDATE certificado SET cer_intentos = cer_intentos+1 WHERE cl_id = '$cl' AND mo_cod = '$modulo' ";
$rs mysql_query($sql,$con);
$sql1 "SELECT evaluacion_aplicada.ea_promedio, modulo.mo_nombre FROM evaluacion_aplicada, modulo, evaluacion_creada WHERE evaluacion_creada.ec_id = evaluacion_aplicada.ec_id AND evaluacion_creada.mo_cod = modulo.mo_cod AND evaluacion_aplicada.cl_id = '$cl'";
$rs1 mysql_query($sql1,$con);
if (
$row mysql_fetch_array($rs1)) {
    
$promedio $row['ea_promedio'];
    
$modulo $row['mo_nombre'];
}
$rut $_SESSION['rut'];
$nomc $_SESSION['nomc'];
}else{
header('Location:../estudiante.php');
}

require(
'fpdf.php');


class 
PDF extends FPDF{

    function 
Header(){

        
//logo
        
$this->Image('color.png',78,15,60);
        
//ARIAL BOLD 15
        
$this->SetFont('Arial','B',20);
        
//Movernos a la Derecha
        
$this->Cell(80);
        
//titulo
        
$this->Cell(30,100,'CERTIFICACIÓN ROA-METALES',0,0,'C');
        
//Salto de Linea
        
$this->Ln(20);
        
//subtitulo
        
$this->SetFont('Arial','B',14);
        
//Movernos a la Derecha
        
$this->Cell(80);
        
//titulo
        
$this->Cell(30,80,utf8_decode('Modulo Soldadura TIC'),0,0,'C');
        
//Salto de Linea
        
$this->Ln(20);
    }
    function 
Footer(){
        
//posicion a 1,5 cm del final
        
$this->SetY(-15);
        
//Arial Italic 8
        
$this->SetFont('Arial','B',8);
        
//Numero de Pagina
        
$this->Rect(7,283,196,7);
        
$this->Cell(170,10,'www.roametales.cl',0,0,'C');
        
$this->SetFont('Arial','I',8);
        
$this->Cell(20,10,'Pagina '.$this->PageNo().'de 1',0,0,'');
    }
}

$pdf = new PDF();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->Rect(7,7,196,283);
$pdf->SetFont('Arial','',12);
$pdf-> ln(50);
$pdf->Write(6,'El  Ministerio  de Educación en  común  acuerdo  con  la  empresa certificadora  otorga  el presente  certificado  a  don(ña)  '.$nomc.', RUN  '.$rut.', quien ha cursado  el  modulo  de  '.$modulo.',  año  2015, en  el  establecimiento  certificador  de  capacidades conocimientos  y  habilidades  OTEC  ROA-METALES,  comuna  de  RANCAGUA,  Región Del Lib. B. O Higgins, obteniendo los siguientes resultados:');
$pdf-> ln(10);
$pdf->Cell(43,6,'Promedio General :',0);
$pdf->SetFont('Arial','B',12);
$pdf->Cell(10,6,''.$promedio,0);
$pdf-> ln(7);
$pdf->SetFont('Arial','',12);
$pdf->Cell(43,6,'Situacion Final :',0);
$pdf->SetFont('Arial','B',12);
$pdf->Cell(75,6,'Es Certificado En '.$modulo.'',0);
$pdf-> ln(70);
$pdf->Image('timbre.png',60,180,100);
$pdf->SetFont('Arial','',12);
$pdf->Cell(0,6,'Jessica Padilla U.',0,0,'C');
$pdf-> ln();
$pdf->Cell(0,6,'Coordinadora',0,0,'C');
$pdf-> ln();
$pdf->Cell(0,6,'Unidad Nacional de Registro Curricular',0,0,'C');
$pdf-> ln(12);
$pdf->SetFont('Arial','B',10);
$pdf->Cell(0,5,'Codigo de Verificacion:',0,0,'R');
$pdf-> ln();
$pdf->Cell(0,5,'',0,0,'R');
$pdf-> ln(12);
$pdf->SetFont('Arial','',9);
$pdf->Cell(90,4,'',0);
$pdf->Cell(103,4,'La validez de este documento  está dada por su código de  verificación',0,0,'');
$pdf-> ln();
$pdf->Cell(90,4,'Fecha de Emisión: '.date('d-m-Y').'',0,0,'');
$pdf-> ln();
#Establecemos el margen inferior: 
$pdf->SetAutoPageBreak(true,5); 

// Segunda página

$pdf->SetFontSize(14);

$pdf->Output();
?>
  #2 (permalink)  
Antiguo 24/09/2015, 18:08
 
Fecha de Ingreso: febrero-2009
Mensajes: 8
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Generar Código de verificación con FPDF y PHP

Usa esta funcion
function serial()
{

$codigo = random_string('alnum', 10);
return $codigo;
}

Te genera el codigo unico, luego lo guaradas en tu tabla

aqui hay unos ejemplos: www.sistemasphp.com.ve
  #3 (permalink)  
Antiguo 24/09/2015, 19:11
 
Fecha de Ingreso: septiembre-2015
Mensajes: 2
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Generar Código de verificación con FPDF y PHP

Voy a probarlo muchas gracias C:

Etiquetas: fecha, fpdf, mysql, registro, select, sql, usuarios, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:52.