
Insertar Código de verificación a certificado con FPDF y PHP
Publicado por Gianni (1 intervención) el 24/09/2015 05:42:39
Estoy realizando un proyecto de una organización técnica , una vez que el alumno es aprobado y se cierra dicho curso optará por un certificado, estoy utilizando FPDF, PHP y base de datos mysql, mi pregunta es como poner un código de verificación aleatorio sin que se repita , que se muestre en el certificado y a la vez se guarde en la base de datos??. tengo dos archivos uno el resultcertificado.php el cual realiza la consulta de los datos y el otro certificado.php en donde se estructura el certificado. quizás pido mucho pero necesito al menos una idea por favor...
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
//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> 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> 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> 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(server, user, pass, mainDataBase);
// Verificamos si hay error al conectar
if (mysqli_connect_error()) {
$errorDbConexion = true;
}
// Evitando problemas con acentos
$mysqli -> query('SET NAMES "utf8"');
}
?>
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
109
110
111
112
113
114
115
//certificado.php
<?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();
?>
Valora esta pregunta


0