Está en la página 1de 16

Apuntes PHP. Autor código: Daniel Leyva Cortés.

 Página nº 1/16

APUNTES PHP

CÓDIGO DESARROLLADO POR DANIEL LEYVA CORTÉS

SUMARIO

EJEMPLO 1: ENVÍO DE DATOS MEDIANTE FORMULARIO...................1
EJEMPLO 2: RECOGIDA DE DATOS Y ENVÍO A UNA BASE DE DATOS........4

EJEMPLO 3: MÓDULO DE BASE DE DATOS..............................5

EJEMPLO 4: MÓDULO CAMBIA FORMATO FECHA AL FORMATO USADO EN 
MYSQL...................8

EJEMPLO 5: “FUNCIONES” EN PHP...................................8

EJEMPLO 6: AUTENTICACION DE USUARIOS, SESIONES Y PROPAGACIÓN DE 
SESIONES EN ENLACES.....10

EJEMPLO 7: GENERACIÓN DE PDFs EN TIEMPO DE  EJECUCIÓN..........12
Apuntes PHP. Autor código: Daniel Leyva Cortés. Página nº 2/16

EJEMPLO 1: ENVÍO DE DATOS MEDIANTE FORMULARIO

<html>
<head>
<title>REGISTRO DE USUARIOS</title>
<!­­ Ahora vendrán las definiciones de las funciones en JavaScript. Autor: 
Daniel Leyva Cortés ­­>
<SCRIPT LANGUAGE=JavaScript>

function validaEntrada(formulario)
{
 if (formulario.usuario.value == "")
 {/*No se ha rellenado el campo del nombre de usuario*/
        alert("Rellene el campo Nombre de usuario");
        formulario.usuario.focus();
 }
 else
        if ((formulario.clave.value == "")||(formulario.clave2.value == ""))
        {/*No se ha rellenado la clave*/
        alert("Rellene la clave del usuario");
        formulario.clave.focus();
        }
        else
                if (formulario.correo.value == "")
                {/*Falta dirección de correo electrónico*/
                        alert("Indique la dirección de correo electrónico");
                        formulario.correo.focus();
                }
                else
                        if ((formulario.correo.value.indexOf('@',0)==­1)||
                                (formulario.correo.value.indexOf('.',0)==­1))
                        {/*A la dirección de correo electrónico le falta o un 
punto o una arroba*/
                                alert("Dirección de correo incorrecta");
                                formulario.correo.focus();
                        }
        //              else
                        //Por qué no funciona el siguiente trozo de 
código??????????????????????????????
        //                              if 
(!(formulario.clave.value.equals(formulario.clave2.value)))
        //                              {/*No coinciden las claves*/
 //                                             alert("Las claves introducidas 
no coinciden");
        //                                      formulario.clave.focus();
        //                              }
                                        else
                                        {
                                        /*Se envía la información del 
formulario*/
                                                formulario.submit();
                                        }
 
}
</SCRIPT>
</head>

<body>
<table width="100%" border="0" bordercolor="#000000">
  <tr> 
Apuntes PHP. Autor código: Daniel Leyva Cortés. Página nº 3/16

    <td colspan="4"><div align="center"> 
        <h1>BIENVENIDOS AL PORTAL</h1>
        <hr>

      </div></td>
  </tr>
  <tr> 
    <td><div align="center"> 
        <h3><a href="subscribite.php">Subscr&iacute;bite</a></h3>
      </div></td>
    <td><div align="center"> 
        <h3><a href="acceso.html">Acceso miembros</a></h3>
      </div></td>

    <td><div align="center"> 
        <h3>Contactar</h3>
      </div></td>
    <td><div align="center"></div></td>
  </tr>
  <tr> 
    <td height="455" colspan="4"><h2>REGISTRO DE USUARIOS</h2>
      <form action="subscribite_procesa.php" method="post" 
