
Rasmus Ledford Desarrolló PHP (Personal Home Page) en 1995
El cliente realiza una solicitud al servidor de un recurso .php
El servidor recibe la solicitud y llama al lenguaje PHP.
Donde el servidor encuentre las etiquetas PHP, lo ejecutará.
PHP realiza el programa y regresa como etiquetas HTML.
El servidor regresa el código HTML (nunca código PHP).
El cliente toma el HTML y el navegador lo interpreta.
1. Instalar la plataforma Apache-MySQL-PHP en su computadora como XAMPP, MAMP, LAMP o WAMP o es su defecto, contar con un servidor remoto con PHP.
2. Un navegador moderno.
3. Un editor de código como Sublime Text, Aptana, Brackets, Atom o Dreamweaver (cualquier versión).
4. Si se cuenta con un servidor remoto, necesitarás un FTP o cPanel.
Antes de iniciar daremos algunos consejos para el uso de la plataforma.
XAMPP es un paquete de instalación independiente de plataforma, software libre, que consiste principalmente en el sistema de gestión de bases de datos MySQL, el servidor web Apache y los intérpretes para lenguajes de script: PHP y Perl.
MAMP es una poderosa herramienta para convertir nuestra computadora en un servidor web local.
Muestra gran cantidad de información sobre el estado actual de PHP. Incluye información sobre las opciones de compilación y extensiones de PHP, versión de PHP, información del servidor y entorno (si se compiló como módulo), entorno PHP, versión del OS, rutas, valor de las opciones de configuración locales y generales, cabeceras y licencia de PHP.
Entrar a packagecontrol.io
Abrir la consola (view > show console).
Copiar el código en la consola y ejecutarlo.
Cerrar y abrir sublime text.
[Ctrl]-[shift]-[p] o tools > command palette
Escribimos
Install packages > sublime lint > detecta problemas de sintaxis.
Install packages > phpcs
PHPDocs es una adaptación de JavaDocs para documentar la programación en PHP.
¿Algo para mejorar en esta sección?
¿Algún comentario o aporte?
Tus comentarios son muy importantes y seguiré trabajando para que puedas calificar este curso con 5 estrellas.
Los tipos de datos son fundamentales en cualquier lenguaje de programación. En PHP se considera un lenguaje "debilmente tipado", es decir, va a ser flexible en el manejo de datos, En este video te e indicamos cuáles son los tipos de datos primitivos que utilizamos en PHP.
Cadenas de caracteres o "String" - Datos alfanuméricos para representar letras y el lenguaje escrito de los humanos. Estos valores van siempre "encerrados" o delimitados entre las comillas dobles o comillas sencillas (apóstrofes). PHP solo admite un conjunto de 256 caracteres, y de ahí que no ofrezca soporte nativo para Unicode.
PHP es famoso por sus formas de concatenar cadenas. Por su propia naturaleza de ser un lenguaje intermedio para HTML, tiene poderosas herramientas para el manejo de cadenas, entre ellas su concatenación.
Las variables numéricas son muy flexibles en PHP. Podemos almacenar número decimales, octales y hetadecimales, enteros, negativos y enteros sin ninguna restricción.
Los números de punto flotante (también conocidos como "de coma flotante" en español, y "floats" en inglés) pueden ser especificados usando cualquiera de las siguientes sintaxis: El tamaño de un 'float' depende de la plataforma, aunque un valor común consiste en un máximo de ~1.8e308 con una precisión de aproximadamente 14 dígitos decimales (el formato de 64 bit del IEEE).
● Este es el tipo más simple. Un boolean expresa un valor que indica verdad. Puede ser TRUE (verdadero) o FALSE (falso).
● Para especificar un literal de tipo boolean se emplean las constantes TRUE o FALSE. Ambas no son susceptibles a mayúsculas y minúsculas.
● Usualmente, el resultado de un operador que devuelve un valor de tipo boolean es pasado a una estructura de control.
● Advertencia: -1 se considera TRUE, como cualquier otro número distinto de cero (ya sea negativo o positivo).
Podemos utilizar el nombre de una variable dentro del valor de una segunda variable y utilizar
esta última por medio de las llaves {}. Por ejemplo
$df = 22000000;
$guadalajara = 4000000;
$monterrey = 1400000;
$ciudad = "df";
print "<p>La población de la ciudad $ciudad es de ${$ciudad} de habitantes</p>";
$ciudad = "guadalajara";
print "<p>La población de la ciudad $ciudad es de ${$ciudad} de habitantes</p>";
$ciudad = "monterrey";
Esta sintaxis toma un punto de código de Unicode en forma hexadecimal e imprime ese punto de código en UTF-8 a una cadena con entrecomillado doble o a un heredoc . Se acepta cualquier punto de código válido, siendo los ceros iniciales opcionales.
Existen un tipo de "cajitas" que pueden contener mas de un valor independiente a la ves, y se llaman "arreglos" (arrays). Esto puede visualizarse como una caja de herramientas con compartimentos independientes, pero todos unidos formando una sola"caja". No se pueden separar los compartimentos de la caja principal, y ahí donde va la caja principal, van las "cajitas" que esta contiene.
Es posible "forzar" a que el resultado de una operación cambie de tipo, como por ejemplo una división entre números con decimales regrese un número entero. La manera más fácil de forzar este cambio es así: La variable $entero sólo recibirá un valor entero, sin los decimales. $entero = (integer) $subtotal / $iva; En el último caso, cualquier valor que sea diferente de cero regresa "true", y cero regresa "false". También tenemos las funciones: intval() floatval() strval() boolval() settype() gettype()
No olvide añadir public $db; en el modelo.
¿Algo para mejorar en esta sección?
¿Algún comentario o aporte?
Tus comentarios son muy importantes y seguiré trabajando para que puedas calificar este curso con 5 estrellas.
Un operador es algo que toma uno más valores (literales, variables u otros operadores) y produce otro valor (de modo que la construcción en si misma se convierte en una expresión).
+$a Identidad Conversión de $a a int o float según el caso.
-$a Negación Opuesto de $a.
$a + $b Adición Suma de $a y $b.
$a - $b Sustracción Diferencia de $a y $b.
$a * $b Multiplicación Producto de $a y $b.
$a / $b División Cociente de $a y $b.
$a % $b Módulo Resto de $a dividido por $b.
$a ** $bExponenciaciónResultado de elevar $a a la potencia $bésima.
El operador básico de asignación es "=". Se podría inclinar a pensar primero que es como un "igual a". No lo es. Realmente significa que el operando de la izquierda se establece con el valor de la expresión de la derecha (es decir, "se define como").
El valor de una expresión de asignación es el valor asignado. Es decir, el valor de "$a = 3" es de 3.
Crearemos dos archivos para crear las vistas: encabezados y el pie de página. Todas las vistas accederán a los mismos.
Una práctica muy común es tomar un archivo anterior y convertirlo en un nuevo.
Lo realizaremos para crear la vista de “olvido de la contraseña”.
De la vista principal al controlador.
El controlador despliega la vista de “Olvidaste tu contraseña”.
A medida que avanzamos en las llamas de los métodos, la ruta relativa se puede ir perdiendo, por lo que la mantendremos en una Constante global.
define()
$_SERVER[“REQUEST_METHOD”] indica el método de envío a la página.
filter_var($email, FILTER_VALIDATE_EMAIL)
Un proceso de validación muy importante es que busquemos en la base de datos el correo electrónico antes de enviar el correo.
Realizaremos la función para desplegar el arreglo de errores dentro de la vista.
Por medio de la instrucción mail() enviaremos el correo electrónico al usuario.
NOTA: en las computadoras locales por lo general no está levantado el servicio de mensajería. Hay que probarlo en un servidor web.
Podemos crear una vista general donde podemos enviar diferentes mensajes erróneos o de aceptación.
Es muy importante saber a donde regresar después de la vista.
Necesitamos crear el método y la vista para cambiar la clave de acceso.
hash_hmac(“sha512”,$clave,”llave encriptacion”); Genera una cadena cifrada por el método HMAC.
hash_hmac(“sha512”,$clave,”llave encriptacion”); Genera una cadena cifrada por el método HMAC.
Debemos crear una vista para que el usuario pueda cambiar su clave de acceso sin necesidad de entrar al sistema.
Una vez que el usuario escriba y confirme su clave de acceso, debemos de validar y preparar para ser encriptada y modificada.
session_start(array $options = []): bool
$_SESSION[ ]
session_destroy(): bool
openssl_random_pseudo_bytes — Genera una cadena de bytes pseudo-aleatoria
openssl_cipher_iv_length — Obtener la longitud del iv (vector de iniciación) de cipher
openssl_encrypt — Encripta datos
openssl_decrypt — Desencripta datos
AES: Advanced Encryption Standard aes-256-cbc
Podemos encriptar los parámetros de la URL por seguridad.
openssl_random_pseudo_bytes — Genera una cadena de bytes pseudo-aleatoria
openssl_cipher_iv_length — Obtener la longitud del iv (vector de iniciación) de cipher
openssl_encrypt — Encripta datos
openssl_decrypt — Desencripta datos
AES: Advanced Encryption Standard aes-256-cbc
¿Algo para mejorar en esta sección?
¿Algún comentario o aporte?
Tus comentarios son muy importantes y seguiré trabajando para que puedas calificar este curso con 5 estrellas.
Crear el menú
Crear la opción de salida
Crear el menú
Crear la opción de salida
navbar-brand
navbar-nav mr-auto mt-2 mt-lg-0
nav-item
nav-link
Es muy importante que hagamos una rutina para salir del sistema y destruir las variables de sesión.
Crearemos una vista para que el usuario pueda cambiar sus datos.
A veces es necesario salir prematuramente de un ciclo, debido a una condición excepcional.
El comando "break" termina el ciclo y no vuelve a evaluar la expresión, terminando definitivamente el ciclo, sin importar el valor de la expresión.
Este comando funciona dentro de cualquier comando de ciclos y condicionales (if, switch, while, do...while y for).
El comando “continue” repite el ciclo sin ejecutar las instrucciones que estén después de ésta.
Después de validar la información de la vista, si hay errores tenemos que regresarlos a la vista y desplegarlos. Si no hay errores actualizaremos los datos.
¿Algo para mejorar en esta sección?
¿Algún comentario o aporte?
Tus comentarios son muy importantes y seguiré trabajando para que puedas calificar este curso con 5 estrellas.
Recibimos los datos de la vista. Si tenemos el identificador, procedemos a modificar (Update) y si no hay identificador insertamos el registro (Insert).
Siempre debemos de validar si el usuario está debidamente logueado.
Leemos toda la tabla de doctores
Enviamos los datos a la vista.
Crearemos una tabla en HTML.
Añadiremos dos columnas: una para un botón de modificación y otro para borrar el registro.
Añadiremos un botón para dar de alta un doctor.
Debemos crear el método en el Controlador.
Crear la vista correspondiente.
Debemos crear el método en el Controlador.
Crear la vista correspondiente.
Recibimos los datos de la vista. Si tenemos el identificador, procedemos a modificar (Update) y si no hay identificador insertamos el registro (Insert).
Al usar el PHP7 mediante un servidor de páginas web, el único medio de comunicación "interactiva" con los usuarios es a través de formas de HTML.
En ellas, el usuario escribe datos que son evaluados y procesados por una rutina de PHP7 y se genera un resultado.
Los métodos para enviar los datos de un formulario a otra página son GET y POST.
Los siguientes elementos los recibimos del formulario como cadenas:
Input (de todo tipo)
Radio button
Select sencillo
Textarea
Los pacientes son las personas que van a utilizar nuestros servicios y nos pagarán por los mismos.
Vamos a tener una sola tabla con todos los catálogos o llaves.
Podemos crear una clase auxiliar para ser heredada desde los modelo que la necesiten.
Para dar de alta un paciente necesitamos varios catálogos como tipo de sangre, estado civil o género.
Para dar de alta un paciente necesitamos varios catálogos como tipo de sangre, estado civil o género.
addlashes — Añade a las comillas con barras
htmlentities : convierte todos los caracteres aplicables en entidades HTML
Recibimos los datos de la vista. Si tenemos el identificador, procedemos a modificar (Update) y si no hay identificador insertamos el registro (Insert).
Desplegamos los datos en la vista
Recibimos los datos y los validamos
Procedemos a modificarlos en la base de datos
Desplegamos los datos en la vista
Recibimos los datos y los validamos
Procedemos a dar de baja lógica el registro en la base de datos
Una vez validada la fecha de nacimiento, podemos calcular facilmente la edad exacta de un paciente.
Las llaves únicas dependen de nuestras reglas de negocio y de las políticas del país.
DNI
Teléfono
Correo electrónico
¿Algo para mejorar en esta sección?
¿Algún comentario o aporte?
Tus comentarios son muy importantes y seguiré trabajando para que puedas calificar este curso con 5 estrellas.
Los horarios nos permitirán conocer los tiempos disponibles de los doctores, que pueden tener horarios irregulares en diferentes días.
La carátula nos permitirá capturar los datos del horario del doctor.
Para dar de alta un paciente necesitamos varios catálogos como tipo de sangre, estado civil o género.
Para dar de alta un horario necesitamos varios catálogos como doctores, días de la semana o duración de la consulta.
addlashes: Añade a las comillas con barras
htmlentities : convierte todos los caracteres aplicables en entidades HTML
Reemplazar partes de una cadena: str_replace()
La sintaxis básica para este comando es:
mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] );
Esta función devuelve una cadena o un arreglo con todas las apariciones de search en subject reemplazadas con el valor dado de replace.
Por medio de la sentencia str_replace podemos evitar que el usuario introduzca caracteres que nos podrían dañar nuestra información, sobre todo en la base de datos.
Con la función str_shuffle() podemos hacer una nueva cadena de otra, desordenando sus caracteres, sean numéricos, símbolos o letras.
¿Algo para mejorar en esta sección?
¿Algún comentario o aporte?
Tus comentarios son muy importantes y seguiré trabajando para que puedas calificar este curso con 5 estrellas.
Las citas son el corazón del sistema. Reúnen todas la tabla; pacientes, doctores, horarios y llaves.
La carátula nos permitirá capturar los datos de la cita del doctor y del paciente.
Para dar de alta un paciente necesitamos varios catálogos como tipo de pacientes o doctores.
Necesitamos calcular la agenda del doctor con la fecha:
Determinar día de la semana (Lunes, Martes, etc.)
Leer la cita de este día y calcular la agenda.
Dibujar la agenda de ese día del doctor.
Verificar la cita (observaciones).
addlashes — Añade a las comillas con barras
htmlentities : convierte todos los caracteres aplicables en entidades HTML
Leeremos la información para armar la agenda del doctor.
Desplegamos los datos en la vista
Recibimos los datos y los validamos
Procedemos a modificarlos en la base de datos
Ahora necesitamos cruzar la agenda del doctor con las citas y el estado de estas últimas antes de ser mostrada al usuario.
Ya que tenemos la agenda del día, podemos desplegarlas para que seleccione el horario de la cita.
Antes de crear nuestra cita, necesitamos que el usuario verifique los datos. Crearemos una vista para ello y desplegar los datos.
Crearemos una vista para confirmar la cita antes de insertarlo en la base de datos.
Regresamos la información al método altaCita dentro del controlador.
Una vez insertado el registro de la cita, ajustamos los datos de la carátula de las citas.
Utilizaremos el mismo flujo de información del proceso de alta para realizar el mantenimiento del mismo.
date_default_timezone_set('America/Los_Angeles');
date.timezone = "US/Central"
Verificar el registro
Crear el método modifica
Verificar el proceso de error
Seleccionamos la cita
La enviamos a verificar
La borramos en forma lógica
Por medio de la carátula deberemos poder modificar el estado de la cita.
0 Libre
1 Pendiente por confirmar
2 Confirmada
3 Cita realizada
4 Cancelada
¿Algo para mejorar en esta sección?
¿Algún comentario o aporte?
Tus comentarios son muy importantes y seguiré trabajando para que puedas calificar este curso con 5 estrellas.
Constriuremos el tablero del sistema.
En esta clase crearemos un control de visitas del usuario a una página, y almacenaremos la fecha y hora de su última visita. Si es la primera vez que nos visita (no está creada la cookie), mandaremos a pantalla un mensaje correspondiente.
Cambiar el estado de la cita:
Pendiente de confirmar
Confirmada
Cancelada
Creamos el método para verificar los datos y actualizar la cita.
“La integridad referencial es propiedad de la base de datos. La misma significa que la clave externa de una tabla de referencia siempre debe aludir a una fila válida de la tabla a la que se haga referencia. La integridad referencial garantiza que la relación entre dos tablas permanezca sincronizada durante las operaciones de actualización y eliminación.” (WIkipedia)
Podemos crear fácilmente una barra de aceptación de cookies con PHP.
Debemos verificar que el paciente no tenga citas pendientes.
Cambiar el campo a clave de acceso.
Modificar el acceso.
Actualizar la clave de acceso.
Verificar si la clave de acceso está vacía, indicarle al doctor que escriba la misma.
Corregir la vista del doctor.
Necesitamos determinar si es administrador o es doctor.
Si es administrador actualizamos el registro por el identificador.
Si es doctor, actualizamos el registro por el correo electrónico.
Necesitamos crear un método get para obtener el valor de “admon”.
Condicionar el menú dependiendo si es administrador o si es doctor.
Mover la creación de la sesión al constructor del controlador.
Tenemos que modificar los controladores para enviar el valor de administrador o doctor.
Tenemos que modificar los controladores para enviar el valor de administrador o doctor.
Podemos decidir que tanto el administrador y el doctor puedan modificar sus datos en la misma vista, o que lo hagan en vistas diferentes.
Tomaremos como base la vista del doctor para añadir las claves de acceso
Debemos de actualizar los datos del doctor en su tabla y su clave de acceso.
Crearemos una vista para que el doctor pueda añadir el diagnóstico o tratamiento del cliente.
Con ello creamos el historial del paciente.
Cuando el doctor selecciona una cita y cambia el estado a Realiza, puede escribir el tratamiento del paciente.
Crearemos mensajes genéricos para mensajes exitosos (success) y erróneos (danger).
Si la cita tiene el estado de “Cita realizada” y tiene Tratamiento, lo mostramos y lo puede modificar.
Verificamos si existe el tratamiento en la tabla historial, procedemos a modificarlo (update), de lo contrario lo insertamos (insert).
¿Algo para mejorar en esta sección?
¿Algún comentario o aporte?
Tus comentarios son muy importantes y seguiré trabajando para que puedas calificar este curso con 5 estrellas.
Los archivos no los optimizaremos.
No cambiaremos el nombre de los archivos.
Crearemos una carpeta para cada tratamiento o diagnóstico.
Tomaremos todos los archivos y los guardaremos en la carpeta.
Leer los nombres de los archivos.
Transmitir el arreglo a la vista.
Creamos un hipervínculo a la imagen.
Crearemos el método “foto” para recibir la información.
Crearemos la vista para visualizar el archivo.
Utilizaremos la función unlink() para borrar un archivo del directorio.
"image/png"
"image/jpeg"
"image/gif"
in_array(mixed $needle, array $haystack, bool $strict = false): bool
Sanear el nombre del archivo.
Mover el archivo temporal
Validar el archivo si ya existe
Verificar el tamaño del archivo
Sanear el nombre del archivo.
Mover el archivo temporal.
Validar el archivo si ya existe.
Verificar el tamaño del archivo.
Con la función filesize() sabremos el tamaño del archivo.
Con la función getimagesize() (de la librería GD)
Agregar registros
Crear constantes
Calcular el número de registros
Hacer los cálculos desde el controlador
Modificar la lectura de pacientes
Enviar los datos a la vista
Crear la paginacion.php
Añadir el código a la vista
Agregar registros
Crear constantes
Calcular el número de registros
Hacer los cálculos desde el controlador
Modificar la lectura de pacientes
Enviar los datos a la vista
Crear la paginacion.php
Añadir el código a la vista
¿Algo para mejorar en esta sección?
¿Algún comentario o aporte?
Tus comentarios son muy importantes y seguiré trabajando para que puedas calificar este curso con 5 estrellas.
Una aplicación que es muy recurrente en Internet es el desarrollo de una para el manejo de citas médicas de un consultorio. Esta aplicación nos sirve para utilizar lenguajes del lado del cliente, como JavaScript y lenguajes del lado del servidor como PHP, así como conectarlo con bases de datos, en este caso como MySQL, herramientas que son las más utilizadas en la Web. En este curso construiremos las páginas web por medio de Bootstrap 5.3. lo cual nos permitirá tener una aplicación responsiva.
Partiremos desde una página completamente en blanco hasta concluir la parte del usuario (front-end) y la parte del administrador (back-end). Los objetivos del presente curso son:
Conocer los aspectos básicos de PHP y su instalación.
Crear la estructura Modelo, Vista y Controlador para construir la tienda virtual con PHP y MySQL.
Crear el controlador, el modelo y las vistas necesarias para permitir el acceso de los usuarios al sistema.
Crear el menú, controlador, modelo y las vistas necesarias para: el tablero, los doctores, los pacientes.
Manejo de imágenes y paginación de consultas muy largas
Este curso intermedio, por lo que usted debe tener las bases de programación en Bootstrap, PHP, JavaScript y MySQL, aunque no debe de ser experto en ellos. Es una buena oportunidad para poner en práctica sus conocimientos. Usted debe de contar con una instalación de Apache-PHP-MySQL, como XAMPP, MAMP p WAMP.
Al final del curso contarás con todos los archivos del curso y los esquemas de la base de datos.