Transcripciones
1. Los formas son en Internet: Hola, John Morris. Aquí, John Morris online dot com. Esta lección. Yo solo quiero darte un tipo de imprimación en por qué creo que este conjunto de habilidades es tan importante y por qué creo que solo aprender esta sola cosa puedo decir que realmente te puede liberar para hacer algunas cosas increíbles cuando se trata de diseño web y desarrollo web. Ahora sé que la gente hace rodar los ojos en eso, pero pero yo quiero hacer es sólo una especie de mostrarte algunas de las cosas diferentes. Entonces, por ejemplo, tomemos un sitio como Facebook. Yo qué? Lo principal que haces en aquí es post status y respondió a estados, Podría ser en tu propia línea de tiempo. Podría estar en cosas de otras personas. Podría ser en grupos al final del día. Lo que estás haciendo es que estás publicando datos en una caja. Esto aquí es una forma por lo que en última instancia, el núcleo alrededor de lo que un sitio como este se construye alrededor son las formas. Si vuelves a dirigirte a Twitter, lo principal que haces aquí publicando en un formulario cuando eras una respuesta a
publicaciones de otras personas tu publicación en un formulario cuando subes un video a YouTube. Arrastraría un video por aquí, y luego tendría un formulario completo que tendría que llenar. Si quieres seguir implicar para empleos. Todo esto es un formulario que necesito llenar aquí. Incluso Google, el motor de búsqueda, es una forma que hay que llenar. Entonces el punto es que forma construyendo y entendiendo este fundamental te llevas todas las cosas de las que a la gente le gusta hablar en absoluto las cosas de fantasía Ajax y queremos hacer nota. Y queremos hacer todas estas cosas. Al final del día, lo muy fundamental que tienes que hacer que corre todo esto son las formas. Estás llenando formularios, y así poder hacer este tipo de cosas es sólo eso. Es esa habilidad fundamental la que te permitirá entonces poder hacer tipo de lo que
quieras . Ahora, obviamente, hay mucha complejidad más compleja que mucha de estas cosas quiero decir, Google tiene todo tipo de algoritmos detrás de ella. Facebook, etcétera. Pero al final del día, la interacción que tienen con el usuario final es a través de un formulario. Por lo que saber hacer esto es una habilidad muy fundacional, fundamental, crítica que cuando lo aprendes, puedes hacer como con ella lo que quieras. Se puede ir todo tipo de formas diferentes y de nuevo, como dije, te abre para poder construir algunas cosas increíbles en Internet. Entonces quiero enseñar esas habilidades fundacionales te van a enseñar cómo hacerlo con HTML, mi secuela y PHP y quiero tipo de quiero asegurarme de que tengo claro que no es ninguna de esas sobre la otra. Entonces, por ejemplo, en el curso, te
voy a enseñar algunas de las cosas nuevas y html cinco que puedes usar para algunos campos básicos requeridos de
validación, usando campos de email y todo ese tipo de cosas que te permitirá aprovechar el poder de H home, enseñar dos millas cinco y qué hay de nuevo en eso para ayudarte con tu forma. Entonces definitivamente hay un fuerte enfoque en la parte HTML de la misma, pero también vamos a entrar en la parte de mi secuela de ella,
y hablar de, ya
sabes, ya
sabes, construir tu base de datos y los diferentes tipos de datos y cómo dedo del pie en realidad te muestran cómo crear. Ah, tu primera base de datos. Si no has hecho eso en todo ese tipo de cosas, vamos a meternos en eso. Y luego, claro, está el código PHP en medio que conecta a los dos, y vamos a meternos en eso. Hablar contigo sobre seguridad asegurando tus formularios, um, haciendo con cosas de PHP construidas principalmente, pero también mostrándote algunas opciones que tienes. Si quieres salir de eso,
te alguna validación de cosas de terceros sanitización previniendo inyección SQL,
previniendo ataques de scripting de sitios cruzados. Todo ese tipo de cosas se iban a meter dentro de este curso. Entonces si quieres aprender esta habilidad fundacional ah, quieres aprender cómo el dedo del pie toma datos de un formulario, ponerlo haciendo a una base de datos y luego poder recuperar esos datos de nuevo fuera de la
base de datos y hacerlo de una manera muy concisa, específica, maneraespecífica,
precisa de la que te animaría a sumergirte en este curso sobre tackle head on. Entonces eso es un poco sobre el curso de un poco sobre lo que nos vamos a meter, así que eso decía: Vamos a sumergirnos en ello.
2. Cómo construir una forma simple: Hey ahi, John Morrissey, John Morse online dot com. Esta lección a la que vamos a esto es una especie de tutorial de forma simple. Ahora todavía hay un poco que pasa aquí, pero lo que quiero mostrarles aquí es la conexión base desde su formulario HTML a su script de
procesamiento PHP y en última instancia a su base de datos de mi secuela. Cómo se conectan todas esas 33 cosas. Entonces eso es por lo que vamos a estar pasando aquí muy rápido. Antes de que te metas en eso, solo
quiero que el dedo del pie saquen un par de cosas algo así no nos empantanemos con esos. Entonces por aquí, primero fuera de nuestra estructura tengo tres expedientes. Tengo conflicto consiguió PHP, al
que llegaremos en un minuto. Tener simple punto PHP, que es el que estás viendo ahora, tiene la mayor parte del código, la forma y el script de procesamiento en todo eso. Entonces tengo este estilo que CSS por lo que el estilo dot CSS es bonito, solo CSS básico. No voy a pasar por todo esto porque realmente quiero enfocarme en las partes PHP de esto, pero es lo que tipo de da esto Es un poco de la mirada aquí, así que no quería que fuera sólo una especie de forma completamente llana. Pero es solo un estilo muy, muy básico aquí, acuerdo? Y así Ah, ya
sabes, como
dije, prácticamente no voy a cubrir eso más después de este punto. ¿ Todo bien? Entonces, uh, lo primero que realmente quiero pasar por aquí es que quiero amparar quiero cubrir el formulario muy rápido, y luego quiero subirme a la base de datos y mostrarte cómo crear la base de datos que somos va a presentar esto en. Y entonces eso nos dará especie de dónde empezamos con la forma donde estamos terminando con la base de datos. Y luego podemos hablar principalmente del código entre los dos. De acuerdo, Entonces si bajamos a la forma Ah, solo ignora todo esto aquí arriba por un segundo. A partir de aquí con esta declaración de tipo doc, tengo un tipo estándar de página HTML que tendrías aquí con una etiqueta HTML ahead tag, body tag. Estoy configurando el conjunto de caracteres. Esto es para la capacidad de respuesta móvil aquí. Um, estoy vinculando en mi hoja de estilo justo aquí. Tengo mi etiqueta de título aquí. Por lo que esta zona de cabeza, nada realmente especial en esto. Esto es todo bastante estándar H dos más cosas. Ya ves, tengo este tipo de libro PHP bloque aquí. Llegaremos a eso en un segundo. No quiero entrar en eso todavía porque realmente no tiene sentido hasta que nos metamos en la parte de
código de esto. Entonces lo grande en lo que quiero enfocarme ahora mismo es esta forma parte. Entonces esta es la forma real que vemos aquí a la derecha. Entonces cuando escribimos nuestra etiqueta de formulario, hay un par de cosas que necesitamos especificar como mínimo. Por lo que necesitamos precisar la acción. Y la acción es esencialmente donde queremos enviar los datos que se van a enviar por el formulario. Entonces en este caso, lo
hemos dejado en blanco. Y lo que eso significa es que estos datos de formulario que se envían en realidad se van a enviar de vuelta a esta misma página. Entonces esto es lo que sería un llamado formulario de auto presentación. Y por eso nuestro código PHP que lo procesa está aquí mismo en la misma página. Ahora, si quisieras, podrías poner algo como, digamos, process dot PHP aquí. Y entonces podrías venir aquí y podrías crear un nuevo archivo llamado process dot PHP. Y podrías tomar todo este código y ponerlo por ahí si quisieras. Um uno. Yo quería mantener todo el código tipo de en un solo lugar, así que estábamos rebotando entre una tonelada de archivos. Ser un montón de veces. Un formulario de auto envío como este está perfectamente bien para lo que necesitas, Así que Ah, solo
decidí hacerlo así. No hay ninguna necesariamente Ah, ya
sabes, no necesariamente
hay una forma correcta de hacerlo, pero eso es justo lo que he decidido hacer aquí. A continuación se presenta el método, y está configurado para publicar. Ahora hay ahí. Las dos opciones principales que puedes poner aquí son ya sea post u get, y puedes o no estar familiarizado con esas. Esencialmente, la diferencia es que si envías datos vía get Así que si nos cambiáramos para conseguir así, lo que eso haría es cuando esto para Miss presentó todos esos datos se anexarían a la U. R L como consulta parámetros, y ahí es donde realmente sacarías los datos de así con y la mayoría de las veces, la única vez que realmente haces eso con tipo de formularios estándar es con un formulario de búsqueda y que la razón por la que haces eso con el formulario de búsqueda es porque si quieren un enlace a ciertas búsquedas de lo que todo lo que necesitas hacer es tener, cuanto más rápido puedas ejecutar la búsqueda, agarrar el parámetro de consulta. En realidad se puede enlazar directamente a esa búsqueda sin tener que enviar el formulario para hacer la búsqueda. Cuando tenemos un formulario como este donde estamos terminando, ya
sabes, un nombre y un correo electrónico, es una especie de datos sensibles. Generalmente, no
queremos poner eso en la URL. Por lo que la mayoría de las formas que vas a tener van a usar este método de post. Yo diría que yo default a usar post a menos que sepas con seguridad tener alguna
razón convincente por la que necesitas esos datos. Ah, en la URL aparecen después de eso, tengo una especie de html estándar aquí de algunos envolviendo cada uno de estos campos en Ah Div. Con una clase de campo de formulario, eso es sólo una especie de estilo de ayuda un poco. Ciertamente ni siquiera tienes que hacer eso si quieres. No es necesario. Súper importante. Aquí puedes ver cada una de las entradas y luego el botón están todos dentro de una de estas Ah , forma campo dibs. Aquí lo principal son estos tipos de entrada. Entonces estamos haciendo una etiqueta de entrada. Estamos configurando el 1er 1 a un tipo de texto porque ese es nuestro nombre. Y así solo queremos texto de cadena de texto ahí. Ah, estamos guardando la clase para enviar mensajes de texto. Entonces eso fue para que pudiéramos apuntar con nuestro CSS. Entonces. El gran cosa aquí es que estamos configurando que el nombre de esta entrada para nombrar. De acuerdo, Entonces Ah, podrías que eso fuera demasiado confuso. Haces nombre completo. Podrías hacer primer nombre lo que quieras que sea el nombre de esto cuando
lo vas a procesar en código. Eso es lo que dirías aquí. Ah, el marcapasos. es lo que pone aquí este final de lo de tu nombre. Entonces, um, eso es lo que hace el marcador de posición. Eso es una especie de nuevo tipo de html cinco tipo cosa Y entonces tenemos esta etiqueta aquí llamada required, lo que significa que HTML verá el navegador verá este campo como se requiera. Y así si realmente tratamos de enviar este formulario sin ningún dato, diremos,
Por favor, rellene este campo. Por lo que es una manera fácil de tener alguna validación de entrada realmente básica allí. Pero de nuevo, lo grande para nuestros propósitos de código es que el nombre de esto se establece en nombre, y tenemos otro campo de entrada. El tipo se establece en correo electrónico. Entonces, ¿qué? Al establecer el tipo Tomo, lo que esto va a hacer es que en realidad nos va a proporcionar un poco de validación. Entonces si tratamos de hacer J. J J. Y no tenemos ninguno a la señal aquí, está
bien, bien, y tratamos de enviar este formulario, se va a decir Por favor, incluya ese sitio en la dirección de correo electrónico, y así se va de nuevo. Haz algo básico de validación de correo electrónico ahora. No es infalible. Por ejemplo, podrías hacer J J. J en BBB, y me dejaría presentar este formulario. De acuerdo, así que otra vez, es simplemente realmente básico. Pero, ya
sabes, como que usamos todo lo que está disponible para nosotros otra vez. aquí. Tenemos este conjunto a clase de texto otra vez. Aquí tenemos el marcador de posición, pero el nombre de éste ahora es correo electrónico. De acuerdo, entonces y entonces tenemos nuestro botón aquí abajo. He dicho un botón con un tipo de botón de clase para que pudiéramos apuntar instancias bastante rectas para ello. De acuerdo, así que esa es la forma, Las cosas principales otra vez, Como dije o este nombre son los elementos de nombre aquí. Estos aire ¿Qué? Vamos a aparecer en nuestro código, y te mostraré dónde? Aquí. Ah, en sólo un segundo. Está bien. Entonces, en realidad, déjame simplemente seguir adelante y hacer eso aquí. Entonces voy a hacer impresión son. Y quiero mostrarles cómo se envían estos datos, se imprimen o en post, y entonces vamos a salir. Justo después de eso, vamos a imprimir lo que hay en este bloque de correos, y luego vamos a matar el guión para que podamos ver qué hay ahí dentro. Entonces voy a escribir mi nombre y la dirección de correo de Justin aquí. A mí me golpean. Presentar resbalones. Anita, pon huella son, uh bien. Bueno, recarga eso. Y entonces qué? Esto sí. Por lo que quiero tratar de asegurarme de que esto quede claro. Si no estás familiarizado con esto, cada vez que creas un formulario como este, este es un formulario Peter y HTML como este y pones el método de publicación lo que eso realmente
va a hacer cuando envíes el formulario. Cuando envíes el botón para el formulario es que va a tomar los datos que estaban en cada uno de estos campos de entrada, y lo va a poner en lo que se llama un súper global. Y un super global es esencialmente, um, es una variable que en PHP que está disponible en todas partes, ¿
verdad? Entonces es un global y es un súper global, así que es solo que está disponible. Básicamente, en todas partes no tienes dedo del pie, no
hay nada que tengas que hacer. Es solo que por arte de magia ahí, ¿de acuerdo? Y ah, entonces eso es lo que cuando hago esta impresión son eso es lo que es esto. De acuerdo, ahora, si hubieras usado el método get y estudiar usando post así, usarías la impresión son ponerse bien, y hay otros súper globales que están ahí fuera. Pero esos son los dos con los que estás trabajando formado a partir de tu principalmente vas a trabajar , y así todos nuestros datos que enviaron en el formulario. No importa cuántas entradas tuviéramos, podríamos sumar 100 entradas más aquí. Todos ellos van a terminar en este post super global. Y ese súper global es, como se puede ver aquí, una matriz. Y tiene nuestro nombre y nuestro correo electrónico de nuestro formulario. De acuerdo, entonces por eso esta parte del nombre aquí es importante, porque eso es lo que va a ser la clave para cada elemento en nuestra matriz. Si cambiamos esto a nombre completo, este ahora sería nombre completo aquí. De acuerdo, Entonces estos airen cómo vamos a referir lo que se presentó en el formulario a lo largo del resto de nuestro caso de código. Eso es importante, demasiado dedo del pie para tenerlo en cuenta mientras pasamos por esto. De acuerdo, así que ahora no voy a entrar en todo este código todavía porque quiero ir al otro lado
y solo mostrar el sitio de la base de datos porque en última instancia, ahí es donde van a ir los datos. Entonces para mí, voy a pasar a PHP mi administrador ahora, dependiendo del entorno en el que estés,
tal vez en un host local de esperanza como Wamp server o, um Ah, Zamfir. Algo más así suelen tener PHP mi admin disponible con eso? Ah, muchas veces a las que simplemente vas si estás accediendo a ella. Host local, irías a un host local slash PHP, mi administrador. Entonces eso es en realidad para mí. Eso es lo que hago. Yo solo tengo Ah, tú eres l por la mía porque es una nube yo d. Y voy a PHP mi admin y y esto es lo que consigo para tu on ah tipo de un
servidor web regular , Entonces puede que tengas que entrar a ver panel y ver panel . Por lo general se puede desplazar hacia abajo y se encuentra un enlace allí que dice, PHP mi administrador. Te dejará entrar en tus diferentes bases de datos y verás algo parecido a esto. Todo depende de qué versión de eso tengan instalada y todo ese tipo de cosas,
por lo que puede que no se vea exactamente así, pero debería ser alguien guapa. Estará lo suficientemente cerca como para que podamos funcionar aquí en nosotros en una página similar, Así que no tengo la base de datos creada todo todavía, así que en realidad te voy a mostrar cómo crear la base de datos. Entonces lo que eso es lo primero que vamos a querer hacer aquí,
ah, ah, es crear una base de datos. Entonces lo que vamos a hacer aquí es que puedes ver que aquí estoy en casa. Tengo todas estas opciones por aquí términos una ventana de consulta, todo este tipo de cosas. Si quisiéramos, podríamos hacer clic aquí en una de nuestras bases de datos. Um, parece que me desconecté. Hacer actividad Teoh. Alguien vuelve a iniciar sesión y otra vez. Entonces hay todo tipo de opciones aquí. Lo que buscamos aquí es este Enlaces de Bases de datos darán clic en esto y lo verás justo en la parte superior. Tenemos esta base de datos crear, así que voy a crear una base de datos llamada Forms. Está bien. Y si conoces el cotejo aquí, tienes algo específico que quieres usar. Ciertamente se puede hacer eso. Um, creo que a partir de esto, dudo en decirles algo específico, porque este tipo de tiende a cambiar una cantidad decente. Por lo que necesitarías probablemente fuera de buscar esto en función de la hora que estés viendo este tutorial. Creo que lo recomendado en este momento es utf a y antes de subrayado sido así que solo vamos a seguir adelante y usar eso aquí. Es posible que solo queramos hacer una búsqueda rápida en Google de tipo de cotejo de bases de datos estándar y ver cuál parece ser el sabor del día para ese período de tiempo en particular. Pero de todos modos, o podrías simplemente dejarlo en blanco y dejarlo como que escoja la suya propia. Pero vamos a golpear, crear aquí. Y así ahora se ha creado esa base de datos y se podría ver que la base de datos está por aquí, así que vamos a seguir adelante y dar click en eso. Y ahora lo que tenemos que hacer es crear una tabla en la que vamos a enviar estos datos. Entonces vamos a crear una tabla llamada usuarios y el número de columnas que vamos a establecer tres. Y te mostraré por qué aquí en tan solo un segundo. Por lo que los usuarios Columnas tres y pegarán Go. De acuerdo, entonces sabemos que tenemos nuestro nombre y nuestro correo electrónico de los datos que vamos a enviar a esta base de datos. Entonces eso son sólo dos columnas. ¿ Por qué necesitamos tres? ¿ Qué? Vamos a crear lo que se llama columna I. D. Entonces vamos a darle a este 1er 1 un nombre de I D, y voy a dejar ese set a ent. Um, voy a poner esto en 20 y ah, vamos a ir clave primaria y no no no,
ningún valor por defecto. Y eso debería estar bien ahí. Entonces qué estamos haciendo aquí Oh, camino. Necesidad de establecer el incremento automático. Eso es crucial aquí. De acuerdo, esta IA es auto Inker puede que necesite asegurarse de que eso está comprobado. Entonces, básicamente, lo que esto va a hacer es cada vez que esto para Miss
se someta, va a crear un nuevo registro en nuestra base de datos y vamos a echar un vistazo a lo que eso se
ve aquí en un segundo. Pero queremos ser capaces numéricamente tipo de indexar esos ¿verdad? Si piensas en una hoja de cálculo de Excel cuando estás en la hoja de cálculo, tienes números a lo largo del lado izquierdo. Eso es un 1234 y tienes números en la parte superior que dicen un B C D. Bueno,
por defecto, por defecto, una base de datos como esta no tiene esos números a lo largo de ese lado izquierdo. Entonces si quieres esos y prácticamente cualquier aplicación, vas a querer aquellos que necesitas para realmente crear eso. Y entonces eso es lo que ahora es este campo I D. Cuando te pones este ah, auto incremento, lo que significa es que no tienes que meter manualmente los números ahí dentro, así que no tienes que especificar el uno, los dos, los tres. Lo que va a hacer es cuando se presente el primer registro, automáticamente
va a dar que el número uno el siguiente registro le va a
dar automáticamente el número dos. Entonces eso es lo que significan los incrementos de auto. Se va a auto incrementos. A medida que agregaron los ojos de cada registro, También va a usar esto como primo, la clave primaria. Entonces es básicamente decir,
Ah, Ah, mi secuela, que esta es la clave principal para esta base de datos que vamos a estar usando para cuatro King. Esencialmente agregar estos números yo d es lo que es eso. Entonces para King, esta mesa. Ah, y necesita ser único y todo ese tipo de cosas. Entonces eso es lo que es esta columna. Siguiente, entonces, son los que tipo de estándar pensaría en. Entonces vamos a tener nombre y vamos a ahora podrías ir y venir aquí si
vas a tener algo que tiene,ya
sabes, ya
sabes, tal vez este es un cuadro de comentarios. O tal vez estás creando un CMS y vas a poner Ah, esta va a ser tu caja de contenido post. Harías algo tal vez más grande, como texto. O tal vez podrías bajar aquí a un texto largo, dependiendo de cuántos datos creas que se van a poner ahí. Tú como que decides. Y hay todo tipo de información por ahí sobre cómo decidir eso. ¿ Cómo qué? El aire de uno, ¿verdad? ¿ Para qué escenario? Ah, otra vez, quiero tratar de mantener esto simple, Así que quiero meterme en eso. Pero aquí, vamos a usar var char, y sólo vamos a ir 20 porque el nombre va a ser, ya
sabes, va a ser justo. La mayoría de los nombres van a ser bastante cortos, así que no tenemos dedo del pie. En realidad, vamos a 40 porque eso debería ser bastante para lo que necesitamos aquí. Y luego vamos a ir con el correo electrónico y vamos a ir con 2 55 que es una especie de
cosa estándar para ah, usando correos electrónicos vamos a hacer var char otra vez. Por el momento, cargo solo significa que es una variable. Personajes que podrían tener, ya
sabes, cinco personajes en
él, podría tener 20 solo es algo que es eso una variable. Y la forma en que se siente algo afecta la forma en que llena los datos en la base de datos . Por lo que no estás ocupando tanto espacio ayuda un poco con el rendimiento. Esa es una especie de la idea básica aquí. No es algo en lo que meterse demasiado para estos. Yo sólo me apegaría a esto aquí y luego No necesitamos poner nada más para ninguno de estos para que podamos seguir adelante y golpear save aquí y ahora eso va a crear esos. Si vamos a estructura, ahora
tenemos nuestro campo I. D. Tenemos nuestro nombre sentir y tenemos nuestro campo de correo electrónico. Por lo que ahora tenemos nuestra estructura a la que podemos enviar nuestros datos. Entonces tenemos nuestro formulario que tiene el que va a recolectar en realidad los datos que ahora tenemos nuestro espacio de
almacenamiento que vamos a almacenar esos datos en especie de son. Si quieres utilizar la analogía de una hoja de cálculo, tenemos la hoja de cálculo. Vamos a almacenar los datos ahora. Tenemos que conectarnos a los dos juntos. Entonces cuando se presenta el formulario, en realidad
lo envía a esta tabla y a esta base de datos. Entonces eso es lo que realmente hace el código PHP del que vamos a hablar. Y necesitamos hundir esas cosas. Eso también lo haría dicho. Hay un par de cosas que tenemos que mirar aquí. Entonces lo primero es que necesitamos entrar en nuestro archivo de conflictos. A mí me gusta poner esto en un archivo de conflicto, y necesitamos hacerlo. Tenemos que especificar algunas cosas aquí para acceder a nuestra base de datos, por lo que lo primero que necesitamos especificar es el nombre de la base de datos. Entonces recuerda, creamos la base de datos. Se llama formularios, y así vamos a especificar que el nombre de esa base de datos. A continuación, necesitamos al usuario. Entonces en este caso, solo
estoy usando la cuenta root porque estoy en un entorno estoy en un entorno de pruebas, y así el nombre de usuario en las contraseñas o usuario y pasar aquí. Es grosero, y es una contraseña en blanco. Ahora eso es por defecto en, diría, si se usa algo como ejemplo de William Server. Ha pasado un tiempo desde que te tengo Algunos de esos. Pero mi recuerdo es que eso es bastante estándar para probar entornos Eso va a ser ruta y luego una contraseña en blanco. Es posible que solo necesites consultar con cualquiera que estés usando. Tal vez un poco diferente. Así que solo compruebas y luego ves, um, Pero cuando se trata de servidores de producción reales, mayoría de las veces vas a tener un asistente donde realmente creas la base de datos a través ver panel. Y cuando crees la base de datos va a tener que establecer un nombre de usuario y una contraseña, y así vas a tener esos. Tan solo asegúrate de copiar esos en algún lugar. Entonces tienes los disponibles para ti, pero esos aire lo que pondrías aquí para el anfitrión más configurado tal va a ser
anfitrión local . Yo he visto algunos, creo, Go, papi, donde hay que especificar algo un poco diferente. Entonces si intentas host local y estás obteniendo algún tipo de aire que sobre eso relacionado con el host, entonces puedes ir a tu documentación para tu servidor Web y ver si hay algo más que necesites especificar o contactar con tu soporte ahí para ver si hay algo más que debes especificar aquí. Pero yo diría que la mayoría de ellos, va a ser esta cosa del anfitrión local. Está bien, entonces estamos poniendo todo esto en este archivo de conflicto, que no tengamos que redefinirlo constantemente. estamos definiendo como Constance, lo que significa que son algo básicos. El modo de decirlo es de su tipo disponible a nivel mundial. Van a estar disponibles dentro y fuera de funciones por defecto. No tenemos ninguna función en la versión simple,
pero ah, pero ah, en caso de que lo hiciéramos, es sólo una especie de práctica estándar poner estas en el archivo de conflicto. ¿ Verdad? Entonces voy a ir a cerrar esto porque ya no lo vamos a usar. Se puede ver que estamos haciendo un requerimiento una vez aquí para requerir ese archivo de conflicto en nuestro simple punto PHP archivo dice que básicamente está trayendo los datos del archivo de conflicto. Entonces ahora que podemos Accel evaluar esas constantes aquí, Muy bien, así que eso está configurado. Aquí se puede ver. Este es en realidad nuestro código de inserción aquí mismo. Entonces puedes ver que es realmente bastante simple. No hay una tonelada para ello. Entonces lo primero que vamos a hacer es que vamos a ver si este post super global tiene algún dato en él. Y la razón por la que queremos hacer eso es porque si vamos a este formulario y no
se han presentado datos , Entonces cuando alguien primero aterriza en el formulario, no
queremos hacer nada porque no hay datos con los que trabajar. Y así sólo estamos revisando para ver si este post super global está vacío. Si no está vacío. Entonces eso es lo que significa este signo de exclamación antes de vacío. Por lo que no vacías. Entonces eso vamos a cuando vamos a hacer el resto de estas cosas aquí. De acuerdo, entonces nos desharemos de esto aquí por un segundo, y ahorraremos eso. Y así lo primero que vamos a hacer que necesitamos hacer es hacer una conexión con mi secuela. Entonces vamos a instancia ocho una nueva instancia de mi vida cuadrada. Entonces esta es una especie de la construida en mi escuela me extendo para ah, para PHP. Y por supuesto, podrías usar PDO aquí. Si estás familiarizado con eso, sin duda
puedes hacerlo. Y se puede intercambiar eso aquí. Y yo sólo voy tratando de ir con especie de la norma ¿Qué? ¿ Qué hay aquí y disponible? Um, dentro de un PHP, aunque de nuevo, PDO es estos días. Pero en todo caso, vamos a aguantar a ella una nueva instancia de mi escuela. Yo esto va a abrir una conexión a nuestra base de datos o a mi secuela y luego seleccionar nuestra base de datos para que podamos empezar a trabajar con. Por lo que pasamos en el host de base de datos, que, recuerden, era anfitrión local. Pasamos nuestro nombre de usuario, que recuerdo de nuestro conflicto. Perfil era ruta. Nuestra contraseña estaba en blanco. Y entonces el nombre de nuestra base de datos, que era formas y lo que esto hace es crear básicamente una conexión a nuestra base de datos en la que ahora
podemos empezar a ejecutar consultas. De acuerdo, Ahora, tenemos que hacer eso primero, porque voy a usar este método que está disponible para mi SQL. Llamé a cadena de escape real. Um, y necesitas tener la conexión de mi secuela antes de poder hacer esto. OK, entonces por eso necesitamos hacer esto primero. Entonces lo que vamos a hacer es correr un mapa de lluvia. Entonces, esencialmente, lo que hace un mapa de rayos es
que va, pasa por una matriz, y decía cada elemento en esa matriz a una función de devolución de llamada que especifique. Entonces lo que estamos pasando para una matriz es nuestro post array. Recuerda, teníamos nuestra matriz que tiene toda la información de nuestro formulario en ella. Entonces somos palmaditas. Esa es la matriz por la que vamos a recorrer. Y la función a la que lo vamos a enviar es en realidad un classmethod. Y así cuando haces un classmethod en lugar de simplemente poner el nombre de la función aquí Ah, pones un rayo y pasas en el objeto. Ah, variable. Aquí. Entonces mi secuela, esto es a lo que nos conectamos y pasamos, entonces el método principal. Entonces, esencialmente lo que va a hacer este mapa de matriz va a tomar cada elemento en nuestro post super global post array, y lo va a ejecutar a través de esta,
mi secuela, mi secuela, Real Escape String Method. Ahora, lo que hace ese método es esencialmente escapa a los datos. Entonces esto es sólo un tipo básico de cosa de seguridad que estamos haciendo aquí, y luego toma ese escape. Se necesita que los datos de escape lo pongan de nuevo en array, y se guarda como esta variable de datos y ya verás a partir de aquí estos datos, las variables van a ser una especie de con lo que trabajamos. Entonces este es un chequeo de seguridad
realmente, realmente básico aquí. Ahora, quiero advertirte aquí. Este es el mínimo absoluto desnudo. Y realmente, la única razón por la que incluso hice esto es porque no quería darte código que no tenía al
menos el mínimo desnudo en materia de seguridad. Pero esto no es suficiente seguridad para usar realmente esto en producción. De acuerdo, voy a hablar de seguridad en la próxima lección. Vamos a entrar e ir como todo en cómo asegurar esto, pero como que debatí entre Ah, poniendo esto. No están metiendo esto ahí. Y decidí meterme ahí porque simplemente no quería darte algo que no
tenía por lo menos ah, mínimo
desnudo. Pero esto no es suficiente. Estoy tratando de enfocarme en la conexión con mi secuela y todo ese tipo de cosas. Por lo que estoy tratando de no ir fuerte, fuerte inseguridad aquí. Entonces lo que quiero advertirles es pensar Oh, bueno, soy bueno en seguridad. Ahora estoy seguro. Sí, se va a escapar de los datos y probablemente estará bien. Pero hay algunas adversidades a eso, y hay algunas Ah, no
estamos haciendo todo exactamente a la perfección aquí, así que Ah, sólo
quiero asegurarme de que eso quede claro. Está bien. Entonces eso fuera del camino, entonces lo siguiente que vamos a hacer es que vamos a ejecutar extracto de nuestros datos. Entonces, esencialmente, lo que eso hace es extraer los elementos de nuestra matriz y los convierte en variables. Y así se necesita y se utiliza porque es una matriz asociativa. Déjame seguir adelante e imprimir esto Ah, array de vuelta hacia fuera. Ya que estamos hablando tanto de ello, así y luego salir. Sigamos adelante y enviemos de nuevo este formulario para que podamos ver como los datos
con los que estamos trabajando aquí. Entonces Smit que Ok, entonces tenemos un rayo asociativo significa pares de valores clave nombrados. Entonces esta es la clave, y luego este es el valor para este elemento, y ese es el primer elemento en la matriz. Y entonces tenemos una clave y un valor para este elemento aquí. Entonces, lo que hace el extracto es esencialmente toma estos datos y crea una variable llamada nombre cuyo valor se establece en John Morris. Entonces esto sería esencialmente lo mismo que decir Nombre es igual a John Morris. Está bien. Crea una variable con el nombre de la clave y el valor establecido en lo que esté en el valor aquí. De acuerdo, entonces solo estamos haciendo eso porque tenemos una matriz. Simplemente lo estamos haciendo sin tener que especificar todos y cada uno de los elementos Ah, con los
que queremos trabajar aquí. De acuerdo, Entonces, esencialmente, después de ejecutar el extracto, lo que tenemos es que tenemos una variable llamada nombre y una variable llamada correo electrónico, y están configurados a estos datos de esta matriz. Um ah. Uh, en consecuencia. Entonces ahora realmente podemos usar esos datos. Tenemos que hacer eso por la forma en que estamos pasando los datos aquí. Um, nosotros usando la calle Data de la matriz no funcionaría ruta estaban muy bien. Esto va a ser menos de la cosa cuando lleguemos a la siguiente parte donde hablamos de asegurarlo. Pero ahora aquí podemos configurar nuestra consulta. Por lo que para insertar datos en una base de datos, utilizamos el inserto en el nombre de nuestra tabla, que recuerdan, era usuarios y luego las columnas en las que no vamos a enviar los datos. Entonces recuerda, en nuestra base de datos tenemos una columna. Contamos con la
Columna I. D. D. El nombre de la columna en la columna de correo electrónico. Ahora no tenemos que hacerlo. Como dije, no
tenemos que precisar el i. D. Va a auto incrementos, así que ni siquiera podemos presentarle datos, aunque quisiéramos. Entonces todo lo que necesitamos precisar son las otras dos columnas. Por lo que la columna de nombre en el correo electrónico. Tranquilo. Entonces estas la calma en la que vamos a presentar datos. Y luego estos airean los valores. Y así es la variable nombre y correo electrónico. Entonces esos son los datos que obtuvimos de nuestro formulario. Entonces pasamos del formulario a nuestro array post ah de nuestro post array en nuestra consulta aquí. Entonces así es como estamos atando nuestra forma a través de nuestro PHP frío, última instancia a nuestra base de datos. Por lo que estamos emparejando columnas con datos de nuestro formulario. Eso es esto en última instancia este nombre de variable es datos enviados desde nuestro formulario. Este correo electrónico variable son datos enviados desde nuestro formulario, por lo que se pasa de una cosa a la otra. De acuerdo, y estos están en orden, así que si cambiara esto y dijera nombre de correo electrónico, el código PHP no sabe nada diferente. Enviaría el nombre la variable nombre en la columna de correo electrónico. De acuerdo, entonces es Es tonto en ese sentido. Por lo que hay que asegurarse de que estos aire en el mismo orden que el otro, Así nombre,
Nombre, Nombre, correo electrónico, nombre, correo electrónico. Correcto. Entonces ahora, una vez que tengamos esa consulta todo configurado, entonces y déjame solo ejecutar esto fueron las huellas de Meteo están encendidas porque solo pude hacer eco de ella. Pero solo haremos esto ya que ya estamos ahí. Estampado están ahí. Deshaznos de éste y mostrarte las esperanzas reales de consulta. Necesidad de volver a enviar los datos. Y así se puede ver insertar en la tabla de un usuario las columnas de nombre y correo electrónico, los valores John Morris y el remordimiento deportivo femenino online dot com. También te diste cuenta de estas ah, comillas
simples aquí. Esos tienen que estar ahí también. De acuerdo, justo la forma en que funciona. Necesitas tener esos ahí. De lo contrario el crear no funcionará. Muy bien, Así que una vez que tengamos todo eso, entonces todo lo que necesitamos hacer es ejecutar nuestra consulta. Entonces vamos a pasar nuestra consulta que acabamos de crear aquí en esta mi secuela, método de
consulta, que en realidad va a ejecutar la consulta, enviarla a mi secuela y obtener una respuesta de vuelta. Entonces este es el todo real hasta este punto, serio? Se está configurando para ejecutar nuestra consulta. Aquí es donde realmente lo ejecutamos. ¿ Esta línea 14 está justo aquí? De acuerdo, entonces cuando hacemos eso, esencialmente con ahora, el método de consulta, dependiendo de él, depende de qué tipo de declaración de consulta envíe. Entonces, si envías una declaración selecta, en realidad
estás agarrando datos de la base de datos. Y así lo vas a hacer si la consulta pasa, vas a recuperar esos datos. Y hay ciertos otros donde lo que devuelve este método de consulta va a ser diferente. Pero con una declaración de inserción como
esta, esto simplemente va a devolver verdadero o falso. De acuerdo, entonces esta variable de inserción o va a ser cierta o va a ser falsa. Ah, y así entonces podemos usar eso. Eso es entonces lo que usamos aquí abajo para especificar nuestro mensaje. Está bien, entonces, nuevo, en este punto, nuestros datos se envían o no lo son, y luego aquí abajo, vamos a decir, Bueno, OK, si inserto está configurado en algo, correcto, por lo que si está configurado en algo, entonces queremos ver qué establece también. Entonces si es,
ah, ah, vamos a mostrar esto ya sea un mensaje de éxito y mensajes de aire depende de lo que se establezca Necesitamos envolver esto está configurado. De lo contrario el resto de estos te dará un error de aviso. Entonces básicamente, ejecutar se establece primero y luego dentro de eso, si se establece en verdadero, vamos a ejecutar este mensaje de éxito y si está configurado en otra cosa que no sea verdadero, lo
cual sería falso porque es cierto o falso que vamos a mostrar un mensaje aéreo y que hubo un aire con esta sumisión. Entonces si voy a recargar esto, ya puedes ver que tenemos esto. Los datos se insertaron con éxito Mensaje de esos datos que acabamos de enviar. Si venimos a nuestra base de datos aquí, hacemos clic en volver arriba en nuestros usuarios. Ya puedes ver ahora tenemos nuestro campo yo d. Tenemos nuestra columna de nombre, nuestra columna de correo electrónico, y tenemos nuestros datos enviados en o formulario aquí. Por lo que se presentó con éxito así de nuevo, ese es el camino desde la forma a través del código PHP en última instancia a la base de datos. Entonces así es como enviar datos de un H tomo derretir formulario html en una base de datos de mi secuela usando PHP. Ahora, sé que probablemente te tiré mucho ahí. Lo que yo recomendaría es que te metas aquí y especie de lío con esto tú mismo. Podemos hablar de más campos y así sucesivamente. Um ah, un poco más tarde. Pero métete aquí y límpiate de esto tú mismo configurando tu base de datos. Ya sabes, uh, tipo de averiguar el código, pasa por esto otra vez si necesitas, um y sólo un poco de inmersión en esto porque este tipo de cosas, esta forma a base de datos especie de cosa es que es una clave realmente justa fundamental de construir cualquier tipo de aplicación o realmente construir un sitio web que tenga cualquier tipo de interactividad a No importa. Para tus nombres de recopilación y correos electrónicos, podría ser cualquier cosa si miras
Twitter, tweets de twitter o es una forma que estás enviando a publicaciones de Facebook. Ah, hay un formulario al que estás sometiendo. Si subes un video de YouTube. La mayor parte de lo que hay que llenar es llenar un formulario, así que todo son formularios. Por lo que esta es una habilidad fundamental realmente clave para si quieres ser un codificador solo
construcción de sitios web . En general, si quieres tener un sitio web interactivo, quieres recolectar información. Es una habilidad clave. Así que indaga en este tipo de ir a través él, pon tu cabeza alrededor, y debería empezar a ser un poco más claro. Está bien, eso lo hará para esta lección. Gracias por ver. Hablaremos contigo la próxima vez.
3. Cómo proteger tu formulario: Heather John Morris aquí, John Morris online dot com Este sistema. Vamos a hablar de cómo asegurar nuestro formulario ahora. Entonces hay unas cuantas cosas que tenemos que adherir y solo a tipo de tapar solo de verdad brevemente la mentalidad aquí, Lo que siempre trato de decirle a la gente cuando se trata de seguridad es que hay que
tener en cuenta es que no hay ningún tipo de duro, reglas rápidas porque en última instancia con lo que estás lidiando es con gente que está tratando de hackear cosas. Entonces cada solución o cosa que averiguamos con el fin de ayudar a hacer algo más seguro, siempre
están tratando de encontrar maneras alrededor de esos dedos hackear de diferentes maneras y así sucesivamente. Entonces es por eso que los valores tipo de siempre este tipo evolutivo de puerta giratoria sobre diferentes cosas que tenemos que aprender. Pero con eso dicho, hay algunos fundamentos que podemos pasar por algunos conceptos básicos que podemos hacer con el fin ah, asegurar las amenazas conocidas que hay por ahí y tipo de construir una manera donde sería difícil hackear o Garlits del enfoque que alguien podría tomar. Entonces hay algunas cosas que quieres tener en cuenta con esto. En su primer momento, hay una especie de lo que yo llamaría forma de validación, y eso probablemente sea un poco diferente a lo que has escuchado. De la forma en que has escuchado eso de antes en adelante haré la distinción aquí pero por invalidación es en realidad validar que los datos que recibimos a nuestro post script. Entonces la parte de nuestro script que va a procesar el post Atta del formulario sí recibió uno era en realidad de nuestra forma, porque cuando tienes un script por ahí que procesará los datos de la publicación, procesará esos datos de la publicación de un Solicitud Ajax. Lo procesará desde ah, solicitud
curl archivada, consigue atrapar cualquiera de ese tipo de cosas para que alguien realmente pudiera encontrar tu formulario y
averiguar dónde está tu script de procesamiento. En este caso, es en las mismas páginas o formulario, y si
quisieran, podrían construir ah programa o usar un script programador que le enviaría un a no en realidad de este formulario en particular. Entonces lo que queremos hacer es una especie de ayuda a eliminar todo eso, y hay una manera de que podamos hacerlo usando no, ah, matices de
forma y hablaremos de eso en este video. También hay lo que yo llamaría validación de entrada, que es mawr. qué piensas cuando piensas en la validación de formularios y esos son los datos reales que presentaron en cada una de las entradas validando y o desinfectando esos datos antes de que lo vamos a poner en nuestra base de datos, Entonces tenemos previniendo ah SQL ataques de inyección, cuales vamos a hablar de eso y usando declaraciones preparadas y luego otro que tendríamos serían ataques de scripting de sitios cruzados. Y no vamos a hablar de eso en este video porque te ocupas de eso cuando realmente vas a mostrar los datos que aún no hemos llegado. Pero cuando hablamos de mostrar los datos, todos también cubren esos ataques de scripting de sitios cruzados. Entonces todo eso decía, Ah, esas fueron algunas de las cosas que vamos a hablar de cómo defendernos de esos y algunos fundamentos por los que puedes pasar para hacer eso. Por lo que un poco de configurar aquí. En primer lugar, si vamos a nuestro archivo de conflicto, notarás que he creado una nueva constante aquí llamada nonce soul y tengo
una especie de aleatorio una cadena de caracteres aquí. Ahora puedes Es ah, punto
al azar o chico creen que lo es. Puedes ayudar a usar eso para obtener una cadena aleatoria de caracteres. Ahora, este tipo de cosas. Lo que te voy a mostrar con todas las cosas de hashing que no se recomiendan para contraseñas PHP ha incorporado cosas de hashing de contraseñas. Entonces, um, esto no es esto solo por generar y nonce. Um, y no son anuncios, porque aunque alguien se dé por ahí, esto que seguimos protegiendo consigue ataques de inyección SQL te mostrarán una forma de que puedes otra forma de lidiar con el spam y así sucesivamente. Por lo que no es como misión crítica. Yo diría que sí. Ah, ya
sabes, no lo hacemos Vamos a una especie de algoritmos hash estándar aquí, pero si estás tratando con contraseñas y una tienda esas en la base de datos, es bastante crítico que uses las cosas construidas en PHP, pero de nuevo, puedes ir a las org de puntos aleatorios y te permite generar cadenas aleatorias que recomiendo. Básicamente, lo que hago es un generar cinco popa cinco cuerdas que airean 20 caracteres y luego todos agarran dos o tres de ellos y los combinan juntos para crear esta tontería. Todos dicen que tú, uh, instalaste este formulario en O R. Realmente, cada página en la que estás usando este formulario debería tener un diferente no sal. Si usas lo mismo,
no la sal a través de diferentes formas se vuelve más fácil para que alguien averigüe qué tonterías y en realidad ser capaz de hackett. Por lo que siempre debes estar usando un no-sal diferente para cada instancia de esta forma. Ah, que estás usando. Y luego entraremos en otras formas en que vamos a hacer esta variable también. Pero tengo esta definición de este no lado. Esto es algo que no es sal. Esto es algo que tendrás que añadir manualmente de nuevo. Puedes usar punto aleatorio o para ayudarte a generar esa corriente. Muy bien, así que una vez que tengamos eso, entonces hay un par de cosas que hemos agregado a nuestra forma. Entonces si vienes aquí abajo, nosotros Ya ves, ahora
tenemos tres campos de entrada ocultos aquí y esos de acción de tiempo de aire y lo hachís. También lo son los nombres eran forma estampada de tiempo, acción y forma hash. Entonces, básicamente, la idea aquí es siempre que esta página se cargue esencialmente Lo que vamos a hacer es
crear lo que se llama nonce, que es un número usado una vez. Y cada vez que esta página cargue ese nonce va a ser diferente porque se basa fuera del tiempo. Entonces si, uh, mira, si volvemos aquí arriba, puedes ver que estamos ajustando estábamos agarrando el tiempo ahora. Entonces esta es una función de tiempo es una función de PHP incorporada que nos da caso de marca de tiempo UNIX. Vamos a establecer eso para configurar esta acción para enviar formulario. Entonces la forma en que funciona la acción es básicamente lo que estés intentando, en
cualquier momento, cualquier tipo de acción que estés tomando que quieras nonce bien, que quieras hacer este tipo de protección para debe tener un Cada uno de esos debería su propia declaración de acción. Entonces, por ejemplo, si estuviéramos en un CMS y quisiéramos dejar que alguien haga clic en un enlace para eliminar usuarios, podríamos nudos. Nos queda nonce. Ah, eso haciendo Ah, usando un formulario y usando get en contraposición a post. Pero eso borrar acción que sería una acción en sí misma. Por lo que borrar post estaría en acción. Otra acción dentro de ese TMS podría ser eliminar un comentario. Eliminar comentario sería una acción diferente o eliminar un usuario eliminar usuario sería una acción
diferente o eliminar categoría sería una acción diferente. Por lo que todas son acciones diferentes, y tendrían diferentes valores aquí para esta acción. Por lo que realmente cambiarías esto aquí mismo por cada uno de esos. Ahora con esto otra vez, al
igual que el no debe ser diferente para cada instancia de esta forma que pones en tu sitio. Esta acción debería ser diferente también,
así que acabo de enviar formulario para mantener un genérico. Pero sea lo que sea para la señorita cuatro. Entonces, por ejemplo, digamos que esto es que eres una especie de genérico. Optar en forma por lo que podría poner opt in genérico. Y luego si pones esto en otra parte de tu sitio y has cambiado los campos de entrada por completo y estás tomando tus comentarios para que ese sería el formulario de comentarios por lo que
utilizarías una acción diferente. Por lo que es importante que estas variables se airen diferentes para las diferentes instancias de este formulario donde estás usando, ya sea sitios diferentes o páginas diferentes en un mismo sitio. Ah, es importante que sean diferentes Porque si los mantienes igual en todas estas formas, si alguien realmente quiere intentar hackear tu sitio, van a empezar a poder descifrar, ah, las tonterías y demás y la hace más fácil para ellos poder hackear tu sitio. Por lo que quieres hacer diferentes todas estas cosas. Entonces tenemos el tiempo. Tenemos la acción y tenemos no se venden. Estas son las tres cosas que vamos a usar para crear un hash. Por lo que se podría decir que estoy usando el Sprint F aquí. El modo en que funciona Sprint F es estos esses porcentuales o comodines de posición. Por lo que la acción se pone en lugar de esto. Ah, este de aquí, tiempo se pone en lugar del 2do 1 y el no sal se pone en lugar de este 3er 1 Entonces, básicamente, lo que tenemos es que tenemos acción subrayado tiempo subrayado no son sal. Entonces esa es nuestra cuerda. Acabamos de crear una cuerda de esas tres cosas. Y entonces lo que vamos a hacer es que los vamos a ejecutar a través de esta función hash usando este algoritmo Shah 5 12. Um y pasando esta cuerda, y vamos a guardar ese hash de dedo aquí. Entonces esto es lo que crea nuestro hash. De acuerdo, entonces si escuchamos, recargar esta página o rápido si inspecciono esto Y recuerda, estamos haciendo eco de ese hash aquí abajo en este campo oculto llamado form hash. De acuerdo, entonces si inspecciono esto aquí abajo, esto es esencialmente lo que estamos recibiendo. Estamos recibiendo esta larga cadena de caracteres bien que creamos de acuerdo a un patrón. Ahora, lo importante es que hemos creado ese hash, Pero tenemos que enviar este formulario,
y cuando este formulario enviar va a recargar esta página, y así todo este valor de tiempo se va a restablecer dedo del pie cuando esa página recargar. Entonces en realidad va a ser diferente a lo que era cuando nos presentamos. Ah, la forma. Y así tenemos que realmente poner la marca de tiempo en nuestro campo oculto aquí para que podamos debilitar re re Podemos revisar nuestro hash. Eso se pasó con base en el momento en que realmente cargó la página del formulario, no cuando se presentó, porque eso básicamente lo hará para que no coincidan. De acuerdo, entonces por eso estamos poniendo tiempo estampando aquí y formamos acción aquí porque en
realidad vamos a presentar, Recuerda, estamos usando, Ah, tiempo estamos usando acción, y luego estamos usando un nonce. Bueno, estamos poniendo en el tiempo la acción y el hash que se creó cuando todo esto estaba cargado. Por lo que tenemos todo lo que necesitamos para hacer nuestra comparación y luego son tonterías almacenadas en nuestro archivo de
conflicto. Entonces lo que el hacker no sabe son los nudos. ¿ Verdad? que pudieran llegar a esto y podían ver por ahí usando el tiempo estampado usando esta
acción de forma . Um, pero no conocen a la nonce. Y así es como si se piensa en una clave pública y una clave privada, así es como funcionan muchos ojos de AP y esas cosas. Ahora, las tonterías esencialmente tipo de nuestra clave privada. Y de alguna manera, así de nuevo, lo que esto nos permite hacer es que son nuestras formas, básicamente no nos vamos a presentar si nuestro nonce no coincide. De acuerdo, entonces estamos estableciendo una forma para que sepamos que en realidad se presentó desde este formulario en particular. De acuerdo, así que una vez que tengamos todo eso configurado, entonces lo que podemos hacer es volver a nuestro recuerdo que teníamos antes. Si Post, si Post no está vacío, entonces vamos a hacer cosas con nuestros datos de post. Ahora todo esto aquí ha cambiado. Sólo te lo diré ahora, Pero voy a caminar por todo esto paso a paso. Entonces lo primero que hago aquí es solo extraer Post. Ya no vamos a usar un mapa de rayos y mi secuela, Real Escape String de eso. Vamos a usar declaraciones preparadas y hacerlo bien. Y así sólo necesitamos uno thes en variables. Será más fácil trabajar con él. Por lo que Extract va a sacar todos nuestros datos de post y crear variables fuera de ella con las que
luego podremos trabajar. Entonces lo primero que vamos a hacer entonces es revisar nuestros nudos. Entonces lo que vamos a hacer es que vamos a recordar aquí arriba creamos corriente así. Bueno, lo que vamos a hacer es que vamos a recrear esa cadena ahora con el pero vamos a usar estos datos enviados. De acuerdo, Así que vamos a tomar recordar, formar acción fue la acción que se presentó en este campo, y vamos a la marca de tiempo es la marca de tiempo que se presentó en este campo. Entonces ahora nos estamos llevando las cosas. Ese fue el, um, dato que fue presentado por el formulario. Y estamos creando un hash fuera de. Estamos creando esencialmente un nuevo hash a partir de eso. De acuerdo, así y luego adelante. Y eso es lo que estas dos líneas hacen aquí mismo. Básicamente son lo mismo que estas dos líneas de aquí arriba, pero son los datos que se presentaron por el formulario. De acuerdo, en la forma Campos ocultos aquí abajo. Y entonces estamos comparando ese re cálculo del hash con el hash que se pasó en la forma. De acuerdo, entonces tenemos un hash que se creó cuando se cargó la página, y luego estamos recreando ese hash cuando el por miss enviado, y estamos comprobando contra lo que calculamos cuando se presentó el formulario versus el hash que se creó cuando se cargó la página. Y esas dos cosas tienen que ser las mismas ahora. El único caso y con el que no serían los mismos es si esto los datos de post que se enviaron a nuestro script de procesamiento no provenían de este formulario. De acuerdo, entonces Así es como validamos que Estos datos, los datos que se enviaron a nuestro post script provenían de este formulario. El único modo para que emparejen es que haya venido de esta forma. Por lo que elimina básicamente a las personas que usan Ajax y curl en todas estas otras cosas para tratar de enviar nuestro formulario. Es sólo un límite. Nuestro formulario simplemente no se presentará. De acuerdo, así que eso es lo que se pretende hacer todo esto. Y eso es lo que todo lo que esencialmente está creando todos estos hashes y luego ejecutando este cheque aquí mismo. Entonces sobre Lee, Si coinciden, ¿entraremos entonces en el resto de este guión? Si no hay una coincidencia, estaban ejecutando este bloque else justo aquí, que esencialmente establece inserte dedo del pie falso. De acuerdo, entonces vamos a conseguir eso. Básicamente estarían mostrando mensaje de aire que dice falso. Entonces nada va a pasar si eso si eso no funciona así de nuevo, eso es ah, especie de nuestra primera línea de seguridad es asegurarnos de que los datos que obtuvimos provengan de esta forma
específica. Muy bien, ahora, una vez que esa es realmente la parte más complicada de todo esto, el resto de esto es realmente, realmente simple, Así Ah, y también, que es por qué cuando estás usando hash, estás haciendo contraseñas Realmente recomiendo usar PHP está integrado en funciones porque son solo funciones a las que podrías llamar, y hacen esto mucho más fácil. La otra cosa es, es que no pude hacer esto. Ah, podría limpiar esto poniendo este algoritmo hashing justo aquí de la forma en que estamos hash estos en su propia función. Y entonces en lugar de tener el dedo derecho recreado aquí, solo
podría llamar a la función cuando la necesite. Pero eso crea una capa extra de abstracción que podría ser difícil de seguir al ir de la forma que teníamos antes a la forma que tenemos ahora. Entonces no quería hacer eso. Yo quería hacerlo un poco,
algo verboso aquí para que pudieras ver,ya
sabes, ya
sabes, solo que no quería que lo hicieras 22 abstracto para ti donde empieza, empiezas a
perderte un poco. Entonces de nuevo, ahora
tenemos todo nuestro chequeo nonce hecho. Sabemos que los datos que se presentaron provienen de este formulario y otra vez. Esto no es una misión crítica puede haber formas de evitar esto, pero es algo que proporciona una especie de nivel base de defensa justo al bate. Ya sabes, no
es necesario. 100% a prueba de tontos y eso pero no tiene que estar bien, solo va a eliminarnos de sólo el 95% de las cosas y basura que podría estar
ahí fuera . Gente tratando de spam esto o lo que sea. Uh, otra opción que tienes aquí es que también tienes recaptura. Y así la recaptura es de Google, y tienen la versión dos. Entonces si alguna vez has estado en ah site y fuiste a enviar un formulario y tienen esa casita de
verificación que tienes que revisar que dice que no soy un robot que está recapturado, esa es la versión dos de Recapture. Y así lo que estás viendo aquí, esta es en realidad una clase P de melocotón que puedes usar para agregar en la funcionalidad de recaptura. Ahora tienes que ir al sitio de recaptura y conseguir una clave de sitio en una clave secreta y todo ese tipo de cosas. Pero una vez que haces eso usando este Ah, esta clase es en realidad bastante simple. Puedes ver un ejemplo completo aquí abajo donde creas una nueva instancia, pasando tu sitio, acaricia tu clave secreta. Y luego estás usando esto. Hay un tipo de fragmento de script Java que tienes que agregar en la página, así que eso es lo que hace esto. Ah, y luego hay una pequeña línea que debes agregar en tu formulario en tu campo de formulario. Entonces eso es lo que hace esto. Y luego en tu chequeo real, tienes un pequeño cheque que necesitas ejecutar, y eso es lo que hace esto. Por lo que es clase lo hace realmente, realmente fácil de integrar. Recapturar en tu forma. Ciertamente podrías volver a hacer eso. Quería apegarme a las cosas construidas en PHP. Eso no es un tipo de cosas de terceros porque esas cosas siempre pueden cambiar. Entonces ah, por
eso estamos haciendo lo que estamos haciendo aquí con estas cosas. Pero de nuevo, esa cosa de captura de recut es una opción que también te ayudará a hacer con spam y bots y así sucesivamente. Está bien, ahora, una vez que hayamos hecho todo eso, ahora podemos meternos en Esa es la validación extranjera. Ahora podemos entrar en el insumo, validación y sanitización. Entonces, primer lugar, la diferencia entre sanitización y sanitización de validación es tu permitir que los datos pasen, ¿
verdad? No vas a detener el guión, pero te estás escapando de él o tu desinfectándolo de alguna manera para que sea seguro. Por lo que podrías estar obteniendo datos que son peligrosos. Pero lo estás ejecutando a través de cierto tipo de algoritmos para que sea seguro. Entonces lo estás desinfectando así y luego la validación es tu chequeo para asegurarte de que se ajuste a un cierto conjunto de criterio. Si no lo hace, no lo
estás haciendo, no
vas a seguir adelante. Entonces, ¿qué usas y cuándo Depende realmente de los datos que se están enviando y diferentes tipos de datos. Yo manejaría diferentes maneras. Entonces las cosas que son como misión crítica que tienen que ser tienen que estar bien. Yo usaría la validación, cosas que son ustedes pueden, ya saben, serían geniales. Si lo fueran, tenían razón. Pero puedes como seguir adelante aunque no sean 100% perfectos. Entonces usaría la sanitización para que puedas ver con nuestras dos variables aquí. Tenemos buenos ejemplos de eso para el nombre estaban usando sanitización porque el nombre es lindo dedo del pie tienen. Pero no es necesariamente. Y de nuevo, esto podría cambiar en el contenido, dependiendo del contexto. Pero no es necesariamente, ah, 100% de misión crítica. ¿ Dónde está la dirección de correo electrónico? Necesitamos la dirección de correo electrónico para poder contactar a estas personas. Entonces si están enviando este formulario para que podamos ponernos en contacto con ellos, absolutamente
tenemos que tener eso para que esto incluso sea de cualquier utilidad. Entonces vamos a validar eso. Otro ejemplo es, ya
sabes, si lo estuvieras si tuvieras un área de texto en este formulario y estás permitiendo que la gente envíe comentarios vía ese pozo nuevamente, el correo electrónico sería imperativo. Pero esa retroalimentación no necesariamente ah b que tiene que ajustarse a una estructura ah en particular para que se presente. Se puede una especie de, ya
sabes, si no es 100% perfecto va a estar bien, así que eso podría ser más un candidato a la sanitización. Por lo que hay que pensar en eso dependiendo del contexto de la solicitud y los datos que se presenten y demás. Pero esa es realmente la diferencia entre los dos. Ahora hay algunas funciones muy manejables dentro de PHP, pero la que estamos usando aquí se llama Filtro Var. He hecho algunos pares de videos en el pasado donde hablaba de la entrada de filtros, lo que en realidad permite agarrar datos directamente de una matriz de carteles y filtrarlos de esa manera . Pero porque ya hemos extraído todo aquí arriba causa lo necesitábamos para poder hacer todos nuestros cheques nonce y así sucesivamente ahora ya son invariables, por lo que solo podemos usar filtro var. Entonces y realmente hacen lo mismo. Entonces es solo cuestión del tipo de datos con los que estás tratando. Entonces vamos a filtrar el nombre de la variable, y lo vamos a ejecutar a través de Santa Tie el filtro de cadena desinfectante. Ahora te recomiendo cuando estás buscando tratar de averiguar qué desinfectar y validar, solo Google filtra subrayado var. Y luego en esa página habrá un enlace que tiene una lista, dice algunos, como lista de los diferentes filtros. Da click en eso y verás guardará la validación. Filtros dirán filtros de saneamiento. Un par más que están ahí sólo tipo de miraron a través de esos y ver qué se ajusta a los datos y qué se quiere lograr con esos datos en cuanto a validación y sanitización , porque de nuevo, va a ser diferente para cada escenario. Pero toda esa información está ahí fuera para que lo mires. Por lo que esta bandera esencialmente le dice al filtro var cómo necesita filtrar estos datos. Entonces lo vamos a desinfectar y es una cadena para cadena de datos. Entonces eso es lo que vamos a hacer y ahí va si vas a mirar estos te dirán exactamente lo que hace. Y luego para el email volvimos a correr por filtro de nuestro filtrado el email, y vamos a validar esto y vamos a validar que es una dirección de correo electrónico. Entonces esto en realidad va a validar que esta es una dirección de correo electrónico adecuada y así
te puedo mostrar un ejemplo aquí si solo vamos miembro antes de donde estaba diciendo, si lo hiciste en un at BB en este formulario html cinco no captará eso como una dirección de correo electrónico inválida. Esa es obviamente una dirección de correo electrónico inválida. Entonces si presentamos esto ahora, se
puede ver que recibimos el mensaje de aire. Había aire con esta sumisión. Eso es por este cheque de validación aquí mismo. Entonces así es como se valida que estas direcciones de correo electrónico airen apropiadamente. Muy bien, entonces ahora estamos almacenando esas variables. Aquellas barras filtradas
sanitizadas, validadas variables como nombre del filtro y filtro de correo electrónico. Por lo que conocemos estos. Ahora hay datos limpios, por así decirlo, o datos de archivo. Y luego vamos a ejecutar este cheque, así que filtra el correo electrónico cuando sea una validación, como cuando es sanitización solo lo va a ejecutar por el desinfectante y devolver los lazos de
Saturno. El dato limpio eso lo hemos guardado eso. Es este nombre de filtro para la validación. Si valida adecuadamente, va a regresar. El dato validado aquí atrás es esta variable. Pero si no valida adecuadamente, va a devolver False. Entonces básicamente lo que vamos a hacer es revisar el email de filtro y si no es igual a falso, por lo que eso significa que si no es falso, eso significa que es válido. De acuerdo, viniendo un doble pelo negativo. Pero si no equivale a falso, entonces sabemos que son buenos datos limpios, y podemos seguir adelante y luego enviarlos a nuestra base de datos. Si no son datos limpios, entonces vamos a ejecutar este bloque más aquí y otra vez girar Ah dicho insertar dos falsos. Y eso va a desencadenar mensajes de aire aquí abajo, ¿verdad? Y por supuesto, si no lo es, si es igual a falso, ninguno de este código aquí se va a ejecutar,
correcto, correcto, causarlo para que este código ejecute el filtro correo electrónico no tiene que ser igual dedo del pie falso. Está bien, ahora, asumiendo que eso sea un buen dato, entonces vamos a,
ah, ah, conectarnos a mi secuela otra vez. Esto es exactamente lo mismo antes de una vez bailando y nuevos incidentes de mi s Julio o pasando en nuestro anfitrión o usuario se pasan Ah, contraseña y nombre de nuestra base de datos. Aquí es donde se pone un poco diferente. Ahora, esto es lo que vamos a hacer es que vamos a usar declaraciones preparadas para que puedan ver en lugar de pasar nuestra consulta a mi consulta escalate donde la estamos pasando a mi escuela, me preparo. Ahora. Es mayormente lo mismo en que tenemos inserto en nuestro nombre de tabla. Tenemos nuestras columnas, nombre y correo electrónico. Tenemos valores, pero en los valores paréntesis aquí tenemos que interrogar marcas. Se trata de agua llamada placeholders. Entonces no estamos poniendo los datos reales en la consulta decían, Aquí va a
haber datos, pero nosotros aún no te hemos enviado esos datos. Y así es en realidad como las declaraciones preparadas ayudan a asegurar. Ah, las consultas que mandas en mi secuela. Porque lo primero que haces cuando ejecutas esta declaración prepare ¿Qué, realidad
estás enviando esta declaración prepare a mi secuela y diciéndole a mi secuela? Oye, estábamos a punto de ejecutar esta consulta y te enviaremos los datos en un segundo. De acuerdo, entonces estás dividiendo la consulta de los datos reales que estás enviando en la consulta y los ataques de
inyección SQL . Confíe en que esas dos cosas estén juntas. En realidad está inyectando código queario en lugar de los datos. Cuando separas esas dos cosas, literalmente no puede suceder. Crea una línea dura entre, ah, la consulta que se está ejecutando y los datos. Entonces cuando haces una declaración preparada como esta y en realidad enviamos nuestros datos que toe mi secuela después de que les hayamos enviado esta consulta, mi secuela no toma los datos y luego los mete en la consulta y ejecuta la consulta. Ya es como que consiguió la consulta lista, y solo necesita los datos, y las dos cosas nunca se mezclan. De acuerdo, así que de nuevo, es solo una solución dura dos ataques de inyección SQL. Es por ello que tanta gente dice y recomienda usar declaraciones preparadas. Es solo que es una línea dura que realmente no se puede cruzar. Entonces, uh, por
eso ponemos estos marcador de posición y no vamos a poner los datos reales, y luego vamos a decirle qué datos usar. Y así es lo que esta siguiente línea es la que está comprando Paramus. Entonces, esencialmente lo que estás haciendo es que estás vinculando estos parámetros a estos marcadores de posición. Entonces le estás contando a mi secuela. De acuerdo, estos son los datos que queremos poner en lugar de estos marcadores de posición. Ahora, tienes este tipo identificar IRS aquí thes son básicamente decirle a mi secuela qué tipo de datos es este. En este caso tenemos s para string. Podría ser el imager podría ser el flujo a decimal. Ahí hay un número de ellos, dependiendo de los datos que tengas, pero en este caso, ambas son cadenas. Y así cuando envías los datos, si dices que es un generador de imágenes, pero envías una cadena, obviamente no va a pasar. Si dices que es una cuerda y mandas a un lesionado de lo que es obviamente voy a pasar por lo que Esto es sólo una especie de una forma de, ah agregando seguridad extra ahí y luego otra vez, porque las dos cosas se separan del aire. Hemos enviado la consulta a través del comunicado preparado. Ahora estamos vinculando los parámetros a ellos, y luego sentencia ejecutar es donde realmente ejecutamos la consulta y ejecutamos la consulta. Y esto va a esto es como antes,
um, um, ya
sabes, si cierto tipo de consultas, van a Si hay un selecto consultando esperando datos de vuelta, esto te va a dar un mi fuente de investigación secuela atrás que puedes usar para poder obtener esos datos en este caso con un inserto porque no hay nada que estemos pidiendo de vuelta. Sólo vamos a conseguir un tour falso aquí. Y así estamos configurando nuestro inserto igual a si esto es verdadero o falso. Y si es cierto, entonces vamos a mostrar inserciones Va a ser verdadero. Eso va a desencadenar nuestro mensaje aquí abajo
por cierto, por alguna razón, no
se sometió, entonces va a desencadenar falso, y vamos a lanzar ese mensaje. Entonces si pasamos a nuestra base de datos aquí, miramos nuestra tabla de usuarios aquí Déjame seguir adelante y volver a iniciar sesión. Nos fijamos en nuestra tabla de usuarios, puedes ver que no tenemos duda de que he eliminado todos los datos de la misma. Entonces si solo hacemos tipo de lo estándar y enviamos el tú Zied dice que los datos se insertaron con éxito. Y si volvemos aquí, se
puede ver que los datos están ahora ahí dentro Si vamos y otra vez hemos visto esto. Pero vamos a hacer esto, uh, este tipo de cosas y tratamos de insertarlo. Estamos llegando al aire que no se presentó, y miramos por aquí, pudo
ver que no se presentó. Este es el dato que teníamos antes. Ah, y luego finalmente, si harías algo como esto, solo
haremos ese correo electrónico. Entonces esta es una cita y estamos desinfectando a miembro o desinfectando nuestra cuerda aquí. Entonces hay diferentes tipos de banderas que puedes escuchar usar aquí. Algunos codificarán las cotizaciones, y algunos no lo harán en este caso, éste lo hará. Se va a codificar estas cotizaciones. Entonces si someto esto, vamos a conseguir que se insertaron los datos porque no
validamos, nos desinfectamos. Pero si venimos aquí en miramos nuestra sumisión, se
puede ver que esto estaba codificado. Esa cita fue codificada en entidades HTML, contraposición a permanecer como cita. De acuerdo, así que eso es una forma de sanitización. Y eso entra en juego cuando empezamos a hablar de, ya
sabes, si estás consiguiendo ah, desinfectar String también se va a deshacer de si alguien intenta insertar código html, pero no hay razón para tener un equipo Oh, código en el bloque de nombres. De acuerdo, entonces se va a desinfectar si alguien tamaños envía script Java, que es que nos está ayudando a lidiar con ataques de scripting de sitios cruzados en este lado de la misma. Todavía quieres hacerlo en el lado de la pantalla, pero es que estamos lidiando con ello de este lado también. De acuerdo, entonces, um, eso es por lo que esas citas que Aaron citó codificadas, porque la cita puede ser una especie de personajes problemáticos, dependiendo de, ya
sabes, ellos se van a utilizar en si alguien está tratando de enviar JavaScript. Ah, ¿ están ahí tratando de presentar código SQL etcétera. Por lo que codificar esos ayuda a hacerlos no peligrosos. Entonces otra vez, simplemente diferente. Esperemos que lo que obtienes de todo esto sea unas cosas específicas, específicas, específicas,
prácticas que puedes hacer. Pero en realidad, es sólo su mentalidad de capas de seguridad. Tenemos la forma asiente por sí misma, no es necesario 100%. Ah, eficaz. Pero crea una capa. Después tenemos filtrando las variables donde hay desinfectando o validando de nuevo. Podría haber formas en las que alguien pudiera descifrar tal vez moverse por eso de manera individual, pero con la forma bailando y luego tuviste en este saneamiento y validación y luego
agregas en dos declaraciones preparadas para prepararse contra ataques de inyección emitidos . Entonces agrega, vamos a hacer,
um,
ayuda a um, escapar para ataques de scripting de sitios cruzados en la pantalla. Por lo que solo tienes múltiples capas de seguridad que se convierte en realmente difícil para alguien intentar hackear lo que estás haciendo o encontrar una forma de entrar en lo que estás haciendo. Y ya sabes, esto fue algo que aprendí cuando estaba en el ejército. Pero dije, esta idea de ser un blanco duro. La mayoría de los hackers aire buscando su para buscar objetivos de oportunidad. Están buscando blancos fáciles, así que si se sientan aquí y empiezan a intentar meterse con tus cosas y se están encontrando las cosas no. Y luego el Senado la izacion. Son sólo ¿Sabes qué? Voy a pasar a alguien más que sea más vulnerable y que sea fácil, y eso te permite pasarte por alto. Y esa es toda la idea de todo esto. Entonces ojalá esa sea la mentalidad que obtuviste de esto otra vez. Cosas prácticas muy específicas que puedes hacer. Pero probablemente lo
más grande, más importante a largo plazo es la mentalidad de crear estas diferentes capas de seguridad. Y a medida que salen y emergen nuevas amenazas, puedes aprender sobre esas, y puedes aprender a agregar aún más capas y ah, y así sucesivamente. Entonces de todos modos, así es como asegurar tus formularios. tipo de aire de los fundamentos de base de este lado de la misma por hacer eso. Entonces ojalá sacara algo de eso. Gracias por ver. Hablaremos con el día siguiente
4. Cómo construir un formulario avanzado: Oye, ahí, John Morse. Aquí. John Morris, online dot com. Esta lección. Vamos a entrar en una forma un poco más avanzada, y te voy a mostrar algunos de los otros tipos de entrada o campo que puedes usar en tus formularios y cómo lidiar con los de tu código. Entonces, como pueden ver, aquí, tenemos más del lado derecho,
tenemos, ah, ah, algunas cajas de radio. Tenemos algunas casillas marcadas. Contamos con un cuadro selecto y tenemos un área de texto. Entonces que más o menos es la mayoría de las cosas que vas a usar, probablemente de forma regular para tus formularios. Es decir, hay algunas otras cosas por ahí, pero no están cerca es común. Por lo que quiero asegurarme y cubrir estos. Él es realmente común. Muy bien, entonces si bajamos al fondo aquí, puedo mostrarles primero el HTML, y luego podemos volver a ir a nuestra base de datos y luego ir a nuestro código PHP para conectar los dos. Entonces vamos a empezar aquí con esta sección de frecuencia de fenómeno aquí, y vamos a estar haciendo nuestras cajas de radio. Entonces primero la entrada lo dijiste a un tipo de radio, así que eso hace que lo que lo convierte en un botón de radio. Le doy una clase de radios, como un dirigido vía CSS. A pesar de que en realidad no agregué ningún CSS para los botones de radio aquí, Um, nos saltaremos el I d por un segundo, y luego habíamos dado un nombre de frecuencia. Ah, valor de diario. Y luego se podía ver que tiene esto comprobado, ah atributos aquí. Ahora, si miramos al otro y hablaré de eso en un segundo, miramos nuestro otro botón de radio. Se puede ver que tiene un tipo de entrada de radio, una clase de radio bien saltado I d. para segundo uso. Se puede ver que el nombre es el mismo, por lo que su frecuencia también, lo que es diferente es el valor. Es así como manejas las casillas de verificación porque las casillas de verificación están destinadas a ser una
cosa o tipo . Y así, ah, cuando las casillas diarias seleccionaron ¿qué se va a enviar? Recuerde, nuestros datos que está en nuestra forma se someten a ese post super global que post array. Bueno, cuando tenemos estas dos casillas de verificación y ambas tienen el mismo nombre, Cualquiera que sea comprobado es el único que se va a someter a nuestro
script PHP . De acuerdo, entonces no vamos a tener dos elementos en nuestro rayo. Vamos a tener uno, y o va a ser diario o va a ser semanal. De acuerdo, ¿
así es como manejas de nuevo los botones de radio? Porque son una situación o o. Um, y si tuvieras tres botones de radio todavía, Armenta Onley tiene uno de los tres seleccionados. Entonces siempre sólo va a haber uno si haces algo diferente a eso, no
deberías estar usando botones de radio para que eso sea solo algo a tener en cuenta. Cuando estás cuando estás construyendo esto. Ahora hablaremos del i D. Por un segundo aquí, se
puede ver que tengo este d set a frecuencia dash diario y frecuentemente dash semanal y luego en la etiqueta aquí tengo cuatro iguales de frecuencia dash diario y frecuencia Dash semanal para estos. Por lo que estos cuatro atributos coincide con el aire en la etiqueta aquí, coincide con el I d. Atributo en la entrada que es. Entonces si hago clic en las palabras semanalmente, en realidad
lo cambia y Si hago clic diariamente, lo vuelve a cambiar. Así es como haces eso es usar estos cuatro atributos, y es al I d de la entrada. Entonces hay que añadir que yo d si quieres que ese tipo de cosas funcione. De lo contrario hay que hacer clic directamente en la casilla de verificación para que funcione. Muy bien, temprano del botón de radio. Supongo que debo decir que lo siguiente son las casillas de verificación. Y así las casillas de verificación son un poco diferentes en eso, a diferencia de un botón de radio, eso es una especie de cualquiera o casillas de verificación permiten seleccionar múltiples, por lo que puedo seleccionar todos estos a la vez. Por lo que manejamos estos un poco diferentes. Entonces para la entrada tenemos tipo de entrada igual a clase de casilla de verificación igual a casilla de verificación. Ya sabes por qué tengo esto d. aquí. Es exactamente las mismas razones arriba. Se puede ver aquí mi etiqueta de cuatro así que realmente no vamos a cavar en eso porque lo mismo está aquí arriba . Así que escriba check, box class check box y luego nuestro nombre. Tenemos intereses, y luego tenemos PHP entre paréntesis y aquí tenemos intereses en HTML y corchetes y aquí. Tenemos intereses en CSS y corchetes y todos están ajustados a un valor de uno. Entonces, a diferencia de las casillas donde cualquiera que se revise es la que se va a enviar en este caso, las que siguen siendo las que revisaban aire. Pero porque básicamente estamos ahí todos los intereses y queremos tener esencialmente array una
matriz de los intereses que alguien ha comprobado. OK, así que déjame seguir adelante y los revisaremos y déjame solo quiero mostrarte esto realmente rápido . Entonces subiremos aquí. Imprimiremos nuestro post array. Ups. Bueno, el nombre de ese tipo y saldremos de ahí. Y yo estaba pasando por algunos datos aquí y voy a presentar esto. Eso nos debe dar lo que necesitamos. De acuerdo, entonces puedes ver eso bajo interés aquí mismo. Este es nuestro elemento de interés. Se convierte en una matriz y se puede ver que tiene un elemento de PHP set toe uno en un HTML set toe one. Entonces, básicamente, si no lo hacemos de esta manera, si establecemos todos estos Teoh los intereses del nombre, solo que no seríamos capaces de tener múltiples dentro de una matriz. ¿ Verdad? Porque si funcionara igual que el botón de radio, sólo nos permitiría dedo del pie tener uno que fue seleccionado. Entonces, lo que estamos haciendo es esencialmente en nuestro bloque de nombres o usando una notación de rayos envolviendo esto entre paréntesis. Y eso es Ah, eso es lo que en última instancia está creando esta matriz aquí mismo. Por lo que terminamos con este ah, intereses de nombre clave de nivel
superior. Y entonces tenemos una matriz en cualquier caja aire checado. Vamos a tener elementos con esos valores Establezca el dedo uno. Ahora bien, el que realmente no importa en este sentido, pero, ah, sólo
tenemos un valor ahí dentro. Para que se ponga aquí dentro, está bien. Y luego hablaremos de cómo manejar eso. Vamos a meternos con eso para Nagel que un poco en nuestro código PHP. Pero de nuevo, es importante que sean las casillas de verificación que tengas que utilizar este tipo de patrón
aquí mismo . Entonces obtienes esta bonita matriz con la que luego puedes trabajar. Muy bien, así que esas son las casillas de verificación. Vayamos a recargar esto. El siguiente es el del país. Ahora ves aquí realmente tienes una lista de todos los países aquí dentro. Um, quería simplemente darte un ejemplo de un desplegable, y pensé que los países es algo bastante popular que la gente quiere saber hacer. Entonces seguí adelante y lo hice. Ahora ya verán que tengo el expediente de este país por aquí, así que si abrimos eso, pueden
ver que es sólo esta lista de países. Es una gran matriz con cada país en ella. Ahora bien, no
me senté y tecleé todas estas. Alguien, afortunadamente, lo
ha hecho por nosotros. Y uso esto de get hub aquí. Entonces, um, obviamente
vas a poder ver y conseguir el código que tengo. Pero si quieres Ah, usa esto. Se puede simplemente tipo de Google PHP countries array. Y esto es como si los primeros resultados entraran aquí y solo copiarlo. Entonces eso es exactamente lo que hice. Pongo todo eso en un archivo aquí, y luego si volvemos aquí vamos a la cima. Ya puedes ver que estoy requiriendo ese archivo aquí. Solo para que no quisiera dejar caer toda esa línea justo en este archivo aquí y especie de crear un montón de código aquí que podría causar un desastre visualmente. Por lo que sólo lo puse en su propio hallado separado y lo requería en. Entonces ahora que tenemos esa matriz de países,
no sigas adelante y cierres esto, entonces lo que podemos hacer es que podemos crear nuestra caja sick a partir de eso. Por lo que tenemos selecto Tenemos el nombre. Pongo una clase de selecto y estoy lo hice requerido curso no tienen que hacer eso. Pero sí lo hice. Y luego creamos una opción con el valor establecido en blanco llamado. Y luego nosotros, uh, establecemos seleccionar un país aquí. Y eso es solo para que tengamos un bonito selecto un país Ah, cosa justo aquí para que lo usemos. Ahora, una cosa a tener en cuenta con esto es HTML cinco es inteligente. Por lo que tenemos este conjunto a requerido, y técnicamente, este seleccionar un país es una opción. Pero si trato de enviar este formulario así, reconoce
que ese valor está vacío y no me va a dejar enviarlo para que
eso sea una cosita útil con HTML cinco. En realidad tengo que escoger un país aquí. De acuerdo, así que solo hacemos
esto, esto aquí mismo para el aspecto visual de esto. Entonces una vez que tengamos eso, entonces lo que vamos a hacer es recorrer el array de nuestro país y para cada país, vamos a crear una nueva opción en nuestra lista aquí. Por lo tanto opción. Y el valor se establece en el nombre del país. Y entonces el esto cierra la etiqueta de apertura a opción justo aquí. Este Ah, este letrero de aquí. Y luego volveremos a eco el nombre del país para que se presente. Aparecerá aquí. Entonces si inspeccionamos esto realmente rápido, se
puede ver que tenemos valor de opción igual, en este caso, Afganistán y luego Afganistán también. Entonces lo que realmente ves en la pantalla es esto en este caso es lo que ahora se va a guardar en
la base de datos. No siempre tienes que hacer eso. Estos valores pueden ser diferentes a lo que dijiste aquí, si tienes algún tipo de, ya
sabes, como si pudiera hacer que todos los países fueran minúsculas que por alguna razón quería hacer eso. Sabes que eso podría ser algo que tiene sentido. Para que yo pudiera hacer eso. Pero simplemente no lo hice en este caso. Entonces nuevamente pasamos por un bucle, y eso es lo que crea nuestra lista real. Aquí está esa matriz de países y recorriendo eso para crear esto. Y luego cerramos nuestro para cada bucle en cerrar nuestra etiqueta de selección, y eso nos da nuestro cuadro de selección aquí. Y luego la última es nuestra sección de comentarios. Por lo que este es un área de texto. Por lo que es clases de área de texto igual al área de texto. Nombre es igual a comentario, y tenemos nuestro marcador de posición establecido para ingresar tus comentarios aquí y luego una cosa sobre
las áreas de texto que es diferente a algunas de estas otras,
como los campos de entrada, es que no son auto cerrando. Entonces, en realidad tienes una etiqueta de área de texto de cierre, y la razón es que en realidad podrías escribir en lugar de usar un marcador de posición, podrías escribir texto predeterminado y esto realmente tendría texto predeterminado aquí. La diferencia entre los comodines que ves el positor, solo
puedo empezar a escribir. ¿ Dónde está el texto por defecto? Tengo que realmente tendría que copiar ese texto y eliminarlo aquí sería
texto real que está en la caja. Cualquier cosa que pongas entre estos dos. Entonces en este caso, vamos a dejar un espacio en blanco y sólo usar el positor. ¿ Verdad? Entonces ese es el HTML puede estar familiarizado con eso. A lo mejor no. No del todo seguro, sino sólo una especie de caminar a través de él para que puedas concebir lo que es. Probablemente sean el tipo de cosa más matizada. ¿ Esto es thes checkboxes aquí y haciendo esta parte justo aquí? Entonces sólo presta atención a eso. Entonces sigamos adelante y en realidad déjame. Parece que accidentalmente cerré dinero. PHP. Mi administrador me metió una especie de pop de nuevo en eso. Ya no necesitas esto. Y así ve a PHP. Mi administrador y entraremos en nuestros formularios. La base de datos entrará en nuestra tabla de usuarios. Iremos a estructura y verás que aquí he creado algunas columnas más. Ahora, ¿cómo se hace eso? Ves justo aquí abajo, cuando estás bajo estructura, ves, dice agregar una columnas y luego al final de la tabla al principio de la tabla. O bien puede especificar después de una columna existente específica. Por lo que acababa de añadir cuatro columnas al final de la tabla. Entonces antes de que acabamos de tener me d nombre y correo electrónico. Y luego agregué las cuatro columnas frecuencia, interés, país y comentario. Y así si golpeo ir aquí, va a traer esto a donde pueda hacer esto. Ahora, en realidad no
voy a ir a No sé si esto realmente lo hará, Sí. No seleccioné ninguna cosa que en realidad no las agregara, pero eso es lo que se ve para estos otra vez. Esto es, ya
sabes quién probablemente debata exactamente cómo es esto. Sólo tienes una especie de ir con tu quiero decir, Dios o qué? Ya sabes, en cuanto a qué tipo de estructura usar aquí para la frecuencia usaron texto diminuto porque o va a ser semanal o diario. Sé cómo maney palabra deja letras o personajes. Va a ser O van a ser cinco o seis personajes, así que no necesito crear un gran, enorme tipo de bloque aquí para poder almacenar estos datos. Sé que va a ser pequeño y diminuto Texas planeando sostenerlo, así que solo uso texto minúsculo aquí para intereses. Es decir, en este caso, sólo
tenemos un puñado, pero lo vamos a estar serializando. Hablaremos de eso en un segundo, así que hace un poco más de tiempo. Y entonces, ya
sabes, podrías estar sumando cualquier número de heridos. He visto formularios que tienen, como, 30 o 40 ningún interés que alguien pueda comprobar. Entonces lo hace. Algo así que sí fui con Bar Char y puse 2 55 Um, eso probablemente es más grande de lo que finalmente vas a terminar con. Pero yo sólo, ya
sabes, nuevo, esto podría ser usado de múltiples maneras diferentes. Y este bloque de interés es algo que podría ser, um, ya
sabes, podría ser usado. Podría ser un yo tengo una serie de intereses diferentes, así que sólo quería dar cuenta de ese país. ¿ Diagrama de barras al 55? Probablemente podría reducir eso porque sabemos que podemos mirar nuestra lista y ver cuál es el
número máximo de caracteres en nuestra lista, y así podemos tener una buena idea de lo que necesitamos aquí. Um, pero ya sabes, hay alguien largo. Hay algunos nombres poco más largos en el cabello, y esto es sólo una especie de estándar como lo predeterminado para mí. Entonces simplemente me fui con eso. Podrías. Podrías meterte un poco con esto. Simplemente no creo que sea demasiado grande para algo como esto. Ya sabes, no
estamos almacenando solo millones y millones de registros y enormes trozos de datos, así que no sé cuánta diferencia va a hacer. Pero si realmente quieres estar consciente sobre el rendimiento, realmente
podrías apretar eso un poco y luego comentar. Pongo al texto. Entonces creo que eso probablemente sea bastante estándar. El texto es una especie de. Es lo suficientemente grande a donde puedes llevar un buen trozo de texto. Pero ya
sabes, no vas a escribir como una palabra completa. No 10,000 palabra WordPress blawg posts o algo así en. Y realmente no quiero que la gente presente eso en este bloque de comentarios de todos modos, Así que la tecnología parecía un medio feliz para mí ahí, así que esas son las. Es decir, eso es todo lo que dije. No puse nada más para el resto de estos. Um, pero esa es la base de datos. Ahí es donde vamos a estar almacenando en otra vez los nombres de las columnas o los intereses de frecuencia, país y comentario. Nosotros vamos a navegar, entonces se puede ver que esto está vacío en este momento. Entonces volvemos aquí, entonces lo que vamos a hacer es que vamos a empatar estos nuevos campos desde el formulario de
vuelta a la base de datos. Um, así que muchas de estas cosas en la parte superior son las mismas. Entonces no he cambiado el hashing ni nada de ese tipo de cosas. Lo único que realmente he hecho es simplemente agregar lo que necesitábamos agregar en estos nuevos campos. Por lo que puedes ver ahora en su lugar, solo filtra nombre y filtra correo electrónico. Tengo estos 33 extra aquí, que o frecuencia, país y comentario. Y estamos usando filtro var y todos estos filtro de aire sanitizado cadena porque
todos estos son en última instancia extraños. Ahora podrías estar diciendo Bien, bueno, los países estaban pre poblando ese derecho? Estamos especificando cuáles son esos. ¿ Por qué necesitamos desinfectar esos? Bueno de nuevo, es posible que alguien potencialmente presente este formulario. Ah, en cierto modo, no usar esta forma esencialmente y así solo siempre tenemos que asumir que los datos con los que estamos trabajando están sucios de alguna manera. Por lo que siempre solo asumimos, ya
sabes, nunca asumes datos limpios de cualquier tipo de entrada del usuario. Incluso si estás especificando qué pueden poner en un campo de formulario en particular, siempre
hay desperdicio para que los hackers eviten eso. Y definitivamente no quieres que esa sea tu línea principal y defensa. Entonces todavía vamos a desinfectar las cosas. Por lo que nuevamente la frecuencia es diaria o semanal. Entonces esa es una cuerda del aire del país. Todas las cuerdas. El comentario es una cadena, así que solo estoy usando filtro Santa Charlie ensartando aquí. Puede haber algunos nuevos deseos en los que podrías volver a buscar los diferentes campos. Ya sabes, ve a esa entrada de filtro Ah ah, función y PHP y miró a través del filtro diferente. El enlace que hay para los diferentes tipos de filtros. Y a ver si algo tiene un poco más de sentido para los datos que sucede que están recopilando. Pero en este caso, solo
quiero desinfectar la cepa. Otra cosa que quiero mencionar aquí es que ya
sabes, notarás que esto es algo verboso. Estoy bastante literalmente mirando cada, uh estoy ejecutando a todo el mundo de forma manual, en cierto sentido, a través de filtro var Hay formas por ahí para que hagas esto un poco más programáticamente y en realidad bucle a través de la matriz y hazlo o te algunas de las funciones de matriz que están ahí fuera para hacerlo. Entonces no tienes que, um, salir cada uno otra vez. Como mencioné antes, he decidido en este tutorial ser un poco más de ella, tanto porque encontré cuando empiezo a ponerme súper concisa con las cosas, gente que es nueva en codificar 10 toe, que eso tiende a ser un poco confuso. Y a veces pienso que esa es la única forma de hacer las cosas. Y así solo quiero mostrarles la forma realmente verbosa de hacerlo. Y luego a medida que
adquieras experiencia, vas a pensar que verás formas en que puedes hacer esto más conciso. Ahora, sólo para aquellos de ustedes que están viendo esto, que tipo de tal vez un poco más largo y son como, realmente
quiero hacer eso conciso. Lo que querrías es esta función aquí filtrar matriz de importación. Entonces si bajamos aquí, verás que se necesita un tipo, Y en este caso, estaríamos haciendo entrada Post. Por lo que sería de nuestro
saber, usar nuestro post array. Ah, podemos definir algunos argumentos, Will. Mira ese segundo anuncio vacío. No lo sé. Es básicamente si falta Mr Key, ¿quieres agregar knoll a eso,
um, um, puede o no aplicar a lo que estás haciendo, pero puedes ver aquí esto está simulando algunos datos de post. Muy bien, así que esta es una tasa de post tiene producto I d componente, etcétera, aquí en nuestro bloque de huevos, que es en lo que lo pasamos en nuestro segundo parámetro aquí para filtrar matriz de entrada. Entonces ese es nuestro parámetro de definición aquí. Um, lo que estamos creando es una matriz, y estamos especificando, para cada clave decían usar este filtro. Entonces si un producto yo d uso este filtro para la clave de componente usado estos filtros con banderas y opciones para las versiones. Usa este filtro para que pases por esto y podrías decir OK para cada uno de estos elementos
Elka en mi matriz Ah, especificas qué Ah, qué filtro quieres usar y usar la entrada de filtro. Organizar dicho tenerlo haciéndolo para ambos así. Pero de nuevo, solo
quería mantenerlo un poco detallado, así que puedes ver cómo progresan las cosas, pero para hacerlo más conciso matrices de entrada de filtro, lo que buscas ahora, el único tipo de excepción a todo eso es la llamada Array. Ahí está el campo de la clave llamada intereses. Y así de nuevo, he extraído todos estos aquí arriba. Supongo que en realidad no mencioné eso, pero estos han sido extraídos. Entonces todas estas son ahora como, um, muy variables. Por lo que las claves se han convertido en variables. Pero con este, porque el valor real otra vez que Ah, y estamos consiguiendo el imager, ¿
verdad? Si recordamos nuestro post array, estamos recibiendo el imager. Déjame simplemente imprimir esto de vuelta a cabo muy rápido para que podamos ver esto porque este es un poco importante dedo bajo soporte. Cómo se está uniendo esto. Está bien, así que sigamos adelante y revisemos todos estos. Sometamos eso. Entonces, de nuevo, tenemos nuestra clave de intereses justo aquí y es una matriz. Lo que realmente necesitamos es la clave, correcto, Esta que no necesitamos. Eso vamos a descartar por completo porque solo está ahí. Para que esto, porque así funciona el formulario va a aparecer aquí. Pero lo que realmente necesitamos el interés que necesitamos es PHP y HTML. Eso es lo que queremos los datos. Y entonces eso es lo que necesitamos para desinfectar aquí y otra vez. Sólo vamos a disestar por completo. Deseche estos aquí. No necesitamos esos. Entonces, lo que hacemos aquí es realmente hacer un para cada bucle en nuestra matriz de intereses, pero primero ejecutamos un ray keys en él. Entonces básicamente lo que eso va a hacer es eso. Cuando ejecutas un ray keys en una matriz, va a tomar todas las claves y crear un nuevo rayo de solo las claves. Entonces eso es en realidad lo que estamos haciendo bucle por aquí cuando pasamos por aquí, esta es una matriz de las claves, no esta matriz real justo aquí cuando eso básicamente justo ahí simplemente descarta arrendar estas y nos da una matriz de lo que realmente necesitamos. Entonces para cada clave de matriz como interés, entonces vamos a crear una nueva matriz llamada filtro Intereses. Y vamos a ejecutar cada una de esas claves a través de filtro de nuestra porque recuerden la cosa, los atributos, Lo que realmente necesitamos de nuestra forma es lo que finalmente se encontró en la clave. Entonces eso es lo que necesitamos filtrar, porque eso es lo que vamos a estar almacenando en nuestra base de datos. Entonces vamos a filtrar cada interesante. Solo vamos a usar filtro, desinfectar cadena, y se volverán a guardar en este nuevo interés de filtro de llamadas de matriz. Entonces otra vez, solo para mostrarte cómo se ve esto, bajamos aquí y hacemos una impresión están en intereses de filtro. Después de que hemos hecho todo este filtrado, recargamos este marco, se
puede ver ahora lo que tenemos aquí es una matriz, y tiene PHP cada vez. Ellen CSS Es una matriz indexada con nuestros intereses en ella. Y esas esas esas que teníamos se han ido por completo. Entonces esto es lo que realmente vamos a insertar en nuestra base de datos, acuerdo? A partir de ahí, el resto de esto es
realmente, realmente bastante simple, bastante similar a lo que hemos hecho antes. Por lo que aquí estamos revisando para ver si nuestros filtros de correo electrónico se vuelven a poner en falso, igual que lo hicimos antes. Nos estamos conectando a nuestra base de datos igual que lo hicimos antes. Pero ahora estamos cambiando nuestra declaración preparada. Estamos agregando infrecuencia, interés, país y comentario estaban agregando en mawr marcador de posición para coincidir con esos nuevos campos en los que vamos a estar insertando datos, hemos agregado cuatro designaciones de tipo más. Todas pasan a ser cuerdas de nuevo porque vamos a serializar nuestra matriz de intereses aquí en tan solo un segundo. Y luego estamos pasando en filtro,
nombre, filtro, correo electrónico, correo electrónico, frecuencia de
filtro. Hablaremos de lo serializado en el segundo, pero los intereses filtran país y filtran comentario. Entonces básicamente, todo lo que hemos hecho es que acabamos de agregar al código que ya teníamos las columnas extra, campos
extra en los que vamos a estar enviando datos y hacer coincidir los arriba ahora serializar Aquí esta función PHP. Si no lo estás familiarizado, no
puedes tomar una matriz y simplemente insertarla en una base de datos. OK, ahí está. Ese tipo de tipo de datos en mi secuela no existe. Entonces si quieres, hay un par de formas en las que puedes manejar esto. Puede que me haya escuchado hablar de relaciones, mesas antes. En algunos casos, eso tiene sentido. En este caso particular, no
sé que necesariamente lo haga. Entonces si solo quieres un tipo de guardarlo de una manera sencilla, lo que puedes hacer, es serializarlo. Y esencialmente, lo que hace la serialización es que toma esa matriz y lo pone en una cadena. Pero es una cadena que está elaborada de una manera particular, para que cuando sacamos los datos de la base de datos, podamos usar una función llamada un serialize y que la llevará de una cadena de vuelta a una matriz para que podamos usarlo como una matriz. De acuerdo, así que serializado solo lo hace para que podamos almacenarlo en la base de datos. Y luego cuando vayamos a mostrar datos, será poco grave lo miente y eso se volverá a convertir en una matriz. De acuerdo, entonces eso es lo que hace serializado aquí. Por eso eso en última instancia, tenemos todas las cuerdas aquí, y luego vamos a ejecutar y la ropa y todas las cosas que hicimos antes de esto es todo el resto de esto es más o menos lo mismo. Entonces ahora con todo mi ex, se ha ido. Si recargo este marco, deberíamos conseguir datos se insertó con éxito. Si venimos por aquí y volvemos a ver esto, se
puede ver nuestros datos fueron puestos a su nombre correo electrónico diariamente. Así es como se ve la cadena serialize. Nuestros países Argelia. No debo dejar un comentario. Así que volvamos aquí y hagamos semanalmente. Hagamos html CSS us. Y pongamos aquí algunos comentarios para que veas que estamos obteniendo los datos que se suponía que tenían tan débilmente. Html CSS Comentarios de EU Años seguirán adelante. Smith eso y Corea a los usuarios. Y puedes ver nombre email semanal ahora html CSS Estados Unidos y comentarios aquí. De acuerdo, entonces estamos obteniendo los datos que deberíamos estar obteniendo. Y por supuesto, si algo fallara, recibirías el mensaje de falla tal como lo hiciste antes. Entonces eso es un que es un poco más de un tipo avanzado de forma y manejo y así sucesivamente y mostrarte el diferente tipo de los campos HTML más comunes de formularios campos con los que
podrías trabajar y cómo lidiar con ellos y manejar aquellos en PHP y almacenar ellos también en su
base de datos. De nuevo, esto es algo sobre el primer tipo de pasado. Eres como, Oh, eso es mucho. Eso está bien. Entra y trabaja con ello. Entra con el código fuente y trabaja con él. Um, tal vez volver a ver este video. Y a medida que estás haciendo eso y pasas por ello y cuanto más empieces a interactuar con él , más debería comenzar. Ah, para tener sentido. Entonces eso lo hará para esta lección. Gracias por ver. Hablaremos contigo la próxima vez.
5. Limpiar tu formulario con un archivo de funciones: Hola ahí. John Morrissey, John Morris online dot com. Esta lección Vamos a pasar y limpiar un poco todo y como he estado insinuando que hay formas más concisas de hacer esto. Y así quise pasar por eso y mostrarte eso un poco aquí en esta lección. Por lo que se puede dar ese siguiente paso con él. Ahora, mirando esta página todo tipo de aviso. Ahora, sobre todo, esta página es sólo una especie de html. Hay un poco en el encabezado aquí ahora, pero la mayor parte de ese código se ha ido, y en realidad estamos haciendo referencia a un par de funciones. Entonces crea nonce en este proceso, método o función aquí y así abajo aquí en lugar de nuestros bloques If else, tenemos mensajes do. Entonces acabamos de limpiar un poco esto y te voy a mostrar solo pasar y
mostrarte lo que hicimos ahí un poquito ahora un par de cosas porque nos hemos llevado todo lo que va en post aquí, y lo hemos puesto dentro de funciones. El y las variables dentro de esas funciones van a estar operando en un ámbito local . Ah, no
tenemos que preocuparnos tanto de las colisiones con estas variables aquí afuera. Entonces cambié el nombre de algunas de estas cosas para que probablemente esté un poco más cerca de lo que en realidad le
llamaría . Entonces, por ejemplo, sello de
tiempo. Ahora en lugar de tiempo la acción de forma es en realidad la misma. Y entonces tenemos nots en lugar de hash. Y si bajamos aquí tipo de actualizado esto en el formulario. Entonces ya ves, esto es sello de tiempo y su eco. Timestamp aquí forman acciones igual. Y entonces tenemos nots y eco nonce aquí. De acuerdo, así que sólo un par de cambios en este frente y oír hablar también como mencioné se han eco a los mensajes aquí, y estamos de paso. Insertar inserto viene de aquí. Haremos algunos cheques sobre eso, ese tipo de cosas. Um, pero ah, eso básicamente saca la mayor parte del código real de PHP de aquí y solo lo trae a través de llamada de
función. Por lo que esto mantiene esto mucho más limpio. Entonces esa es toda la idea aquí. Otra cosa es, cuando te das cuenta aquí, han requerido una vez y luego bajo punto PHP. Si abro bajo punto PHP. Esto tiene nuestro archivo de conflicto el punto PHP de nuestro país Y ahora tiene este nuevo archivo que creé llamado function stop PHP y funciones dot PHP se basa en el punto de conflicto PHP. Entonces, um, hago mayor para llamar a estos en un orden particular, pero soy fan de este tipo de tipo. Estos Ah, estos cargan archivos como este porque de lo contrario cada página que quieras , ya sabes ,
ponerte esto , tendrías que recordar requerir todas estas cosas, Considerando que si lo pones en carga
como este, entonces solo podrías requerir ese archivo de carga, y siempre es el mismo. Entonces, um, me gusta hacer eso para hacer las cosas un poco más fáciles. Entonces, sólo vamos a correr por esto. Entonces tengo mi requerimiento aquí, tengo mi tiempo en pie, pero tengo mi por inacción. Y luego estoy pasando eso a una función llamada crear nudos, y estoy pasando en la acción de forma y la marca de tiempo. Entonces si pasamos a este archivo de funciones aquí, verás que tengo una función llamada create nonce, y toma la acción y la marca de tiempo, y básicamente hace lo que hicimos antes de crear nuestra cadena para nosotros toe hash y luego lo en realidad lo hashes, y luego simplemente devuelve eso Así que este es el mismo código exacto que teníamos antes. Acabamos de ponerlo dentro de una función tan bastante sencilla. Ah, también notaste que en todas estas las envolví. Si la función existe, eso es realmente una especie de Ah, buen hábito para entrar Por si tienes otras cosas que están en el espacio global y PHP podrías tropezar con colisiones. Y así ejecutas esto si la función existe aquí y la vas a evitar que al menos se airee en este punto, y entonces como que sabes si hay, um ya sabes, si algo no está funcionando aquí, entonces eso te dará una pista de que algo está pasando ahí. Entonces es sólo una especie de buen hábito entrar,
para comprobar si existe una función que ya existe antes de crearla. Entonces por eso lo hacen en cada uno de estos. Entonces tengo ah, esta función llamada, uh, en realidad, Let's volver a simple que PHP así crea el nonce y estamos usando el nonce aquí mismo para poner en nuestra forma. Um Y así eso va ¿Qué va a poblar nuestra forma aquí? Ah, si nos limitamos a mirar este campo real rapido están ocultos aquí mismo hay valor tonterías que creamos o no, por lo que podemos poblarlo ahí. Entonces esa es esta función está creando eso para nosotros? Y luego ya ves, si el post no está vacío, lo
estamos pasando para apuntalar este método de proceso. Entonces si bajamos a este método de proceso, entonces este es todo el código que teníamos antes para realmente procesar. Ah, los datos. Pero nos hemos reorganizado un poco. Ahora, una de las cosas por las que me gusta finalmente poner estas cosas y funciones es porque
si te acuerdas,
antes teníamos este si te acuerdas, tipo de grandes, grandes bloques de si, si de lo contrario era así si otra cosa y luego otra. Si lo fuera, estaban, ah, poco anidados un poco profundo, y se pone un poco difícil de manejar y difícil de manejar cuando pones algo dentro de una función. Lo bueno es que en realidad puedes comprobar si es falso o comprobar si hay un resultado negativo como resultado que no quieres. Y luego si obtienes un resultado que no
quieres, solo podrías regresar. De acuerdo, Cuando no estás dentro de una función, realmente no
puedes hacer eso así. Y por eso me gusta poner cosas y funciones porque cambia la forma en que
escribimos nuestro código y hace un poco más eficiente. Entonces lo primero que puedo hacer aquí ahora por eso es que puedo verificar los nudos porque en realidad
eso es lo que quiero hacer primero. De verdad no quiero hacer nada más a menos que verifiqué los nudos. Ah, donde está antes teníamos que hacer algunas cosas para poder hacer eso, y tuvimos que envolverlo en estos bloques de l grande. Podemos simplemente revisar el nonce justo fuera del bate. Entonces llamamos a esta función verificar nonce aquí, y estamos pasando la nonce que obtuvimos del formulario HTML. Entonces nuevamente recuerda dónde tenemos nonce aquí mismo que se va a presentar como parte de nuestros datos
post. Entonces estamos pasando eso que estamos pasando post aquí y luego usando esta variable. Entonces ese es nuestro post nonce. Eso fue lo que se presentó. Um, por nuestra forma se forman acción desde nuestro puesto en los sellos de tiempo. Entonces esos campos ocultos están bien aquí, y no necesitamos hacer No necesitamos dedo del pie, ya
sabes, revisar nada en términos de seguridad o ese tipo de cosas. Porque no somos lo único que estamos haciendo es hachearlos, y vamos a reprobarlo y revisar el hash. Entonces si alguien está pasando en algunas cosas funky, sólo
significa los hashes que voy a trabajar. Por lo que pasamos esto para verificar nonce. Si nos fijamos en verificar nonce aquí arriba, lo que hace es tomar la acción en el momento justo aquí, y utiliza create nonce para recrear el nonce basado en lo que fue enviado por el formulario para crear nuestro hash re creador. Y luego comprueba eso contra el que fue pasado por la forma. De acuerdo, entonces nosotros exactamente lo que estábamos haciendo antes, justo ahora lo tenemos en funciones. Y así si eso devuelve falso de lo que vamos a devolver falso aquí, y ninguno del resto de este código va a procesar porque hemos regresado justo aquí Ok, así que eso es lo bonito es que puedes hacer como, puedes hacer una serie de comprueba y simplemente devuelve falso si no consigues lo que quieres . Y luego una vez que hayas hecho todo estos cheques, entonces
puedes simplemente ejecutar tu código. No tienes que envolver todo en estos grandes bloques de fieltro. Está bien, la siguiente, así que hemos verificado no son la siguiente en la que vamos a entrar. Vamos a verificador validar nuestro correo electrónico porque ese es el siguiente Si nuestro correo electrónico no es válido, no queremos el No queremos el envío. Entonces realmente, la misma idea que estamos dirigiendo nuestro post. Nuestro correo electrónico que fue enviado en nuestro formulario a través de filtro válido un correo electrónico. Si es falso, vamos a devolver falso y sólo una especie de matar el guión en este punto. Está bien, así que una vez que tenemos esos son dos tipos de cheques Maine que lo estamos haciendo en este punto o a tipo de validaciones después de eso. Ahora podemos especie de cheque. Podemos tipo de empezar a normalizar nuestros datos para que podamos insertarlos en nuestra base de datos. Entonces, ¿recuerdas que hablé justamente? Uh, por lo menos un poco antes sobre cómo se puede usar filtro, matriz de
entrada o, en este caso, filtro var array para filtrar a través de datos de una variable o una entrada de como el post super global. Para conseguir etcétera súper global, no
tienes que escribir cada filtro de nuestra línea. Bueno, esto es un ejemplo de eso. Podemos hacer eso aquí. Ah, ahora en ella. Y es un poco más simple. Entonces justo como dije, creaste nuestra matriz de huevos y para cada una de las claves que desde tu post Ray que
quieres filtro de dedo, puedes ponerlos aquí. Por lo que Santa apretado. Ah, nombre, frecuencia, país y comentario. Y vamos a correr esos todos a través de cuerda desinfectante. Ahora te das cuenta que no tenemos correo electrónico y no tenemos interés. No tenemos correo electrónico porque ya hicimos email aquí arriba. Ya hicimos filtro de nuestra y lo validamos. Entonces esto ya ha sido filtrado, por lo que no necesitamos preocuparnos por ello. Entonces lo hacemos. No estamos haciendo eso aquí y también por interés de filtro, tenemos que hacer algunas cosas especiales con el interés. Ya hablamos de eso antes, así que no nos vamos a preocupar por eso aquí arriba también. Entonces creamos este array y le decimos a nuestro filtro nuestra función, ¿qué filtros? Queremos correr por cada clave que queremos desinfectar aquí. Y luego pasamos eso a filtro de nuestra raza. Pasamos los datos de nuestro post y pasamos nuestras artes. Y esencialmente, lo que va a hacer es que va a igualar lo que especificamos aquí en nuestros huevos con
lo que encuentra en los posts. Ejecutarlo a través de ese filtro de sanitización ah y luego devolver la matriz como poste de filtro. Entonces esta publicación de filtro de aquí está en Lee va a contener nombre, frecuencia, país
y comentario, y todo va a haber sido desinfectado. De acuerdo, entonces es solo una forma un poco más eficiente de hacerlo. Por lo que en este punto, tenemos email de filtro. Contamos con nombre de filtro, frecuencia, país y comentarios. Tenemos cinco de las seis ah, que necesitamos. Nuestro último que necesitamos es el interés de filtro. Y así, si recuerdas, tenemos dedo del pie realmente tenemos que recorrer nuestro ese Ah, ese array. Y vamos a deshacernos de los que estaban en él, y vamos a agarrar las llaves y todas esas cosas que hicimos antes. Eso es básicamente lo que estamos haciendo aquí. Algo que estamos agregando es este cheque. Entonces si el interés de la publicación no está vacío, porque una cosa que sucederá es si envías este formulario sin ninguno de estos comprobados , podría
haberte notado esto. Si envías este formulario y no compruebas nada de esto, habrías recibido un error diciendo que esto para cada esperada o en realidad es un ray keys esperaban que esto fuera una matriz y y yo creo saber lo que se da o algo así. Entonces esto trata de eso. Dice que si esto no está vacío, entonces lo vamos a recorrer. De lo contrario, si está vacío, sólo
vamos a ponerlo en un valor en blanco, ¿de acuerdo? Y así y entonces es que básicamente sólo va a estar en blanco en nuestra base de datos porque no
tenemos nada preparado para ello, que es lo que la multa por lo que estamos haciendo aquí. Pero si lo es, si hay datos en él, entonces vamos a recorrer y hacer exactamente lo que hicimos antes. Vamos a conseguir un rastrillo, aliviar los intereses. Um, Y entonces vamos a correr esos a través de filtro var y crear una nueva matriz de sólo las claves justo aquí. Y entonces aquí en realidad lo serializaban aquí. El motivo por el que lo estamos haciendo aquí en lugar de aquí abajo. Ahora, ya ves, no lo
estamos serializando en. Nuestra cajita de compra ya es por esto, porque si lo serializamos aquí abajo y estaba en blanco, como
que pone algunos caracteres incómodos en la base de datos, y eso no queremos. Nosotros sólo queremos que esté en blanco. Entonces lo estamos serializando aquí arriba ahora, y sólo lo estamos serializando si en realidad es un dato de Ray. De lo contrario, sólo
vamos a presentar en blanco justo aquí, justo a partir de ahí. Esta cosa es casi igual. Ah, nueva instancia de mi escuela. Yo estoy preparado. La declaración es exactamente la misma. Están comprando cram. Nuestro tipo se identifica con el mismo. Lo único que es realmente diferente aquí es que ahora nos vamos de usar realmente nuestro post de filtro de
matriz porque, ah, si intentas extraer de un post de filtro aquí simplemente no funciona. Y así y no es necesariamente Ah, yo diría la mejor manera de hacer las cosas en esta instancia. Um y así y nosotros ahí es realmente solo conveniencia que lo usaríamos en este punto todos modos, Entonces, um, antes de que estuviéramos tipo de lo estamos haciendo porque estamos usando esos datos y diferentes formas de correr a través de la barra de filtro. Podríamos tener todavía por usar la matriz real, pero era un poco era un poco más conveniente. Pero aquí, um, ya
sabes, simplemente no funciona, y no es realmente necesario. Entonces solo vamos a usar el post de filtro real. Recuerda, eso es de aquí arriba. Después de que lo pasamos por un filtro de nuestro camino por un nombre que no sea nuestro correo electrónico, sí
recordamos aquí arriba. Entonces de ahí viene esto. Filtro, Publicar filtro de frecuencia El interés fue otro especial uno post country post comment. De acuerdo, así que eso cambia un poco para pasar esos datos ahí dentro, pero eso también está bien. Y luego vamos a ejecutar nuestra sentencia de ejecución y, uh, guardar el resultado de aquello que sea verdadero o falso como inserto. Vamos a cerrar nuestras conexiones, y luego vamos a devolver inserciones. Entonces si nos fijamos en este inserto o este Este método, esencialmente esta función podría devolver false, false y luego recorrer false aquí. Entonces tres falsos son y uno verdadero. Sólo va a devolver cierto si los datos van y en realidad remiten todo el camino a través la base de datos, nada menos que
eso, más o menos va a regresar. Falso. Y recuerda, sobre nuestro sencillo que PHP estaba guardando el resultado del proceso, que es esta esa que es la función con la que estamos trabajando Por aquí es proceso. Vamos a guardar el resultado de eso como inserto. Entonces este inserto va a ser, ah o sea cierto. Si todo se somete o algo menos que
eso, va a ser falso. Y entonces estamos pasando eso a nuestros mensajes do aquí abajo porque necesitamos saber cuál fue el resultado de la consulta para poder hacer nuestros mensajes. Entonces volvemos a hacer mensajes. Esto es básicamente lo que tenemos exactamente lo mismo que teníamos antes, excepto que es que se pone en una función aquí. Una de las cosas tal vez más matizadas de esto es que sí tenemos inserto y por defecto toe knoll . Entonces así es básicamente como es esto ahora mismo. No hay nada en hay inserto ni siquiera está configurado, correcto, así que no está configurado ni nada por el estilo. Y así si es si el inserto de aquí no se ha ejecutado, tratamos de tirar inserto aquí de lo que básicamente es que no se está pasando nada. Y esto va a ejecutar este valor predeterminado, que básicamente lo está configurando a Knoll. Y así lo primero que comprobamos para ver es si es no. Si es no, sólo
vamos a regresar porque no lo hacemos No había nada presentado. Esta es solo la primera vista del formulario, por lo que no hay ningún mensaje que mostrar. Entonces, ah, si básicamente no se sabe que no va a volver, y entonces podemos construir nuestro mensaje y
si, si eso se basa, si es verdad o es falso. Entonces si es cierto, vamos a jugar el mensaje de éxito falso, vamos a mostrar su mensaje. Entonces de nuevo, esto es lo más, bueno, casi todo este código. De verdad. Acabo de copiar y poner en funciones y lo cambié un poco, así que para que funcione dentro de una función y ésta es la que más me metí
para poder hacer esto. Pero como que caminé por Por qué y cómo hice eso. Entonces volvemos aquí entonces y vamos a nuestro post sobre solo revisamos algunos datos aquí. Podemos golpear, enviar datos se insertó con éxito. Y si vamos por aquí, se
puede ver que aquí están nuestros datos. De acuerdo, así que eso es sólo limpiarlo un poco para que Ah, esta página de aquí sea mucho más limpia. No tiene grandes trozos de código. Es un poco más eficiente. Um, un poco más reutilizable y así sucesivamente. Probablemente haya algunas otras cosas que podríamos hacer aquí, pero creo que por lo que estamos haciendo aquí, esto es probablemente suficiente, obviamente. Ya sabes, si usas esto y lo usas una y otra vez, podrías desarrollar algunas cosas que te hagan un poco más fácil. Pero con todo, bastante limpio en este punto. Está bien, Eso lo hará para esta lección. Gracias por ver. Hablaremos con la próxima vez
6. Cómo mostrar tus datos: Hola, John Morris Aquí. John Morris, columna de puntos
en línea. Esta lección. Hablaremos de mostrar nuestros datos de nuestra base de datos. Entonces mira, por aquí en el lado derecho, tengo una especie de esta sencilla mesa de visualización aquí de datos que tenemos en nuestra base de datos. Ven aquí a nuestra base de datos. Se puede ver los datos aquí dentro refleja lo que estamos obteniendo en nuestro sitio, y así les voy a mostrar cómo hacemos eso. También voy a hablar un poco de la parte de seguridad de esto. Entonces lo primero que he agregado una función por aquí en nuestro archivo de funciones. Esta es en realidad la parte de seguridad de esto. Esta es una función. Es subrayado. E básicamente significa eco. Y básicamente, lo que esto hace es que se ejecuta se pasa una cadena a Irán que cadena a través de entidades HTML con estas banderas por lo que y las comillas se va a escapar tanto de comillas simples como dobles. Y h t ent html cinco va a mostrar código como HTML cinco. Entonces y, ah, el personaje establecido aquí para esto es utf ocho, que resulta que estamos usando aquí. Entonces? Por lo que yo diría algo bastante estándar. que hacer aquí. Um, la idea básica aquí es que lo verás aquí, justo aquí. Este guión laboral. Déjame recargar esta página. Ahora, si no estuviera haciendo la sanitización que estaba haciendo en el front end escapando que estoy haciendo en el back-end aquí, entonces esto Cuando cargamos esta página, este código realmente se ejecutaría. ¿ De acuerdo? Y si ah,
vemos aquí la fuente del marco muy rápido, se
puede ver la razón por la que no es porque en realidad son todos los ocho. Los caracteres especiales y demás se han convertido en entidades HTML. Entonces así es como realmente se imprimen en el código en el código fuente para que cuando se
muestren , se splay así en lugar de como,
por ejemplo, por ejemplo, este javascript no mostrando y realmente renderizando y procesando como javascript. Si lo escribieras en tu código fuente lo haría Ok, entonces así es esencialmente como te enfrentas de nuevo a los ataques de scripting de sitios cruzados. También somos como mencioné haciendo sanitización en el front end. Entonces eso es parte de ello. También estamos haciendo escapando en el back end que continúa nos da otra capa. Esas dos capas juntas ayudarán a evitar que este tipo de cosas ayuden a las personas a evitar que las personas puedan inyectar javascript en sus aplicaciones y tener un proceso cuando se muestran sus datos. Entonces esa es la función que he agregado aquí. Y esa es realmente la parte de seguridad de toda esta parte de esta cosa. A partir de ahí, sólo
podemos entrar en cómo realmente obtenemos los datos. Por lo que nuevamente tenemos nuestro requisito una vez para nuestra carga, tenemos nuestro tipo estándar de encabezado html. Aquí. Hice un estilo de cuerpo en realidad hizo este un poco más ancho. Te acuerdas de nuestra forma, era miradas, creo, 500 píxeles. Acabo de hacer un estilo en línea aquí para hacer esto un poco más blanco. Probablemente, ya
sabes, no necesariamente lo mejor que hay que hacer. Tal vez podría ir sobre, um, ya
sabes, en realidad dando a esta etiqueta de cuerpo una clase sobre el escondite. De todos modos, no
quería pasar por eso. Ah, sólo para este propósito es Así que acabo de hacer un poco más ancha allí, y luego nos metemos en nuestro código real para seleccionar de nuestra base de datos. Entonces, um, nos conectamos a la base de datos, así que sabíamos ,
instancia ,
mi escuela, como que hemos estado haciendo. Entonces nuestro usuario host pase y nombre de base de datos y luego estamos aquí porque estamos seleccionando todos los datos de una tabla en particular y no hay datos ingresados por el usuario al ejecutar esta consulta. En realidad sólo ejecutamos este dedo del pie el método de consulta. Ahora bien, si tenemos el usuario ingresa los datos, querrías usar declaraciones preparadas, Um, como como hemos hecho en el pasado. Entonces en este caso en particular, porque no estamos solo estoy corriendo este año. Pero si fueras a decir,
Digamos que quieres mostrar datos de un usuario en particular así que tal vez hiciste algo como este usuario. Yo d. Ah igual, digamos sólo uno, creo que uno. Si miramos nuestras bases de datos ahí dentro, Si es así, digamos que queríamos hacer esto
ahora, Ahora mismo, no
estamos procesando, así que no va a hacer nada, Pero tal vez quieras hacer algo así como donde d igual. Y entonces, ya
sabes, algo así en el pasado, realidad
podrías conseguir y conseguir ese usuario. A mí me gustaría esto. Está bien. Bueno, eso es realmente inseguro y seguro porque esos datos en la U. R L cualquiera puede entrar ahí y cambiarlo. Entonces lo que harías es, como lo hemos hecho, pondrías en un soporte de lugar, y esta sería mi secuela. Prepárense en lugar de consulta y luego aquí abajo, y en realidad haríamos esta ah, declaración, y luego hacemos declaración ciega Paramus. Y en este caso, esto sería un imager, y usaríamos yo no voy a hacer ninguna. O sea, seguirías queriendo filtrar esto y cosas como lo hemos hecho potencialmente dependiendo de lo los datos no van a hacer nada de eso aquí solo para mostrarte esto rápido. Entonces vamos a hacer nuestro parámetro de compra en y vapor y ejecutar el esto correría ese tipo de, Ah, que ejecutaría esa declaración. Entonces creo que tienes que correr como, obtener resultados. Um, fin de obtener el resultado, y luego lo recorrías así, pero lo harías. El punto es, es que usarías declaraciones preparadas al igual que tienes aquí. Está bien. Entonces Ah, no
quieres hacerlo Si vas a hacer algo como esto, no
quieres Sí. Se inyectan los datos que no se quiere abrir a inyección SQL. De acuerdo, pero de nuevo, porque en este caso, no
estamos haciendo No estamos haciendo eso. Solo estamos despejando para todos los usuarios. Entonces estamos bien hacer algo así lo que estamos haciendo aquí tan bien no había recargado esto. Sólo asegúrate de que todo esté bien aquí. Y así entonces una vez que tengamos nuestros datos, entonces ten a nuestro queer aquí y tenemos nuestros datos. Entonces vamos a correr un bucle while y vamos a hacerlo, Así que esto es un poco complicado aquí, pero ah, lo que hacemos aquí es cuando se ejecuta esta consulta y esto es lo mismo cierto. Por eso cuando llegué a ese punto en, ah, con las declaraciones preparadas, tuve que pensar un poco, y no quería pantanear el tutorial, pero esto realmente devuelve un recurso, bien? No devuelve la matriz real de datos si vienes aquí e imprimes. Este recurso no es la matriz de datos que crees que podrías obtener Ok. Ver, dice mi objeto de resultado adscrito. Es su campo de campo actual. Innumerables. Al igual que estos no son los datos esto solo te dice sobre los datos Ok. Entonces cuando ejecutas una consulta, ya sea usar declaraciones preparadas o cualquier otra cosa lo que realmente obtienes es este objeto
de recurso. Entonces tienes que hacerlo. Esta es básicamente mi secuela diciéndote Hey, así es como lucen los datos. Aquí es donde se pueden encontrar los datos. Aquí es de donde debes ir a buscarla. Oye, bueno, entonces en realidad tienes que ir a buscarlo. Y si acabas de correr, buscar, objeto así, sólo
va a buscar especie de la primera fila. Y así es todo lo que vas a recuperar. ¿ Esa es la primera fila? Bueno, queremos todas las filas. Entonces lo que vamos a hacer es que vamos a hacer un bucle while y vamos a recorrer. Ah, y vamos a buscar cada fila. Y estamos configurando ro igual al resultado de fetch object. Entonces somos esencialmente lo que estamos haciendo es ir por cada fila Ah, en nuestros resultados, que aquí y lo estamos buscando y y recuperándolo como objeto. Entonces vamos a recuperar un objeto, y lo estamos almacenando como un elemento en nuestra matriz. Está bien. Y luego somos una fila en nuestra matriz, y luego estamos tomando cada fila, y lo estamos poniendo en esta matriz de resultados. De acuerdo, entonces si imprimimos nuestros resultados ahora, después de haber hecho eso, entonces lo que obtenemos es lo que esperarías. Um, y sí. Ves, ahora, eso es porque tengo no recuerdo que no me escapé de los datos ahí dentro. Solo lo estoy imprimiendo crudo. Entonces por eso conseguí que el JavaScript procesara. Entonces otra vez, Es por eso
que escapar de la salida es importante. Entonces puedes ver aquí tenemos una matriz, y dentro de cada una, cada fila es un objeto. Este es el dato que normalmente esperarías recuperar. De acuerdo, entonces eso es lo que hace esto. Para ser honesto contigo, ni siquiera
importa realmente si entiendes esto necesariamente porque prácticamente cualquier dato donde estás esperando obtener algo de vuelta donde estás haciendo una
declaración selecta . Esencialmente, vas a tener que hacer esto, y en realidad es casi el mismo código cada vez. Así que simplemente escribe ese cono o usa ese código o ponlo en algún lugar porque
vas a estar usando esto una y otra vez. De acuerdo, así que eso nos pone nuestra matriz. Eso estaban buscando aquí. Y entonces ahora tenemos que construir nuestra mesa. Entonces en nuestra tabla están la sección de cabecera y nuestra sección de pie de página aquí ¿Se quedarán igual? Por lo que los construimos manualmente, al
igual que lo harías cualquier tabla regular. Por lo tanto mesa T cabeza, tabla, fila, cabecera de
tabla para cada elemento. Es decir, esto es material de mesa estándar aquí. Es solo t pie que tabla,
fila, fila, cabecera de
tabla para cada elemento. De acuerdo, entonces su equipo tipo estándar de cosas de mesa cada uno a la mayoría de las cosas aquí en el cuerpo es donde
realmente tenemos que recorrer. Y así aquí estamos haciendo un cuatro cada uno, y estamos revisando nuestros resultados establecidos aquí y para cada resultado. En consecuencia, entonces vamos a construir una fila. Entonces vamos a construir una fila para cada registro, y luego cada celda de esa fila va a contener nuestros datos que coincidan con lo que
ponemos en nuestra cabeza o así Nombre,
correo electrónico, correo electrónico, intereses de
frecuencia, comentario del país, etcétera. Está bien. Y ya verás estamos corriendo cada uno de estos a través de este subrayado e Es por eso
que cuando imprimí esto solo directamente y tenía ese script Java ahí dentro. Se hizo eco de ella. En realidad ejecutó el JavaScript. tanto que cuando no hago eso bien, si solo corro así como
es, no hace eso. Lo imprime así. Entonces otra vez, eso es ah, realmente perfecto. Gran ejemplo de por qué necesitas escapar de tus datos cuando los emites. Y sabes que el script Java en este caso solo está en alerta. Pero ese script Java podría ser cualquier cosa, por lo que podría hacer todo tipo de cosas nefastas en la persona que por la persona carga esta página. Por eso quieres hacer eso. Pero aquí sólo estamos haciendo eco esencialmente de cada elemento de nuestra ah de nuestra columna de
nuestra base de datos aquí. Entonces nombre, correo electrónico, frecuencia, interés, comentario
del país. Entonces eso es todo lo que estamos haciendo aquí. El que es un poco más complicado aquí es,
como mencionamos, como mencionamos, tipo de haber aludido es nuestro área de intereses porque se almacenan en nuestra base de datos como serializados un aumento. Entonces lo primero que tenemos que hacer es unserializar esos Ahora tengo todo esto juntos, pero se puede ver que aquí tengo intereses de resultados en lugar de simplemente repetirlo. En realidad soy un serializando al principio, así que estamos unserializando. Eso lo convierte en una matriz. Pero todavía no podemos simplemente no podemos, ya
sabes, queremos que sea amigable de leer. Entonces no sólo vamos a imprimir la matriz. Entonces lo que hacemos es usar implode, y así lo hace implode es que toma los elementos de Honore y los convierte en una cadena usando algún tipo de er delimitador que especifique. Y aquí estamos especificando una coma y luego un espacio. Entonces, esencialmente, va a tomar el valor de cada matriz. Entonces esta cosa particular ejemplo Elemento uno en nuestro rayo era PHP elemento a es cada uno a mi elemento
literal. Zero era PHP um que uno era cada uno a melón elemento a un CSS. Es tomar esos valores cada uno de esos, y los está machacando en una cuerda. Pero es poner una coma y luego un espacio entre cada una. Entonces básicamente toma tu lluvia, convierte en una cuerda que luego solo puedes hacer eco. Y entonces eso es lo que estamos haciendo aquí haciendo eco de eso. Y el resto es solo comentario de país estándar. Nos estamos haciendo eco de todas esas cosas. Entonces así es como pasamos. Y en realidad agarramos nuestros datos y luego en este caso, recorremos en construir una mesa con ella. Ahora, por
supuesto, no
quieres tener, ya
sabes, unidad sensible a datos del
usuario. Eso es sólo un amplio abierto al público así. Y hay toda una especie de otra arena de la que podríamos hablar en términos de tener un lugar para iniciar sesión, para poder hacer esto y todo ese tipo de cosas. Pero esto es sólo un ejemplo sencillo de cómo en realidad entras y agarras a ese papá y luego lo pones en algún tipo de tabla de resultados para que lo mires. Entonces eso es más o menos es directo como eso No realmente no una tonelada a ella. Y de nuevo, como como he mencionado realmente importante que uses eso Ah, entidades
html. De lo contrario te vas a abrir a la gente Bajammal publicar todo tipo de script Java simplemente tipo de willy nilly en todo tu sitio. Entonces está bien, eso lo hará para esta lección. Gracias por ver. Hablaremos con la próxima vez
7. Próximos pasos: Yo soy honesto ya no hay más. Tan online.com, tan poca limpieza para terminar este curso. Si aún no lo has hecho, asegúrate de dirigirte al área de clases. Hay una sección de clase para algunos, algunos pasos por los que caminar para este curso. Así que asegúrate de dirigirte en que está bajo la discusión en la pestaña Proyectos que verás en el curso. Además, si te diriges a mi perfil, asegúrate de darme un seguimiento de mi perfil aquí para que te notifiquen cuando libere nuevos cursos. Y también tengo una especie de curso semanal estilo podcast en curso llamado Let's Talk freelance. Entonces si te gustaría tener algún tipo de acceso a la formación
continua en materia de freelancing y negocios en línea y así sucesivamente. Asegúrese de comprobar eso. Hablemos de curso freelance también. Y por último, sí tengo un boletín diario de tips en mi página web en John Morris online.com. Si te diriges por ahí, puedes apuntarte a esa lista de correo. También te pondrán en la mía propia, en mi propia aplicación móvil, o obtendrás acceso a más de 78 horas de contenido
gratuito al momento de esta grabación relacionada con freelance y así sucesivamente. Entonces si te interesa eso, BD seguro revisará eso también. De nuevo, ese es John Morris online.com. Está bien. Gracias por tomar la clase. Si lo disfrutaste, te agradezco por Ti. Déjame una reseña y te veremos en el próximo curso.