name="formulario_registro" id="formulario_registro">
        <p><font color="#FF0000">*</font>Nombre usuario: 
          <input name="usuario" type="text" id="usuario" size="12" 
maxlength="12">

        </p>
        <p><font color="#FF0000">*</font>Clave de acceso: 
          <input name="clave" type="password" id="clave" size="40">
        </p>
        <p><font color="#FF0000">*</font>Repita clave de acceso: 
          <input name="clave2" type="password" id="clave2" size="40" 
maxlength="40">
        </p>
        <p><font color="#FF0000">*</font>Correo electr&oacute;nico: 
          <input name="correo" type="text" id="correo" size="40" maxlength="40">

        </p>
        <p> Nombre: 
          <input name="nombre" type="text" id="nombre" size="40" maxlength="40">
        </p>
        <p>Apellidos: 
          <input name="apellidos" type="text" id="apellidos" size="120" 
maxlength="120">
        </p>
        <p>Deseo recibir informaci&oacute;n, noticias de la p&aacute;gina: 
          <input name="informacion" type="checkbox" id="informacion" value="1" 
checked>

        </p>
        <p><font color="#009900">SOLAMENTE LOS CAMPOS REMARCADOS CON EL 
ASTERISCO 
          SON CAMPOS OBLIGATORIOS</font></p>
        <p><font color="#009900"> 
          <input name="button" type="button"  onclick="validaEntrada(this.form)" 
value="Enviar">
          <input name="Limpiar" type="reset" id="Limpiar" value="Limpiar">
          </font></p>
Apuntes PHP. Autor código: Daniel Leyva Cortés. Página nº 4/16

      </form>
</td>
  </tr>

</table>
<h2>&nbsp;</h2>
</body>
</html>

EJEMPLO 2: RECOGIDA DE DATOS Y ENVÍO A UNA BASE DE DATOS

<? 
include_once("modulo_base_datos.php"); 
include_once("modulo_cambia_formatos.php");
$nombre_tabla = "usuarios"; 
?>
<html>
<head>
<title>REGISTRO</title>
</head>
<body>
<? 
// Insertamos la información en la BD
//Se recoge la información
$nombre = $_POST['nombre'];
$apellidos = $_POST['apellidos'];
$correo = $_POST['correo'];
$clave = $_POST['clave'];
$usuario = $_POST['usuario'];
$informacion = $_POST['informacion'];
$fecha = date("d/m/Y");
$hora = date("H:i:s");
$fechaMysql = formatoFecha_Normal_MySQL($fecha);

//Conexión base de datos y SGBD
conectaBaseDatos();

//Primero hay que comprobar si existe el nombre de usuario
if (existeUsuario($usuario))
{

echo "<br><h1>Ya existe dicho usuario.</h1><br>"."<a 
href='subscribite.html'>Pulsa en el siguiente enlace e introduce otro nombre de 
usuario</a>";
}
else
{
//El usuario no existe por tanto se puede insertar en el banco de datos
//Ejecutar sentencia, para ello primero se prepara la misma
$sentencia = "INSERT $nombre_tabla (usuario, clave, correo, apellidos, 
nombre, informacion, fecha, hora) VALUES 

('$usuario','$clave','$correo','$apellidos','$nombre','$informacion','$fechaMysq
l','$hora')";
ejecutaSentencia($sentencia);
echo "<h1>Se ha dado de alta correctamente el usuario.</h1>"."<p><a 
href='acceso.html'>Pulsa sobre este enlace para ir a la p&aacute;gina de acceso 
a clientes</a></p>";
}
Apuntes PHP. Autor código: Daniel Leyva Cortés. Página nº 5/16

EJEMPLO 3: MÓDULO DE BASE DE DATOS

<? 
/*Librería encargada de realizar funciones para la gestión de una base de datos
Autor:Daniel Leyva Cortés
*/

$nombre_base_datos = "bdportal";
$nombre_usuario = "PON TU NOMBRE DE USUARIO DE ACCESO A LA BD";
$clave_usuario = "PON TU CONTRASEÑA DE ACCESO A LA BD";
$maquina = "localhost";
$conexion = null;

