Vous êtes sur la page 1sur 35

ECBTI/ZCBC/Red de Algorítmica y Programación

Webconferencia Fase 4: 301127

Francisco J. Hilarión Novoa


Gachetá 9 de Abril del 2019
Herramientas necesarias

• Servidor Apache: Appserv 8.6


https://www.appserv.org/

• Editor de código: Sublime text 3


https://www.sublimetext.com/

• Navegador de internet: Mozilla Firefox o Google Chrome


https://www.mozilla.org/es-ES/firefox/new/?scene=2
Instalación del servidor Apache

1 2 3

4 5 6

7
Verifique la Instalación del servidor Apache

1 - Digite localhost en el navegador y verifique que cargan los


1 servicios de Appserv

2 - De clic sobre phpMyAdmin, ingrese usuario “root” y la


2 contraseña que definió en la instalación

3 3 - Verifique el acceso a phpMyAdmin


Interfaz gráfica

<nav class="navbar navbar-default">


<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand"
href="#">WebSiteName</a>
</div>
<ul class="nav navbar-nav">
<li class="active"><a
href="#">Home</a></li>
<li><a href="#">Page 1</a></li>
<li><a href="#">Page 2</a></li>
<li><a href="#">Page 3</a></li>
</ul>
</div>
</nav>
...
Formularios HTML

<!DOCTYPE HTML>
<html>
<body>

<form action="welcome.php" method="post">


Nombre: <input type="text"
name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

</body>
</html>
Procesamiento de Formularios en PHP

<html>
<body>

Bienvenido
<?php
echo $_POST["name"];
?>
<br>
Tu email es:
<?php echo $_POST["email"];
?>

</body>
</html>
Estructuras de Programación - If

if (condition) {
code to be executed if condition is true;
}

<?php
$t = date("H");

if ($t < "20") {


echo "Have a good day!";
}
?>
Estructuras de Programación - While

while (condition is true) {


code to be executed;
}

<?php
$x = 1;

while($x <= 5) {
echo "The number is: $x <br>";
$x++;
}
?>
Estructuras de Programación - For

for (init counter; test counter; increment


counter) {
code to be executed;
}

<?php
for ($x = 0; $x <= 10; $x++) {
echo "The number is: $x <br>";
}
?>
Estructuras de Programación - Switch

<?php
switch (n) { $favcolor = "red";
case label1:
code to be executed if n=label1; switch ($favcolor) {
break; case "red":
case label2: echo "Your favorite color is red!";
code to be executed if n=label2; break;
break; case "blue":
case label3: echo "Your favorite color is blue!";
code to be executed if n=label3; break;
break; case "green":
... echo "Your favorite color is green!";
default: break;
code to be executed if n is different from all labels; default:
} echo "Your favorite color is neither red, blue, nor
green!";
}
?>
Manejo de Bases de datos

• Crear base de datos


• Crear tabla
• Insertar registros
• Eliminar registros
• Actualizar registros
• Leer registros
Manejo de Bases de datos

• Crear base de datos

CREATE DATABASE testDB;


Manejo de Bases de datos

• Crear tabla

CREATE TABLE Persons (


PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);

CREATE TABLE Persons (


ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (ID)
);

CREATE TABLE Orders (


OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);
Manejo de Bases de datos

• Insertar registros

INSERT INTO Customers (CustomerName,


ContactName, Address, City, PostalCode,
Country)
VALUES ('Cardinal', 'Tom B. Erichsen', 'Skagen
21', 'Stavanger', '4006', 'Norway');

INSERT INTO table_name


VALUES (value1, value2, value3, ...);
Manejo de Bases de datos

• Eliminar registros

DELETE FROM table_name


WHERE condition;

DELETE FROM Customers


WHERE CustomerName='Alfreds Futterkiste';
Manejo de Bases de datos

• Actualizar registros

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

UPDATE Customers
SET ContactName = 'Alfred Schmidt', City=
'Frankfurt'
WHERE CustomerID = 1;
Manejo de Bases de datos

• Leer registros

SELECT TOP number|percent column_name(s)


FROM table_name
WHERE condition;

SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;
Manejo de Bases de datos

• Conexion
<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = mysqli_connect($servername,
$username, $password);

// Check connection
if (!$conn) {
die("Connection failed: " .
mysqli_connect_error());
}
echo "Connected successfully";
?>
Manejo de Bases de datos

• Crear BD
<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = mysqli_connect($servername, $username, $password);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}

// Create database
$sql = "CREATE DATABASE myDB";
if (mysqli_query($conn, $sql)) {
echo "Database created successfully";
} else {
echo "Error creating database: " . mysqli_error($conn);
}

