Vous êtes sur la page 1sur 40

PROGRAMACIÓN DE SITIOS WEB

FASE 4: DISEÑO E IMPLEMENTACIÓN DEL LADO DEL SERVIDOR

ESTUDIANTES:
BILMER ANTONIO PEREZ
HERNAN FELIPE LOZANO
ANDRES JULIAN MONTENEGRO
JORGE LUIS OCHOA URREGO

TUTOR:
FRANCISCO JAVIER HILARIÓN NOVOA

GRUPO: 301127_22

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD


ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA – ECBTI

ABRIL DE 2019

1
INTRODUCCIÓN

Basados en los requerimientos de la empresa “Fox Electronics”, frente a una necesidad de un


sistema de información de control de inventarios y administración de sus productos, este
documento tratara sobre el despliegue de una solución informática ajustada a las nuevas tecnologías
de entornos o plataformas virtuales, basándose en metodologías estructuradas en la programación
de sitios WEB, brindando no solo una respuesta a su solicitud, sino un producto de calidad a su
total satisfacción.

2
OBJETIVOS

Objetivo General

Crear un sistema de información (del Lado del Servidor) que permita a la entidad suplir sus
necesidades a total satisfacción, mediante la utilización de las metodologías estructuradas para la
elaboración de sitios WEB, durante el tiempo solicitado.

Objetivos Específicos

 Crear un aplicativo web que le permita controlar las compras a proveedores.

 Controlar las ventas al público.

 Mantener actualizados los inventarios.

 Realizar los cálculos de precio de venta al público incluyendo impuestos (%) y utilidad para la
tienda (%). Al igual que la calculadora para las resistencias.

 Diseñar el sistema de información bajo la utilización de las metodologías estructuradas del


diseño de software.

3
CREACION DE LA BASE DE DATOS

Se permite crear una base de datos por medio de la siguiente secuencia de información en php
capturando la información del formulario por medio del método “POST”

4
CREACION DE TABLAS

Para la creación de Tablas se realiza por medio del comando CREATE TABLE de la secuencia
SQL por medio del siguiente código PHP

5
6
CREACION REPORTE

Para la creación del reporte se hace uso de la biblioteca fpdf que permite crear archivos php

7
CREACION DE BACKUP

8
FUNCION INSERT

Se realiza la función INSERT de SQL para realizar la adición de productos a la base de datos con
el siguiente código

9
FUNCION UPDATE

Con la función UPDATE de SQL, se pueden realizar modificaciones de los registros en la base
de datos por medio de un formulario HTML el cual ejecuta el método POST pare enviar los
datos.

10
11
FUNCION SELECT

Con la función SELECT se pueden seleccionar las tablas de las base de datos y traer los registros
para ser presentados por medio de arreglos para estos registros

12
13
14
FUNCION DELETE

Con esta función cada registro es susceptible de ser borrada desde el formulario, con la
advertencia en caso de retractarse.

15
16
MODELO ENTIDAD RELACION DE LA BASE DE DATOS

17
DISEÑO E IMPLEMENTACIÓN DEL LADO DEL SERVIDOR

Como solución al proyecto web para la empresa “Fox Electronics”, se presenta la siguiente
propuesta.

Continuando con el proyecto elegido en la fase anterior (fase 3), se procede a realizar los ajustes
para la implementación del lado del servidor.

Como primera medida creamos el script.php para crear una base de datos ya que tenemos
instalado y configurado el servidor appserv.

<?php
// Script php para crear una base de datos
// se creará con el nombre que el usuario elija
$nameBD=$_POST["nombreBD"];

if (!($conectar=mysql_connect("localhost", "root", "12345678")))//conexión a la BD


{
echo "<br> Error en la conexión. Usuario y/o Contraseña incorrectos. <br>";
}else{
mysql_query("CREATE DATABASE $nameBD", $conectar); //crear BD
echo "Conexión Exitosa. <br>";
echo " La Base de Datos ".$nameBD." se creo satisfactoriamente.";

}
mysql_close($conectar);//se cierra la conexión
?>
Enlazado desde la siguiente interfaz.