function conectaBaseDatos() 

//Para usar la variable global que es común para todo el módulo
 global $conexion,$maquina,$nombre_base_datos; 
 /*Se conecta al sistema gestor de base de datos*/
 $conexion=mysql_connect($maquina, $nombre_usuario, $clave_usuario); 
 
/*Se selecciona la base de datos*/
mysql_select_db($nombre_base_datos,$conexion);

function ejecutaSentencia($sentencia)
{

//Para usar la variable global que es común para todo el módulo
 global $conexion; 
/*Se crea un array donde se van a almacenar los datos*/
$datos = array();
 
mysql_query($sentencia,$conexion); 

if (mysql_errno($conexion)!=0)
{
/*Se ha producido un error al ejecutar la sentencia.
Se informa de dicho error
Recuerda que el operador de concatenación de PHP es el punto*/
echo "Error: ".mysql_errno($conexion).", descripción: 
".mysql_error($conexion);
}

/*La siguiente función ejecuta una consulta, y por tanto debe devolver el 
resultado*/
function ejecutaConsulta($sentencia)
{

//Para usar la variable global que es común para todo el módulo
 global $conexion; 
 
$resultado = mysql_query($sentencia,$conexion); 
Apuntes PHP. Autor código: Daniel Leyva Cortés. Página nº 6/16

/*Se crea un array donde se van a almacenar los datos*/
$datos = array();

if (mysql_errno($conexion)!=0)
{
/*Se ha producido un error al ejecutar la sentencia.
Se informa de dicho error
Recuerda que el operador de concatenación de PHP es el punto*/
echo "Error: ".mysql_errno($conexion).", descripción: 
".mysql_error($conexion);
}

/*Se guarda la información en una matriz de resultados, 
por ejemplo, en la posición cero estaría la primera fila de la tabla 
devuelta,
en la posición uno la segunda fila, etc...*/
for($i=0;$fila=mysql_fetch_array($resultado);$i++)
$datos[$i] = $fila;

/*Se libera el recurso*/
mysql_free_result($resultado);
/*Se devuelve dicho array*/
return($datos);

/*La siguiente función ejecuta una consulta, y devuelve en su segundo argumento 
una matriz donde se almacenan todos los resultados*/
/*MUY IMPORTANTE:
PARA PASAR EN PHP DATOS POR REFERENCIA SE UTILIZA EL CARACTER ANDPERSAM &, TAN 
SENCILLO COMO ESO*/
function ejecutaConsultaArray($sentencia, &$datos)
{

//Para usar la variable global que es común para todo el módulo
 global $conexion; 
 
$resultado = mysql_query($sentencia,$conexion); 
/*Se crea un array donde se van a almacenar los datos*/
$datos = array();

if (mysql_errno($conexion)!=0)
{
/*Se ha producido un error al ejecutar la sentencia.
Se informa de dicho error
Recuerda que el operador de concatenación de PHP es el punto*/
echo "Error: ".mysql_errno($conexion).", descripción: 
".mysql_error($conexion);
}

/*Se guarda la información en una matriz de resultados, 
por ejemplo, en la posición cero estaría la primera fila de la tabla 
devuelta,
en la posición uno la segunda fila, etc...*/
for($i=0;$fila=mysql_fetch_array($resultado);$i++)
$datos[$i] = $fila;

/*Se libera el recurso*/
mysql_free_result($resultado);
Apuntes PHP. Autor código: Daniel Leyva Cortés. Página nº 7/16

/*La siguiente función se encarga de comprobar si ya existe dicho usuario*/
function existeUsuario($nombre_usuario)
{
$sentencia = "SELECT `usuario` FROM `usuarios` WHERE usuario='$nombre_usuario'";

//Para usar la variable global que es común para todo el módulo
 global $conexion; 

$resultado = mysql_query($sentencia,$conexion); 

if (mysql_errno($conexion)!=0)
{
/*Se ha producido un error al ejecutar la sentencia.
Se informa de dicho error
Recuerda que el operador de concatenación de PHP es el punto*/
echo "Error: ".mysql_errno($conexion).", descripción: 
".mysql_error($conexion);
}

return( (mysql_num_rows($resultado)) != 0);

/*La siguiente función se encarga de comprobar si ya existe dicho usuario*/
function claveUsuario($nombre_usuario,$clave_usuario)
{
$sentencia = "SELECT `usuario` FROM `usuarios` WHERE usuario='$nombre_usuario'". 
" AND clave='$clave_usuario'";

//Para usar la variable global que es común para todo el módulo
 global $conexion; 

$resultado = mysql_query($sentencia,$conexion); 

if (mysql_errno($conexion)!=0)
{
/*Se ha producido un error al ejecutar la sentencia.
Se informa de dicho error
Recuerda que el operador de concatenación de PHP es el punto*/
echo "Error: ".mysql_errno($conexion).", descripción: 
".mysql_error($conexion);
}

return( (mysql_num_rows($resultado)) != 0);

function desconectaBaseDatos()
{
mysql_close();
}

 
 ?>
Apuntes PHP. Autor código: Daniel Leyva Cortés. Página nº 8/16

EJEMPLO 4: MÓDULO CAMBIA FORMATO FECHA AL FORMATO USADO EN MYSQL

<? 
/*Librería dotada de funciones de cambios de formato
Autor:Daniel Leyva Cortés
*/

/*La siguiente función se encarga de pasar del formato de fecha
dd/mm/aaaa al formato de fecha usado en MYSQL 
aaaa/mm/dd. MySql también admite como separador el carácter / barra inclinada*/
function formatoFecha_Normal_MySQL($fechaOriginal)
{

/*La función "strok" divide la cadena de forma sucesiva según el carácter de 
separación que 
indiquemos*/

$dias = strtok ($fechaOriginal,"/");

 /*A partir de la primera llamada, en las siguientes no hace falta ni siquiera 
especificar cuál es 
  la cadena, porque queda almacenada en memoria*/
$meses =strtok ("/");

$anyos =strtok ("/");

$fechaMySQL = $anyos."/".$meses."/".$dias;

/*Se devuelve el valor calculado*/
return($fechaMySQL);
}

?>

EJEMPLO 5: “FUNCIONES” EN PHP

<!­­Funciones creadas por Daniel Leyva Cortés
para desarrollo de cabeceras, etc... //­­>

<!­­ Función que genera la arquitectura de la página principal//­­>
<?
function generaPaginaPrincipal()
{
echo '<html>
<head>
<title>BIENVENIDOS AL PORTAL</title>
<meta http­equiv="Content­Type" content="text/html; charset=iso­8859­1">
</head>

<body>
<table width="100%" border="0" bordercolor="#000000">
  <tr> 
<td colspan="4"><div align="center"> 
<h1>BIENVENIDOS AL PORTAL</h1>
<hr>
  </div></td>
  </tr>
  <tr> 
<td><div align="center"> 
Apuntes PHP. Autor código: Daniel Leyva Cortés. Página nº 9/16

<h3><a href="subscribite.html">Subscr&iacute;bite</a></h3>
  </div></td>
<td><div align="center"> 
<h3><a href="acceso.html">Acceso miembros</a></h3>
  </div></td>
<td><div align="center"> 
<h3>Contactar</h3>
  </div></td>
<td><div align="center"></div></td>
  </tr>
  <tr> 
<td height="455" colspan="4">&nbsp;</td>
  </tr>
</table>
<p>&nbsp;</p>
</body>
</html>';
}

function generaPaginaAccesoPrincipioCabecera($titulo)
{
echo '<html>
<head>
<title>'.$titulo.'</title>
<meta http­equiv="Content­Type" content="text/html; charset=iso­8859­1">';
}
function generaPaginaAccesoDespuesCabecera($altura)
{
echo '</head>
<body>
<table width="100%" border="0" bordercolor="#000000">
  <tr> 
<td colspan="4"><div align="center"> 
<h1>BIENVENIDOS AL PORTAL</h1>
<hr>
  </div></td>
  </tr>
  <tr> 
<td><div align="center"> 
<h3><a href="subscribite.html">Subscr&iacute;bite</a></h3>
  </div></td>
<td><div align="center"> 
<h3><a href="acceso.html">Acceso miembros</a></h3>
  </div></td>
<td><div align="center"> 
<h3>Contactar</h3>
  </div></td>
<td><div align="center"></div></td>
  </tr>
  <tr> 
<td height=$altura colspan="4">';
}

function generaPaginaAccesoDespuesCabeceraUsuarios($altura)
{
$nombre_sesion = session_name();
$numero_sesion =session_id();

echo '</head>
Apuntes PHP. Autor código: Daniel Leyva Cortés. Página nº 10/16

<body>

<table width="100%" border="0" bordercolor="#000000">
  <tr> 
<td colspan="4"><div align="center"> 
<h1>BIENVENIDOS AL PORTAL</h1>
<hr>
  </div></td>
  </tr>
  <tr> 
<td><div align="center"> 
<h3><a href="foro.php?'.$nombre_sesion.'='.$numero_sesion.'"> 
Foro</a></h3>
  </div></td>
<td><div align="center"> 

  </div></td>
<td><div align="center"> 

  </div></td>
<td><div align="center"></div></td>
  </tr>
  <tr> 
<td height=$altura colspan="4">';
}

function generaPaginaPieAcceso()
{
echo '</td>
  </tr>
</table>
<p>&nbsp;</p>
</body>
</html>';
}

?>

EJEMPLO 6: AUTENTICACION DE USUARIOS, SESIONES Y PROPAGACIÓN DE 
SESIONES EN ENLACES
<? 
session_start();
//Se ha iniciado una sesión
include_once("modulo_base_datos.php"); 
include_once("modulo_cambia_formatos.php");
include_once("mod_genera_paginas.php");
$nombre_tabla = "usuarios";
?>

<? 
if (isset($_SESSION['usuario']))
{
/*Ya se ha comenzado la sesión!!!!!*/

generaPaginaAccesoPrincipioCabecera("ZONA USUARIOS");
generaPaginaAccesoDespuesCabeceraUsuarios(200);
Apuntes PHP. Autor código: Daniel Leyva Cortés. Página nº 11/16

/*Ahora habrá que saludar al usuario, recuperando el valor de la variable 
de sesión*/
echo "<h2><strong> Bienvenido <font 
color='#0000FF'>".$_SESSION['usuario']."</font> a la zona de usuarios 
</strong></h2>";

generaPaginaPieAcceso();

}
else
{

/*Se recoge la información*/
$usuario = $_POST['usuario'];
$clave = $_POST['clave'];

/*Conexión base de datos y SGBD*/
conectaBaseDatos();

/*Primero hay que comprobar si existe el nombre de usuario*/
if (existeUsuario($usuario))
{
/*El usuario existe, queda comprobar si la clave coincide*/
if (claveUsuario($usuario,$clave))
{
/*Tanto el nombre de usuario como la contraseña son 
correctos!!!!!*/
/*Acceso a zona restringida, se anotará el nombre de usuario 
para la sesión, así como su correo electrónico, etc...
las cuales serían las variables de la sesión*/

$sentencia = "SELECT * FROM `usuarios` WHERE 
usuario='$usuario'". " AND clave='$clave'";

ejecutaConsultaArray($sentencia, $datos);

/*Los campos recogidos serán los siguientes: 
usuario,clave,correo,nombre,apellidos,informacion,fecha,hora*/
/*Vamos a visualizarlos todos, habrá que indicar primero el 
número de fila de la matriz que queremos recuperar
en este caso la fila 0 sería la única que queremos recuperar, 
y a continuación el nombre del campo:
echo $datos[0]['usuario'];
echo $datos[0]['clave'];
echo $datos[0]['correo'];
echo $datos[0]['nombre'];
echo $datos[0]['apellidos'];
echo $datos[0]['informacion'];
echo $datos[0]['fecha'];
echo $datos[0]['hora'];
*/
/*Anotamos unas variables de sesión para utilizarlas 
posteriormente*/
$_SESSION['usuario'] = $datos[0]['usuario'];
/* $_SESSION['nombre'] =$datos[0]['nombre'];
$_SESSION['apellidos'] = $datos[0]['apellidos'];*/

generaPaginaPrincipal();
Apuntes PHP. Autor código: Daniel Leyva Cortés. Página nº 12/16

}
 else
 {
/*El usuario no existe, pero para no dar información
se le dice al usuario que el nombre o la clave no son correctos*/

   echo "<h1>El usuario y/o clave no son correctos</h1>"."<p><a 
href='acceso.html'>Pulsa sobre este enlace para volver a introducir el 
usuario</a> </p>";
}
}  
else
{
/*El usuario no existe, pero para no dar información
se le dice al usuario que el nombre o la clave no son correctos*/

   echo "<h1>El usuario y/o clave no son correctos</h1>"."<p><a 
href='acceso.html'>Pulsa sobre este enlace para volver a introducir el 
usuario</a> </p>";

/*Desconexión de base de datos*/
desconectaBaseDatos();
}
?>

EJEMPLO 7: GENERACIÓN DE PDFs EN TIEMPO DE EJECUCIÓN
<!­­ 
Se incluye el módulo que realiza funciones de base de datos
 //­­>
<? 
include_once("modulo_base_datos.php"); 
include_once("modulo_cambia_formatos.php");
$nombre_tabla = "solicitud";

?>
<html>
<head>
<title>ERISOFT</title>

</script>

</head>

<body>
<p><img src="../images/erisoft_fondo_alargado.jpg" width="511" height="64"></p>

<BR>

<p><strong>SE RECOMIENDA IMPRIMIR O GUARDAR EL DOCUMENTO DE SOLICITUD PARA 
FUTURAS 
  REFERENCIAS</strong></p>
  
  <BR>

<?
/*Las siguientes líneas se han usado únicamente para depurar código
<p><strong>Nombre:</strong><? echo $_POST['nombre']?></p>
Apuntes PHP. Autor código: Daniel Leyva Cortés. Página nº 13/16

<p><strong>Apellidos:</strong><? echo $_POST['apellidos']?></p>
<p><strong>E­mail:</strong><? echo $_POST['email']?></p>
<p><strong>Requisitos funcionales:</strong><? echo 
$_POST['requisitos_funcionales']?></p>
<p><strong>Requisitos no funcionales:</strong><? echo 
$_POST['requisitos_no_funcionales']?></p>
<p><strong>Hora:</strong><? echo date("H:i:s")?></p>
<p><strong>Fecha:</strong><? echo date("d/m/Y")?></p>
<p>*/ ?> 
  <? 
/* Insertamos la información en la BD
*/

/*Se recoge la información*/
$nombre = $_POST['nombre'];
$apellidos = $_POST['apellidos'];
$email = $_POST['email'];
$requisitos_funcionales = $_POST['requisitos_funcionales'];
$requisitos_no_funcionales = $_POST['requisitos_no_funcionales'];
$fecha = date("d/m/Y");
$hora = date("H:i:s");

$fechaMysql = formatoFecha_Normal_MySQL($fecha);

/*Conexión base de datos y SGBD*/
conectaBaseDatos();

/*Ejecutar sentencia, para ello primero se prepara la misma*/

$sentencia = "INSERT $nombre_tabla (nombre, apellidos, email, 
requisitos_funcionales, requisitos_no_funcionales, fecha, hora) VALUES 
('$nombre','$apellidos','$email','$requisitos_funcionales','$requisitos_no_funci
onales','$fechaMysql','$hora')";

ejecutaSentencia($sentencia);

/*Hay que recuperar el número de solicitud*/
$sentencia = "SELECT numero FROM `solicitud` WHERE fecha='".$fechaMysql."' AND 
hora='".$hora."' AND nombre='".$nombre."' AND apellidos='".$apellidos."'";

$resultado = ejecutaConsulta($sentencia);
/*Primero se recupera la fila y después el valor*/
$fila = mysql_fetch_array($resultado); 
$numero_solicitud=$fila['numero']; 

echo "<br>"."Su número de solicitud es ".$numero_solicitud."<br>";

/*Desconexión de base de datos*/
desconectaBaseDatos();
Apuntes PHP. Autor código: Daniel Leyva Cortés. Página nº 14/16

?>
  <?

/*Ahora hay que generar el documento PDF con los datos recibidos como 
realimentación al usuario y por si quiere
imprimir la solicitud*/

/*El nombre de archivo constará de una concatenación de campos: tiempo en 
segundos y número de solicitud*/

/*La función "time" devuelve la hora actual en segundos expresada en tiempo 
Unix*/

$nombre_fichero = "pdfs//Solicitud_".time()."_".$numero_solicitud.".pdf";

$fichero_pdf = fopen($nombre_fichero, "w");
//Siguiente línea usada para depurar...
//echo "Generando el archivo '$nombre_fichero'<br>";
$contenido_pdf = pdf_open($fichero_pdf);
#dimensionamos la página con formato A­4
pdf_begin_page($contenido_pdf, 595, 842);

//Se inserta la imagen del logotipo
$logotipo = pdf_open_jpeg($contenido_pdf, 
"../images/erisoft_fondo_alargado.jpg");
//Se recuperan el valor de altura y anchura de la imagen cargada
$anchura_logotipo = pdf_get_value($contenido_pdf, "imagewidth", $logotipo);
$altura_logotipo = pdf_get_value($contenido_pdf, "imageheight",$logotipo);

/*Se pasan como argumentos:
1) Descriptor del pdf
2) Descriptor de la imagen cargada
3) Las coordenadas x,y donde se colocará la imagen (1 sería el tamaño original) 
*/
/*La imagen se va a colocar en el borde superior del documento y centrada*/

pdf_place_image($contenido_pdf, $logotipo, (595­$anchura_logotipo)/2, 842­
$altura_logotipo, 1.0);

pdf_close_image ($contenido_pdf, $logotipo);
//Fin de inserción de imagen***************************************
/*Ahora se inserta el texto del documento*/

/*Se estable el tipo de fuente
1) Descriptor documento
2) Tipo de letra
3) Tamaño de la letra
4) La opción host es la que se suele usar por defecto
5) Puede tomar valor 0 ó 1*/

pdf_set_font($contenido_pdf, "Times­Italic", 14,"host", 0 );
/*Se indica el color de la letra RED­GREEN­BLUE*/

pdf_setcolor($contenido_pdf,"fill","rgb", 0, 0, 0);
/*Se imprime el texto*/
$cadena_a_imprimir = "Solicitud nº: ".$numero_solicitud;
pdf_show_xy($contenido_pdf,$cadena_a_imprimir, 60,842­$altura_logotipo­40);
$cadena_a_imprimir = "Fecha: ".$fecha;
pdf_show_xy($contenido_pdf,$cadena_a_imprimir, 60,842­$altura_logotipo­60);
$cadena_a_imprimir = "Hora: ".$hora;
Apuntes PHP. Autor código: Daniel Leyva Cortés. Página nº 15/16

pdf_show_xy($contenido_pdf,$cadena_a_imprimir, 60,842­$altura_logotipo­80);
$cadena_a_imprimir = "Nombre: ".$nombre;
pdf_show_xy($contenido_pdf,$cadena_a_imprimir, 60,842­$altura_logotipo­100);
$cadena_a_imprimir = "Apellidos: ".$nombre;
pdf_show_xy($contenido_pdf,$cadena_a_imprimir, 60,842­$altura_logotipo­120);
$cadena_a_imprimir = "E­mail: ".$email;
pdf_show_xy($contenido_pdf,$cadena_a_imprimir, 60,842­$altura_logotipo­140);

pdf_set_font($contenido_pdf, "Times­Italic", 14,"host", 0 );
$cadena_a_imprimir = "Requisitos Funcionales: ";
$ancho_cadena=pdf_stringwidth($contenido_pdf, $cadena_a_imprimir);
pdf_show_xy($contenido_pdf,$cadena_a_imprimir,(595­$ancho_cadena)/2,842­
$altura_logotipo­180);

pdf_set_font($contenido_pdf, "Times­Italic", 12,"host", 0 );
$cadena_a_imprimir = $requisitos_funcionales;
/*Ahora hay que escribir un texto justificado, por tanto habrá que usar la 
función "pdf_show_boxed", en la
cual se le pasa como argumento "justify" para indicar texto justificado.
El inconveniente de esta función es que hay que pasarle la altura que va a 
ocupar el texto, cómo
esta misma función te devuelve el valor real que ocupa podemos recalcularlo*/
/*Se obtiene el valor de interlineado*/
$alto = pdf_get_value($contenido_pdf, "leading");
# restauramos las variables, alto y sumador 
# con el valor de la nueva interlinea
$acumulador = $alto;
#recalculamos la altura con un bucle similar al anterior
while(pdf_show_boxed($contenido_pdf, $cadena_a_imprimir, 60, 842­
$altura_logotipo­200, 595, $alto, "justify",'blind')!=0){
$alto+=$acumulador;
}
pdf_show_boxed($contenido_pdf, $cadena_a_imprimir , 60, 842­$altura_logotipo­
200­$alto, 595, $alto, "justify");

/*Ahora se hace exactamente lo mismo pero para el otro campo*/
$alto_anterior = $alto;
pdf_set_font($contenido_pdf, "Times­Italic", 14,"host", 0 );
$cadena_a_imprimir = "Requisitos No Funcionales: ";
$ancho_cadena=pdf_stringwidth($contenido_pdf, $cadena_a_imprimir);
pdf_show_xy($contenido_pdf,$cadena_a_imprimir,(595­$ancho_cadena)/2,842­
$altura_logotipo­240­$alto_anterior);

pdf_set_font($contenido_pdf, "Times­Italic", 12,"host", 0 );
$cadena_a_imprimir = $requisitos_no_funcionales;
$alto = pdf_get_value($contenido_pdf, "leading");
$acumulador = $alto;
while(pdf_show_boxed($contenido_pdf, $cadena_a_imprimir, 60, 842­
$altura_logotipo­260, 595, $alto, "justify",'blind')!=0){
$alto+=$acumulador;
}
pdf_show_boxed($contenido_pdf, $cadena_a_imprimir , 60, 842­$altura_logotipo­
260­$alto_anterior­$alto, 595, $alto, "justify");

pdf_end_page($contenido_pdf);
pdf_close($contenido_pdf);

/*Rutina para abrir una ventana nueva con el PDF creado*/
Apuntes PHP. Autor código: Daniel Leyva Cortés. Página nº 16/16

echo "<br><A Href='$nombre_fichero'>En breves momentos se abrirá un documento 
con los datos del proyecto solicitado. Si tarda bastante en visualizarlo haga 
clic en este enlace...</a><br>";

/*Ahora se abrirá una nueva ventana con el PDF creado*/

echo "<script language='JavaScript' type='text/javascript'>"."\n"."<!­­"."\n";

echo "window.open($nombre_fichero,'Solicitud','');";

echo "\n"."//­­> "."\n"."</script>";
?>

</p>

</body>

</html>

También podría gustarte