mysqli_close($conn);
?>
Manejo de Bases de datos

• Crear tabla <?php


$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}

// sql to create table


$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";

if (mysqli_query($conn, $sql)) {
echo "Table MyGuests created successfully";
} else {
echo "Error creating table: " . mysqli_error($conn);
}

mysqli_close($conn);
?>
Manejo de Bases de datos

• Insertar información
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = mysqli_connect($servername, $username, $password,
$dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}

$sql = "INSERT INTO MyGuests (firstname, lastname, email)


VALUES ('John', 'Doe', 'john@example.com')";

if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

mysqli_close($conn);
?>
Manejo de Bases de datos

• Seleccionar información
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}

$sql = "SELECT id, firstname, lastname FROM MyGuests";


$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " .
$row["lastname"]. "<br>";
}
} else {
echo "0 results";
}

mysqli_close($conn);
?>
Manejo de Bases de datos

• Actualizar información
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = mysqli_connect($servername, $username, $password,
$dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}

$sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2";

if (mysqli_query($conn, $sql)) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . mysqli_error($conn);
}

mysqli_close($conn);
?>
Manejo de Bases de datos

• Eliminar información
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}

// sql to delete a record


$sql = "DELETE FROM MyGuests WHERE id=3";

if (mysqli_query($conn, $sql)) {
echo "Record deleted successfully";
} else {
echo "Error deleting record: " . mysqli_error($conn);
}

mysqli_close($conn);
?>
Generación de Backup
Generación de PDF
Manejo de sesiones

FASES DEL TRABAJO CON SESIONES

• APERTURA DE LA SESION: se usa generalmente para


crear las variables de la sesión e iniciar el proceso

• USO DE LA SESION: cuando una sesión se inicia, varias


páginas del navegador pueden usar esas variables, con
solo invocarlas.

• CIERRE DE LA SESION: cuando se destruye la sesión,


las páginas del navegador ya no tienen acceso a dichas
variables. El cierre lo puede hacer el usuario o el
servidor.
Manejo de sesiones

ABRIR SESIÓN
Manejo de sesiones

USO DE LA SESIÓN
Manejo de sesiones

CIERRE DE LA SESIÓN
ENCRIPTACIÓN

FUNCION MD5

Md5();

Permite encriptar un texto en md5


PROTECCIÓN POR CONTRASEÑA

ESTRUCTURA DEL APLICATIVO

• index.php: siempre y cuando el archivo auth.php valide las credenciales del usuario, redirecciona al
usuario a index.php y es aquí donde el aplicativo le da la bienvenida al usuario y le permite el ingreso a
la página principal.
• config.php: contiene las variables de conexión al motor de base de datos y la validación de la conexión
al mismo.
• auth.php: valida que el usuario esté autenticado y que el tiempo programado para la sesión no haya
vencido.
• login.php: aquí el usuario digita su nombre de usuario y contraseña y se valida si esos datos coinciden
con los que están almacenados en la base de datos e inicia el timer.
• dashboard.php: es la página principal que contiene la interfaz del aplicativo y debe incluir en las líneas
iniciales el llamado a config.php y auth.php, para validar sesión.
• logout.php: coresponde a un script en php, que permite destruir la sesión cuando el usuario de clic
sobre ella.
• registration.php: es el script que permite al usuario registrarse en la base de datos del aplicativo.
• validaruser.php: es el script que permite al usuario verificar si ya esta registrado o no en la base de
datos.

• OJO: todas las páginas del aplicativo deben tener validación de sesión (llamando a config.php y
auth.php), con el fin de evitar que un usuario sin credenciales pueda acceder a información importante.
Excepto el archivo (index.php)
PROTECCIÓN POR CONTRASEÑA

COMO FUNCIONA LA AUTENTICACIÓN Y USO DE SESIONES?

• El usuario ingresa a index.php y de allí el aplicativo lo direcciona a


auth.php, donde inicia la sesión, para lo cual el aplicativo lo redirecciona
internamente a login.php donde el usuario digita su nombre de usuario y
contraseña y se valida si esos datos coinciden con los que están
almacenados en la base de datos e inicia el timer.

• Después el aplicativo lo direcciona a index.php y le da la bienvenida al


aplicativo, permitiéndole ingresar a dashboard.php, el cual es la página
principal del aplicativo.

• Si el usuario no está registrado, login.php permite direccionarlo a


registration.php para que haga su registro en la base de datos.
FINAL

GRACIAS POR SU ATENCIÓN