Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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í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ó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ón, noticias de la pá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> </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á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 httpequiv="ContentType" content="text/html; charset=iso88591">
</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í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"> </td>
</tr>
</table>
<p> </p>
</body>
</html>';
}
function generaPaginaAccesoPrincipioCabecera($titulo)
{
echo '<html>
<head>
<title>'.$titulo.'</title>
<meta httpequiv="ContentType" content="text/html; charset=iso88591">';
}
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í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> </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>Email:</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 A4
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, "TimesItalic", 14,"host", 0 );
/*Se indica el color de la letra REDGREENBLUE*/
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_logotipo40);
$cadena_a_imprimir = "Fecha: ".$fecha;
pdf_show_xy($contenido_pdf,$cadena_a_imprimir, 60,842$altura_logotipo60);
$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_logotipo80);
$cadena_a_imprimir = "Nombre: ".$nombre;
pdf_show_xy($contenido_pdf,$cadena_a_imprimir, 60,842$altura_logotipo100);
$cadena_a_imprimir = "Apellidos: ".$nombre;
pdf_show_xy($contenido_pdf,$cadena_a_imprimir, 60,842$altura_logotipo120);
$cadena_a_imprimir = "Email: ".$email;
pdf_show_xy($contenido_pdf,$cadena_a_imprimir, 60,842$altura_logotipo140);
pdf_set_font($contenido_pdf, "TimesItalic", 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_logotipo180);
pdf_set_font($contenido_pdf, "TimesItalic", 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_logotipo200, 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, "TimesItalic", 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_logotipo240$alto_anterior);
pdf_set_font($contenido_pdf, "TimesItalic", 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_logotipo260, 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>