18
Se ha creado una base de datos denominada bdunad22

Continuando con el proceso de creación, se continúa creando una tabla para almacenar los
registros de los productos de la empresa con los campos solicitados, con el siguiente Script.php.
el script valida que previamente se haya creado una base de datos.

<?php
// Script php para crear una tabla en la BD
// se creará con el nombre que el usuario elija
$BD=$_POST["nombreBD"];//se captura el nombre de la BD
$tabla=$_POST["nombreT"];//se captura el nombre para la tabla
if (!($conectar=mysql_connect("localhost", "root", "12345678")))//se realiza conexión
con la BD
{
echo " <br> Error en la conexión. Usuario y/o Contraseña incorrectos. <br>";

} else{
if (!($bd=mysql_select_db($BD))) {
echo "La base de Datos ".$BD. " No existe.";
}else{
mysql_query("CREATE TABLE $tabla (codigo INTEGER PRIMARY KEY,
nombre varchar(50) NOT NULL,
marca varchar(50) NOT NULL,
precio float(10.2) NOT NULL,
cantidad int(10) NOT NULL)");

echo "La ".$tabla." se ha creado en la Base de Datos ".$BD." satisfactoriamente.";


}

mysql_close($conectar);
?>

19
La creación de la tabla se realizó desde la siguiente interfaz. Que solicita el nombre de la base de
datos creada y un nombre para la nueva tabla.

Evidencia en el servidor.

Luego continuamos con las operaciones básicas de la base de datos (CRUD)

Insert

<?php
//información de la Base de Datos
$BD="bdunad22";
$tabla="tabla22";

//capturamos los datos del producto


$codigo=$_POST["codigo"];
$nombre=$_POST["nombre"];
$marca=$_POST["marca"];

20
$precio=$_POST["precio"];
$cantidad=$_POST["cantidad"];

if (!($conectar=mysql_connect("localhost", "root", "12345678")))//se verifica conexión


{
echo " <br> Error en la conexión. Usuario y/o Contraseña incorrectos. <br>";

} else
{
if (!($bd=mysql_select_db($BD))) {//se verifica la existencia de la BD
echo "La base de Datos ".$BD. " No existe.";
}
else{
$sql="SELECT * FROM $tabla WHERE codigo='$codigo'";//se consulta si ya existe
un registro para el codigo ingresado
$insert=mysql_query($sql, $conectar);
if (mysql_num_rows($insert)>=1) {
echo "Ya existe un Producto Registrado con el código: ".$codigo; }
else{
//se inserta el nuevo producto
mysql_query("INSERT INTO $tabla (codigo, nombre, marca, precio, cantidad)
VALUES('$codigo', '$nombre', '$marca', '$precio', '$cantidad')");

echo " El producto ".$nombre." ha sido registrado con éxito.";


}

}
}
mysql_close($conectar);
?>

Con una interfaz que solicita campos obligatorios para el usuario.

21
Evidencia en el servidor

Consulta de producto mediante código único o llave primaria.


<?php
//información de la Base de Datos
$BD="bdunad22";
$tabla="tabla22";

//capturamos los datos del producto


$codigo=$_POST["codigo"];

if (!($conectar=mysql_connect("localhost", "root", "12345678")))//se verifica conexión


{
echo " <br> Error en la conexión. Usuario y/o Contraseña incorrectos. <br>";

} else
{
if (!($bd=mysql_select_db($BD))) {//se verifica la existencia de la BD
echo "La base de Datos ".$BD. " No existe.";
}
else{

22
$sql="SELECT * FROM $tabla WHERE codigo='$codigo'";//se consulta si ya existe
un registro para el codigo ingresado
$consulta=mysql_query($sql, $conectar);
if (mysql_num_rows($consulta)>=1) {
mysql_data_seek($consulta, 0);
$producto=mysql_fetch_array($consulta);
//se muestra el producto consultado
echo "<strong>Código:</strong> " .$producto['codigo']."<br>";
echo "<strong>Nombre: </strong>" .$producto['nombre']."<br>";
echo "<strong>Marca: </strong>" .$producto['marca']."<br>";
echo "<strong>Precio: </strong>" .$producto['precio']."<br>";
echo "<strong>Cantidad: </strong>" .$producto['cantidad']."<br>";
}
else{
//Mensaje de la consulta negativa
echo " El producto ".$codigo." No ha sido registrado en la Base de Datos.";
}
}
}
mysql_free_result($consulta);
mysql_close($conectar);
?>

La interfaz de consulta

El código php muestra la información del producto consultado

23
El servidor

También se realiza el proceso de actualización de datos “UPDATE” mediante php, donde solo se
pide como requisito mínimo el campo código el cual es único y el usuario podrá actualizar
cualquier campo no es obligatorio llenar todo el formulario, el script.php verifica cuales campos
de actualizaran y mantendrá los datos anteriores que no se deseen cambiar.
<?php
//información de la Base de Datos

24
$BD="bdunad22";
$tabla="tabla22";

//capturamos los datos del producto


$codigo=$_POST["codigo"];
$nombre=$_POST["nombre"];
$marca=$_POST["marca"];
$precio=$_POST["precio"];
$cantidad=$_POST["cantidad"];

if (!($conectar=mysql_connect("localhost", "root", "12345678")))//se verifica conexión


{
echo " <br> Error en la conexión. Usuario y/o Contraseña incorrectos. <br>";

} else
{
if (!($bd=mysql_select_db($BD))) {//se verifica la existencia de la BD
echo "La base de Datos ".$BD. " No existe.";
}
else{
$sql="SELECT * FROM $tabla WHERE codigo='$codigo'";//se consulta si ya existe
un registro para el codigo ingresado
$consultar=mysql_query($sql, $conectar);
if (mysql_num_rows($consultar)>=1) {
mysql_data_seek($consultar, 0);
$producto=mysql_fetch_array($consultar);
//se verifica que datos el usuario desea actualizar
if ($nombre=="")
{
$nombre=$producto['nombre'];
}
if ($marca=="")
{
$marca=$producto['marca'];
}
if ($precio=="")
{
$precio=$producto['precio'];
}
if ($cantidad=="")
{
$cantidad=$producto['cantidad'];
}

25
//se realiza la actualización del producto
mysql_query("UPDATE $tabla SET nombre='$nombre', marca='$marca',
precio='$precio', cantidad='$cantidad' WHERE codigo='$codigo'");
//mensaje para el usuario
echo "El Producto Registrado con código: ".$codigo. " se actualizo correctamente.";
}
else{
echo " El producto con código: ".$codigo." no existe en la base de datos.";
}
}
}
mysql_close($conectar);
?>

La interfaz de actualización

26
En el servidor

También es posible eliminar un registro de producto de la base de datos DELETE, donde solo se
necesita el código del producto.
<?php
//información de la Base de Datos
$BD="bdunad22";
$tabla="tabla22";

//capturamos los datos del producto


$codigo=$_POST["codigo"];

if (!($conectar=mysql_connect("localhost", "root", "12345678")))//se verifica conexión


{
echo " <br> Error en la conexión. Usuario y/o Contraseña incorrectos. <br>";

} else
{
if (!($bd=mysql_select_db($BD))) {//se verifica la existencia de la BD
echo "La base de Datos ".$BD. " No existe.";
}
else{
$sql="SELECT * FROM $tabla WHERE codigo='$codigo'";//se consulta si ya existe
un registro para el codigo ingresado
$consulta=mysql_query($sql, $conectar);
if (mysql_num_rows($consulta)>=1) {
//se realiza la eliminación del producto correspondiente
mysql_query("DELETE FROM $tabla WHERE codigo='$codigo'");

27
//se muestra mensaje de eliminación del produco
echo "<strong> El Producto con Código ".$codigo." se ha Eliminado de la Base de
Datos:</strong><br>";

}
else{
//Mensaje de la consulta negativa
echo " El producto ".$codigo." No ha sido registrado en la Base de Datos.";
}
}
}
mysql_close($conectar);
?>

Interfaz para eliminar productos

Se verifica en el servidor

28
Con cada operación (CRUD) que se realice, el sistema arroja una interfaz de información del
proceso realizado.

Ingresar producto.

29
Actualizar producto.

Consultar producto.

30
Eliminar producto.

Continuando con los procesos solicitados dentro del sistema, mediante un script.php se realiza el
Backup de la base de datos, con la necesidad de obtener información de respaldo.

<?php

//Base de datos
$BD="bdunad22";

if (!($conectar=mysql_connect("localhost", "root", "12345678")))//se verifica conexión


{
echo " <br> Error en la conexión. Usuario y/o Contraseña incorrectos. <br>";

} else
{
if (!($bd=mysql_select_db($BD))) {//se verifica la existencia de la BD
echo "La base de Datos ".$BD. " No existe.";
}
else
{
// Backup BD
$BD = 'bdunad22'; //Nombre de la Base de datos
$fecha = date("Ymd"); //Obtenemos la fecha para identificar el respaldo

31
// Construimos el nombre de archivo SQL Ejemplo:
bdunad22_20190425.sql
$salida_sql = $BD.'_'.$fecha.'.sql';

//Comando para genera respaldo de MySQL, enviamos la conexion y el


destino
$dump = "mysqldump --$conectar --opt $BD > $salida_sql";
system($dump, $output); //Ejecutamos el comando para respaldo

$zip = new ZipArchive(); //Objeto de Libreria ZipArchive

//Construimos el nombre del archivo ZIP Ejemplo:


bdunad22_20190425.zip
$salida_zip = $BD.'_'.$fecha.'.zip';

if($zip->open($salida_zip,ZIPARCHIVE::CREATE)===true) { //Creamos
y abrimos el archivo ZIP
$zip->addFile($salida_sql); //Agregamos el archivo SQL a ZIP
$zip->close(); //Cerramos el ZIP
unlink($salida_sql); //Eliminamos el archivo temporal SQL
header ("Location: $salida_zip"); // Redireccionamos para descargar el
Arcivo ZIP
} else
{
echo 'Error al crear Backup o Respaldo'; //Enviamos el mensaje de
error
}
}
}
mysql_close($conectar);
?>

El script anterior, verifica conexión hacia la BD, verifica que exista la base de datos y si es correcto
realiza el Backup.sql comprimido en un archivo.zip, el cual se guardara en la ruta preferida.

32
El sistema permite generar un documento.pdf con el listado de elementos registrados en la base
de datos mediante el siguiente Script.php
<?php
require 'fpdf/fpdf.php'; // uso de la libreria fpdf

$pdf = new FPDF();


class myPDF extends FPDF{
function headertable(){//encabezado de la tabla
$this -> SetFont('Times', 'B', 14);
$this -> Cell(40, 10, 'Codigo', 1, 0, C);
$this -> Cell(40, 10, 'Nombre', 1, 0, C);
$this -> Cell(40, 10, 'Marca', 1, 0, C);
$this -> Cell(30, 10, 'Precio', 1, 0, C);
$this -> Cell(30, 10, 'Cantidad', 1, 0, C);
$this -> Ln();
}
function listartabla($BD){//Lista de elementos
$this -> SetFont('Times', '', 12);
$conexion=mysqli_connect('localhost', 'root', '12345678', 'bdunad22');
$sql="SELECT * FROM tabla22";
$result=mysqli_query($conexion, $sql);
while ($listar=mysqli_fetch_array($result)){
$this -> SetFont('Times', 'B', 12);

33
$this -> Cell(40, 10, $listar['codigo'], 1, 0, L);
$this -> Cell(40, 10, $listar['nombre'], 1, 0, L);
$this -> Cell(40, 10, $listar['marca'], 1, 0, L);
$this -> Cell(30, 10, $listar['precio'], 1, 0, R);
$this -> Cell(30, 10, $listar['cantidad'], 1, 0, R);
$this -> Ln();
}

}
}

$pdf = new myPDF();


$pdf -> AliasNbPages();
$pdf -> AddPage();
$pdf -> SetFont('Arial','B',14);
$pdf -> Cell(50);
$pdf -> Cell(100,10,'Listado de Componentes',0,1,'C');
$pdf -> SetY(60);
$pdf -> headertable();
$pdf -> listartabla($BD);
$pdf -> Output();

?>

El resultado es un documento .pdf con los elementos registrados.

34
35
Creación del archivo login.php el cual nos va a permitir validar de que el usuario y contraseña
coinciden con los que estan presentes en la base de datos

36
con el archivo auth.php se estará ejecutando, si al ver que no hay interacción con la plataforma
después de un cierto tiempo procederá a cerrar la sesión del usuario

37
Archivo que nos enlaza la base de datos de MySQL con el aplicativo web

Formulario de registro, en el cual se podrá registrarse para así poder iniciar sesión en el aplicativo
web

38
CONCLUSIONES

Se fortalecieron los conocimientos para desarrollar una propuesta de sitios web interactivos
haciendo uso de los fundamentos teóricos y prácticos para la creación de sitios web.

Se logro adquirir conocimiento de los diferentes lenguajes de programación (HTML, Java


Script y Bootstrap) y su sintaxis, formando paginas web completamente funcionales y
accesibles.

Se logro ofrecer una solución tecnológica ante un requerimiento cotidiano, que puede
suceder en cualquier momento de nuestra vida profesional.

Fue de gran aporte al conocimiento, el manejo de la información en el entorno de


conocimiento para el desarrollo de esta fase del curso, ya que fue acertado cada uno de los
temas dispuestos en este entorno.

39
REFERENCIAS BIBLIOGRÁFICAS

Cobo, Ángel, et al. PHP y MySQL: tecnologías para el desarrollo de aplicaciones web. (Páginas. 1
- 20). Ediciones Díaz de Santos, 2005. ProQuest Ebook Central. Recuperado de:
https://bibliotecavirtual.unad.edu.co:2538/lib/unadsp/reader.action?ppg=19&docID=3173408
&tm=1544022923309

Vara, Mesa, Juan Manuel, et al. Desarrollo web en entorno cliente. (Páginas. 29 - 49). RA-MA
Editorial, 2014. ProQuest Ebook Central. Recuperado de:
https://bibliotecavirtual.unad.edu.co:2538/lib/unadsp/reader.action?ppg=30&docID=3229683
&tm=1544023315772

Mohedano, Jorge, et al. Iniciación a javascript, Ministerio de Educación de España, 2012. (Páginas.
25 - 61) ProQuest Ebook Central. Recuperado de:
https://bibliotecavirtual.unad.edu.co:2538/lib/unadsp/reader.action?ppg=26&docID=3214795
&tm=1544023398179

Vara, Mesa, Juan Manuel, et al. Desarrollo web en entorno cliente. (Páginas. 145 - 150). RA-MA
Editorial, 2014. ProQuest Ebook Central. Recuperado de:
https://bibliotecavirtual.unad.edu.co:2538/lib/unadsp/reader.action?ppg=146&docID=3229683
&tm=1544023500134

Shenoy, A., & Sossou, U. (2014). Learning Bootstrap. Birmingham [England]: Packt Publishing.
Recuperado de:
http://bibliotecavirtual.unad.edu.co/login?url=http://search.ebscohost.com/login.aspx?direct=tr
ue&db=nlebk&AN=933023&lang=es&site=eds-live

40

Vous aimerez peut-être aussi