PHP - Insertar Código de verificación a certificado con FPDF y PHP

 
Vista:
Imágen de perfil de Gianni

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>&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(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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder