Transcripciones
1. Video de bienvenida: Ah, hola ahí. Bienvenido a cómo crear un sistema de inicio de sesión y registro PHP usando Ajax. En este curso, vamos a aprender a usar JavaScript, Jake cansado Ajax PHP mi SQL y obtener para nuestro control de versiones. Haremos que todas nuestras solicitudes Ajax devuelvan objetos Jason. Entonces si no estás familiarizado con Jason, mientras este es un momento perfecto para que tus manos se ensucien poco la práctica con Jason, todo
este curso es un gran proyecto. Este es un proyecto de la vida real que puedes usar en cada sitio web en el futuro, y este código es 100% aplicable a todos tus proyectos. Todos tus sitios web que jamás construirás ahora estarán creando un sistema de registro,
un sistema de registro,
un sistema de cierre de sesión y un área de solo miembros. Por lo que hay que firmar a la gente. Después de que te hayas registrado para ver estas páginas cerca del final del curso, vamos a convertir parte del código en funciones, y luego vamos a seguir adelante y convertir esas funciones en clases lo que se
ensucia las manos con algún objeto orientado programación. Ahora bien, si no estás familiarizado con la programación orientada a objetos o O p. Entonces otra vez, este es un gran momento para que se le presente. Ahora también estaremos modernizando tus mis conocimientos SQL. Entonces si has estado usando mi ask you ally en cambio en este curso, lo que vamos a aprender es PDO, que es la versión Hopi de mi ask. Te das cuenta de que es mucho más limpio y es mucho más seguro. Hola, me llamo Caleb diciéndole que soy tu instructor para este curso. He enseñado a más de 38,000 alumnos
y contando, y ese número parece crecer unos 1000 cada mes. Y he estado desplegando sitios web durante casi dos décadas completas. Si puedes creer que ahora, algo que los estudiantes dicen que realmente les gusta de mí es mi habilidad para tomar una idea compleja o un problema complejo y realmente descomponerlo en piezas más pequeñas, más fáciles de entender de una manera que realmente puedas aprender y absorber. Y eso es exactamente lo que vamos a estar haciendo en este curso. Ahora bien, este curso es definitivamente para ti. Si estás interesado en Ajax PHP mi SQL I o si te interesa solo crear un solo tipo de sitio web de
miembros como Facebook donde tienes que registrarte para poder realmente entrar. O bien, si quieres aprender a usar, entra en el escenario real de codificación de la vida rial del mundo real. Ahora al tomar este curso, lo que obtendrás es 24 7 Acceso a todos los videos HD. Obtén ejemplos de código descargables después de cada lección para que puedas seguir junto con cada lección. Paso a paso y en realidad obtienes el código fuente completo. Está sobre Get hub. Ahora mismo es de código abierto, y se puede ver exactamente lo que utilicé. Entonces no hay nada de eso detrás de las escenas. Ahora. Tengo muchas ganas de compartir mis conocimientos contigo, y si te interesa este curso o cualquier parte de este curso, adelante, haz clic en ese botón de inscripción y te veré por dentro.
2. Introducción: Hola? Hola. ¿ Qué tan bajo? Bienvenida. Bienvenida. Bienvenida. En este curso, vamos a estar aprendiendo a crear un sistema de inicio de sesión y registro. Pero vamos a estar usando PHP,
Jake, Jake, Riri, Ajax y mi SQL para la base de datos. Vamos a estar creando un sistema de registro porque cuando no puedes iniciar sesión, si no tienes cuenta, Así que vamos a estar cubriendo eso también. Te vamos a estar usando. Yo niño en lugar del típico bootstrap o fundación para el marco front end. Sólo porque no nos interesa escribir mucho HD Miller, CSS sabe curso. Este curso está diseñado para enseñarte cómo iniciar sesión y cómo registrarte. Registrar un nuevo usuario usando PHP. Es No está diseñado para ser un sitio web hermoso. No, ¿qué se requiere en este curso? Bueno, deberías estar bastante familiarizado con algún CSS html un poco de javascript, pero ¿sabes qué? Si no lo estás, está bien, porque no vamos a meternos en esas cosas. No vamos a estar entrando en JavaScript como, avanzado. Lo que vamos a estar usando es J query, que es algo bastante sencillo. Si no sabes lo que cierta función en Javascript desert no hace, Uh, Google it. Lo mismo con PHP. Vamos a Vamos a estar repasando mucho en esta lección o en este curso más bien Y solo siéntete libre de posicionar video cada vez que veas algo que no sabes
lo que hace. Si es PHP JavaScript para mi SQL. Si no sabes lo que hace, pausa. Ah, y ve y Google. Ahora. En esa nota, sí
tengo otro curso llamado el último curso de Desarrollador HTML. Ah, y todo se trata de aprender. Sólo html. Tengo otro curso llamado JavaScript Essentials. En realidad puedes conseguir cerca de la mitad en YouTube ahora de forma gratuita y la otra mitad. Si lo deseas, solo
puedes escribir en el tipo de máquina de Google en los elementos esenciales de JavaScript. Caleb contando. Tan solo arroja mi nombre ahí, y probablemente encuentres algunos donde encontrarás el curso completo de todos modos. Ah, y si te interesa toda la pila de lámparas, esa es la ropa de cama. Apache, mi pila SQL y PHP. Tengo otro curso llamado The Complete Web Developer, que puedes adivinar en YouTube. Absolutamente gratis. Es de 18 horas de largo Es un poco mayor, pero es ya sabes que es viejo, pero es oro tiene mucha información útil dentro hay un go checa eso,
también,
Si alguna vez te atascas también, , Hay un montón de información que he proporcionado de forma gratuita en Internet. Además todo el Internet está ahí para ayudar ahora sobre este curso? Este curso no está destinado a ser muy largo. Va a ser de ritmo muy rápido. Entonces de nuevo, pausa cuando necesites ir en Google algo. Si necesitas a Teoh, no
tienes que ver todo el video y recordar todo. En primer plano, se
puede ver el mismo video tres o cuatro veces se puede ir y aprender algo nuevo y
se puede volver. Esa es la belleza de los cursos en línea. Entonces por favor, por todos los medios, esto va a ser rápido. Entonces, uh, pausa en Google si es necesario. Lo último que debes saber sobre este curso es que vendrá con un código, por lo que al final del mismo, obtendrás acceso a todo el código que estamos usando. Probablemente incluso sólo lo vomitaré en levantarse para que te den todo el código de forma gratuita ahí dentro. Vamos a estar usando get en realidad sólo un poquito. No voy a entrar en cómo get se usa innecesariamente. Podría entrar en algunos explicadores básicos, pero nada para avanzar. Y por último, vamos a estar escribiendo funciones PHP. Entonces en lugar de clases iban a ser funciones de escritura para empezar. Sólo porque eso es más fácil para nosotros envolvernos la cabeza porque este es un
proyecto muy pequeño . Realmente sólo necesitamos escribir funciones ahora. Cerca del final del curso, podría terminar convirtiendo todas esas funciones en clases sobre ponerlas arriba en get Hub para que puedas ver cómo funciona todo y puedas descargarlo y jugar con él y todas esas cosas
buenas. Pero por ahora, nos vamos a estar pegando con funciones sólo porque va a ser agradable y simple. Entonces con todo eso dicho, sigamos adelante y empecemos ahora mismo
3. Primeros pasos con Git: Hola. Hola. Hola. En esta lección, vamos a estar aprendiendo sobre cómo configurarnos con nuestro proyecto antes de que realmente hagamos algo más. Que la razón por la que queremos hacer eso es porque es genial para el control de versiones. Ya puedes ver quién ha hecho cambios a qué código Si nos metimos en algún momento, simplemente no queremos pasar una hora depurando tu código. Siempre podemos simplemente retroceder e ir a encontrar el bug. Podemos mirar las diferentes versiones de diferentes archivos en diferentes momentos en el tiempo. En eso está realmente la torre de Get Now por qué es tan útil como un desarrollador individual podría no ser. En realidad es solo un plan de copia de seguridad, si tu computadora se bloquea o algo así. Pero como equipo, es absolutamente vital porque tú y otras personas pueden trabajar en el mismo proyecto al mismo tiempo e incorporarse juntos el trabajo del otro. No vamos a estar haciendo eso, y este curso no es, ah, conseguir curso. Pero quiero que te familiarices un poco con Get now. Si estás familiarizado con, ponte impresionante. Simplemente ignora el este get stuff Si no estás familiarizado con get Sin embargo, esto es probablemente bastante buena práctica. Esta es una pequeña introducción al mundo de Kit. Entonces no hay más preámbulos. Echemos un vistazo a nuestra página web. Contamos con anfitrión local. Esa es mi página web. Aquí es donde voy a estar construyendo el sistema de inicio de sesión. Está en mi máquina local Y si te has dado cuenta, te
estoy usando bollo también. Estoy usando Lennox. No tienes que hacerlo. Puedes usar ventanas. Puedes usar Mac host local todo funciona de la misma manera. También puedes usar un servidor arriba en la nube que puedes usar. Aws Ah anfitrión Gaber Anfitrión Gator Más bien Ah Lin adeudó Océano Digital Cualquiera que sea una canción. ¿ Se está ejecutando esto? Básicamente Linux Apache, My SQL On PHP No puedes usar windows tan bien en lugar de Lennox toe host este entorno pero es solo un poco más de un dolor en el culo. Vámonos a buscar hub. Lo primero que queremos hacer es crear un nuevo repositorio. Bueno, quiero decir, si no tienes una cuenta, crea una cuenta y crea un nuevo repositorio, El nombre del repositorio para este solo va a ser PHP Loggins system Nada de lujo un ejemplo log in system con registro de usuario, público o privado. decir, Esdecir,es como público porque quiero que ustedes puedan ver a esta cabra. Tampoco quiero pagar por un Rebo Rebo privado, Corto para repositorio, que es básicamente mi abrigo está arriba en la nube inicializado este repositorio con el léame? Sí, bien
podría um creador Léame por mí si es poco menos trabajo que tengo que hacer Awesome. Hazlo por mí. Crear repositorio. Ahora, tengo un reporte. Si voy a conseguir hub dot com slash kale italiana slash PHP log in system. Tendré mi sistema de inicio de sesión. Aquí está el nombre. Aquí te dejamos la descripción. Nada de fantasía, pero queremos es este botón verde aquí dice clon o descarga kun con ssh significa que get hub tiene mis claves ssh, lo que esencialmente sólo significa que get hub sabe que mi computadora ha sido autenticada. Ya no tengo que escribir mi contraseña de nombre de usuario. Simplemente sabe quién soy. Si no tienes esa opción si si no sabes qué es todo
eso, está bien. Puedes usar el método https, y te has dado cuenta de que el earl realmente cambia va de Get out, get out dot com colon kill nombre de proyecto italiano a usar https, que es https colon slash get hub dot com slash nombre de usuario slash proyecto para que solo puedas usar https y dicho, Y solo te va a pedir tu nombre de usuario get hub. Ah, y tu contraseña, y eso está totalmente bien. Get Hub es muy confiable. Podrás enviarles esa información. Pero recuerda, sí
necesitas obtener cuenta de ayuda para que eso funcione realmente. Ahora voy a usar el S H uno porque no quiero cinta en mi nombre de usuario y mi contraseña cada vez que hagamos algo con get así que solo vamos a saltarnos toda esa etapa y voy a copiar este año donde voy a ir a mi consola y teclear get clonar PHP sistema
de inicio de sesión. Entonces todo lo que hice fue conseguir clonar todo el proyecto estoy usando el shur también llegar sabe quién soy. Y este es el directorio al que quiero que entre. En realidad no quiero llamarlo sistema. Se llama PHP Log in course, supongo Hit. Entra ropa en PHP Log En curso, todo está bien ahí. No veo ningún heredero CD PHP Curso de registro Al l o L A Stash A o L s Dash L A. Todas estas diferentes opciones muestran tus diferentes carpetas. Ahora tenemos 11 carpeta arriba. Um, tenemos nuestra carpeta get, que es donde get stores todos sus cambios, Um, y su historia y todo eso. Y entonces tenemos eso Léame Ahora que Léame. Es este archivo impresionante Que me leyó punto MD Ahora abre Sublime. Tengo curso de registro PHP, y solo tengo el único archivo. Ahora, mi computadora tiene exactamente el mismo código que tiene get hub. Eso es bastante guay. Ahora hagamos nuestro primer compromiso. Entonces lo que queremos dio es crear un nuevo archivo index dot PHP Si pudiera deletrear ese derecho para ser grandioso. Ahora bien, esto es actualmente como se ve la página de índice antes de crear el archivo PHP index dot. Y cuando refresco ahora que tengo un archivo de índice, no aparece nada. Impresionante. Eco PHP. Hola, mundo. Si no estás familiarizado con mucho PHP, está bien. Realmente no necesitas ser estos cursos y súper avanzados ni nada encendido. Nos vamos a adelantar más a medida que avanzamos. Va a ser una gran curva de aprendizaje para ti. Guardar. Actualiza la página. Hola, mundo. Ahí vamos. Tenemos nuestra primera página, pero si vamos a conseguir solo refresco la página y no hay ningún archivo PHP index dot. Tengo un índice dot archivos PHP. ¿ Por qué? ¿ Por qué consigue no tener eso? Bueno, es porque no le dijimos a Get que descargara el archivo de nosotros o mejor dicho, no lo
dijimos. Llegar a empujar nuestro código para obtener hub dot com Así volvemos a nuestra terminal, han estado consiguiendo estado, y tenemos archivos sin seguimiento. Solo tenemos un archivo sin seguimiento, así que obtén ad index dot PHP. Vuelve a obtener el estado. Ahora está en verde en lugar de rojo y dice nuevo archivo Awesome. Ahora bien, si vuelvo a conseguir hub y refresco la página, ¿
adivina qué? El código aún no está ahí. Bueno, ¿por qué es eso? Porque todo lo que hicimos fue escenificar el código. Eso significa que se está preparando para ser empujado hacia arriba para conseguir son para abrazarse. Más bien ahora si estuviéramos editando 203 100 archivos a la vez, si estuviéramos usando algún ah, no
hay sistema front-end NPM con grunt o gulp, tal vez un compilador SAS, podría editar una tonelada de archivos al mismo tiempo, y quizá no queramos empujar todos esos cambios. Nosotros sólo queremos empujar el único archivo. Eso es todo lo que queríamos ahora mismo. Entonces ahora que esto está en verde, escribimos get status. Genial. Entonces cualquier cosa que sea cuando justo ahí realmente, cualquier cosa que esté en verde significa ese escenario. Consigue commit em. Solo llamemos a esto hola mundo. Entonces get es un comando para correr. Cualquier comando get commit es la básicamente la función a ejecutar. Se necesita un parámetro dash M, y ese es el mensaje que vamos a darle. Yo golpeo get LG ahorita, que es un encargo comandado dicho Podrías escribir get log básicamente te muestra lo mismo , pero tiene tu dirección de correo electrónico ahí dentro. A mí sólo me gusta ver éste porque nos muestra dónde está en donde estamos. Origin Master es donde get hub es Origin Head es donde conseguir Hub piensa que es. Y nuestra cabeza no origen. Slash tenía sólo nuestra cabeza está en una etapa diferente. Ahora volvamos a conseguir página de actualización. ¿ Adivina qué? El código. Todavía no ahí ahora. ¿ Por qué es eso? Bueno, otra vez hicimos el compromiso. Le dimos un mensaje. Dijimos, Sí, esto está listo para ir por él pero en realidad no lo enviamos para conseguir hub Así que necesitamos un comando
más. Sé que suena a muchos comandos, pero una vez que te acostumbras a esto, es súper rápido. Entonces escribimos get push origin, Maestro Lo que hizo ahí fue contar el número de objetos que tenemos número de archivos. Esencialmente, es usar métodos de compresión Delta básicamente para comprimir o archivar para que no tengan que
hacerlo . Ya sabes, no tiene que enviar dos gigabytes hasta conseguir hub cada vez. Puede comprimir eso hacia abajo en algo más pequeño, por lo que es mucho más rápido. Objetos de compresión 100% para tener dos objetos de escritura impresionantes. Escribió algunos objetos para nosotros en ¿A dónde va? Se va a donde le dijimos que fuera. Aquí es donde clonamos nuestro repositorio. Ahora, cuando vayamos a conseguir hub, refresca la página Ahora es cuando aparecerá nuestro código. Mira eso. Tenemos index dot PHP y tiene nuestro mensaje aquí. Incluso tiene nuestro tiempo. Entonces si nosotros si hacíamos clic en hola mundo, pudimos ver qué se agregó lo que no estaba en ello? Si volvemos atrás, podemos hacer click en índice punto PHP y en realidad podemos ver el abrigo. Ahora eso coincide con lo que esto es Ahora si escribo test aquí, que sólo texto regular, ¿
verdad? Y volvemos aquí y refrescamos nada va a pasar Y eso es porque no
le dijimos a get que todavía hay cambios, así que volveríamos a pasar por todo ese proceso. Vamos a hacer eso un par de veces a través de este curso va a volver a ser muy familiar para ti . Este no es un curso basado en get, pero solo queremos conseguir un proyecto configurado con get para que podamos tener diferentes versiones encendidas y puedas ver si querías, podrías ver el historial de nuestros archivos. Entonces eso se está preparando con. Consigue si quisieras, podrías seguir este Todo este procedimiento con tu propia cuenta. No tienes que usar el nombre exacto PHP log in system. Podrías llamar a lo que quieras y solo crear tu primer archivo y ah, básicamente comprometido. Ponlo en su área de puesta en escena y luego empujarlo hacia arriba para conseguir. Y una vez que está ahí, estás listo para pasar a la siguiente lección. Si ya estás familiarizado con consigue y no quieres hacer esto totalmente bien y te
veremos en el siguiente video.
4. Página de inicio y configuración HTML: Está bien, ahora estamos configurados con get Vamos a seguir adelante y configurar nuestro proyecto contigo. Yo kit. Ahora, sé que mucha gente quiere aprender Bootstrap, y eso es fantástico. Pero te gusta cuando se trata de solo azotar un sitio web. De verdad, realmente rápido es extremadamente poderoso. Bootstrap es extremadamente potente. No me malinterpreten. Fundación es fantástica. Todos estos frameworks son increíbles, pero te gusta que solo tiene ese pequeño toque extra. Muy bien, Entonces lo que ves frente a ti es solo nuestra estructura básica html. ¿ Verdad? Entonces tenemos nuestro tipo de doc es html de cinco vías. Ten la cabeza. Tenemos su cuerpo. Um, tenemos un título ahí dentro. Uh, todo lo que hice fue vincularte Te kit CSS a nosotros usando Cloudflare. También he puesto en Jake cansado en y te gusta min dot Js y sus iconos Dodgy s. ahora, si no sabes cómo conseguí que vaya a conseguirte como punto com y haga clic en empezó y
básicamente instalación y todo lo que hice fue agarrar el CSS y yo agarró el Jake cansado y agarré el tú yo kit Js Eso es todo lo que hice. Si no sabes agarrar alguna de estas cosas si no sabes lo que estás haciendo aquí todavía,
uh, uh, probablemente sea un buen momento para volver atrás y aprender sobre HTML. Sí, tengo el último curso de desarrollador masculino HD. Escriba eso en Google. A lo mejor pon mi nombre ahí y podrás encontrarlo. Pero ya deberías estar familiarizado con nosotros. Ahora voy a quitar eso, y todo lo que voy a hacer es ahorrar. Vuelve a Chrome, refresca mi noción de página. No aparece nada. Golpeo F 12 para abrir mis herramientas de desarrollador o alternativamente, derecho ,
clic, inspecciono y voy a consola y no hay errores. Eso significa que todo está cargando la forma en que se supone que debe cargarse. Impresionante. Ahora bien, este curso no está destinado a enseñarte. ¿ Te gusta? No está destinado a enseñarte a hacer el marcado CSS html básico. Entonces lo que estoy a punto de escribir puedes ignorar por completo, O si te interesa aprender te gusta, puedes prestar atención. No voy a aprender. No voy a enseñar demasiado al respecto, sin embargo. Esso UK sección U K Contenedor UK Centro de texto. Tipo de. Yo sí prueba. Ahí vamos. Tenemos algo de contenido ahí dentro. Agradable y sencillo. Snap. Si escribí, uh, vamos a hacer una grilla de Reino Unido. Ese niño del Reino Unido con esto que nadie de tres en pequeño también UK Child con es uno de uno. Esto es el móvil primero, lo
que significa que va a tomar éste por defecto. Va a ser con uno de uno, que es 100% Y cuando el puerto de vista es pequeño, que es, creo, 640 píxeles, uh, o más grande va a ser un con de 1/3 y se puede rejilla. También uso un plug in llamado Emmett, que solo me permite básicamente escribir,
uh, uh, html CSS y atributos como este y todo lo que hago es sentarme Tabin. Escribe todo el otro código para mí. Um, así que sigamos adelante, pero prueba ahí dentro. Cool deluxe. Está bien en. Y ahora vamos a ir a ti como él y poner en un carrito. Echemos un vistazo a una tarjeta y ni siquiera soy un derecho el html porque realmente no me importa demasiado . Um, ya
sabes, en realidad, una mejor sería la forma cuando se ve bien. Algo con Vamos a hacer este uno del marcado y todo lo que voy a hacer es agarrar esto otra vez. No estamos buscando nada elegante. Guardar. Refrescar. Tengo un centro tecnológico de forma básica. Deshaznos de esa fría forma básica en lugar de leer texto ahí, pongamos correo electrónico y copiemos eso. Ponga contraseña y aquí cambió ese Tipo dos cambios de contraseña. Tipo a correo electrónico, lo cual es genial para móviles. Básicamente cambiar el tipo de email de texto en mobile allow es un teclado diferente en tu teléfono para que no lo hagas como usuario, no
tienes que ir a la caza de eso. Poco en símbolo acaba de aparecer para ti. Por lo general, uh, ya
sabes, email dot com Esa no es la contraseña del símbolo at. Tu contraseña. Pase ortografía de palabras al escribir correctamente hoy claramente no es mi fuerza. Deshazte de todo eso, di cada fresco Ahí vamos y tenemos que hacer. Vamos a seguir adelante y en realidad copiar esto. Necesitamos enviar botón. Dame eso. En realidad, necesitamos era margen de Reino Unido en el botón entonces. Si estás familiarizado con CSS, sabes que eso seleccionaría todos los botones. Entonces hacemos UK abotonado botón de Reino Unido cinta predeterminada es igual a enviar e iniciar sesión. Ahora tenemos un registro básico. Informar, ¿verdad? Nada de fantasía. Nada elegante, pero esto hace el trabajo. Entonces, ¿es necesario que estos sean requeridos? Eso es así Sí requerido Es igual a requerido. Copia eso más. Asegúrate de que ambos sean requeridos. ¿ Qué sucede cuando enviamos el formulario HTML cinco Validación patea ahora. No confíes puramente en eso, pero está bien, dedo del pie, permite la validación. Ahora queremos agregar una clase. Cualquier cosa que tenga que ver con JavaScript. Tiendo a iniciar el nombre de la clase con Js. Por lo que Js nos llamó Iniciar sesión. Vamos a llegar a eso un poco más tarde, y ahora tenemos nuestra página básica de inicio de sesión. Impresionante. De acuerdo, entonces lo que quiero hacer es no quiero tener que incluir eso en cada página, y no quiero tener que incluir Ah, muchas cosas de cabeza en cada página, y quiero incluir una config y todas esas cosas. Entonces, um, en la siguiente lección y siguiente video, lo que voy a hacer es que voy a limpiar un poco esto. En realidad estoy procesando eso y en su lugar vamos a poner estos en sus propios archivos. Eso que si alguna vez necesitábamos cambiar la versión de J Query, solo
podríamos cambiar de, como 3.213 punto 22 Y surtirá efecto en cada página en la que se
cargan los pies . Um, así que eso es para eso Ahora, uh, vamos a conseguir estatus. Hagamos un get def en Índice PHP. Mira todas las diferencias para que puedas ver aquí arriba. Dice, Ah, en rojo menos Hola mundo. No hay nueva línea al final del archivo y todo el material verde es todo el nuevo código. J me deja desplazarme hacia abajo K me deja desplazarme hacia arriba. Impresionante. Entonces tenemos un montón de código nuevo ahí dentro. Vamos a seguir adelante y obtener add index dot PHP. Podemos revisarlo de nuevo. Asegúrate de que en realidad está ahí en lugar de obtener el estatus. Me gusta, sugirió que sí conseguiríamos commit add log en forma. Obtén push origin Master, consigue LG u obtén log. Podría sí conseguir la elegía en su lugar. Si no tienes el comando LG, cual probablemente no pero obtienes log es el predeterminado. Uno básicamente te muestra lo mismo. Ahora volvamos a nuestro navegador Hit, Refrescar agregado Log, informa. Mira eso. Y ahí está todo nuestro código completamente accesible a Internet. Bastante guay, ¿verdad? Por lo que ahora otras personas pueden mirar tu código, que a veces genial, a veces no genial, dependiendo de tu proyecto. Es decir, si estás trabajando para una empresa como Facebook, no
quieres que todo el mundo mire tu código. Pero si estás haciendo un proyecto de código abierto, sí, claro, sigue realmente bien. He notado que realmente no me importa demasiado inventar ahora mismo. Podemos arreglarlo con un editor config un poco más tarde. Entonces ese es nuestro bitácora. Informar Estilizado Con usted. Yo crío otra vez. Nada de fantasía. No se supone que sea. Todo lo que se supone que tiene que hacer es trabajar
y Sinus, y pero en su momento, no
tenemos nada que validar. Si alguien pone su dirección de correo electrónico y contraseña, literalmente no va a hacer nada. De hecho, incluso
vamos a probarlo. Test at test dot com Prueba test test test test test test. Cambió que fuiste capaz de un signo de interrogación. Uh, eso no es bueno En realidad no debería ni siquiera ser una pregunta. ¿ Verdad? Y está en medio de la forma. Queremos que esto sea una forma Ajax eso cosas totalmente diferentes. Entonces a la izquierda siguiente, voy a limpiar ese archivo y luego voy a crear una página de registro y probablemente sólo la página de índice básico también.
5. Añadir tu Config, y más páginas: todo bien. En la última lección, todo lo que hicimos fue reemplazar nuestro PHP por HTML. Nada de fantasía. De hecho, realidad
deberíamos seguir adelante y limpiarnos, y eso es lo que vamos a hacer. Entonces lo primero que realmente quiero hacer es crear un archivo de configuración para que pueda ir tahp incluir en realidad no requieren la diferencia entre él y la diferencia entre recordar requerir e incluir. Incluir incluirá el archivo que especifique. Pero si no existe, la página básicamente intentará seguir adelante. De todos modos, podría romperse en varios lugares, especialmente si no puede encontrar el archivo CONFIG, mientras que require intentará requerir la presentación. Si el archivo no está ahí, es simplemente ir del dedo del pie. Uh, es la mente va a explotar. Diga, Oh, no
sé qué hacer y simplemente morir Ahora, en algunos casos, queremos que si no podemos cargar la config, no podemos hacer nada más así que requerir Once and Let's Dio Inc slash podría descifrar PHP ahorrar cuando pasemos a nuestra página, ver el error realmente nos pone 500 en contra, porque eso no existe. Tinta de carpeta cremosa crear un nuevo archivo ahí llamado config dot PHP. Ahora funciona. Está bien, genial. Entonces, ¿qué podemos hacer aquí? Pero si hiciéramos PHP echo test exit mata su página con las pruebas de texto de palabra en él. Eso es perfecto. Eso es lo que queremos. Sabemos que los archivos de conflicto en realidad se cargan a través del índice. Ahora, como práctica de seguridad, esto es algo que puedes hacer. Hay otras formas de evitar esto, Pero si vas a tener tu archivo config en una carpeta accesible h email, eso significa que si alguien fue a tu sitio web dot com slash ng slash config dot PHP, podrían ver este archivo? Técnicamente, sí. Podrían acceder a un Sí. ¿ Produciría errores? Lo más probable es que, incluso si tienes errores desactivados. ¿ Eso es genial que la gente vea una página en blanco? No, no
quieres eso. En cambio, donde quieres hacer es asegurarte de que no puedan tener acceso a ella. Entonces me voy a deshacer de esto porque es innecesario de decir, si no se define config cool. Vuelva a cargar la página. No tengo un archivo de configuración. Eso se debe a que esto no está definido ahora en PHP. Tenemos variables. Tenemos constante. Tenemos todas estas otras cosas impresionantes. Entonces, en lugar de requerir en la parte superior de la página, asegurémonos de que esta página esté realmente permitida incluir el archivo de configuración. Hacemos eso definiendo. Básicamente, este sería el nombre constante que es en lugar de una variable. Es una variable que nunca puede cambiar una vez que está configurada, está establecida de por vida. O básicamente, hasta que las Escrituras terminaran de correr y simplemente lo pondremos cierto. Y agreguemos algunos comentarios porque los comentarios siempre son una buena idea. Ah, permite que la configuración requiera la configuración. Ahí vamos, se pagan aparece. Pero si cambiamos, eso se ha sumado a ahí dentro. No tenemos un archivo config ahora. Lo que podríamos hacer es que podríamos redirigir a alguien aquí en lugar de salir. Podríamos. Eso es en realidad lo que deberíamos estar haciendo como debemos redirigir. O deberíamos mostrarles una página 404, por lo que parece que no hay nada ahí. Pero por el bien de la simplicidad, por el bien de la brevedad, vamos a mantener esto bonito y corto con un mensaje de salida. Ahora de nuevo que un comentario si no hay constante definir llamado config. No cargue este archivo ahora. Cualquier cosa después de la función de salida. Uh, no
va a renderizar cool. Entonces, básicamente, si nuestro código pasa aquí, todo lo demás está haciendo cotizaciones aéreas. Pero es seguro. No es realmente seguro, pero es seguro. Er, es solo una precaución que puedes tomar ahora. Nuestra configuración está por debajo, y ¿qué queremos en nuestra config? Por el momento, no
queremos nada dentro de la configuración aún quedaban esta bonita y en blanco, y ese es nuestro primer archivo requerido. Ahora bien, si quisiéramos trasladar esto a otro lugar, podríamos hacer eso también. PHP requieren. Una vez requieren una vez, obviamente sólo intenta requerir el archivo una vez que ya se ha requerido. Uh, y en lugar de requerido. En realidad, podrías usar include una vez y así si los archivos ya fueron requeridos o incluidos, no
va a intentar requerir que se incluyeran de nuevo, y eso es como si tuvieras un bucle, por ejemplo, que se está atropellando una y otra vez. En lugar de requerir el mismo archivo 55 55 100 millones de veces, sólo
se va a tratar de requerir de una vez. Ah, y aquí vamos a ir inc slash pie de página punto PHP que no existe. Corta ese código yendo aquí. Nuevos archivos llamados footer dot PHP Ponga eso aquí. El espaciado de las pestañas no importa realmente. Ahora. Si quisiéramos hacer lo mismo con el pie de página, podríamos simplemente tirar eso aquí. Asegúrate de tener nuestra sintaxis de esperanza PHP y esa sintaxis de cierre. Ahora, nuestro pie de página nunca se va a cargar si no hay config cargada y nuestra configuración se carga
aquí ahora de nuevo, tal vez no sea la mejor manera de hacerlo. Uh, ciertamente no es la peor manera de hacerlo. En lugar de tenerte enterado, pie o chequear por config, podrías tener otra constante aquí. Permitir pies de página Eagle a verdadero en aquí, decimos, si no se define, permitir pie de página. Básicamente, el archivo CONFIG no te está permitiendo tener eso en. No van a hacer eso. Vamos a quedárnoslo otra vez. Muy sencillo. De hecho, realmente no
me importa si la gente puede incluso acceder a este archivo porque es solo un poco de javascript. No hay nada reservado en este expediente que necesitamos mantener alejado de todo el mundo. Básicamente es solo un archivo de plantilla. Entonces y deshacer esas cosas. Decir que de vuelta a su página, Recargar, inspeccionar. Y en nuestro consejo, no
hay errores de no advertencias en solo para mostrarte lo que quiero decir con eso es que si lo hice, tuviste un puñado de dos aquí y haces esto realmente asqueroso, y refresco la página. Dice que no se puede conseguir ninguno de estos. Esencialmente, lo que está diciendo es estos aire 404 ng Estos archivos no existen. Pero si los deshago, no
recibimos esas advertencias. Eso significa que esos archivos se están cargando en nuestra página perfectamente Fine. Y voila. Contamos con una página de índice más limpia. Ahora eso nos lleva a nuestro próximo. No necesariamente queremos que esta sea tu página de índice. Entonces vamos a seguir adelante y volver a guardar esto en un reciente duplicado. Voy a llamar a iniciar sesión y esta página no va a tener nada en ella. Y esto sólo va a decir, ya
sabes, ve hola, mundo. Y echemos un poco PHP ahí dentro Fecha año, meses. Yo no salgo. Claro, lo que sea. Uh uh hoy sí ahorra volver a nuestra actualización de página de índice. día de hoy es un día no controla porque eso no lo hicimos eco. Ahí lo tienes. Esa es la fecha. Nada. Genial. Pero si entramos en log in dot PHP ahora, tenemos una página especial de inicio de sesión. Ahora lo que vamos a hacer es que vamos a duplicar esto una vez más, realidad vamos a duplicar la página de inicio de sesión en sí duplicado, y vamos a llamarlo registro. Y en lugar de llamar a este Js llamando a este baúl de clase iniciar sesión, vamos a llamar a Js Registrarse y va a tener una funcionalidad diferente. Puedes agregar tu correo electrónico. Puedes agregar tu contraseña. Puedes agregar una segunda contraseña ahí para que la gente tenga que tomar la contraseña y dos veces todo tipo de cosas. Pero esencialmente, cuando se llene este formulario va a actuar de manera diferente a través de JavaScript. Y eso nos lleva a la sección Ajax, que está un poco ah, por delante de nosotros mismos ahora mismo. Pero tenemos básicamente una página regular aquí donde solo hagamos registrarnos, así que sabemos en qué página estamos. Ah, tenemos páginas regulares aquí donde nuestro sitio en realidad se ve un poco diferente y dejar algo de espaciado aquí no prefiero mucho espaciado. Uh, pero lo estoy haciendo principalmente por el video de aquí. Y así si hice esto,
esta es la página de inicio de sesión. Y si fui a registrarme en PHP, obtenemos página registrada, y en realidad, puedo cambiar a eso. No necesita estar logueando. Eso podría estar registrado. Ahora, vamos a estar haciendo mucho con estas páginas de inicio de sesión y registro,
y en realidad van a ser drásticamente diferentes, considerando el hecho de que se ven prácticamente idénticos en este punto. Por lo que ahí lo tenemos. Tenemos una página de índice. Tenemos página de inicio de sesión y página de registro. De hecho, ni siquiera
me gusta eso. Adelante y cambiemos a las dos. Uh, registrando que PHP iba a agregar un Lincoln aquí, inicia sesión y regístrate. Y ahora, si vuelvo a la página de índice, tenemos que iniciar sesión y tenemos un link de registro va a iniciar sesión. Vuelvo y haga clic en registrarse va a registrarse. Impresionante. Por lo que ahora tenemos nuestra página básica de configuración. Por último, Caleb en realidad se metían en algo bueno. Sí. Esto es parte de montar un proyecto, sin embargo. Es el abordaje Cada TML elementos el ajuste de las estructuras de tu página que conseguir tu configuración de configuración A las personas no les gusta hacer eso. Los desarrolladores web se aburren mucho haciendo cosas básicas como así lo que vamos a Dio es configurar esto ahora mismo. Nos preparamos, nos ponemos antes de que hiciéramos todo esto y entonces podemos empezar a divertirnos un poco ahora. Mencioné obtener estatus. Mira esto. Modificamos índice. También tenemos un montón de archivos nuevos en tu acción de archivos de proyecto. Se supone que hasta tengo que estar ahí. Pero este es un buen ejemplo para agregar múltiples archivos. Obtener anuncio Kid. Add Inc va a agregar todo el directorio y eso debería haber tenido un espacio ahí dentro. Ahora, si consigo estatus ahí vamos. Estos archivos se van a incluir en nuestro próximo commit Los archivos del proyecto no lo es. Hacemos un get commit, agregado config. Inicie sesión Reg páginas añadidas flitter. Agradable y corto. Recibes mensajes. Tiene que ser muy largo. Consigue empujar origen Maestro, ve a levantarte actualizado. Mira que tenemos Index Logging Register Inc. Tenemos todo tipo de cosas impresionantes en tu cool, cool cool. ¿ Deberían haber estado estos en sus propios mensajes de conseguir? ¿ Deberíamos habernos comprometido? ¿ Un archivo a la vez? Sí, probablemente
podríamos haber hecho eso. Pero sólo porque este proyecto es tan pequeño, uh, no
es tan importante. Ahora, si estás trabajando en un gran proyecto como sitio web de $100,000, sí, tal vez hacer diferentes conseguir mensajes para que la gente en tu equipo pueda ver qué es exactamente lo que está
pasando o si recibes mensaje va a ser realmente largo, tal vez dividirlo en dos, obtener mensajes o obtener commits más bien. Por lo que ahí lo tienes. Pasemos a la siguiente lección.
6. ¿Ayúdame?: Hola, Soy yo. Yo soy la voz detrás de los videos. Sólo un rápido recordatorio de que si has disfrutado de alguno de estos videos hasta ahora, puedes seguirme en share de habilidad. Pero lo que es más importante, en realidad se
puede calificar este curso. Y con sólo leer este curso, eso realmente me ayuda mucho. Es súper fácil y súper rápido solo toma un par de segundos, y quiero decir que realmente significaría el mundo para mí. Entonces si has amado lo que te he estado enseñando,
si te gusta el estilo de mis cursos, dale a eso un buen pulgar viejo para arriba, Um, y deja que otras personas sepan qué pellezas de estos videos también. Salud.
7. Almacenamiento de contraseñas: Bienvenida. Bienvenido, bienvenido. Última lección. Creamos una página de registro de inicio de sesión. Todas esas cosas. Incluimos nuestra config. Incluimos un pie de página para que pudiéramos hacer cambios a través de varias páginas muy, muy fácilmente. Pero antes de que alguien pueda iniciar sesión antes de que alguien pueda registrarse, necesitamos una base de datos. De lo contrario, solo
estamos almacenando básicamente contraseñas en simple impuesto. Ahora, con eso dicho, quiero mencionar algo realmente rápido. De acuerdo, en tu JavaScript, he visto esto demasiado últimamente, pero en tu JavaScript, gente ha estado almacenando contraseñas. Nunca almacene sus contraseñas y JavaScript nunca almacene sus contraseñas y CSS html. Esos son todos accesibles en el navegador. No importa cómo intentes esconderlos. Es visible para todos. Entonces déjame, déjame ser muy claro con esto. No hacer lo que sea por ningún propósito o motivo. Alguna vez almacene una contraseña en JavaScript, HTML o CSS. De hecho, incluso
diría que nunca almacene una contraseña en un PH regular. Cadena B como esta. Ni siquiera hagas esto porque el hecho del asunto es que ningún servidor es irrompible. Eso significa que alguien puede entrar. Puede que no sea hoy quizá no sea mañana, pero si alguien realmente quisiera entrar, podrían conseguir tu código. Ahora hay una cosa más que hay que tener en cuenta es cuando escribimos contraseña es igual a contraseña. Y ponemos eso en Get hub. ¿ Adivina qué? Todo el mundo lo confinó. Quieres un P I claves, Ve a buscar en. Ponte de pie. Hay decenas de miles de claves P I en sus decenas de miles de contraseñas que están codificadas duro en proyectos. Y la gente simplemente irrumpe sólo porque es de acceso público. Entonces, no hagas eso nunca. En cambio, lo que vamos a hacer es que vamos a crear una base de datos para que podamos movernos por completo que ni siquiera vamos a usar contraseñas iguales a contraseña, nada por el estilo. No vamos a almacenar ninguna contraseña en variables puramente porque no queremos hacer eso. Ni siquiera quiero mostrarte cómo se hace eso. Mucha gente dice, Oh, pero ya sabes, PHP tiene s o muchos defectos de seguridad como No, realidad
no, no si sabes lo que estás haciendo. Es solo que la gente es mala desarrolladores a veces, y quiero que seas un gran desarrollador, Así que nunca pongas tus contraseñas en texto plano así. es bastante malo cuando la gente pone contraseñas en texto plano, como donde teníamos contraseña es capaz de contraseña, y yo podría leer eso. Pero aunque estuviera encriptado con algo que está mal, también, no pongas eso ahí. Si alguien va a entrar en tu servidor, haz que funcione para ello. Tienen que trabajar muy duro. Y para que realmente logremos que esto funcione de la manera que queremos, necesitamos una base de datos. Entonces ya he terminado. Mi despotricación sobre las contraseñas por favor siempre tenga mente la seguridad. K Seguridad viene antes de que la buena apariencia. La seguridad viene antes de la funcionalidad. La seguridad viene antes que todo. Si Facebook tuviera una irrupción y perdieran dos mil millones de contraseñas, ¿qué le haría eso a la confianza de Facebook? Ya nadie confiaría en Facebook de Google. Estas cosas suceden. Entonces solo ten muy atentos a eso
8. Configuración de nuestra base de datos parte 1: Lo que voy a hacer es ir host local slash Petri hombres con mente Petri ruta Ruedas Si no conoces un poderío PHP, hombres es solo una interfaz para mi SQL. Puedes usar mi banco de trabajo de habilidad que puedes usar. Ah no tengo que usar mi escuela. Puedes usar Maria db, que técnicamente es la preferida, que es una caída en reemplazo de mi SQL. Y eso está totalmente bien. Puedes usar eso en su lugar. Pero lo que queremos aquí son bases de datos y voy a ir bien, lo
haré después y solo llamemos a este sistema de inicio de sesión. No, no uso el sistema de palabras porque es una especie de curso de Le Guin Y la colisión. Voy a ir al muy inferior utf ocho m antes de subrayado Unicode subrayado c I c. Quiero decir, ¿ es insensible a mayúsculas y minúsculas? Voy a chupar eso. Básicamente lo que eso significa es que cualquier personaje puede ser almacenado en esta base de datos. Está permitido. Ahora solo estamos almacenando correos y contraseñas que suelen ser solo utf a que son básicamente solo caracteres regulares. Pero en el caso de que quisieras extender tu dedo de la base de datos, mantener nombres, tienes que pensar Algunas personas escriben árabe. árabe va de derecha a izquierda. Se ve completamente diferente. No parece enojo. Ciudadela. Lo que ruso es un ruso diferente tenía alfabeto completamente diferente japonés. Varios alfabetos diferentes. Tienes que considerar estas cosas ¿verdad? Entonces sigamos adelante y creemos una mesa. Sólo llamémoslo usuarios. Número de columnas Queremos uh,
no, queremos usuario, queremos usuario, i d. tenemos la dirección de correo electrónico, tenemos una contraseña y deja tu fecha de registro Así que tienes cuatro estaba en lo correcto y no, no roadie usuario I d Ahora siempre trato de mantener estas minúsculas y separadas con un guión bajo. Verás algunos lugares que escribirán como Roe i d. en una base de datos. Y es súper inconsistente, no hablar de algunas bases de datos simplemente no les gusta cuando tienes letras mayúsculas que te
obligarán a hacer todo en minúsculas. Tienes razón. Todo tu código localmente usando mayúsculas, igual que látigos muy parecidos a esto. Y luego pones tu abrigo en un servidor en vivo, y de repente es como si no sé qué ideas de fila porque en lugar de buscar una fila, subrayan idea. En realidad, lo
llamó usuario I d. Ah, aquí
dentro. Vamos a ir con regular en cinco ojos de valor por defecto no va a ser nada. Siempre va a tener algo unos ojos, incrementos de
auto que hacer. Guardar que los atributos sin firmar significa que los números son siempre cero o superior. Si no seleccionamos sin firmar, lo que básicamente significa es que iría en lugar de, como comenzado a 56 que van de menos 1 28 a positivo 1 28 No necesitamos ah idea de usuario que vaya por debajo de cero. Entonces cambiaremos eso por uno comentarios firmados. Usuario i d. Todo lo demás sólo nos vamos a ir. Nombre. Correo electrónico. Este era un carácter variable. 250 definido, uh, como se define. Podemos decir que el valor por defecto siempre es correo electrónico en el email dot com o algo así. No lo que buscamos. Uh, los correos electrónicos
comerciales estén vacíos. No. Cosas de tiempo actual. Nada que ver con ello. Vamos a seguir adelante y cambiar el índice a índice y, uh, bueno, en realidad, podríamos hacer esto único también, porque un usuario solo puede tener una dirección de correo electrónico, por lo que tiene que ser completamente único y escriba un correo electrónico, go comments,
usuarios, usuarios, dirección de
correo electrónico contraseña. Terrible personaje. Hagamos 200 probablemente nunca serán 200 porque va a estar bastante encriptado. Pero eso está bien. Eso está bien. Lo mismo, Uh, el valor
predeterminado realmente no importa. Contraseña no necesita ser única. No necesita ser índices si alguien tiene exactamente la misma contraseña y de alguna manera logra
usar exactamente el mismo hash, lo
que probablemente nunca sucederá en ningún momento. Pero si fuera el dedo del pie pasar, único lo rompería. Único tiene que ser completamente único. Índice. Bueno, esto se va a almacenar como un valor encriptado. Entonces no vamos a saber qué es eso. Eso no necesitamos indexar eso. Indexar básicamente significa Hey, mi SQL. Tenemos cierta información en cierta tabla, cual hay que priorizar. Pero si cada contraseña se almacena encriptada y es diferente, no
tenemos idea de lo que va a ser eso. Y así no se debe indexar. Primero vamos a buscar a la gente por la dirección de correo electrónico. Entonces vamos a agarrar la contraseña, y luego vamos a verificarla. Y por último
, eres tú, tiempo de
Reg. Y éste podría ser hacer donde estampar tiempo. Paso de tiempo actual, uh, en actualizaciones Estamp actual? Bueno, no, porque el tiempo de inscripción sólo ocurre alguna vez. Una vez que asume ese registro, guardamos eso El índice, no necesitamos indexar eso porque no estamos haciendo ninguno, como Data Analytics. En función de cuándo se está registrando la gente. Simplemente queremos ver cuándo se registraron la hora y fecha en que el usuario se registró. Llame a esto que los usuarios mesa coalición hacen lo mismo motor de almacenamiento que desea en una base de datos o mi ISM. Ahora, a los sitios de
WordPress les gusta usar mi SM porque no escriben mucha información, pero leen mucha información, lo cual es genial. Pero ya sabes, D B leerá y escribirá mucha información, tiene algunos pros y contras como mi Assam tiene indexación de texto completo, así que podríamos decir Índice de texto completo, e incluso intentará igualar en diferentes idiomas, mientras que en ODP, que sí tiene eso no es tan grande con él simplemente bien porque no estamos tratando de indexar artículos
enteros de blogger ni nada por el estilo. Ya sabes, DB también soporta transacciones, lo que significa que puedes agregar 10 usuarios y 50 mensajes soplados y todo eso, y si algo fuera a fallar, podrías tener un try, catch block. Y en eso y en el bloque catch, básicamente
se podría decir Retroceder, deshacer todo eso. Porque si algo falla como, no
puedo pasar Y eso es genial para, como, pagos o sistemas bancarios, la transacción absolutamente tiene que pasar. Si no pasa, no se permite el paso de otros datos. No quieres ver a la gente. Yo te en tus estados de cuenta bancarios, no
quieres ver que has gastado un montón de dinero que en realidad no se gastó. Vas a estar muy confundido. Entonces por eso usarían transacciones. Eso sería un ejemplo de la vida real. Sigamos adelante y guardemos esto. Eso realmente consiguió la mesa de un usuario. Y si volvemos a nuestra página y vamos a iniciar sesión, no pasa nada porque no estamos conectados a una base de datos. Ahora lo que quiero hacer es crear otra carpeta dentro de tinta, y sólo voy a llamarla no, no funciones que él tiene si podríamos hacer eso. Tú haces, uh, archivo
cremoso. Se llama Funciones que PHP. Esta es una forma de la vieja escuela de hacer las cosas y también vamos a agregar cualquier carpeta, llamarla clases, y en esa carpeta, vamos a crear una nueva clase llamada devi dot PHP. De acuerdo, entonces lo que tengo aquí es que acabo de pegar en esta clase DB. Ahora esto se llama clase singleton, que significa que va a intentar obtener la conexión de base de datos una vez. Si no existe, va a entonces realmente conseguir la conexión. En caso de existir, se va a devolver la conexión. De esta manera, podemos llamar a nuestra conexión de base de datos una y otra vez. Pero en realidad no va a esperar que, ya
sabes, 50 milisegundos cada vez que tengamos que conectarnos a nuestra base de datos o lo que sea va a ser, um, sólo va a saber que va a ser agradable y fácil. Sólo lo va a conseguir una vez ahora para pasar por esto rápidamente. Entonces escribí algo similar a esto, uh, para varios otros proyectos y especie de simplemente cortarlo para hacerlo muy simple. Ahora lo que estamos viendo aquí es PHP orientado a objetos, y eso es porque solo queremos singleton uh, el singleton básicamente diseñó la estructura de esta clase tiene que ser, ya
sabes, solo, lo dijo una vez sólo conseguir el que se puso. Entonces lo que esto hace es definir una nueva clase llamada DB No es un db dot PHP Así que lo hemos llamado
d ser protegido estático,lo d ser protegido estático, que significa que esta es una variable llamada propiedad dentro de una clase y está protegida
Significa que no podemos editarla desde afuera con clase. Y también es estática, Lo
que significa que podemos conseguirlo al llamarse autoyendo Colin Técnicamente, constructo de función
privada. Esta es una función mágica, uh, método
mágico más bien que tan pronto como tú en Stan, ella ocho db Así que cuando escribes TV es igual a nuevo DB, esto se llama automáticamente a Awesome. Eso es exactamente lo que queremos en va a crear nuestra estafa y aquí están realmente hacer. ¿ Eso está mal? Vamos a cambiarnos. Fue muy rápido. Ahí vamos. Uh, y vamos a estar usando PDO. Entonces en lugar de mi sq una mentira que mucha gente usa, vamos a usar algo más avanzado porque esto es un Técnicamente, esto es mucho mejor. Mi SQL I es algo así como la forma novata de escribir, um, mis sentencias SQL usando PHP. Ah, el código va a estar disponible para que no tengas que preocuparte por escribir todo esto. Pero básicamente, esto es mantenerse conectado. Mi dedo del pie SQL a mi SQL Usar el conjunto de caracteres utf ocho. Y antes de recordar, lo configuramos con su base de datos. Impresionante. Impresionante. Nuestro anfitrión es local. El Aeropuerto Anfitrión es 33 de seis por defecto. Nuestro nombre de base de datos, que configuramos fue registrando curso de subrayado, mi nombre de usuario y mi contraseña. Ahora, si nada de esto funciona no va a decir crónica no podría volver a conectar base de datos. Perdón. Es porque copié de otro proyecto ahí. Estar en lugar de tener que escribir esto. Uh, tenerte básicamente vigilándome teclear esto, es Eso va a ser bastante aburrido. Sólo decir que no podía conectarse a base de datos Y los transportistas. Tus líneas no necesitan estar ahí. Probablemente 1000 como a Ahí vamos. Koukal
9. Configuración de nuestra base de datos parte 2: ahora esto no va a hacer nada porque quiero decir, si cargamos su página, no
está siendo convocada. Entonces si entramos en nuestra config y decimos, ¿
adivina qué incluye el archivo PHP D v dot? Podríamos hacer incluir una vez clases db dot PHP Y en realidad había escrito esa habitación. Vamos a usar simplemente renombrar. Hay uno demasiados. Sí, es ahora lo que pasa cuando voy y refresco la página Aún se carga, pero ¿en realidad se está cargando? No lo sabemos. ¿ Prueba de salida? Sí, lo es. Ahí vamos. Ahora. Podríamos hacer lo mismo que hicimos con config. Y podemos tomar este código. Y si alguien está tratando de acceder a través del archivo PHP devi dot, podemos decir, Bueno, espera un minuto. Si no tienes el archivo config, que en realidad solo se carga desde dentro de nuestro log in dot PHP o index dot PHP o cualquiera de nuestros archivos de aplicación, entonces adivina qué. No se puede tener acceso a esto. Entonces, ya
sabes, vete. Esto es para nosotros en Lee. Eso es esencialmente lo que Ese dicho y así que sí, refresca. Ahí vamos ahora no está haciendo nada en realidad. Esta es sólo nuestra clase. No ha estado en san. Ella no se ha iniciado. Tenemos que empezar eso. Entonces vamos a seguir adelante y crear una nueva variable interna config y d b obtener conexión, pero matado. ¿ Cómo conseguiste eso? Bueno, D B es el nombre de nuestra clase. Podríamos llamarlo fácilmente bases de datos. Bueno, si quisiéramos. Ah, y la conexión get es la función pública estática. Ahora, la función pública estática pública significa que podemos llamar a esta función desde fuera de sí misma. Entonces cualquier código que no esté aquí bien, todavía
podemos llamarlo la parte estática significa básicamente, vamos a usar a Coghlan's para acceder a él. El funcion es Bueno, es una funcion, y ese es el nombre. Entonces ahora tenemos Condi be get connection. Impresionante. Enfriar. ¿ Qué pasa cuando guardamos Refresh? Bueno, nos estamos conectando. Aparentemente. Enfriar porque no pasó nada. ¿ Y si solo entro como simulacro de arriba? Algunas de estas cosas ¿No se pudo conectar la base de datos? ¿ Y si me burlé de uno de esos? ¿ Y si acabo de cambiar la contraseña a root? Dos no pueden conectarse a la base de datos. Ahí vamos. Entonces estamos oficialmente conectados a la base de datos, y eso es todo lo que hay a ella. Ahora, antes de continuar cuando creas una base de datos, la que creamos era log. Por supuesto, ahora
vas a necesitar un usuario. Si estás haciendo esto localmente, probablemente
sea raíz raíz. Uh, cuando estés creando una aplicación en vivo, no uses ruta. Todo el mundo va a adivinar ruta. No utilices anuncios a los hombres. Probablemente tampoco uses tu nombre Tú algo totalmente oscuro en tu contraseña debería estar loco. Ahora esta es una de las pocas veces que son difíciles. Recubrir su contraseña en su aplicación es en realidad XX accesible. Y eso es sólo porque no hay otra forma de evitar esto. Y por eso hemos agregado seguridad adicional por aquí ahora. Si quisiéramos sospechar aún más de todos nuestros usuarios, cual es algo bueno, realmente
moveríamos toda la carpeta Inc fuera de nuestra aplicación y en algún otro lugar para que, uh, la config podría decir, ya
sabes, ir dos carpetas arriba, que está fuera del lugar donde la gente puede acceder a índice que PHP o punto de registro PHP , Uh, y realmente sólo establecido nuestra aplicación tendrá acceso a esta. Ahora esa es una manera así de bueno, supongo que esa es otra forma que hacemos, y esa es la forma en que deberíamos estar haciéndolo. Pero por el bien de dejar esto claro para que lo entiendas, um, y para ver cómo funciona realmente la jerarquía vamos a mantenerlo de esta manera. Pero por favor ten en cuenta que hay formas de mejorar la seguridad en torno a esto ahora para tus usuarios. Si no tienes un usuario, puedes entrar en PHP mi admin. O podrías escribirlo directamente a través de tu consola o de tu terminal. Más bien, podrías escribir todo tu mi SQL y aquí si quisieras hacerlo de esa manera. A mí me gusta hacerlo visualmente para que realmente puedas ver lo que está pasando. La línea de comandos tiende a asustar a mucha gente, sobre todo cuando se mete en la gestión de bases de datos y en la creación de usuarios y demás. Es un poco más fácil para la gente apuntar y hacer clic, y en esta instancia en particular, eso no es nada malo. Contamos con bases de datos, cuentas de usuario de estado
SQL. Queremos usuario. Tengo uno ahí dentro que se llama Caleb. Esto en realidad es para Docker, pero tengo todos mis privilegios allí otra vez, solo privilegios de host local como solo anfitrión local. Por lo que se me permite tener todos los privilegios. Raíces, root password. Sí. Nuevamente global todos los privilegios. Aiken hacer básicamente todo con él. Sweet eso Eso es todo lo que hice para crear nueva cuenta de usuario. Creando usuario que tienes usa tu nombre, tu nombre de host, uh, host
local. Contraseña cambia de ruta o lo que sea. Si estás en el servidor en vivo, asegúrate de que esto sea seguro. Esto es completamente diferente, pero debido a que somos locales, solo
estamos usando,ya
sabes, ya
sabes, pequeñas credenciales de inicio de sesión de
porquería. No importa. Adelante. Y si tu local puedes revisar todo si no eres local, quieres restringir los de. Esa es otra forma de agregar más seguridad. Entonces si a su usuario sólo se le permite seleccionar insertar actualización eliminar. Um, tal vez a alter no se le permite caer. Um, eso es todo. Entonces ahora tienes, como, un usuario básico. Uh, el aunque alguien se metió e hizo algunas cosas maliciosas como la gente otra vez, gente habla de que PHP tiene fallas de seguridad. No es necesariamente PHP. Es la gente que no sabe cómo funcionan las herramientas. Y así crean estos usuarios que tienen todas estas opciones y luego de repente el SQL inyectado, que básicamente es simplemente agregar SQL en do ustedes están todos aquí. Entonces, donde dice agregar usuario y están donde dice token, ¿
verdad? Esto está buscando un token en mi base de datos ahora mismo. Mi base de datos PHP id hombres. Ahora, si escribí a usuarios de tablas de gota y lo veremos, tenemos una tabla llamada usuarios ahí dentro y a ese usuario se le permite soltar tablas. ¿ Adivina qué? Perdiste a todos tus usuarios. Ahora, no
vamos a estar haciendo eso localmente porque obviamente no queremos dejar a todos nuestros usuarios. Estaríamos yendo hacia atrás en el tiempo y deshaciendo todo nuestro trabajo. Pero si ejecutamos un sitio en vivo, quieres desmarcar que quieres en cheque básicamente todos estos Onley revisa los que absolutamente
necesitas, Y esa es otra forma de mejorar realmente la seguridad en tu aplicación. Entonces eso es que en la siguiente lección, creo que deberíamos seguir adelante y conseguir algo de JavaScript,
configurar alguna validación de javascript y empezar a conseguir que la gente se registre realmente en nuestra aplicación. Está bien, mira, ahí
10. Validación de formas con JavaScript Parte 1: Hola. Hola. Bienvenido de nuevo. Entonces hice algo detrás de bambalinas que debí haber hecho el último video. Ah, o en este video. Entonces, en cambio, voy a explicar lo que hice en el último video. Yo configuré una base de datos. Ah, y todo lo que hice fue tirarlo. que significa que he creado básicamente un archivo SQL el cual toda la información de la estructura de la base de datos básicamente entra aquí para que puedas encontrar eso en tus archivos de proyecto completamente. Si en algún momento necesitas volver a configurar tu base de datos, esto la configurará para ti. Todo lo que tienes que hacer es subir este archivo SQL y funcionará así para ti. Ahora en este último No, lo que quiero hacer es que quiero empezar con algo de JavaScript. Hagamos ver a este pequeño Ajax. Hagamos esto un poco más dinámico. Veamos qué podemos y no podemos dio ahora, antes de hacer algo bien, necesitamos agregar un nuevo archivo JavaScript a nuestro pie de página. Ahora podemos ir a nuestro pie de página y podemos agregar cualquier tipo de javascript que queramos aquí. Pero quiero decir que eso es asqueroso, porque me carga en la d. O M en el modelo de objetos de documento en la página cada vez. Y si bien eso es eso no está bien. Entonces, en cambio, lo que vamos a hacer es crear otro directorio y vamos a llamar a este activo. Vamos a crear uno ahí dentro y lo vamos a llamar Js, y vamos a crear un archivo ahí dentro. Lo vamos a llamar principal punto Js. Ahora la razón por la que lo pongo en activos slash Js slash Mientras que en realidad puedes ver en la parte superior aquí activos slash es slash main dot Js Puedes poner CSS e imágenes y cosas dentro de tus activos. Y así todos tus activos locales, todos tus activos estáticos están todos juntos. Es sólo que es más limpio de esa manera. En lugar de que conozcas, tres o cuatro directorios diferentes por todo el lugar. Cuando solo miro todo este proyecto, solo
tengo 23 directorios Ahora si quisiera mirar alguno de mis activos estáticos, sé que solo hay javascript ahí dentro, pero si hubiera CSS, podría hacer otra carpeta llamada CSS. Si hubiera imágenes o S P G. Yo también podría hacer eso. Ahora, en este dolor, todo lo que quiero hacer es una prueba de alerta para asegurarme de que esto realmente funcione. Entra en nuestro tipo de pie de página y script ya que R C es igual a activos slash es slash main dot gs. Y la clave aquí es que empieza con una tajada. Eso significa ir a la base del proyecto. Cualquiera que sea lo más cercano a la base del proyecto, que es donde vive el índice. Y va a buscar activos que tenemos y eso va a buscar un JavaScript , cual tenemos, y va a mirar desde maine dot Js, que tenemos. Guarda eso. Volvamos a nuestra página. Yo refresqué y dice prueba solo me puse cool así que sabemos que eso funciona ahora. Pero, ¿qué pasa cuando alguien realmente va a registrarse? Bueno, vamos a salir de iniciar sesión e ir a un PHP registrado. Voy a cerrar básicamente todos los demás archivos porque no los necesitamos en este momento, y sabemos que este formulario se llama Js Register. Ahora. Si no estás familiarizado con Jake cansado, eso está Bien, Vamos a hacer algo un poco diferente. Qué Mucha gente te dirá a dio usando J query es técnicamente incorrecto, especialmente con aplicaciones Ajax. Te van a decir que hagas algo como esta función de click. Y así cuando se cargue la página, va a seleccionar esta clase, que es esta forma, y va a enlazar la función on click. Pero si Ajax esto en la página, bueno, eso no existe. Entonces, ¿adivina qué? Eso nunca se atan y no funciona. He visto a la gente luchar y luchar y luchar con este concepto. Entonces en cambio, lo que dio es que vinculamos todas nuestras funciones a todos nuestros oyentes a la cúpula, al modelo de objeto de documento, que es de nuevo estamos seleccionando todo el documento que vamos a decir en presentar formado A J s función de registro E on deciden comer un poco ambiguo. Hagamos evento. Ah, volverse falso, pase lo que pase. Um, y siempre queremos eventos dot prevent default, sea lo que sea que sea. Algunos navegadores actúan de manera diferente a veces no es necesario, a veces necesario. De verdad, dependiendo de tu público. Qué navegadores están usando. Voy a tirarlo ahí dentro de todos modos lo tomo o me voy? Realmente no importa y vamos a ir Formulario de alerta fue enviado. Diga que vaya a una actualización de página y cuando haga clic en registrarse Wow, nos
va a pedir información y hacemos clic en registrarse. Mira que formal presentado. Ahora Recuerda cuando estábamos enviando el formulario hace unos videos, esto realmente nos estaba alejando de la página. Ya no está haciendo eso. Nos está manteniendo en la página ahora. ¿ Por qué es eso? ¿ Es porque los eventos evitan el incumplimiento? Depende del navegador. Podría ser, pero sobre todo es porque está regresando falso. Entonces ahora tenemos algo con lo que trabajar. Ahora necesitamos poder obtener la dirección de correo electrónico y la contraseña. Entonces si tomamos esta forma, arrojamos a una variable llamada forma convenciones de nomenclatura de variables en JavaScript muy ampliamente , sobre todo cuando se trata de Jake cansado. Entonces qué podríamos hacer porque es un selector. Podríamos usar la forma de J. J Corea de seleccionar cosas y usar un signo de dólar y decir esto. Esto se refiere a toda la forma. O podríamos decir que la forma es igual a esto o algunas personas como la forma más corta podríamos decir f punto águila Teoh F es igual a esto o podríamos simplemente hacer la forma normal es igual a estos grupos realmente depende de tu preferencia. De lo que me voy a quedar es de subrayado por el bien del estado con Underscore, supongo, ya que dos forma es igual a esto y ahora que tenemos todos los elementos de forma, veamos el JavaScript. Pero tenemos todo este elemento de forma en una variable. Ahora podemos analizar a través del resto del HTML aquí dentro y encontrar exactamente lo que estamos
buscando . Entonces, ¿podríamos encontrar nuestra entrada donde el tipo es correo electrónico? ¿ Podríamos encontrar su entrada donde el tipo es contraseña? Sí, apuestaste tu pero podríamos Vamos a hacer esto. Vamos a crear un objeto. Los datos variables son iguales al objeto. El correo electrónico es igual a Bueno, busquemos el tipo de entrada de correo electrónico. Sabemos que solo hay uno, así que está totalmente bien, y la mayoría de la gente lo deja en esto. Pero hecho divertido. Si tus páginas enormes, si es como un Amazon pacientes solo 10,000 líneas de HTML, eso es mucho HTML por recorrer. Entonces en cambio, vamos a escribir formulario de subrayado, que se refiere a esto y básicamente lo que dice es Mira a través de esto. Basta con mirar a través de eso. Eso es todo lo que es todo todavía. No, ni
siquiera eso sólo miró a través de la forma. Eso es todo lo que tienes que hacer. Basta con mirar a través de la forma e ignorar todo lo demás. De lo contrario, si no especificamos eso va a mirar a través de todo el trato. Ahora soy nuestra página de pequeño, así que no importa, no el punto. El punto es, eventualmente tus aplicaciones se van a poner enormes, y vas a querer asegurarte de que tu JavaScript sea lo más rápido posible. Ahora algunas personas son como, Oh,
bueno, bueno, ¿por qué hasta usado requieren? ¿ Simplemente usas reactor? Simplemente usa angular. Bueno, el hecho es que la mayoría de los sitios usan consulta J, y por eso estamos Husing Jake. O si quieres actualizar para reaccionar o angular, cualquier otra cosa. Por todos los medios sé mi invitado. Ve por ello. No hay nada de malo en eso, Pero la mayoría de los sitios usan a Jake cansado, así que estamos aprendiendo el camino de Jake Weary. Ahora tomamos cuatro, obtenemos la coma de valor y obtengamos la contraseña. El tipo de entrada es igual a la contraseña de nuevo. Lo mismo. Subraya forma punto falta. Y si lo hacemos, Cónsul, no registremos datos cada vez que el primero se presentó. Diga que página de actualización y hacemos prueba en test dot com y y un click registrarse. Oh, mira eso. Mira, ahí está mi dirección de correo electrónico y mi contraseña totalmente segura. Bueno, ¿por qué no debería almacenar texto en mi JavaScript así? Es porque JavaScript es públicamente accesible para tu navegador.
11. Validación de formas con JavaScript Parte 2: Algo de lo que hay que asegurarse es cuando estás usando contraseñas cuando tú mismo formularios de reunión, cuando estás enviando cualquier tipo de información segura, siempre
quieres asegurarte de que estás usando https. Ahora. No tengo eso localmente. No necesito eso localmente porque solo estoy ejecutando esto localmente. Pero si esto fuera en un sitio web en vivo, si esto fuera en arc mont dot com, que usa un log muy similar en forma como este, o realmente cualquier otro sitio web que alguna vez se haya hecho usando PHP y Ajax siempre use https. Ahí está esta cosa llamada Escriba esto hacia fuera. Encriptemos, y eso nos da SL gratis. Se lo configura para ti. Es un poco de forro de mando, pero es como dos o tres líneas fuera de límites líneas de comando y te dan el código y que solo funciona. Y eso asegura básicamente todo tu sitio para ti. Bueno, no debería decir asegura. En realidad sólo encripta el código que se está enviando desde su navegador al servidor y viceversa. Entonces ah, es sólo otra capa de seguridad otra vez, definitivamente recomendado. A lo mejor hasta voy a hacer un curso justo en marcha. Encriptemos Así tenemos nuestros datos y avanzando. Queremos asegurarnos de que el correo electrónico tenga cierta longitud y queremos asegurarnos de que la contraseña sea ciertos me gusta. Ahora no vamos a entrar en validación. Uh, ¿ en serio? Porque por supuesto, no
se trata demasiado de la validación. Pero, ya
sabes, hagámoslo un poquito. Apenas una pequeña cantidad. Entonces aquí, vamos a hacer div ese margen UK dot Js error? Um, sí, seguro. Cuando yo y dos Reino Unido alerta Reino Unido peligro de Reino Unido Js air hit tab test página de primer año y tengo un pequeño cuadro de alerta ahí. Un poco de error. Entonces lo que quiero hacer ahora es mostrar estilo ninguno. Asegúrate de que esto nunca aparezca. Refrescar página. Mira eso. Se va. Impresionante. Impresionante. Ya no necesito eso. Y vamos a seleccionar esto como nuestro error. Ahora podemos volver a nuestro JavaScript. Su variable llamada error es igual a nuestro error, pero especie de mirar a través de todo el D. O. M. Porque podría haber más de una clase o más de un elemento con una clase de Js air Onley buscar en el formulario porque los formularios sólo van a tener uno o sólo deben tener uno todos modos. Y ahora podemos decir si data dot email dot length como menos de lo que es la dirección de
correo electrónico más corta posible ? A a punto c A. Seis personajes, ¿verdad? Entonces si es de menos de seis caracteres devuelven falso y hacer texto de punto de error. Por favor, escribe una dirección de correo válida tenía dot show. Y pongamos esto en varias líneas aquí porque sólo va a hacer que sea más limpio para la gente que lee. Entonces ahora estamos seleccionando error, que es hacer justamente ese air dot jazz air. ¿ Dónde estamos? ¿ Ahí mismo? Eso va a seleccionar. Y entonces vamos a decir,
Oh, bueno, bueno, si el correo electrónico es de menos de seis personajes, bueno, muestra el aire. Vamos a seguir adelante y darle una oportunidad a eso. Ah, a En realidad, no, eso no va a funcionar porque necesito HTML cinco acusaciones en la cocina. Entonces, como ejemplo, hagámoslo si es menos de 16 así que prueba prueba a cabo. Ven, mira. Ingresa una dirección de correo electrónico válida. ¿ Por qué es eso? Porque esto no tiene 16 caracteres de longitud. Ahora, asegúrate de querer hacer algo así. El regreso cae. Funciona de la misma manera. Es que ningún código debajo de la devolución se ejecuta en realidad, y detiene tu código de, ya
sabes, hacer cualquier otra cosa que estaba haciendo. Si la longitud del punto de la contraseña es menor a ocho ahora, técnicamente no debería saberlo. Aquí. Este es un buen
momento educativo, uh, para todos. No deberíamos estar usando contraseñas. Deberíamos estar usando frases pasadas. Las contraseñas son fáciles de descifrar siempre que tengas, como una contraseña de cinco caracteres. Ya sabes, si me gusta mi contraseña era Ya sabes, Caleb, 111 es tan fácil de entrar. Si mi contraseña era solo contraseña, ¿
adivina qué? Ese es el pastor más común del mundo. También es la contraseña más común en la que alguna vez se ha roto, pero las computadoras, lo que hacen, lo que es una fuerza bruta es básicamente va a probar contraseña y luego se envía a probar
grupos de contraseñas . Yo no hago eso. Yo quería Capital t ah, y entonces no es probar contraseña, y luego va a probar contraseña. Y sólo va a seguir y seguir y seguir así, y luego eventualmente se va a meter en remolque. Conoce esto y aquello. Y eso es entonces eso. Entonces eso y así sucesivamente y así sucesivamente hasta que encuentre un partido. Pero adivina qué Si tu contraseña es como super, super, super super larga, ya
sabes, aunque sea básica y no tenga caracteres especiales en ella, ¿
adivina qué? Es súper seguro. Adivina cuánto tiempo va a tardar una computadora en adivinar cada letra hasta aquí y luego cada variación aquí y en cada variación aquí que cada variación aquí en cada variación
hasta aquí, probablemente nunca
se rompa. Esa contraseña no necesita números. No necesita caracteres especiales cuando cuando inicias sesión en un banco o PayPal y es como, Oh, necesitas, Ah, tu contraseña tiene que tener al menos ocho caracteres y necesitas, ah números y, como una mayúscula y todas estas otras cosas Ahora no solo necesitas una
contraseña súper larga . Por eso deberíamos estar usando frases pasadas. Ahora voy a usar la palabra contraseña porque eso es lo que todo el mundo está familiarizado. Ya sabes si lo hacen largo o no. Eso depende de ti ahora. Podríamos decir si tu contraseña es de menos de ocho caracteres o de podríamos decir, si tu contraseña de menos de 18 caracteres 28 caracteres no la hacen demasiado larga porque gente está asustada por eso. Es demasiado cambio. Pero si dijiste que sabes que tu contraseña tiene que ser de al menos 11 caracteres, eso es cada vez mejor. Eso es significativamente mejor que ocho caracteres o seis caracteres en algunos lugares usan. Entonces eso es lo que vamos a hacer. Si la contraseña es menor a ocho caracteres, seleccionamos texto de punto de error. Por favor, introduce una frase de pase que tenga al menos 11 caracteres. Long sí muestra y devuelve falso. Vamos a darle a esto una prueba de tiro en test dot com, y mi congelamiento pasado podría ser realmente cualquier cosa. Oh, mira, la contraseña no está definida. Eso se debe a que no es contraseña su contraseña data dot. Ahora este es un objeto por una razón, y vamos a llegar a eso en tan solo un poco fresco. Probemos eso una vez más. Test acreditado dot com, Poner intestinos. Contraseña. Por favor, introduce contraseñas que tengan al menos 11 caracteres de longitud. Impresionante. Por lo que ahora tenemos alguna validación básica. Ahora, asumiendo que nuestro código llega tan lejos,
podemos, uh, uh, es en realidad que estoy asumiendo que el código llega este fin de semana lejano. Inicia el proceso Ajax. Ahora. La gente suele querer ver desaparecer un mensaje de error tan pronto como algo está empezando a
trabajar con el dedo del pie . Entonces lo que tenemos que hacer es en lugar de mostrar, uh, escribir ocultar u ocultar en lugar de hoid. Y eso es que prueba de actualización en prueba Taco, ven prueba prueba prueba, prueba prueba prueba. Voy a poner un montón de cartas de prueba haciéndose bien. Enfriar. No pasó nada, es lo que queremos. ¿ Y si hago un error corto? ¿ Y si lo hago? Se va uno largo. Eso significa que las cosas están empezando a funcionar. Ahora tenemos todo esto configurado en la siguiente lección. De hecho voy a añadir el código Ajax ahí dentro y vamos a Ajax nuestra primera página.
12. Nuestra primera llamada de Ajax: Hola otra vez. Hasta este punto, básicamente
he estado comprometiendo mi código para conseguir una y otra vez. No te he mostrado los últimos videos, y eso probablemente está bien. Te mostraré un par de veces más. Ah, pero no creo que tengamos que ir más allá de comprometernos una y otra vez. Además, se
puede ver toda la historia en get hub en sí. Ahora, en esta lección, realidad
quiero agregar algo de Ajax. Entonces cuando alguien se estaba registrando, tenemos este increíble pequeño evento que acaba de ver para que se envíe un formulario. El registro de Js forma validación de jazz básica. Ahora no solo confíes en la validación de JavaScript. Es bonito para el front end, pero podría fingirse fácilmente. Y ahora, si quisiéramos agregar algo de Ajax, todo lo que hacemos es escribir lo siguiente una copia más y pegar porque verme tipear un montón de cosas es simplemente Sí, es aburrido. Podría verse un poco más de eso en el futuro. Si alguna vez me ves solo copiar y pagar cosas, lo más probable es porque no lo escribí. Acabo de editar el video para que no tengas que verlo solo como una cabeza arriba. No necesitas ver dos horas de mí escribiendo. Eso es aburrido. Está bien, así que solo copio eso ahí dentro, tenemos a Jake cansado Ajax. El tipo es igual a post. Siempre queríamos información de póster. Si establecemos esto para conseguir eso significa que la información es accesible en la URL. Eso no es esperar. Quieres que lo queramos escondido. A pesar de que no es infalible, vuelve a ser un poco más seguro. Esa capa extra de seguridad siempre útil. El euro no está fijado. El dato se establece a nuestro objeto de datos. Llamamos a este dato bien para hacer O B J por objeto. Sólo recuerda cambiar todos tus diferentes lugares. Ah, cuando terminemos, nuestro sitio va a regresar y lo que sean los datos y los datos van a ser un objeto también porque el tipo de datos Jason y hacer de esto un sincrónico ¿Qué pasa si esto falla? Esto falló. ¿ Qué pasa si esto falla o tiene éxito? Siempre haz lo que sea que esté aquí. Y así nuestra forma siempre va a devolver falso. No importa. Pero lo importante es ahora esta pequeña sección aquí y lo que queremos es que básicamente tengamos la función Ajax done ejecutada. Ahora es importante la función hecha. Antes de que
pudiéramos hacer algo, necesitamos decir dónde deberíamos. Ajax la página. Entonces de nuevo, empieza con barra que va a la raíz de tu página y vamos a hacer Ajax slash register dot PHP y todo lo que voy a hacer es Cónsul. No registre datos, um, consejo dot log e Si hay un error, um, y log de consola siempre solo que podemos ver que funciona ahora en nuestra ruta vamos nueva carpeta Ajax crear otra carpeta nueva, otro para archivar, y llamaremos a eso registrado en PHP. Y básicamente tomaremos lo que hemos tomado de nuestra garganta de archivo de inicio de sesión aquí porque
siempre queremos que se agregue esa config. Pero si pasamos de nuestro directorio actual al directorio, bueno, va a ir de si leemos en la parte superior. Aquí va PHP logging course slash Ajax que va a ir un slash inc slash config up enorme p que no existe. Entonces en realidad necesitamos mover esa carpeta papa así como así y cualquier dato que devolvamos debería estar en formato Jason en PHP nos permite hacer eso realmente fácilmente. Hagámoslo. Honore es igual a prueba prueba a prueba tres. Y, uh, vamos a hacer Echo Jason y código array. Jason. Bonito estampado. Y eso nos va a dejar verte con esta página realmente se parece. Entonces si entramos en Ajax menos
registramos, en realidad 500 error. Probablemente por eso. Ahí vamos, y sólo nos está dando información regular de vuelta. Entonces lo que en realidad está buscando es el formato Jason. Entonces si agregamos este bonito pequeño encabezado aquí que dice,
básicamente,en básicamente, lugar de devolver texto plano devuelto Jason, tenemos una barra de aplicación tipo contenido Jason, Vamos a tirar eso en la parte superior. Si quisiéramos realmente ver qué bajo la config. Asegúrate de configurar cargado primero y siempre devolviendo el formato Jason. Y ahí vamos ahora donde las páginas realmente cargan de manera diferente. Si fuéramos fuente, se ve diferente también. Pero ¿y si añadimos otra matriz aquí como una matriz dentro de Andre? Correcto, Así que tenemos, de hecho, vamos a hacer realmente una matriz multidimensional. Nombre es igual a Caleb, no igual Teoh fat arrow eso clave valor par. Y ahora tenemos bien, corchetes
duros significa array. Tenemos valor, valor valor y tenemos un objeto. Si tuviéramos otro ahí dentro, el apellido es igual a alta magra que va en el objeto también. Y así Jason, bonita impresión solo hace que eso se vea bien para nosotros. De lo contrario, parece que esto, que básicamente es lo mismo, es leer esto y eso es feo. Uh, siempre
prefiero regresar bonita impresión. Todo lo que hace es solo, básicamente, agregar nuevas líneas y algunas pestañas. Uh, no
veo el problema con eso, sobre todo si estás intentando depurar algo. Ahora tenemos que asegurarnos de que esta página sea Ajax porque puedo acceder a esta página sin Ajax . Al igual que acabo de ir directo a local slash jack slash register dot PHP Y adivina qué? ¡ Boom! Ahí está. Está mostrando todo lo que necesito ver. No quiero eso. Entonces en cambio lo hacemos. Si el método de solicitud del servidor es igual a la publicación, lo contrario muere. Ah, mata el guión, redirige al usuario, haz algo sin importar. Entonces vamos a mostrarte en realidad. Voy a usar el método gap, lo que significa que acaba de ir Teoh Ajax slash registró un PHP, y ni siquiera veo nada ahí dentro. Eso es porque tenía un poco de asterisco ahí dentro. Ahora sigue regresando. Jason. Se puede decir porque la fuente un poco diferente. Entonces en realidad es mover eso aquí. De lo contrario, siempre acaba de devolver formato regular. Vamos a trasladar eso a nuestras áreas postales. Bueno, ahora hay otras formas de validar o de verificar que estás, dehecho, hecho, accediendo a una página a través de Ajax. Una de las formas es a través del método post. Ah, pero quiero decir, si presentas una forma normal, también
va a trabajar aquí. Qué tipo de pruebas futuras en un poco. Porque si alguien estaba tratando de enviar un formulario Ah, y el cielo no lo quiera, no
estaban usando JavaScript. Bueno, ¿qué va a pasar? Bueno, si lo enviaron a este año, esto estabas fuera a cortar Ajax slash registro dot PHP. El método post seguiría funcionando perfectamente. Pero si sí tienen javascript, adivina qué obtienen las bonitas características que vienen con él. Ahora tenemos ya sabes, ni siquiera
necesitamos hacer nada. Um, unas cosas de las que quiero hablar aquí. El 1er código 1 Jason. De acuerdo, entonces siempre está buscando una carrera. Así que asegúrese de que la matriz siempre exista. No necesariamente tiene que ser acusada. Simplemente podríamos incluso llamarlo regresar o regresar en lugar de regresar. Ah, la salida. Ya sabes, desarrolladores de
Python, se
quejan. Los desarrolladores de Javid Java son como PHP. Es tan malo porque, ya sabes, solo podrías salir en cualquier momento. Pero honestamente, eso es algo bueno, porque ¿por qué necesita ejecutar algo más después de esto? Es igual que una función cuando una función tiene esa palabra clave de retorno poco. Nada por debajo de eso. Dentro de la función se renderiza. No se ejecuta. Lo mismo con la salida. No tiene sentido. A pesar de que sólo son tres
líneas, no tiene sentido correr. El resto de la misma. Sólo boom, Vete. Ya terminaste de hacer lo que necesitas para dio. Por lo que ahora necesitamos registrar al usuario, pero necesitamos algunas funciones diferentes. En primer lugar, necesitamos asegurarnos de que el usuario no exista. Necesitamos asegurarnos de que el usuario pueda ser agregado, uh, y en realidad se agregue, y luego fuera. Queremos devolver la información adecuada de nuevo a JavaScript para redirigirnos ahora con PHP, podemos usar un encabezado para redirigir a las personas. Todo lo que tenemos que hacer es tipo, cabecera, ubicación. Uh, h adivinar google dot com. ¿ Verdad? Y eso va a redirigir a alguien a Google, no lo que queremos. No es que eso vaya a funcionar de todos modos, porque adivina qué? El usuario técnicamente no está golpeando tu página de Ajax. Entonces redirigir no va a funcionar. O
sea, redirigirá la página de lo que sea Paige que vayas a s así podríamos decir en vez de ir de cualquier página la corrida Ahora, vamos a hacer esto un poco visual. Entonces alguien Ajax es esta página. Ellos llenaron el formulario clic centro información se recoge en JavaScript va a nuestra página de registro Ajax slash son archivo PHP. Pero si hubiera un redireccionamiento ahí, podríamos redirigir para iniciar sesión dot PHP va a intentar ejecutar eso y dijo, pero podría no mantener tus encabezados de publicación. Entonces una mejor manera es hacer lo que tenga que dio y devolver un valor de redirección o una
pieza de redirección de un objeto de vuelta a javascript regresará. Podríamos decir que el redireccionamiento de retorno es igual a, y luego, uh, dejar simplemente ir indexando PHP. Esto fue un redireccionamiento. Y para mostrarte lo que quiero decir, si el redireccionamiento de punto de datos no es igual a indefinido, lo
que significa que está definido, sí existe. Podríamos decir que la ubicación de punto de ventana es igual a la redirección de punto de datos. Ahora, qué pasa cuando ejecutamos esta prueba en test dot com Prueba S s S s s prueba EZ. Recuerda, 11 personajes o más. Y mira ese punto índice PHP. Esto fue un redireccionamiento. No está en su JavaScript. No está en una página de registro. No, eso está todo en nuestro PHP. Por lo que ahora tenemos nuestro servidor diciéndole a javascript dónde mover a la persona cuando haya terminado. Ahora, realidad no
queremos eso. Queremos una página futura que no hayamos creado, llamada dashboard y dashboard va a obligar a la gente a iniciar sesión. Eso es algo por venir en el futuro. Uh, no algo de lo que tengamos que preocuparnos. Necesitamos crear un usuario primero. Y eso es todo lo que hay a Ajax. Ahora, como un ejemplo más, hagámoslo regresar. Nombre es igual a Caleb. Colleen. Nada de fantasía. Pero recuerda, esta es una matriz. Sabemos que esto no es array. Básicamente va a tomar ese obre, Jason, codificarlo y tirarlo de vuelta a JavaScript. Ahora podemos ver cómo se ve eso y podemos acceder a él. Podemos decir alertar esos datos, ese nombre volver a tu página y voy a ir a probar ese punto com. Realmente no me importa qué tipo era en este momento. Y cuando hago clic en registrarme, ahí vamos. Ahí está mi nombre y podemos En realidad no, Podríamos haberlo visto. Había un redireccionamiento de su porque demasiado eficiente. Ahí está mi nombre. Siempre aparece. Siempre, siempre corre. Ahí no pasó nada, pero había un cónsul anotado para un dato, que es lo que devolvió. ¿ Adivina qué? Nos va a redirigir de nuevo al tablero, y va a poner nuestro nombre como Caleb. Y vimos que cuando entregamos el formulario
, dijo alerta. Caleb llamando a eso era de nuevo, PHP Eso no era de javascript. Eso fue de PHP. Ahora todo lo que tenemos que hacer es consultar nuestra base de datos. ¿ Existe este usuario? Conoce si no existen, crea uno. Si el usuario sí existe, tal vez intente iniciarlos en Simple como eso Así que en el próximo último, lo que vamos a hacer es que vamos a crear un nuevo usuario. Pero antes de que sigamos adelante, obtén estatus. Obtener anuncio uh, obtener Sólo obtener status se va a un inscribir o desentrañar. El Directorio Ajax nos va a mostrar lo que hay ahí dentro. Get commit added First Ajax page get push origin Master. Ahí es así. Entonces en la siguiente lección, sigamos adelante y realmente creamos un usuario.
13. Registro de usuario, parte 1: Muy bien, Así que ahora lo que tenemos que hacer es realmente buscar un usuario porque no podemos tener correos dobles y en la misma tabla. Porque, recuerda, voy a volver aquí y dar clic en índices de estructura. El correo electrónico tiene que ser único. Nunca podrán ser más de uno del mismo correo electrónico exacto. Entonces con eso dicho, Sigamos adelante y echemos un vistazo a nuestro código Ajax Register para que sepamos que tenemos acceso a Khan porque Khan está en config como amable y la config se carga aquí, lo que significa que tenemos acceso a esa variable. Ahora eso está dentro de nuestro alcance. Si estás acostumbrado a mi SQL I esto va a verse un poco diferente si estás acostumbrado a solo mi SQL. Si bien aquí hay un poco de golosina para usted podría preguntar ha sido desuso ID por un tiempo. Tiene una tonelada de defectos de seguridad. Utilice PDO, que es mi SQL I, que es la función basada, o PDO, que es una clase basada. Yo uso PDO porque es mejor. Es más fácil de leer. Es solo que la futura base de clase está donde está,
y poco a poco te llevaremos ahí por lo que necesitamos asegurarnos de que este usuario no exista. ¿ Qué? ¿ Qué tenemos que hacer aquí? Tenemos que consultar la base de datos. Entonces tecleemos. Bien. Usuario es igual a con Preparar Seleccionar Usuario I d. De usuarios Donde el usuario i d es igual a usuario. D limite uno. Ahora déjame explicarle esto realmente rápido. Estamos seleccionando solo al usuario I D Row, lo que significa que estamos descuidando la justicia. Vamos a almacenar eso en una sesión más tarde, y eso va a cómo va a ser eso, cómo la aplicación sabe que estás o no conectado. Vamos a buscar en la tabla del usuario correcta tabla de usuarios ahí mismo. Voy a buscar al usuario i d. donde la idea de usuario es igual a frío y uso. ¿ Listo? Eso es raro. Pero esencialmente, eso es sólo buscar dónde esas ideas de usuario iguales al usuario i D. Y eso en realidad está totalmente equivocado. Debería serlo. El correo electrónico es igual al correo electrónico, así que estamos buscando lo que sea el correo electrónico, y vamos a hacer un límite de uno. Entonces eso significa que si tenemos 500 millones de usuarios y encontramos la dirección de correo que
buscamos . Ah, digamos dentro del 1er 10 Rose, ya no se ve. No hace el resto de lo que se supone que dio. Es exactamente lo mismo es regresar de una función o usar este éxodo pronto se hace. Está hecho que hace que tu servicio sea aún más rápido. Por eso usamos Limit uno ahora. El objetivo aquí es idealmente, sí pasa por cada fila y no existe, así que ojalá sí pase por cada fila. Si tuviéramos 500 millones de usuarios, no lo
tenemos. Por lo que este uso no va a existir. Pero sigamos adelante y compremos algo. Entonces este ese poco de frío en que se ve ahí colon email eran vinculantes. Ahí es donde obtenemos Ah, bien Usuario es un objeto y utilizamos el método por parámetro Param y hacemos correo electrónico e mail PDO fuerza
param Adelante a liderar esa cinta y ejecutar. Y entonces lo que esto va a hacer es que va a vincular este valor con este valor. Entonces, Caleb, ¿por qué no escribo correo electrónico? Bueno, lo bueno
de PDO es que en realidad puedes sacar tus variables fuera de tu
declaración SQL . Eso significa menos posibilidades de inyección SQL y PHP puede manejar su variable de la forma que
necesita . Entonces ahora no tienes algún usuario malicioso viniendo pensando que hay escribiendo que su correo electrónico es usuarios de la tabla de caída. Ups, usuarios de mesa
caídos y ser inyectados aquí en realidad sería más parecido. Ahí vamos algo así como algo que donde el correo electrónico es igual y esencialmente lo que esto va a decir. Y esta es una lección rápida sobre inyección SQL, donde el correo electrónico es igual a. Realmente no importa. Podrías haber puesto uno ahí y borracho usuarios de mesa punto y coma, dice
SQL. Oh bueno, ese es el final de la declaración. Entonces no ejecutes nada más, deja caer tu tabla de usuarios como mal PDO intenta despojar algunas de esas cosas, trata de asegurarte de que en lugar de solo el apóstrofo, tengamos apóstrofes de corte, a los
que hemos tenido acceso antes a través de mi cadena de escape real SQL y todas esas otras cosas de función con nombre
desagradable. Pero esta vez tenemos DOP de nuestro lado. Ahora no queremos confiar completamente en PDO, y no queremos confiar completamente en PHP, y tampoco podemos simplemente usar el correo electrónico porque aún no existe el correo electrónico. De hecho, lo que en realidad es post email. Ahora, ¿cómo conseguimos eso? El correo electrónico Post proviene del método de publicación, que es el método de publicación Ajax. Y el correo electrónico proviene de ese objeto de datos. Bueno, viene de ahí mismo. Entonces ahora tenemos a Ajax hablando con su servidor. En realidad podemos trabajar con esto ahora. No puedes simplemente escribir algún correo electrónico en el email dot common aquí. Esto en realidad tiene que ser una variable. Tiene que hacer referencia a algo que forma parte de la magia del PDO. Pero de nuevo, no sólo queremos confiar en PHP. ¿ Por qué lo haríamos? ¿ Por qué confiaríamos en algo que no creáramos? Y aunque lo creáramos, aún no deberíamos confiar en él. Como desarrolladores, tienes que darte cuenta de que eres inteligente. Eres persona inteligente. Pero probablemente haya gente más inteligente, más maliciosa por ahí que tú, y van a encontrar la manera de estropearlo y destruir tu aplicación. Entonces, ¿cómo podemos sortear esto? Bueno, podemos usar mi SQL I verdadero escape string o si voy a mis cuentas get home tengo go go to get have dot com slash Caleb Antalya slash filtros de datos de usuario PHP y filtro PHP. Y voy a tomar toda esta clase y voy a crear una nueva donde nosotros un nuevo archivo y voy a llamarlo filtrado. PHP. Tira esto ahí dentro y yo también voy Teoh, copia eso ahí dentro porque no tenemos gente tratando de acceder a esto de manera involuntaria. Y entonces qué? Esta pequeña característica hace esta pequeña cadena de filtro de clase Y si lo hizo el correo electrónico, por ejemplo, se va a filtrar cadena y la cadena que se desea separar. Entonces en realidad eso es innecesario, porque eso es sólo ah, básicamente permitir ser nuestro para estar dentro. Es de una vieja cantidad de proyecto. Vamos a filtrar la variable, vamos a desinfectar la cuerda y nos vamos a desnudar. Ah, baja prioridad. Básicamente, si a un macho ella no se le permite águila de un niño a falso águila de HMO a falso, entonces también agrega éste y ahí de lo contrario sólo sanitizado caracteres especiales completos, que permite codificar html. Entonces, esencialmente, lo que esto está haciendo es que PHP va. Se va a filtrar la variable. Se va Teoh, haz lo que pueda hacer para asegurarnos de que esa variable sea en realidad una variable y que podríamos ir filtra cadena y en nuestra config. Tenemos que tener eso ahí dentro. Ahora. El correo electrónico es presumiblemente seguro. También queremos asegurarnos de que el correo electrónico, cadena
física a minúsculas e correos. Siempre es minúscula. O en lugar de tener esto aquí, hacemos correo electrónico. Podríamos hacer más bajo y vamos a manejar eso mi SQL. Y vamos a mi escuela. Dejemos que mi SQL maneje eso. PHP no necesita hacer eso. Las cosas básicas superrápidas de mi escuela así. Si escribimos find user role count es igual a un usuario existe else. El usuario no existe. Tenerlos ahora Google, ¿verdad? Entonces, ¿qué pasa si el usuario existe? Bueno, también
podemos comprobar para ver si son capaces de iniciar sesión. Pero en lugar de hacer eso ahora mismo, lo que vamos a decir es, error de
retorno es igual a que ya tienes una cuenta, y volvamos a nuestro JavaScript y aquí adentro porque este estado devuelto 200 http es muy importante. A 200 significa que todo está bien, y así si tenemos más, si el error de punto de datos no es igual a indefinido, eso significa que hay un error y decimos que alguna vez el texto de punto es igual a cualquier error de punto de datos es y lo muestran y pongamos eso en varias líneas para legibilidad y ahí vamos. Entonces si alguien no tiene cuenta, eso es que ya va a aparecer. Ahora, ¿qué pasa si el usuario no existe? Bueno, tenemos que hacerles una cuenta. Por lo que hacemos diferentes declaraciones que de seleccionar, insertamos. Entonces en lugar de yo estaba a punto de escribir pelea lo que quería escribir era en el usuario es igual a con prepare, insertar en los usuarios. ¿ Y en qué queremos insertar? Bueno, queremos insertar el ya sabes y la contraseña, Así que solo voy a configurar esto, y luego vamos a dar un paso atrás y realmente crear la contraseña misma. Entonces vamos insertar en los usuarios correo electrónico, contraseña, esos aire, el Estas son las columnas. Entonces tenemos correo electrónico. A transeúnte se parecen a Rose. En realidad son técnicamente columnas. Ah, y luego los valores es correo electrónico, contraseña y usuario. Vamos a enlazar nuestro primer parámetro email Tiuna PDO Param string. Sabemos que eso está permitido por cierto, esta cadena Param es porque PDO está conociendo PDO sabe que esto va a ser una cadena mientras le estás diciendo que en realidad va a ser una cadena. Si fuera solo un número, como si estuvieras buscando a un usuario por su yo d ah en lugar de, ya
sabes, hacer esto en lugar de correo electrónico, podría ser como usuario I D y usuario I d técnicamente podría ser una cadena porque mi escuela técnicamente almacena todo es cadenas podríamos escribir PDO pirámide int o si fuera un no valor, no
sería eso. Tenemos unas cuantas opciones diferentes ahí. Con lo que estamos trabajando en este momento son solo las cadenas y copiar ese boom de contraseñas. Copia eso. Ejecutar tropas ejecutar, eliminar todo lo demás.
14. Registro del usuario parte 2: esto va a agregar una variable llamada contraseña que no existe. ¿ Cómo creamos esto? Bueno, necesitamos realmente crear un hash. Entonces lo que hacemos es crear una variable llamada contraseña, y no tenemos que cifrar este pasado ni nada porque no se cifran. Pero supongo, filtrar, no
tenemos que ejecutar filtro lejos nada en él porque va a ser encriptado de todos modos, por lo que literalmente podrían ser usuarios de mesa caídos. Podría estar literalmente terminando con el mundo. Pero vamos a convertir esa cuerda en algo que es completamente ilegible. Y eso lo hacemos con hash de contraseña. Ahora, confíe en PHP con esta contraseña no dura, hash, post password y password default. Entonces, lo que esto va a hacer es tomar tu contraseña, ¿
verdad? Puedes confiar en el pH para su uso como y lo va a convertir en un hash. Ahora, ¿qué aspecto tiene eso? Volvamos a registrarnos. Vamos a tirar algo aquí y vamos. Uh, sí. Pases iguales a, uh no lo sé. Hola. Mi nombre es Caleb Echo. Pasa en eso. Vamos a hacer cambios. Estoy haciendo esto sólo para mostrarte cómo es esto. Eco password, que es nuestra página de actualización de una salida hash. Esta es la contraseña que almacenaba como una cadena. Esta es la contraseña que almacena PHP. Es Tiene su hashing ahí, que es único para cada usuario. Tiene la contraseña real, especie de. Ahí dentro. Tiene sus propios métodos de verificación. Es sólido. No, tengo que decirte que nunca, nunca, nunca,
nunca , nunca, nunca, nunca, nunca, nunca, jamás almacene una contraseña en texto sin formato. Quieres que te roben tus tarjetas de crédito almacenadas en texto plano. Quieres tu contraseña. Entonces en toda tu vida aquí, toda
una vida online arruinada. Guarda tu contraseña en texto plano. Se quiere arruinar la vida de otras personas, almacenar sus contraseñas en texto plano, que probablemente sería seguido de una demanda muy grande. Así que solo ten mucho cuidado de que nunca,
nunca guardes contraseñas o información sensible en texto plano. Fin de la historia, sin ifs, y ni peros. Simplemente encriptarlo. Y estamos hablando de encriptación de una manera no poder descifrar contraseña. Por lo que tenemos un hash de contraseña. Podemos usar esa contraseña aquí. ¡ Impresionante! Impresionante. Impresionante. Ahora bien, si queremos al usuario, yo d Bueno, podríamos ir en consulta. Obtenemos básicamente un usuario selecto i d de usuario donde el correo electrónico es igual a. En realidad, lo que quería aquí fue que me olvidé totalmente de eso más bajo. Ah, pero podríamos seleccionar usuario I d de los usuarios. Donde los correos electrónicos que para bajar el email limite uno. Podríamos hacer eso otra vez. O podríamos decir que el usuario i d es igual a con último inserto i d Que sería lo que
sea esto va a ser. Ahora sabemos que eso va a ser uno, pero podría ser 255,401 por lo que sabemos. Ahora, si queremos firmar al usuario en creamos usuario de sesión, yo d es igual al usuario i d y lo que voy a hacer aquí es esto se llama casting, verdad? Por lo que esto probablemente volverá como un entero. Pero si seleccionamos usuario I d. Justo desde aquí, esto sería una cadena. Ahora podemos meternos en eso un poco más tarde. Simplemente me gusta asegurarme de que lo que estoy enviando de vuelta a JavaScript es exactamente lo
que Javascript piensa que debería ser. No debería pensar que uno es una cuerda porque uno no es lo mismo que uno no es
lo mismo que uno. Técnicamente, esa es diferente. Esos son diferentes. Esto es lo que mi SQL intenta devolver. Esto es lo que queremos devolver. Esto es sólo un flotador. Por lo que tiene puntos decimales. Ahora todo eso es bueno. Podemos hacer redireccionamiento. El redireccionamiento sin retorno es igual al dashboard PHP. Y entonces podríamos decir como,
Bueno, uh, uh, mensaje de mensaje es igual a dar la bienvenida o algo que tengo y nos desharemos de eso. Ya no es útil. Y así de cualquier manera, hemos regresado. Venir a cambio va a devolver algo que existe. Y va a ser Jason Coda para volver a JavaScript. Si hay un error se va a mostrar en el aire. Si hay un si funciona, nos
va a dar un redireccionamiento. Podríamos incluso dio retorno se registra es igual a verdadero. Y si quisiéramos, podríamos decir que uno es falso. Y luego en nuestro JavaScript, podríamos decir Ah, en lugar de si data dot error, decimos si dot uh oops está conectado es igual a true. Podríamos hacer otra cosa. No vamos a hacer eso. Tenemos suficiente información. No necesitamos enviar nada extra de vuelta. Entonces vamos a seguir adelante y darle un tiro a esto. Uh, en realidad, acabo de notar eso también desde la última lección. No, no invaluable ni algo así. Registrar prueba en test dot com. Prueba de Elenco en su prueba derecha tres veces. Oh, mira eso. De acuerdo, entonces tenemos un error 500. Entonces, ¿cómo me di cuenta de eso? Bueno, el pero no hizo nada en mi cónsul. Tengo un X uno pequeño, y dice post 500 error interno. Doy click en eso. Y eso me lleva a la pequeña área de red donde dice registro X h r. que es x http request o xml http. Solicito técnicamente. Eso en x h r significa JavaScript significa Ajax, que es técnicamente JavaScript, devolver nuestro perdón click en la respuesta de registro. Ahora ya no va a volver nada. ¿ Por qué es eso? ¿ Por qué no vuelve nada? Bueno, datos de
forma de onda ahora, ¿qué pasa si lo hiciéramos? O uno es igual a uno, y sólo queremos depurar esto. Oh, bueno, mira, nada está apareciendo. Entonces en nuestra config, vamos a seguir adelante y establecer permitir que los grupos permitan errores y pop eso ahí dentro. A reportar menos uno significa todo lo que yo y yo establecemos display. Ares está encendido. A ver qué pasa. Mira eso. Obtengo un error real. Ahora. Yo creo que ese también sería Jason. Y eso no queremos. Entonces vamos con eso. Ah, menos de cinco correo electrónico variable. Bueno, ¿eso no es interesante? De acuerdo, bueno, sabemos que eso va a ser indefinido porque, bueno, su método de publicación y actualmente no estamos usando post actualmente estamos usando Get. Pero aquí tenemos el problema real. Sintaxis, error o violación de acceso. Yada, yada, yada, yada. Ah, cerca del correo electrónico. Contraseña. Y eso es porque me puse un poco demasiado emocionado y puse el más bajo en el lugar equivocado que debería haber sido era va a insertar un correo en minúscula. Ahora. Lo que podemos hacer es volver atrás. ¿ Podríamos intentar eso una vez más. Ah, en realidad, otra vez. Ah, filtrar en línea. Esta línea de filtro ocho. Eso fue un problema. ¿ Esa prueba prueba prueba prueba es la contraseña Undefined? Porque recuerda, estaba tratando de alertar mi nombre. Bueno, ya no existe. Regresó es indefinido. y mira eso. Por lo que estamos logueados. Se suponía que nos redirigiría. Está haciendo su trabajo. Simplemente no configuré bien el JavaScript. Por lo que ahora básicamente me acaba de comentar el redireccionamiento. va a redirigir. Deshazte de las alertas. Eso es innecesario. Deshazte del registro de conciertos innecesario o ese consejo augat necesario. Refrescar. Y en realidad, voy a crear otro usuario porque mira esto. Entro a mi mesa y tengo usuario el uno. Tengo el email que agregué, tengo la contraseña,
sea cual sea el diablos que realmente sea y el tiempo que me registré, sea cual sea la hora del servidor en realidad, que, parezca, es como muerto en. Por lo general eso es como varias horas de descanso cuando se trata de desarrollo local, así que sabemos que eso está funcionando. Vamos a probar ese punto de prueba com. Probemos otra. Usemos exactamente la misma dirección de correo electrónico. Ah, ya
tienes una cuenta. ¿ Por qué es eso? Bueno, porque prueba en prueba punto com ya existe, así que ahí lo tenemos. Tenemos una solicitud Ajax creando una fuerza de usuario. Ahora todo lo que tenemos que hacer es crear una función de inicio de sesión que básicamente diga, Oh, ¿ese correo en realidad existe en nuestra base de datos? Si Sí, Ok, ve y saca esa contraseña. Y si esa contraseña, el hash coincide con el nuevo hash que vamos a crear para cualquier frase de pase que usaran para iniciar sesión y vamos a dejar que PHP haga la coincidencia de
algoritmos porque como humanos, tipo de socket haciendo algoritmos. Pero las computadoras son impresionantes cuando esos algoritmos coinciden y no es lo mismo es como, ya
sabes, uno es igual a uno thes son muy, muy diferentes. Pero si coinciden ahí, consignamos al usuario en. Y cuando firmamos a ese usuario en, podemos seguir adelante y redirigirlos de nuevo al panel. Entonces eso es todo para esta lección. Y la siguiente lección. Vamos a seguir adelante y realmente crear el inicio de sesión
15. Login de usuarios a través de Ajax parte 1: Hola. Hola. Hola. Ya creamos el registro vía Ajax. Eso fue bastante guay. Ahora vamos a crear el log in real vía Ajax. También bastante cool, pero sí requiere un poco algo que es un poco diferente a lo que
normalmente hacemos . Ah, y en lugar de usar un hash de contraseña, lo que vamos a hacer es básicamente vamos a volver a escribir la nueva contraseña y verificar que los a hashes sean, ya
sabes, coincidentes. No están técnicamente coincidentes en comparación con la cuerda. Pero los datos que los algoritmos terminan produciendo son en realidad los mismos. Entonces empecemos yendo a iniciar sesión dot PHP ¿Y esto hace algo nuevo? Seguro que no. Está bien, bueno, ¿qué tenemos que hacer aquí? Vamos a entrar en nuestro archivo PHP log in dot y tenemos Js log in. Bueno, vayamos a nuestro archivo principal. No tenemos a Js Logan. Entonces lo que podemos hacer es que podemos copiar y pegar es ahora esto se rompe. Una de las reglas fundamentales de la programación es que estamos copiando y pegando bastante código aquí, y con toda honestidad, no
deberíamos serlo Deberíamos escribir una función que maneje básicamente todo esto. Pero esto no es un conserje, claro. Entonces no tenemos que seguir esa regla. Uh, yo, sin embargo, dejaré esto en manos de ustedes en sus futuras aplicaciones para optimizar este abrigo. Entonces, uh, copiando ritmo y tenemos que ir línea por línea, De lo contrario definitivamente vamos a meternos en perder algo raro sobre jazz log in. ¿ Eso ya tiene sentido? El registro Js es una clase prevenir error predeterminado. ¿ Eso existe? No, no
creo que lo haga. Entonces vamos. Uh, bueno, en realidad, lo que no hemos registrado. Simplemente copia eso, literalmente. Copiar eso. Entérate. Esa es exactamente la misma clase y todo lo que hay va a mirar hacia adelante y formar el correo electrónico y la contraseña. Tenemos un correo electrónico. Tenemos la contraseña para que los coincidan con esos tipos. Tipo correcto de correo electrónico y contraseña. Eso es perfecto. Si enviamos correos electrónicos menos de seis. Sí. Siempre. Si tu contraseña es menor a 11 aún están asumiendo. De acuerdo, ahí vamos. Queremos cambios para iniciar sesión. Y mira eso. cambiamos casi nada. Ah, no
cambiamos nada realmente. Todo lo que cambiamos fue eso. Y eso es todo lo que vamos a cambiar ahora. podemos optimizar esto muy, muy fácilmente. Y en lugar de tener a todo ese oyente, básicamente
podemos subir aquí y podemos decir que hacer si vamos a hacer un giro Eri aquí Así que me he formado en tiene clase Js iniciar sesión? Entonces haríamos el inicio de sesión. De lo contrario Ajax se registró en PHP. Entonces si se trata de un registro, informar, intentar, iniciar sesión, lo contrario intentaron registrarse, eso es lo que podríamos hacer. No vamos a hacer eso. Yo quiero guardar este código. A pesar de que es mucho más largo, quiero mantenerlo separado sólo por el bien de poder seguir experimentando más adelante. Ahora este es un buen punto para seguir, optimiza tu código si tu interés optimizando código. Pero por lo general espero un poco más y optimizo a mis entrenadores porque no estoy seguro si este registro realmente va a tener algo más ahora. Lo sé porque he hecho tantos. El registro de Lockett no va a tener nada más para este uso en particular, pero si este largo y tuviera que hacer algo más, puede que no quiera usar exactamente el mismo código para el registro e iniciar sesión. Entonces vamos a su registro son Ajax slash página de registro. Digamos que eso es deshacernos de eso y antes de que hagamos algo porque yo totalmente quiero hacer esto la última vez, conseguir estatus. Obtener anuncio. Hemos agregado nuestro filtro. Hemos agregado un login. Hemos modificado el índice config, main y register. Entonces, solo sigamos adelante y sumamos todos estos. Además, es una muy, muy buena práctica entrar realmente en leer cada línea. Simplemente no toma tanto tiempo, porque a veces hay algo ahí dentro que no necesariamente quieres comprometerte. Entonces consigue comprometerse. M agregó registrarse vía Ajax Ajax, Ajax consigue empuje origen Mestre del boom hecho. Sí, Ahí está. Vamos a echar un vistazo a esto. Ya ni siquiera estamos en el repo correcto. Y mira eso. Tenemos una tonelada de información en tu dulce Tenemos nuevos archivos. Tenemos todo tipo de cosas en tu increíble lectura. Yo necesito un poco de amor, pero eso está bien. Eso es solo simple rebaja. Ahora para el inicio de sesión. Vamos a seguir adelante y duplicar este duplicado Llama que inicie sesión de nuevo. Duplicación Tengo que pasar por todo. Ah, estamos usando el correo electrónico. También vamos a estar siempre usando la contraseña. Muy bien, ¿necesitamos encontrar al usuario? Sí, sí lo
hacemos. Necesitamos encontrarlos por su dirección de correo electrónico, y necesitamos obtener su contraseña para que no solo queramos a su usuario. ¿ Pesas también quieres su contraseña si el usuario no existe? Recuerda, Entonces lo que estamos haciendo aquí es que estamos seleccionando usuario I D y contraseña de la tabla del usuario, donde el correo electrónico del usuario es igual a cualquier correo electrónico que agregaron al límite de formulario uno. Ahora, si el usuario existe dulce, intenta firmarlos. Y si el usuario no existe, adivina lo que necesita para crear una nueva cuenta. Entonces vamos a crear un error. Hagamos un nuevo registrado en PHP, y todo esto se va a dio es si el usuario no tiene un conteo, les va a dar un enlace para ir a crear cuenta, porque por qué no eso hay algo que no mencionar. En realidad puedes cambiar los encabezados. Se puede añadir un estado 200. Si todo va bien, puedes agregar un 4034 prohibiciones puedes agregar un 302 o tres un uno para Rita Rex, Um, y Jake Weary Y tu función Ajax realmente puede recoger en esos diferentes http. El estatus es pero de nuevo por el bien de la simplicidad. Simplemente lo estamos haciendo de esta manera. Vamos a agregar un error aquí, o vamos a intentar iniciar sesión en alguien, um y redirigirlo. Eso es todo lo que estamos haciendo. Pero en realidad hay mucho mejor manera un poco más cerca en un P I donde es un poco más apátrida, y puedes usar encabezados http para básicamente decirle a los otros desarrolladores como, Oh, cuando están tratando de iniciar sesión ahí consiguiendo un cuatro o tres, Bueno, ¿por qué están consiguiendo un 43? ¿ Viene con otro error? ¿ Hace algo más? Y entonces de repente, si lo tienes, como un 403 eres eres exitoso. El código Ajax ya no está en el Ajax hecho. Probablemente estaría en el Fail, o sería aquí donde se cree su código de estado. Y luego ponemos, como función 403 y luego alertamos, no permitido o algo así para que pudiéramos hacer algo junto. Esas líneas no iban a meterse en eso si quieres. Definitivamente puedes. Pero se supone que este curso es, ya
sabes, dulce
acortado. Entonces sigamos adelante y el usuario existe. Vamos a cerrar eso porque no quiero meterme eso con ningún otro código. Um, Y ahora lo que necesitamos es jalar tanto el usuario que d como la contraseña. Así que sigamos adelante y digamos que el usuario es igual para encontrar Oops. Encuentra usuario, busca PDO, busca un calcetín. Uh, y lo que esto va a hacer es crear y lo Ray Así, usuario, Ahora de repente se ve como usuario I d Ziegel a uno y contraseña de usuario es igual a bien, lo que diablos sea esto. Y entonces esto es esencialmente lo que va a estar creando para nosotros, ¿
verdad? Entonces ahora tenemos acceso a estos sin realmente tener que escribirlos porque está almacenada en la base de datos para nosotros. Pero me gusta elenco porque es una buena manera de saber con qué estás trabajando. También como que te configura para python en el futuro y otros lenguajes que dependen, ya
sabes, hay un poco más estrictamente escrito PHP no está estrictamente escrito donde sabes que podríamos . La idea de usuario correcto es igual a una. Y podríamos decir,
uh, uh, si el usuario I d es igual a uno.
16. Login de usuarios a través de Ajax parte 2: derecho. Entonces va a tratar de igualar esto y aquello y eso va a volver realidad. Y eso no siempre es aplicable en otros idiomas. Entonces lo que me gusta hacer es el usuario i d es igual al Inter. Juro, sólo echarlo. Usuario Usuario Usuario I d en la contraseña. No necesitamos hacer nada con ahora en esta zona. Necesitamos validar al usuario. ¿ Cómo hacemos eso? Porque tenemos esta contraseña bruta. No tenemos ni idea de qué es eso, y eso es bueno. No necesitamos saber qué es eso. Entonces, por el bien de la simplicidad, tomemos la contraseña es igual a la contraseña de usuario. También cambiemos eso al usuario I d Así que estos son sólo un poco más estandarizados. Sabemos con qué estamos trabajando más adelante, así que no tenemos que usar gross array básicamente ahora, antes de continuar, La razón por la que no lancé esto a una cadena que pude y estaría perfectamente bien es porque esta contraseña ya es una fortaleza. Cuando vuelve nuestra consulta de base de datos, básicamente piensa que es que esa no es nuestra contraseña. Esa es nuestra contraseña. Y vuelve en una cuerda sabemos que está en la cuerda porque envuelto alrededor de comillas, no
queremos eso. ¿ Y por qué hacer eso? Porque todo lo que va a hacer va a convertir uno en uno que siempre va a dio tan mismo cosa ahora para verificar al usuario. Nosotros sí hacemos hacer verificación de contraseña. Queremos verificar su contraseña con su hash. Por lo que backtracking aquí contraseña es igual a publicar contraseña Google que nunca se envía a la base de datos que no necesitamos del dedo del pie aire limpio, despojarlo o nada. Esta contraseña. Vamos a renombrar el hash porque técnicamente, es un hash. Entonces ahora tenemos nuestra contraseña. Estamos comparando cualquiera que sea la contraseña del usuario con el hash. Esto es así lo que básicamente intentaba hacer es que esta era mi contraseña. Al igual, ¿Esos coinciden? No, pero PHP es lo suficientemente inteligente como para que pueda averiguar cómo igualar esos. Usuario está firmado en inválido Usuario E mail password combo y para devolver aire. Digamos incluso que en válido un usuario incluso un combo de contraseña de faja, y aquí podríamos hacer retorno. El redireccionamiento es igual a donde vamos a decir que redireccione cuál simplemente va a ser la página PHP del dashboard. Pero también necesitamos establecer un usuario de sesión I d. Es igual al usuario I d Ahora la razón por la que lanzo este poco antes no sólo porque es una gran práctica, sobre todo si vas a escribir de todos modos idiomas como Python en el futuro. Pero ahora esta sesión también se establece como un entero. Ya no es una fuerza. ¿ Eso importa? No en PHP? En realidad no. Es sólo una buena práctica. Ahora hay una cosa que debes saber. primeras sesiones completas son pequeños archivos almacenados en el servidor, igual que una cookie regular en su navegador. Pero en lugar de estar en tu navegador, ¿
adivina qué? Está en el servidor. Entonces si tienes 100 millones de usuarios y tienes 100 millones de pequeños archivos sin embargo tus servidores van a ralentizar, ¿tienes que preocuparte por eso ahora mismo? No. Si estás viendo este video, probablemente no
estés creando un servicio que va a tener 100 millones de personas en el próximo año. Entonces sí, mucho tiempo para aprender. Entonces no te preocupes por eso. Otra cosa que debes saber es que las sesiones necesitan estar en Stan Shih ated por defecto. No están encendidos. Y sólo por esa razón, también. Entonces si vamos a nuestra configuración y nos aseguramos de que nuestras sesiones estén siempre encendidas, las
sesiones siempre están encendidas, podríamos decir, si se establece alguna sesión. Y esa es una super variable global, igual que como escribimos post u get or request o server. Es lo mismo sesión y todo lo que queremos hacer es iniciar sesiones y otra vez. Caleb, hoy
estás teniendo un mal día escribiendo. Pero todo lo que estamos haciendo es establecer la sesión. Apenas iniciarlo estaban diciendo comportamiento de ph podríamos estar esperando una sesión para entrar. Entonces tal vez solo permita que eso suceda. Adelante, di esa configuración interna. Tenemos nuestra sesión en tu Tenemos un usuario, me d impresionante. Impresionante. Impresionante. Ahora sigamos adelante y veamos qué pasó. Ah, en realidad, antes de hacer eso, tenemos un error que devuelve html cool. El problema es nuestro error no muestra una ella masculina. Ahora sí. Estaba mostrando sólo texto antes de las diferencias. Tomará su HTML y lo mostrará como texto versus realmente usando el método HTML aquí realmente se renderizará como HTML normal. Entonces sigamos adelante. Prueba de actualización en prueba Pato. Oops, Tessa test dot com Prueba prueba prueba Bueno, mira a ese paciente encontrado. Eso es impresionante, porque no tenemos dashboard dot PHP. Entonces todo está funcionando en realidad y estamos firmados ahora. Ahora bien, ¿cómo sabemos realmente dónde lo firmó? Bueno, sigamos adelante y tomemos índice y vamos a duplicar y llamar a ese dashboard dot PHP y eco session user I d es tu usuario. D salgo todos. Nos vamos a dio Mira ese es tu usuario yo d Ahora si fui aquí en modo incógnito, no pasa nada. Mira ese usuario de índice indefinido, yo d ¿Por qué es eso? Y eso es básicamente quejarse de que esto no existe. Pero debido a que iniciamos sesión
, existe. Y ahora que sabemos que puede o no puede existir, ahora
podemos darle cierta información a la gente. Podemos darles un feed de noticias comisariado. Podríamos permitirles el acceso a sus correos e. Podríamos permitir que enviaran mensajes a otras personas que también están iniciadas sesión. Tenemos todo este mundo que se abre a nosotros con sólo un poco de verificación, y todo lo que es es un pequeño número. Y en este caso es el número uno. Eso es todo lo que es ahora en el futuro, vamos a usar este usuario de sesión I d como la idea de usuario real para ir y agarrar otras piezas de información. Entonces no solo establecer lauded es igual a cierto, porque eso no es útil. Bueno, claro, el usuario está conectado,
pero, como, como, ¿cómo se supone que vamos a conseguir a su usuario? I d Y entonces ¿qué sesiones sesiones sesiones sesiones por señorita? Uh, las sesiones persisten. Página sobre página sobre página. Entonces si tomé esto y pasé a Vamos a registrar uno es el usuario i d. ¿Y si fui a iniciar sesión Uno es el usuario I d Así que ahora tenemos esta pieza de información que existe en cada página sin que tengamos configurarla. No tienen que iniciar sesión en todas las páginas. No tenemos que usar una cookie, es seguro en el servidor. Y en realidad voy a ir y hacer esos porque esos son feos y no queremos que esos el tablero uno y vamos a seguir adelante y deshacernos de lo que sea que hay ahí
porque eso es innecesario. Google cool. Entonces en esta lección, lo que hicimos fue crear una página de inicio de sesión de Ajax. Tenemos una página de registro ahora. Solo necesitamos forzar a la gente a iniciar sesión en ciertas páginas como el panel de control en, no tener un error que aparezca, y necesitamos poder cerrar sesión a la gente. Y eso es todo. Eso es todo lo que hay a ello. Ahora es bastante sencillo. Hay formas de hacer esto mucho más complicado, pero no vamos a meternos en eso porque realmente,
en este punto, en este punto, todo lo que necesitas es un sistema de inicio de sesión. Ahora, antes de despegar, obtener el estatus. Obtener anuncio. No quiero agregar todavía puede que quiero agregar la config? Sí. Por lo que quiero agregar el registro En caso de que lo haga. Quiero agregar el ritmo del tablero. Sí, vamos a los animales a obtener estatus. Get commit em, añadió Le Guin vía Ajax. Consigue empujar origen, Maestro, Ahí vamos. Eso está ahí dentro. Volvamos a ti. ¡ Consigue Hub! Mira eso, agregó
Ajax. Inicie sesión vía Ajax. Dulce. Todo está funcionando como habíamos esperado. Genial, Genial. Por lo que te veré en el próximo video
17. Login inicio en ciertas páginas: De acuerdo. Bienvenido de nuevo. Entonces las cosas se están excitando. Creamos un sistema de registro usando Ajax. Creamos sistema de registro usando Ajax. Podríamos crear teóricamente un sistema de cierre de sesión v Ajax. A pesar de que eso es un poco exagerado para lo que eso funcionalmente es en realidad. Llegaremos a eso en un rato. Pero hoy, o más bien en este video, vamos a aprender a forzar a alguien a tener un usuario. D sesión y en realidad es bastante simple. Lo que podemos hacer es que podemos decir, si se establece usuario de sesión I d Entonces todo está bien. Podríamos hacer algo más y no es si el usuario está permitido aquí y podemos decir otra cosa si el usuario no está permitido aquí. Entonces lo que hacemos si no se permite al usuario, vamos a redirigirlos. Hagamos la ubicación del encabezado y vamos a moverlas para iniciar sesión en dot PHP y no queremos
que esto se ejecute nunca después, Así que agreguemos una salida y ya está. Entonces si voy a dashboard bien, me permite en su eso. ¿ Hay algo ahí dentro que sea solo decir dashboard solo para que podamos verlo dashboard aquí, Google Dashboard está ahí eso significa que soy Londres. Pero, ¿qué pasa si abro un incógnito donde no hay set de sesión? Eso fue bastante rápido. Entonces si voy a un panel local host dot PHP,
bueno, bueno, me
está obligando de nuevo en la página de inicio de sesión este asunto cuántas veces hace
me va a obligar a iniciar sesión una y otra vez. Eso es todo lo que hay a ello. Ahora, en lugar de escribir esto en su lugar porque se trata de una variable súper súper global es técnicamente lo que se llama podemos escribir una función llamada Básicamente, podemos llamarla cualquier cosa que queramos. Consulta si inicia sesión o tres directos o simplemente decimos iniciar sesión forzada, que es el que me gusta usar. Tira eso ahí dentro y mira eso. Entonces si vamos al panel ahora, en realidad eso es do dashboard de incógnito. Esto se mostrará genial, no lo que queremos, porque no estamos firmados en modo incógnito. Pero si corrimos forzados iniciar sesión con un solo mando pequeño y volvemos a nuestra
página de incógnito , nos obliga a volver a iniciar sesión. Perfecto. Entonces, ¿qué queremos hacer con esta función? Bueno, creamos un archivo hace
mucho, mucho, hace
mucho tiempo llamado funciones. Ahí estamos PHP sintaxis crabber funciones a través de un comentario ahí dentro, obligó al usuario a iniciar sesión o redirigir. Estos no son comentarios impresionantes, pero son al menos comentarios. Ahora eso no va a hacer nada, porque si tuviste invitados, no está aquí porque tienes razón. Todavía no está siendo incluida en su expediente. Bueno, no
necesitamos incluir la parte de clases. Todo lo que necesitamos incluir es las funciones dot PHP. Ahora. ¿ Por qué es eso? Si bien porque CONFIG está en la carpeta de tinta justo aquí y todo
lo que busca son funciones, está buscando un hermano, no un niño, no un abuelos, no un padre, solo un hermano. Y eso está en la misma jerarquía. Por lo que no usamos el DOT No usamos una carpeta. Nombre solo tiene funciones en PHP. Adelante, di eso y hagámoslo. Loggins, como todo va dashboard nos obliga a iniciar sesión y volvamos al dashboard mientras estamos logueados. Entonces está justo ahí. Nosotros lo tenemos, y así es como obligas a alguien a iniciar sesión Ahora que si queremos hacer lo contrario donde nadie tiene permitido golpear la página de inicio de sesión o la página de registro mientras está conectado. Bueno, volvamos a las funciones y vamos a crear función,
fuerza, fuerza, dashboard o algo así. Y esencialmente, es lo mismo que esto. Podríamos decir si la sesión es fija, Pero en lugar de hacer esto, vamos a dashboard. Y si la sesión no está configurada, solo
seguiremos manteniéndonos. Pero redirigir de todos modos. Y si vamos a oh, una foto que queremos enchufar, ponemos una tabla de escondite. Y si fuimos a registrarnos y pusimos por una pizarra de escondite y fuimos a dashboard y dijimos, Dashboard, aquí están iniciados como sesión de usuario use panel de bosque listo, sintaxis
inesperada allí. ¿ Qué está diciendo? Dibujó para hacer la línea 13. Y la razón de eso es porque he espeltado ese mal Cool Dashboard funciona. Ahora vamos a iniciar sesión página. No me va a dejar entrar en un tronco. Pages realmente me obligó a volver al tablero así como eso. Y si vuelvo a la página de registro, no me va a dejar ahí. Me obligó a volver al tablero. Impresionante. Entonces ahora tenemos un sistema donde las personas que ya están ingresadas no ven las páginas de inicio de sesión que no ven las páginas de registro tiene todo basado en una pequeña sesión y viceversa. Cuando están en la página del panel y no están iniciados, los
forzamos a iniciar sesión en cosas bastante simples. Ahora que sabemos cómo funcionan todas estas piezas en realidad juntas. Entonces eso nos deja con solo cerrar sesión. Y luego podríamos hacer algo de limpieza de código después. Y como de costumbre, um, claro ese tablero de estado del niño. Uh, ¿qué quiero ver? ¿ Qué hice de manera diferente en el tablero? Es decir, sé de arriba de mi cabeza, pero si no recuerdo si esto fue de, como, ayer o algo así Oh, mira eso. Añadí force log in y agregué una nueva línea en su cool. Entonces sé que puedo tener eso. No en absoluto. ¿ Qué? Yo quería subir el panel de anuncios. Hp get def. ¿ Hay algo que hice de manera diferente en el archivo de funciones? Bastante un poco. Parece que agregué las dos funciones get add in functions, get status ahorita tengo una config. Morgan y regístrese. Yo era Dios. El resto de esos me llamaron. empuja el registro y las funciones. Origen, Maestro. Y ahora esos se levantan y se levantan así.
18. Logout: ya. Por lo que ahora tenemos un login. Tenemos un registro. Tenemos páginas a las que sólo pueden acceder personas que han iniciado sesión. Ahora tenemos que poder cerrar sesión. Entonces sigamos adelante y solo copiemos registro. Y supongo que pillado logramos cerrar sesión y no necesitamos eso. No necesitamos eso. De hecho, no
necesitamos nada. Técnicamente, todo lo que necesitamos para dio es Entonces lo que ves aquí es el tiempo pasado, ¿ cuál es el momento en este momento? Menos típicamente una hora. Suficiente. A pesar de que he visto lugares donde una hora no es lo suficientemente buena. Por lo que el tiempo menos una hora de segundos, que es 60 veces 60. 3600 es lo suficientemente bueno. Entonces vamos a empezar la recesión de que vamos a destruir la sesión. Vamos a cerrar la sesión,
y, ah, ah, si tenemos alguna galleta de la sesión y vamos a deshacernos de esas y también
vamos a regenerar cualquier idea y eso va a obligar al usuario a cerrar sesión ahora, por último, también
necesitamos redirigir al usuario a algún lugar donde sepas que vuelven a consignar o la
página de inicio o algo así. Entonces, sólo firmémoslos de nuevo en No no no no enviarlos. Uh, más bien Vamos a moverlas al índice hacia arriba intención de la página PHP que porque no me gusta que el código toque las paredes con demasiada frecuencia. Guarda eso. Vete por aquí. Correcto. Está bien. Dashboard piensa que estoy conectado. Voy a cerrar sesión. Ahora estoy de vuelta en índice, pero no sé si realmente estoy conectado, así que volvamos al panel. Ningún tablero no me dejará volver a entrar. ¿ Por qué no me dejas volver a entrar? Ah, ¿ es porque ya no tengo sesión? Mi usuario i d sesión se ha ido. Entonces la forma en que realmente nos deshacemos de una sesión. Técnicamente, ojos podemos iniciar la sesión, pero podemos pasarle el valor del pasado que en este código es en realidad obsoleto. En eso, podríamos destruir la sesión básicamente, diciendo Ok, esta sesión expira hace una hora, y así se irá una computadora. Ah, caducado hace una hora. De acuerdo, es que ya no es relevante, pero en cambio vamos a usar sesiones. Comienza destruido, ¿verdad? Cerrar. Vamos a quitar cualquier galleta y regenerar el yo d. y así así, tenemos hace mucho. Ahora la razón por la que te mostré la parte pasada que pasa igual al tiempo menos 3600. Eso es puramente porque muchos proyectos antiguos como PHP 5.6 uh, session destroy no necesariamente destruirán su sesión. Todo lo que hará es destruir una sesión en una página. Ha habido un poco de controversia en torno a eso, pero esencialmente en PHP 5.6 y versiones más jóvenes o versiones anteriores, supongo que 5.6 y menores. Requirieron básicamente una sesión para caducar hace una hora, lo cual era algo raro, considerando que solo deberías poder derechaste sesión destruir y se ha ido. Supongo que eso está arreglado en estos días. Impresionante. Impresionante. Entonces ya no tenemos que lidiar con eso. Pero quería mostrarte eso porque vas a venir, vas a ver algunos proyectos de PHP en el futuro. Y eso es exactamente lo que van a tener es algo así. Te vas a pensar a ti mismo Bueno, ¿qué diablos, Pero adivina qué? No importa. Ni siquiera necesitamos tener nuestra configuración en este archivo tampoco. Es bastante fácil. Todo lo que hace es deshacerte de tu sesión y llevarte de nuevo a la página principal, y eso es todo lo que hay para cerrar sesión ahora, Como de costumbre, sigamos adelante. Obtener el estado. Obtener anuncio get add, get status, get commit en una página de cierre de sesión. Consigue push origin master, y vamos a ir a conseguir hub. Asegúrate de que entremos ahí. En realidad no vamos a revisar getups nos van a dar este pequeño mensaje aquí, resolviendo uno de uno de Delta completado con un objeto local. También nos dio nuestro pequeño hachín ahí dentro. Y entonces, sí, nos dice que todo va bien,
así que en realidad no tenemos que revisar. Consigue ayuda dot com para ello. Simplemente sabemos que va a funcionar porque nos dio el mensaje de trabajo. Y así hay un poco de confianza que tienes que construir con get, pero lo es. Es muy, muy confiable. Se trata de una herramienta que ha hecho programación en equipos hizo programación que Facebook y Google, Yahoo, Amazon o todas estas otras empresas. En realidad se hace muy, muy posible de lo contrario, tratar como 2000 ingenieros en cualquier momento va a ser muy, muy difícil, así que no necesitas mirar a get todo el tiempo y esa es nuestra página Lago. Y así básicamente tenemos un login. Por lo que algún sistema de Lagos, tenemos un sistema de registro. Todo esto se hace a través del Ajax. Tenemos un panel de control que sólo ciertas personas pueden ver si realmente hay registrado. Y ahora lo único que queda por hacer es limpiar realmente nuestro código. Y aunque es posible que no te importe limpiar el código, en realidad
es realmente importante mantener tu código. Esa es la parte más difícil de ser desarrolladores web. Mantener tu abrigo. Si no puedes mantener tu código, ¿cómo lo vas a mejorar? Vas a dejar tu código. El peso es ahora, que es honestamente, el código R es bastante descuidado y vamos a volver dentro de dos meses. Vamos a pensar ¿En qué diablos estábamos trabajando? ¿ Qué estábamos haciendo? ¿ Por qué esto no está en una función? ¿ Por qué esto no está en una clase
19. Creación de funciones: Está bien, está
bien. Bienvenido de nuevo. Entonces, para esta lección, lo que me gustaría hacer es solo limpiar parte del código sobre tal vez agregar solo un ligero toque
personal y tal vez un enlace de cierre de sesión. Ah, nada de fantasía va a pasar. Aquí s voy a tratar de pasar por esto
realmente, muy rápido. Entonces lo primero que quiero hacer es en el tablero en lugar de decir que estás firmado en su usuario uno. Deseo mostrar su dirección de correo electrónico. Pero, ¿cómo obtenemos eso del usuario? I d Así podemos hacer esto Ideas de usuario igual a usuario de sesión I d Sabemos que si el código pasa de fuerza iniciar sesión que tenemos el usuario yo d que es accesible para nosotros. Porque si solo saltamos a funciones arriba, PHP si está configurado, no
hagas nada. Si no se dice, nos
va a redirigir. Entonces si no se dijera no estaríamos ejecutando ninguno de este código. Algún sentido que el usuario i d. En lugar de escribir usuario de sesión, yo d simplemente una especie de para mantener las cosas consistentes en todo el resto de la aplicación. Y luego vamos a encontrar, uh, Vamos a encontrar el registro Fecha la dirección de correo electrónico de este usuario Así vamos a ir a obtener información de usuario es igual a con Preparar, seleccionar correo electrónico y ah, vamos a hacer Reg fecha de usuarios donde usuario i d es igual al usuario i d linnet one. Obtén información del usuario sobre Recuerda, hemos comprado los parámetros con PDO. Siempre nos vinculamos, Do use derecho tipo D en la variable use right. Y esta vez vamos a usar PDO param int y obtener información del usuario. Simplemente lo ejecutamos. Ahora bien, si tienes un sistema que pudiera eliminar a la gente, si tal vez tu sistema es invitar solo alguien se metió y querías echarlos, podrías eliminar su información. Ah, si tienes algo así, siempre
vas a querer revisar para ver si ese usuario realmente existe. Si se encontró algo, no
es difícil dio. Y tampoco se necesita mucha potencia de procesamiento. Entonces es que es rápido poco triunfo para ti si solo escribes. Si Jack user info throw count es igual a uno de lo contrario el usuario no está registrado porque con nuestro funcional sí, se establece
esta comprobación de esa sesión. Entonces si alguien está en la página web, pero dentro de los 15 minutos que sabes que la sesión está viva hasta que golpean esa página siguiente aproximadamente dan o toman unos minutos. Uh, si eliminaste esa información, si eliminaste a su usuario i d de la base de datos. Bueno, ¿
adivina qué? Todavía van a poder acceder a todo lo que necesitas para asegurarte de que no puedan acceder a nada. Y así un ejemplo de la vida real de esto sería como ser prohibido de un grupo, um, o ser echado de Facebook, por ejemplo. Entonces queremos comprobar para asegurarnos de que el usuario solo Y si no lo hace, hacemos la ubicación del encabezado, y vamos a obligarlos a cerrar sesión e iniciar sesión. Ah, le
va a llevar a indexado hasta enorme para ser, pero se va a deshacer de toda la otra información de sesión s para que el sistema pueda especie de simplemente refrescar sus configuraciones. Ahora bien, si el usuario fue encontrado. Usuario waas encontrado begin type user es igual para obtener información del usuario, buscar PDO. Trae un calcetín, que es Honore. Si querías buscar un objeto en lugar de no listo, solo
escribes fetch LBJ, pero corrió tipo que Jae Sok. Y ahora sabemos que si el usuario
existe, va a haber este objeto de usuario en nuestro código. Pero si el usuario no existe, bueno, adivina qué no va a ejecutar el resto del código. Y vamos a añadir un poco. El poco de salida es sólo un poco de seguridad, pero por si acaso. Y así queremos decir: Hagamos esto. Uh, la palabra guión, no el tablero de fajas. Y hola, Paige P echo user email Te registras registrado en PHP User. Um, Reg Date. Y así todo lo que hice ahí fue que obtuve la dirección de correo electrónico de nuestra consulta. Obtuve fecha Reg de nuestra consulta, y obtuve la variable, la matriz de usuario otra vez de nuestra consulta. Entonces si digo que refresca mira a Reg, Date no existe. ¿ Por qué es eso? Bueno, si volvemos a su estado no rojo, es Reg. Hora de irse, tiempo de
Reg. Y ahí vamos. Esa es mi dirección de correo electrónico, y me registré en ese momento perfecto. Tan poco toque personal ahí. Ahora bien, si tienes un nombre Ah, puedes agregar su nombre de pila ahí cuando se registren. Se puede agregar eso ahí también. Y vamos sólo a un jurado de Zika a lago God PHP con un pequeño enlace Lago ahí. Entonces tenemos que cerrar sesión link, y eso esencialmente solo dejará enfriar a la gente como entrar y salir. Entonces eso es un poco Tidier. Ahora vamos a ver nuestras funciones en algunos de nuestros pasos de Ajax tenemos login, ¿
verdad? Bueno, queremos iniciar sesión al usuario, pero no necesariamente queremos escribir todo este código. Entonces lo que podemos hacer es que podemos envolver esto en una función y básicamente utiliza una y otra vez . Entonces es justo una nueva función. Uh, en realidad, echemos un vistazo a lo que eso puede hacer y lo está haciendo. Ah, ¿qué está haciendo? Es solo que está buscando al usuario. Si el usuario sí existe, va a intentar iniciarlo. Si no existe, sólo les va a dar un aire diferente. ¿ Qué parte de esto podemos usar más de una vez mientras queremos buscar el aire? Uh, lo siento. Queremos buscar al usuario más de una vez. Probablemente queremos buscar al usuario aquí es Bueno, ¿
mirarías eso? Es básicamente el mismo código exacto. Entonces, ¿qué pasa si quisiéramos escribir eso solo una vez? ¿ Qué? Tomamos esto y vamos a encontrar Usuario es igual para encontrar función de usuario, que aún no existe. ¿ Y
qué, qué buscaba? Estaba buscando sólo el correo electrónico. Es el único dato personalizado ahí dentro, y también requiere la conexión. Entonces tecleemos el correo electrónico. No, en lugar de tomar la conexión y luego el correo electrónico, es una gran función. Encuentra años, nuestro correo electrónico de conexión. Y vamos a mover eso con palabras. Y así ahora tenemos correo electrónico, que se supone que se filtrará aquí. Pero no confiemos en eso de todos modos, porque si alguien más está escribiendo esta Coca-Cola, no
sabes si es confianza o no. Y filtrarlo por segunda vez no es un gran, gran cosa, realmente. Eso email es igual a string email, y vamos a asegurarnos de que eso siempre es un string lo lanzará, y lo que necesitamos devolver es, bueno, básicamente, toda
la consulta. Si el recuento de caminos es igual a uno, uh o no, así que podríamos simplemente devolver el conteo de roles porque eso es todo para lo que se está usando esto justo aquí y allá. Entonces vamos a hacer que encuentres Usuario. Y si find User write count es igual a un retorno true, lo contrario devuelto false, también
podríamos adicionalmente su, uh de lo contrario supongo que podríamos hacer Ah, usuario encontrado es igual a booleano encontrar usuario bro count y usuario de retorno encontrado. Entonces lo que esto va a hacer es si se encontró un usuario mientras que uno en Boolean es verdadero y cero en Boolean es falso, por lo que simplemente podríamos devolver el valor booleano de cuántas filas se devolvieron. Entonces ahora, en lugar de incluso poner eso en su variable, podríamos simplemente decir si encuentra usuario y busca al usuario. Ahora. No vamos a hacer eso porque eso es un poco desordenado. Preferiríamos poner eso en nuestra propia variable y luego si vamos a renombrar realmente ese go user found. Entonces si esto es cierto, se va al espacio. Si dices que sí, ya se encuentra al usuario. Si es falso, ID va a seguir adelante y crear un nuevo usuario, pero vamos a seguir adelante y complementar que se inyectan eso en Logan dot PHP también y eliminar todo eso ahora solo un cabezal arriba. Si estás trabajando con WordPress, vas a ver mucho de esta Global Con, lo que significa básicamente, que esa variable de conexión que viene de nuestra configuración se va a permitir que esté usando aquí , y no va a aparecer como parámetro. Te aconsejo que no hagas eso. Eso fue aceptable hace 15 años. Eso ya no es aceptable. No hagas eso. Simplemente pásalo. No hay nada de malo en pasar una de tus variables a uno de los parámetros de tus funciones. Entonces ahí vamos. En lugar de tener que escribir la consulta dos veces, en realidad sólo
hemos escrito la consulta una vez. Y si en algún momento esta consulta necesita cambiar va a afectar a ambos lugares. Por lo que ahora es extremadamente eficiente. Entonces, vamos a cerrar sesión. Enchufe Tess en prueba punto com. Prueba prueba de prueba dice que ya tienen una cuenta. Uh, que en realidad es hacer si estás ahí, encontramos que queremos hacer lo contrario. Si no se encontró ningún usuario, entonces sigue adelante e inicia sesión al usuario. Pero de hecho, es
éste un poco diferente porque está buscando al usuario hallazgo. Entonces sigamos adelante. Y, uh, hagamos que esta función sea un poco más compleja. Y eso es un retorno que un calcetín es capaz de falso. Pero si fuera por alguna razón cierto, entonces podríamos decir, Si eso es cierto, sólo regresa. Encuentra usuario, busca PDO, busca un calcetín y eso solo va a devolver todo el objeto. De lo contrario se va a devolver el booleano. Entonces vamos a hacer el inicio de sesión. Eso ha cambiado a Verdadero. Ahora dice, no
tengo cuenta. Bueno, ¿por qué? ¿ Por qué es eso? Bueno, es porque dice ya tener una cuenta. Bueno, eso está totalmente bien. Pero ahora ¿por qué es eso? Bueno, mira, hemos tenido un redireccionamiento. Tenemos aire aquí. Cuando tenemos aire, no
queremos mostrar ese error. Todavía dice que ya tenemos una cuenta. Bueno, ¿por qué es eso? Bueno, echemos un vistazo a su dedo de depuración. Este es un gran ejemplo de cómo realmente podemos depurar. Entonces, vamos a hacer clic en este click iniciar sesión. Ah, mira esa variable indefinida find user 9 22 y lo que queremos hacer aquí es conteo de carreteras. Eso no lo sabes. Probablemente decir lo mismo en entonces consejo otra vez. Vamos a pasar por todo este proceso de depuración juntos. Ah, llama a recordar función. Fet Honore on 9 22 No hay necesidad de hacer eso porque eso ya existe. Entonces, en cambio, lo que podemos hacer es porque cuando ponemos esa última variable o ese parámetro menos es cierto,
recuerden, recuerden, devuelven un calcetín. Está devolviendo el calcetín A exactamente como lo estábamos haciendo antes. Ahora sólo vamos a cambiar ahora. Esto en realidad no es útil. Entonces sigamos adelante. Elimine eso y cámbielo. Dice que ya tienen cuenta. De acuerdo, bueno, ¿por qué es eso? Bueno, volvamos ahí dentro. Rápido otra vez. Mira, esa contraseña, Invalidpassword. Bueno, bueno, ¿por qué es eso? Bueno, porque cuando volvemos aquí, mira, no está buscando la contraseña. Debería serlo. Entra ahí, cámbialo. Y así es básicamente como depuramos a través del Ajax. Ahora, hice que algunas personas preguntaran esto no hace mucho tiempo. ¿ Cómo depuro a través de Ajax? Así es exactamente como lo hacemos. Ellos consiguieron que funcionara ese. Ahora estamos logueados. Ahora qué pasa si queremos registrarnos con lo que intercambiamos el viejo código por una función . Algo realmente tenía que escribir uno. Entonces vamos a hacer una nueva prueba de registro a en prueba punto com prueba prueba prueba prueba. Y eso funcionó. Y vamos a echar un vistazo a nuestros usuarios y mirar esa prueba a Perfect. Ahora todo está funcionando, y lo trasladamos todo a funciones. Ahora, también
podríamos agregar esto a una función también en el nuevo usuario. Ah, y básicamente acaba de devolver al usuario. Yo d De hecho, realidad, podríamos hacer eso en la siguiente lección. Entonces para esta última, voy a terminar con esto, vamos a mover todo lo que hemos movido todo a funciones, y en la siguiente lección, vamos a mover todo por todo. Es decir, vamos a pasar por encima de estas funciones a una clase para que puedas ver una especie de cómo funciona realmente la programación
orientada a objetos . Ahora, estas sólo van a ser funciones estáticas, lo cual está totalmente bien. Pero como que solo te muestra cómo podemos mover una función a un objeto real o a una clase
real
20. Creación de objetos OOP Parte 1: Hola. Bienvenido de nuevo a una de las últimas lecciones en esta. Vamos a tomar nuestras funciones. vamos a poner en clases. Entonces vamos a aumentar un poco nuestro juego de PHP. Va a ser totalmente honesto contigo aquí. En su mayor parte, si comienzas a trabajar con clases ya has superado a WordPress. WordPress sigue siendo muy basado en funciones. Las clases son el futuro. Simplemente es más fácil trabajar con. Tienes diferentes patrones de diseño. La vida se pone mucho más fácil cuando comienzas a trabajar con clase. Es así que tenemos una buena función de usuario y sigamos adelante y pongamos eso en una clase. Entonces sigamos adelante y vamos bien, esto lo llaman usuario dot PHP y porque clase, usuario y así vamos a hacer dos cosas. Vamos a crear una función estática, que está,
uh, uh, asustada de este teléfono. Hacer agarrar eso a través de esto y aquí y llamar a esta función pública estática. Y así en lugar de llamar a una función como encontrar usuario, lo
llamamos como usuario encontrar usuario. O podríamos renombrarlo a usuario find. Y también podemos deshacernos de la conexión aquí dentro. Pero primero lo primero. Entonces vamos a renombrar esto para encontrar tenemos que entrar en Le Guin y cambiarlo a encontrar usuario que se
va a registrar. El usuario encuentra funciones o métodos tan estáticos siempre utilizados el demasiado frío dentro de lado a lado. Y eso le dice a PHP. Ah, estamos buscando una función estática. Es esencialmente solo una función que podría llamarse usando usuario o como sea el nombre de su clase como espacio de nombres. Eso es realmente todo lo que es. El siguiente es que podríamos deshacernos de Khan. Ya no necesitamos pasar eso ahí dentro. Podemos. No hay problema en mantenerlo ahí dentro. Pero si quisiéramos deshacernos de él para que tengamos un parámetro menos de qué preocuparnos, debilite que Khan sea igual a DB. Obtener conexión. Y lo que esto va a dio es Devi. Obtener conexión Ahora si la conexión no está configurada, va a crear una nueva instancia de DB la cual su única función es un constructo. Entonces en cuanto se cree y postura, va a crear este objeto y lo va a almacenar como autoconexión. Por lo que la próxima vez que vayas a
conseguirlo, ya está conectada de nuevo. Eso se llama diseño singleton es muy, muy útil. Ahora, ya no
necesitamos un pase con ahí, lo que también significa en iniciar sesión, podemos deshacernos de la conexión. No necesitamos eso ahí dentro, y también puedes deshacerte de él ahí dentro. Entonces, solo asegurémonos de que esto esté funcionando. Lo cual, en realidad, no
lo hará porque filtre ahí. Ahora funcionará. Prueba en prueba hasta prueba de peine,
prueba de prueba. Ahí vamos. Yo estoy dentro. Entonces sabemos que eso funciona. Ahora bien, si sabemos que eso funciona, podemos estar bastante seguros de que el registro funcione. Pero si vas a hacer un cambio fundamental a tu base de código así, tal vez adelante y probarlo de todos modos, no
voy a hacerlo solo porque sé que va a funcionar. O al menos realmente espero que vaya a funcionar. De lo contrario, es un poco embarazoso si no lo hace, um, pero sí, normalmente solo sigue adelante, prueba tu código después de que tengamos una cosa más que podemos hacer aquí. Hacemos constructo de función pública y hagamos con privado, que es una función privada llamada Con. Y cada vez que creamos una nueva instancia de usuario, que básicamente es esta. Se va a configurar esta conexión como TV get connection, lo que significa que ahora podemos usar este aero con en cualquier momento que lo necesitemos. Por lo que ahora podemos pasar en la idea del usuario. Vamos a escribir insinuarlo con un entero, lo que significa que esta clase sólo va a ir a o este método sólo va a
poder aceptar esto como un inter. Registrarme Estoy desperdiciando el dedo aquí No funciona, tiene que ser un entero que ahora por eso nos pusimos en su tablero. Nuestro usuario I d es siempre un entero. ¿ Qué lo está destruyendo? Podría haber sido una cuerda hubiera estado perfectamente bien. Pero lo dijimos como un entero, y ahora nos estamos metiendo en algunas buenas prácticas de programación zehr. Entonces si hicimos ideas de usuario iguales a filtrar en usuario i D. Y esa es solo una de las funciones o uno de los métodos que venía con la clase de filtro que inyecté aquí básicamente solo obliga a tus datos a ser un entero tiras todo lo demás fuera podríamos hacer encontrar Usuario Wow! ¿ Necesitamos hacer eso? No, no necesariamente porque ya lo tenemos. Entonces lo que podríamos hacer es usuario es igual a uno mismo ¿Encontrar qué? No conocemos el correo electrónico así que realmente no podemos hacer eso. Entonces supongo que son manos un poco atadas. Entonces vamos a escribir un nuevo usuario de consulta es igual a esta estafa. Recuerda, esta estafa está puesta a la conexión aquí arriba. Preparar gorras. El bloqueo está encendido Seleccionar usuario i d. correo electrónico Reg Tiempo de usuarios Donde Ideas de usuario al usuario i d. Limitar un usuario Bind Param Usuario I d secuela a la idea de usuario que inyectamos PDO Param entero porque sabemos que es una lesión y luego ejecutado. Y entonces podríamos decir si el recuento de filas del usuario es igual a otro. No usuario redirecciona a cerrar sesión lago dot PHP y extra por si acaso vamos cuentas de fila a hacer. Hoy vamos y entonces podríamos decir Usuario es igual al usuario Fetch PDO buscar un calcetín. Pero en realidad vamos a dio BJ en su lugar Ese objeto y podemos establecer Este correo electrónico es igual al usuario e mail. Este usuario i d es igual al usuario i d. Este tiempo francés es igual al tiempo Reg del usuario, así que vamos a limpiar esto. A mí me gusta tener mi PHP limpio. A muchos desarrolladores no les importa. Uh, yo preferiría que te importara eso te va a ayudar en el futuro. Cosas como Python o ir o no. ¿ De verdad te van a ayudar los parqués? Y así vamos a lanzar estos como string integer y string, respectivamente. Y todo esto está haciendo es usuario es un objeto. Y ahora tenemos usuario, yo d. podemos ver que coincide aquí abajo. Tenemos los coincidencias de email ahí abajo. Tenemos partidos de tiempo de Reg ahí abajo, y está poniendo todas estas cosas para nosotros. Si alguna vez tienes eso cuando eras eso. Y ahora en lugar de tener que escribir usuario privado con yo d o algo por el estilo, podemos simplemente configurarlo desde dentro del constructo. No vamos a una especie de mala práctica, sino en cambio lo que vamos a usar idea de usuario público. No vamos a darle un valor. Tenía razón, D, uh, correo electrónico así como la hora francesa y estos aires. Todos estos son valores vacíos. No hay nada ahí dentro, Pero tan pronto como llames usuario, uh, usuarios iguales a usuario nuevo. Y luego pones una entrevista ahí dentro, como tu sesión. Nos va a tirar automáticamente la información y puedes usarnos. No tiene mucho sentido ahora mismo, pero déjame mostrarte la magia detrás de esto. Vamos al panel en lugar de obtener esta información. Debilitar usuario Dio es igual a nuevo usuario. Simplemente inyecte la sesión me d justo ahí dentro. Y no tiene que ser una sesión de la Si fueras administrador, podrías poner cualquier idea ahí dentro. Podrías buscar a un montón de usuarios y simplemente poner cualquier idea ahí dentro y obtener su información . Y así sabemos que el Lago va a funcionar automáticamente para nosotros. Si no hay usuario, va a cerrar sesión automáticamente s, lo cual está perfectamente bien. Y ya no necesitamos eso. Y en cambio porque este es un objeto, ya no
usamos los corchetes de matriz. Utilizamos flechas
21. Creación de objetos OOP Parte 2: Mira, estoy refrescando mi página, y está funcionando perfectamente bien. Ni siquiera notaste que algo cambió. Por lo que ahora hemos trasladado una función a una clase. Pero en este punto, probablemente
le estés preguntando a Caleb ¿por qué? ¿ Por qué haría eso? Eso fue mucho trabajo por ninguna ganancia extra cuando ya estaba todo mi código y funcionando. Eso es totalmente justo. Esa es una gran pregunta. En realidad. La primera razón es que esto es sólo una buena práctica de programación. Cuando te metes en frameworks como Larry Bell, vas a empezar a trabajar con objetos y clases. Cuando te metas en Python, vas a empezar a trabajar con objetos, Class. Especialmente como Django, por ejemplo, voy a empezar a trabajar con más grande Awesome. Nuestro CMS está en el futuro. Vas a empezar a trabajar con mucha programación orientada a objetos. Y, francamente, empleos pagan más. Si conoces Opie programación orientada a objetos para que lo tengamos. Creamos nuestra clase de usuario. Impresionante. Impresionante. Ah, entramos aquí y vamos a mover estos. En realidad, podríamos incluso atarlo. Aquí vamos, página de
clase, y voy a seguir adelante y voy a duplicar eso otra vez. Vamos a llamar a esta página una vas y borras este lanzamiento en nuestro nuevo código de página. ¡ Impresionante! Impresionante. Ir aquí en ello ahí dentro también. Y ahora en lugar de dashboard buscando registro forzado en el que sabes está bien, aquí, déjame decir que ahí ya no está bien porque esa función no existe. Todo lo que tenemos que hacer es ir a buscarlo y poner en la página cuatro. Slog en derecho. No declaré esos extáticos y debería haberlo hecho, porque técnicamente no hay nada. No hay razón para que esos no necesiten ser Sadiq. En realidad no se relacionan demasiado el uno con el otro. Ahí vamos. Entonces regístrese. No haríamos nada. No obstante, Index age estático método de registro página en sí mismo, no la página de los agentes. Ahí vamos. Oh, bien. Y eso es todo lo que hicimos. Acabamos de trasladarlo a una clase. Ahora, la segunda razón por la que usar una clase es mejor que solo funciones. Porque donde estamos aquí para hacer archivo disfunciones, que ahora está vacío si vienes de un fondo PHP descuidado y si lo haces, no
hay nada de malo en eso. Pero hay mejores maneras. Es esta funciones son archivo PHP puede conseguir muy, muy, muy largo. Estamos hablando de miles de líneas de largo y ahora todos nosotros, y ustedes tienen funciones llamando a funciones. Colin funciona funciones de Colin, y mientras todos tratan de relacionarse entre sí, no
hay contexto. Puedes dejar comentarios, pero no necesariamente va a funcionar. no hablar de todas las funciones son globales. Ah, y a veces quieres que funcionen dentro de, como, este pequeño contenedor y cooperen entre sí,
por ejemplo,cada por ejemplo, vez que creas un nuevo usuario. Entonces déjame solo sacar eso otra vez. Forma tener usuarios iguales a nuevo usuario. Y sólo pongamos al usuario de uno ahí dentro. Podríamos entonces llamar al usuario set email, nuevo en email dot com, y lo que esto está diciendo está dentro de esta clase, llamar a una función. Llame a esta función pública llamada set email que es tipo nuevo email. Ahora ya tenemos esta configuración. Ya tenemos los correos electrónicos existentes. Podríamos decir eco de este correo electrónico y esa sería la dirección de correo electrónico actual. Podríamos decir echo este usuario i d Theo usuario existente. I d Ahora no estamos pasando nada a través de parámetros no estaban teniendo que engañarnos a través de PHP con el usuario global I. D o colador Global. Y tú piensas así. Si queríamos una conexión a nuestra base de datos, todo lo que tenemos que hacer es este con preparar y luego nuestra declaración SQL aquí. Hecho, hecho, hecho. Todo está listo para ti en el constructo. Por lo que ahora tenemos una forma en la que enviar correo electrónico puede relacionarse con los demás datos que automáticamente se
configuran para ti. Y esa es solo una función mágica. También hay otros. Entonces supongo que la segunda razón para usar una programación orientada a objetos como esta es porque
puedes crear un buen poco de funciones como esta. De lo contrario, si estuvieras usando funciones que PHP, se parecería mucho al correo electrónico de cambio de función. Entonces tienes usuario I d. nuevo correo electrónico puede ser una conexión. A lo mejor no. Si no tienes conexión, parece descuidado, porque entonces es como con global y luego con, y luego tu consulta SQL. Y ahí tienes tu email y ahí has cortado todas estas otras cosas. Simplemente se veía asqueroso, mientras que quiero decir si no lo estás, si no estás familiarizado con O. P. Esto parece mucho créeme, es que no es tan grande de un trato, y eso es realmente todo lo que tienes que hacer. Entonces voy a comentar esto y te voy a dejar eso para que puedas ir y hacer lo que quieras hacer con eso. Si quisieras tal vez recoger esto y darle a la gente una página de perfil donde puedan ir y en realidad cambiar su dirección de correo electrónico, puedes hacer eso a alguna manga. Eso ahí contigo, está comentado. Entonces no va a,ya
sabes, ya
sabes, lastimar a nadie. Y así sería la segunda razón para la programación orientada a objetos. El tercer motivo es el mantenimiento. Ahora bien, si volvemos a este archivo de funciones, podríamos tener nombre de función. Bueno, quiero decir, no
vamos a tener nada flotante o apertura sintaxis, función, nombre y así puede seguir y seguir y seguir y seguir y seguir y seguir en. Y a veces tienes funciones que básicamente hacen lo mismo, pero para diferentes partes de tu aplicación. Entonces si es como,
ah, ah, si es como cambiar nombre Bueno, y si
eso es cambiar el nombre de usuario, así que lo llamarías cambiar nombre de usuario. Pero y si quisieras cambiar el nombre. Por supuesto. Cambio de lección. Nombre del curso. ¿ Y si quieres cambiar el nombre de tu mascota cambiar nombre de mascota, verdad? Y si quisieras cambiar el nombre de y sigue y sigue y sigue. En tanto que en una clase, realidad
es mucho más fácil porque puedes nombrar las mismas funciones una y otra vez. Se puede tener. Muy bien, Ver esta clase mascota función pública, nombre
establecido o cambiar nombre. Si quisieras ser consistente con nuestros ejemplos anteriores, podrías tener usuario. Y por supuesto, eso no es lo que uso sentía que eso era poco raro tipo de ahí. Y ahora tienes un usuario de mascotas y curso que todos tienen exactamente la misma función. Nombre. El nombre del método es el mismo en los tres. No importa. No, pero si tienes la misma función, nombra no más de una vez. En realidad, si tienes dos de las mismas funciones, PHP te va a gritar y decir:
Oh, Oh, bueno, no
podemos tener que hacerlo porque no podemos distinguir entre ellas. Entonces ahora tienes una manera de básicamente nombrar espacio y te da contactos. Cambia de nombre de mascota? ¿ Qué estás haciendo? Cambias el nombre de tu mascota usuario Cambiado ocho. ¿ Qué estás haciendo? Estás cambiando el nombre del curso de usuario cambiando. ¿ Qué estás haciendo? Estás cambiando el nombre del curso. Y así al solo agregar dos palabras juntas, te has dado más contactos. Has dado a tus co desarrolladores de tus compañeros o a tus compañeros de equipo mawr contexto en lo que realmente estás haciendo. Y entonces esa es una gran razón para entrar en un poco de p No es el punto de este curso, pero solo pensé que compartiría eso contigo porque es extremadamente importante cuando
pasas a ser más grande, impresionante o desarrollador. Iba a cometer todos estos, por cierto lo hice cuando escribía Get add dog. Olvídate del todo. Yo sí miré rápidamente cuáles quería agregar aquí. Mover funciones a clases. Simplemente algo básicamente malo. ¡ Consigue empuje Origen, Maestro! Y ahí vamos. Nosotros lo tenemos. Ahí está nuestro código así. Por lo que ahora tenemos un sistema de registro de inicio de sesión totalmente funcional
22. Qué se construye siguiente en la siguiente: todo bien. Este curso está básicamente terminado, pero yo sólo quería darte un poco de idea de a dónde ir a continuación. La gente siempre dice que no sé en qué proyecto trabajar. No sé qué hacer con lo que estoy aprendiendo aquí. Por lo que este ha sido un curso basado en todo proyecto de básicamente crear un sistema de inicio de sesión y registro. Entonces ahora tienes esa base desde la que trabajar. Pero hay mucho más. Puedes hacerlo. Se puede enviar una verificación por correo electrónico para una verificación por correo electrónico. ¿ En serio? Vamos a entrar en PHP. Podría significar aquí firmaron de nuevo. Simplemente crea otra columna aquí y llama código de confirmación o lo que quieras. Dale una cadena aleatoria. No tiene que estar encriptado ni nada. Simplemente ser como un MD cinco al azar o S H un uno. Y luego envias ese código por correo electrónico a alguien, y cuando
hace clic en un enlace determinado, vuelve a tu página, y podría ser como verificado en PHP. El código es igual a uno, cualquiera que sea el código. Ah, buscarás eso en tu base de datos. Cualquiera que sea el nombre de la columna, ya
sabes, código de
confirmación o lo que sea. Ah, y luego si eso se encuentra, adelante y quítate eso. Y si ese valor no es ni está vacío, entonces ese usuario ha sido verificado. Eso es todo lo que es. Por lo que tienes confirmación de usuario. Eso se puede hacer a través del correo electrónico. Se puede hacer autenticación de dos factores. Si querías ponerte realmente cool, hay un pequeño servicio fresco llamado twilio. Uh, sólo tienes que dar click aquí. Espero que no me lleve a una página de aterrizaje asqueroso. Codificé en PHP, y me gustaría aprender un barco SMS empezar. Lo que TWILIO hará por ti es permitirte enviar mensajes de texto básicamente a cualquier persona en todo el mundo por la suciedad Barato. Estamos hablando como si no lo supiera, tal vez 0.1 centavos por cada 10 o 100 textos. Oh, no, es
Es super, super barato, creo. La última vez que llené para una autenticación de 22 factores uno de mis proyectos, creo que puse en, como, 20 dólares me duran, como, seis meses, y estamos hablando como, uh, cientos y cientos. A lo mejor hasta miles de textos han salido sólo para la autenticación básica de dos factores. Fue bastante guay. Para que puedas hacer ese twilio es un gran servicio. Si quieres agregar en tu propio tipo de autenticación de dos factores, tal vez ese sea otro curso que podría crear para ti. Si eso es algo que te interesaría, puedes agregar un. olvidé mi contraseña. Se olvidó la página de contraseña. Entonces en lugar de iniciar sesión, se olvidaría contraseña o contraseña reciente, y seguiría, restablecerá una contraseña o le dará a alguien un código secreto en el que pueda hacer clic y traerá de vuelta a nuestro sitio. Sería como restablecer contraseña password dot El código PHP es igual a, o lo que sea el código. Validar ese código. Y cuando ese abrigo es, sabes que realmente existe en nuestra base de datos, entonces puedes ir y dejar que el usuario restablezca su propia contraseña. Y ya está pasando por su dirección de correo electrónico validada porque has agregado
validación de correo electrónico . Verificación de correo electrónico. Eso también se puede hacer. Ah, puedes extender todo el servicio permitiendo que las personas cambien sus correos electrónicos, cambien sus contraseñas una vez o más. Pueden inscribirse con el apellido de pila. Pueden amistarse entre sí. Se puede crear otra tabla aquí solo se llama amigos, y todo lo que es usuario uno y usuario a Eso es todo lo que es tan como podría ser el usuario uno en esta columna acostumbrado en esta columna. Y básicamente, si el usuario uno eres tú o usuario a es tu amigo y ustedes están en la misma fila que tus amigos, eso es realmente todo lo que es la mesa de amigos. Ah, y entonces puedes unir esas mesas juntas usando el usuario I d. Y puedes conseguir como nombres y todas esas cosas también. Jean crear amigable. Se puede crear una fuente de noticias, crear otra tabla llamada noticias. Ah, y entonces puedes crear autores. Blawg publica todo lo que tienes que hacer por los autores. Ponga al usuario yo d ahi Ahora eso es lo que viene de la sesión, el usuario de sesión i d. Y ese va a ser tu autor para que si tienes un blawg llamado aprendiendo a hacer tu propio sistema de inicio de sesión PHP desde cero o algo así. Ah, y el autor es usuario me d uno y ellos cambian su dirección de correo electrónico. Bueno, tampoco
tienes que ir a cambiar ese blawg. Simplemente puedes cambiar esta pequeña sección aquí dentro, y cambiará todo lo demás en el sistema para ti? Bueno, en realidad, técnicamente, no sólo cambia realmente aquí, sino que parece que el resto del sistema cambia. En base a este punto de datos, es bastante genial. Entonces aquí hay un par de ideas. Feed de noticias alimentación de amigos. Ah, cambiar cambio de correo electrónico. Restablecer contraseña. Contraseña. Ah, tal vez quieras invitar a un amigo. ¿ Verdad? Por lo que en un módulo de invitación donde ponen en correo electrónico, dirección automáticamente va y envía un correo electrónico a alguien, puedes almacenar ese correo electrónico también para que puedas ver quién ha estado invitando a quién. Y si quisieras, podrías envolver otra función alrededor de eso y, ya
sabes, cada como, tres o cuatro días podrías meter a alguien y simplemente enviarle un poco, ¿sabes? Oye, ya
sabes, tu mejor amigo te ha invitado al servicio, pero aún no has aceptado. A lo mejor deberías hacer clic en este gran botón verde excepto en un nombre de pila al apellido. Agregar confirmación por correo electrónico en confirmación por SMS. El twilio. Podrías hacer todo tipo de cosas. Por lo que aquí hay algunas ideas para especie de llevar adelante esta idea. Si te quedas atascado. ¿ Recuerdas grupo de Facebook? Ven y pregunta. Algunas preguntas fueron felices de ayudar a estas preguntas aéreas. A mí me gusta contestar porque estos se estaban volviendo un poco más complejos. Esto realmente va de principiante a un poco más intermedio a algún lugar del área más senior. Aprender cómo una aplicación más grande realmente puede comenzar a formarse a partir de algo tan pequeño como un sistema de inicio de sesión. Aparte de eso, quiero decir, verdad, Sólo ve a ensuciarte las manos. Rompiéndola. Es decir, si lo rompes, sólo vuelve a la guitarra. Brembo, que es get up dot com slash Caleb m slash italiano PHP log in system. Tienes todo el código ahí mismo. También puedes descargar todo el código dependiendo del servicio en el que estés viendo esto. Ah, pero si es como Art Montes o tú para mí, puedes descargar todo el código también. Pero en realidad, en mi opinión, solo ponte esto en marcha, consigue todo este sistema que hemos construido para ponerlo en marcha. Escoge uno de estos y va a ello. Va a ser difícil porque no sabes exactamente a dónde ir, y eso está bien. Eso es parte de la curva de aprendizaje. Y parte de esa curva de aprendizaje es lo que te va a hacer absolutamente genial. Entonces, adelante. Escoge uno de estos se pone en marcha. Y por favor, Cuando termines, ven a compartirlo con el grupo. Ven a compartir con los casi 2000 desarrolladores que tengo mi arena grupal de Facebook. Estamos más que contentos de apoyarte. Ah, con tus preguntas con cualquier idea que pudieras tener Si te quedas atascado, haznos saber que ya estamos aquí para ayudar. Yo estoy fuera. Gracias por acompañarme en este curso. Esto ha sido una explosión y los veré ojalá en otro curso. Salud.