Transcription
1. Les formulaires sont l'Internet: Hé, John Morris. Ici, John Morris en ligne dot com. Cette leçon. Je veux juste vous donner une idée de la raison pour laquelle je pense que cet ensemble de compétences est si important et pourquoi je pense que juste apprendre cette seule chose peut dire qu'il peut vraiment vous libérer de
faire des choses étonnantes quand il s'agit de Web conçu et de développement Web. Maintenant, je sais que les gens tournent les yeux sur ça, mais je veux faire, c'est juste te montrer quelques choses différentes. Donc, par
exemple, prenons un site comme Facebook. Je quoi ? La principale chose que vous faites ici est les statuts de poste et a répondu aux statuts, Il pourrait être sur votre propre ligne de temps. Ça pourrait être sur les affaires des autres. Il pourrait être en groupe à la fin de la journée. Ce que vous faites, c'est que vous publiez des données dans une boîte. C' est ici une forme donc finalement, le noyau autour de ce qu'un site comme celui-ci est construit est des formes. Si vous vous dirigez à nouveau sur Twitter, la principale chose que vous faites ici poster dans un formulaire lorsque vous étiez une réponse à des
messages d'autres personnes votre affichage dans un formulaire lorsque vous téléchargez une vidéo sur YouTube. Je faisais glisser une vidéo ici, et ensuite j'aurais un formulaire entier que je devais remplir. Si vous voulez continuer à impliquer pour des emplois. C' est un formulaire que je dois remplir ici. Même Google, le moteur de recherche, est un formulaire que vous devez remplir. Donc, le point est que la construction de la forme et la compréhension de ce fondamental de base que vous prenez toutes les
choses que les gens aiment parler à tous les trucs de fantaisie Ajax et nous voulons faire note. Et nous voulons faire toutes ces choses. À la fin de la journée, la chose très fondamentale que vous devez faire qui fonctionne tout ce truc est les formes. Vous remplissez des formulaires, et donc être capable de faire ce genre de choses est juste ça. C' est cette compétence fondamentale qui vous permettra de faire ce que vous voulez. Maintenant, évidemment, il y a beaucoup plus de complexité que beaucoup de choses je veux dire, Google a toutes sortes d'algorithmes derrière elle. Facebook, etc. Mais à la fin de la journée, l'interaction qu'ils ont avec l'utilisateur final se fait par le biais d'un formulaire. Donc, savoir comment le faire est une compétence fondamentale, fondamentale et
critique que lorsque vous l'apprenez, vous pouvez en faire ce que vous voulez. Vous pouvez faire toutes sortes de façons différentes et encore une fois, comme je l'ai dit, ça vous ouvre pour être en mesure de construire des choses étonnantes sur Internet. Donc, je veux enseigner que les compétences fondamentales vont vous apprendre à le faire avec HTML, ma suite et PHP et je veux en quelque sorte que je veux m'assurer que je suis clair que ce n'est pas
l'un de ceux sur l'autre. Donc, par
exemple, dans le cours, je vais vous apprendre quelques-uns des nouveaux trucs et html 5 que vous pouvez utiliser pour certains champs obligatoires de
validation de base , en utilisant des champs e-mail et toutes ces sortes de choses qui vous permettra d'exploiter la puissance de la maison H, enseigner deux mille cinq et ce qui est nouveau dans cela pour vous aider avec votre forme. Donc, il y a certainement une forte concentration sur la partie HTML de celui-ci, mais nous allons aussi aller dans la partie ma suite de celui-ci,
et parler de, vous savez, vous savez, construction de votre base de données et les différents types de données et comment vous montrer comment créer. Ah, votre première base de données. Si tu n'as pas fait ça dans toutes ces sortes de choses, on va y aller. Et puis, bien
sûr, il y a le code PHP entre les deux, et nous allons aller lourd là-dedans. Parlez-en de sécuriser vos formulaires, hum, en
faisant avec des choses PHP intégrées principalement, mais aussi en vous montrant quelques options que vous avez. Si vous voulez sortir de cela, vous certains trucs tiers désinfection de validation empêchant l'injection SQL, empêchant les attaques de script intersite. Toutes ces choses allaient entrer dans ce cours. Donc, si vous voulez apprendre cette compétence fondamentale ah, vous voulez apprendre comment prendre des données à partir d'un formulaire, mettre dans une base de données et ensuite être capable de récupérer ces données hors de la
base de données et de le faire dans un très concis, spécifique, façon
précise que je vous encourage à plonger dans ce cours sur le tacle tête sur. Donc c'est un peu sur le cours d'un peu sur ce que nous allons entrer, alors cela dit, plongons dedans.
2. Comment créer une forme simple: Hé là, John Morrissey, John Morse dot com en ligne. Cette leçon que nous allons à ceci est une sorte d'un simple tutoriel de formulaire. Maintenant, il y a encore un peu qui se passe ici, mais ce que je veux vous montrer ici est la connexion de base de votre formulaire HTML à votre script de
traitement PHP et finalement dans votre base de données ma suite. Comment ces 33 choses se connectent. Donc c'est ce que nous allons traverser ici très vite. Avant que tu ne t'en mêles, je veux juste que les orteils obtiennent quelques trucs pour qu'on ne s'enlise avec ça. Donc ici, abord de notre structure, j'ai trois dossiers. J' ai un conflit avec PHP, que nous allons obtenir dans une minute. Avoir un simple point PHP, qui est celui que vous regardez maintenant, a la plupart du code, le formulaire et le script de traitement dans tout cela. Ensuite, j'ai ce style que CSS point de style CSS est joli, juste CSS de base. Je ne vais pas passer par tout cela parce que je veux vraiment me concentrer sur les parties PHP de cela, mais c'est ce genre de donne cela C'est un peu du regard ici, donc je ne voulais pas que ce soit juste une sorte de forme simple. Mais c'est juste un style très, très basique ici, accord ? Et donc Ah, tu sais, comme je l'
ai dit, je ne vais plus couvrir ça après ce point. D' accord ? Donc, euh, la première chose que je veux vraiment passer ici est que je veux genre je veux couvrir le formulaire très rapidement, et ensuite je veux sauter dans la base de données et vous montrer comment créer la base de données que nous sommes va soumettre ça dans. Et puis ça nous donnera une sorte d'où nous commençons par le formulaire où nous finissons par
la base de données. Et puis nous pouvons parler principalement du code entre les deux. Ok, donc si on arrive à la forme Ah, juste ignorer tout ça ici une seconde. En commençant ici par cette déclaration de type doc, j'ai un type standard de page HTML que vous auriez ici avec une balise HTML à l'avance, balise body. Je mets le jeu de caractères. C' est pour la réactivité mobile ici. Um, je fais un lien dans ma feuille de style juste ici. J' ai mon titre ici. Donc cette zone de tête, rien de vraiment spécial à ce sujet. C' est tout à peu près standard H deux plus de choses. Vous voyez, j'ai ce genre de livre PHP bloc ici. On y arrivera dans une seconde. Je ne veux pas encore y aller parce que cela n'a pas vraiment de sens jusqu'à ce que nous soyons dans la partie
code de ceci. Donc la grande chose sur laquelle je veux me concentrer en ce moment est ce formulaire. Donc c'est la forme réelle que nous voyons ici à droite. Donc, quand nous écrivons notre balise de formulaire, il y a quelques choses que nous devons spécifier au minimum. Nous devons donc spécifier l'action. Et l'action est essentiellement là où nous voulons envoyer les données qui seront soumises par le formulaire. Donc, dans ce cas, nous l'avons laissé vide. Et ce que cela signifie, c'est que ces données de formulaire qui sont soumises vont en fait être renvoyées directement sur cette même page. Donc, c'est ce qui serait un formulaire appelé auto-soumission. Et c'est pourquoi notre code PHP qui le traite est juste ici sur la même page. Maintenant, si vous le
vouliez, vous pourriez mettre quelque chose comme, disons, processus PHP point ici. Et puis vous pourriez venir ici et vous pourriez créer un nouveau fichier appelé processus point PHP. Et vous pourriez prendre tout ce code et le mettre là-bas si vous le vouliez. Euh un. Je voulais garder tout le genre de code au même endroit, donc on rebondissait entre une tonne de fichiers. Être beaucoup de fois. Un formulaire d'auto-soumission comme celui-ci est parfaitement parfait pour ce dont vous avez besoin, donc Ah, j'ai juste décidé de le faire comme ça. n'y a pas forcément Ah, vous savez, il n'y a pas forcément une bonne façon de le faire, mais c'est juste ce que j'ai décidé de faire ici. Suivant est la méthode, et elle est définie sur post. Maintenant, il y en a. Les deux principales options que vous pouvez mettre ici sont soit poste ou obtenir, et vous pouvez ou ne pas être familier avec ceux-ci. Essentiellement, la différence est si vous soumettez des données via get Donc si nous devions nous changer pour obtenir comme ceci, ce que cela ferait est quand pour Miss soumis toutes ces données seraient ajoutées à l'U. R L comme requête et c'est là que vous tiriez réellement les données avec et la plupart du temps, la seule fois que vous
le faites vraiment avec un type de formulaires standard est avec un formulaire de recherche et que la raison pour laquelle vous le faites avec le formulaire de recherche est parce que si vous veulent un lien vers certaines recherches que tout ce que vous devez faire est d'avoir, plus vite vous pouvez exécuter la recherche, saisir le paramètre de requête. Vous pouvez effectivement lier directement à cette recherche sans avoir à soumettre le formulaire pour effectuer la recherche. Quand nous avons un formulaire comme celui-ci où nous finissons, vous savez, un nom et un e-mail, c'est une sorte de données sensibles. Généralement, nous ne voulons pas mettre cela dans l'URL. Donc, la plupart des formulaires que vous allez avoir vont utiliser cette méthode post. Je dirais que je suis par défaut à utiliser post à moins que vous sachiez à coup sûr avoir une
raison impérieuse pour laquelle vous avez besoin de ces données. Ah, dans l'URL apparaît après cela, j'ai une sorte de code HTML standard ici d'envelopper chacun de ces champs dans Ah Div. Avec une classe de champ de formulaire, c'est juste une sorte de style d'aide un peu. Tu n'as certainement pas à faire ça si tu veux. Ce n'est pas nécessaire. Super important. Ici vous pouvez voir chacune des entrées, puis le bouton sont tous à l'intérieur d'un de ces Ah , former des dibs de champ. La chose principale ici est ces types d'entrée. Donc, nous faisons une balise d'entrée. Nous définissons le 1er 1 à un type de texte parce que c'est notre nom. Et donc nous voulons juste du texte de chaîne de texte là. Ah, nous gardons la classe pour envoyer des textos. Donc c'était pour que nous puissions cibler avec notre CSS. Alors. La grande chose ici est que nous définissons que le nom de cette entrée à nom. Ok, donc Ah, vous pourriez que vous pourriez avoir été trop confus. Vous faites le nom complet. Vous pouvez faire le prénom ce que vous voulez que le nom de ceci soit quand vous allez le traiter dans
le code. C' est ce que tu dirais ici. Ah, l'espace réservé. Voilà ce qui met cette fin de ton nom ici. Donc, euh, c'est ce que fait l'espace réservé. C' est une sorte de nouveau genre de chose de cinq types html Et puis nous avons cette balise ici appelée obligatoire, qui signifie que HTML verra le navigateur verra ce champ comme requis. Et donc si nous essayons réellement de soumettre ce formulaire sans aucune donnée, dira, S'il vous plaît remplir ce champ. C' est donc un moyen facile d'avoir une validation d'entrée vraiment basique là. Mais encore une fois, la grande chose à nos fins de code est que le nom de ceci est défini sur name, et nous avons un autre champ d'entrée. Le type est défini sur Email. Alors quoi ? En définissant le type Tomo, ce que cela va faire, c'est qu'il va réellement nous fournir un peu de validation. Donc si nous essayons de faire
JJ J. Et nous n'avons pas de signe ici, accord, et nous essayons de soumettre ce formulaire, ça va dire s'il vous plaît inclure ce site dans l'adresse email, et donc ça va recommencer. Effectuez une validation de base par e-mail maintenant. Ce n'est pas infaillible. Par exemple, vous pourriez faire J J J à BBB, et cela me permettrait de soumettre ce formulaire. Ok, donc encore une fois, c'est juste un vrai basique. Mais, vous savez, nous utilisons à nouveau tout ce qui est à notre disposition. ici. Nous avons un peu cet ensemble à la classe de texte à nouveau. Nous avons l'espace réservé ici, mais le nom de celui-ci est maintenant email. Ok, alors et ensuite on a notre bouton ici. J' ai dit un bouton avec un type de bouton de classe afin que nous puissions cibler des instances assez droites pour cela. Ok, donc c'est la forme, les choses principales encore, comme je l'ai dit ou ce nom sont les éléments de nom ici. Ces air quoi ? On va voir notre code, et je te montrerai où ? Ici. Ah, dans une seconde. D' accord. Donc, en fait, laisse-moi aller de l'avant et faire ça ici. Donc je vais faire imprimer sont. Et je veux vous montrer comment ces données sont soumises, imprimées ou postées, et ensuite nous allons quitter. Juste après ça, on va imprimer ce qu'il y a dans ce bloc, et ensuite on va tuer le script pour voir ce qu'il y a dedans. Donc je vais taper mon nom et mon adresse e-mail Justin ici. Je suis touché. Soumettre des feuillets. Anita, les empreintes sont,
euh, d'accord. Eh bien, rechargez ça. Et alors quoi ? Ça le fait. Donc, je veux essayer de m'assurer que c'est clair. Si vous n'êtes pas familier avec cela, chaque fois que vous créez un formulaire comme celui-ci,
ceci un formulaire Peter et HTML comme celui-ci et vous mettez la méthode de poster ce que cela
va réellement faire lorsque vous soumettez le formulaire. Lorsque vous soumettez le bouton pour le formulaire, il va prendre les données qui étaient dans chacun de ces champs d'entrée, et il va le mettre dans ce qu'on appelle un super global. Et un super global est essentiellement, euh, c'est une variable qui, en PHP, est disponible partout, non ? Donc c'est un global et c'est un super global, donc c'est juste qu'il est disponible. En gros, partout où vous n'avez pas d'
orteil, il n'y a rien à faire. C' est juste comme par magie, d' accord ? Et ah, alors c'est ce que quand je fais cette empreinte, c'est ce que c'est. Ok, maintenant, si vous aviez utilisé la méthode get et étudier en utilisant post comme ça, vous utiliseriez l'impression sont bien, et il y a d'autres super globales qui sont là-bas. Mais ce sont les deux lorsque vous travaillez avec formé de votre principalement va travailler avec , et donc toutes nos données qui ont soumis dans le formulaire. Peu importe le nombre d'entrées que nous avions, nous pourrions ajouter 100 entrées supplémentaires ici. Tous vont finir dans ce post super global. Et ce super global est, comme vous pouvez le voir ici, un tableau. Et il y a notre nom et notre email de notre formulaire. Ok, donc c'est pourquoi cette partie de nom ici est importante, parce que c'est ce qui va être la clé pour chaque élément de notre tableau. Si nous changeons ceci en nom complet, ce serait maintenant le nom complet ici. Ok, donc ces air comment nous allons référencer ce qui a été soumis dans le formulaire tout au
long de notre cas de code. C' est important, trop orteil pour garder à l'esprit pendant que nous traversons ça. Ok, donc maintenant je ne vais pas entrer dans tout ce code encore parce que je veux aller de l'autre côté
et montrer seulement le site de base de données parce qu'en fin de compte, c'est là
que les données vont aller. Donc pour moi, je vais passer à PHP mon administrateur maintenant, en fonction de l'environnement dans lequel vous êtes, peut-être sur un hôte local d'espoir comme le serveur Wamp ou, hum Ah, Zamfir. Quelque chose d'autre comme ça, ils ont généralement PHP mon administrateur disponible avec ça ? Ah, beaucoup de fois tu vas juste voir si tu y accède. Hôte local, vous iriez à un hôte local slash PHP, mon administrateur. Donc c'est pour moi. C' est ce que je fais. Je viens que j'ai Ah, vous êtes l pour le mien parce que c'est un nuage je d. Et je vais à PHP mon administrateur et et c'est ce que je reçois pour votre sur ah sorte d'un
serveur Web régulier , alors vous devrez peut-être aller voir le panneau et voir le panneau . Il y a généralement vous pouvez faire défiler vers le bas et vous trouverez un lien là-bas qui dit, PHP mon administrateur. Cela vous permettra en quelque sorte d'aller dans vos différentes bases de données et vous verrez quelque chose de similaire à ceci. Tout dépend de la version de ce qu'ils ont installé et de tout ce genre de chose, donc peut ne pas ressembler exactement à ceci, mais il devrait être joli quelqu'un. Ce sera assez proche pour que nous puissions fonctionner ici sur une page similaire, donc je n'ai pas encore la base de données créée, donc je vais vraiment vous montrer comment créer la base de données. Donc c'est la première chose que nous allons vouloir faire ici,
ah, ah, c'est de créer une base de données. Donc ce qu'on va faire ici, c'est que tu peux voir que je suis ici. J' ai toutes ces options ici termes une fenêtre de requête, toutes ces sortes de choses. Si nous le voulions, nous pourrions cliquer dans une de nos bases de données ici. On dirait que j'ai été déconnecté. Faire de l'activité Teoh. Quelqu' un se reconnecte et encore. Il y a donc toutes sortes d'options ici. La chose que nous recherchons ici est que les liens de bases de données cliqueront dessus et vous verrez en haut. Nous avons cette base de données de création, donc je vais créer une base de données appelée Forms. D' accord. Et si vous connaissez le classement ici, vous avez quelque chose de spécifique que vous voulez utiliser. Vous pouvez certainement le faire. Um, je pense qu'à partir de ça, j'hésite à vous dire quelque chose de spécifique, parce que ce genre de a tendance à changer un montant décent. Donc, vous aurez probablement besoin de sortir de la recherche en fonction de l'heure à laquelle vous regardez ce tutoriel. Je pense que le recommandé en ce moment est utf un et avant soulignement été donc nous allons juste aller avant et l'utiliser ici. Nous pouvons simplement faire une recherche Google rapide pour le type de classement de base de données standard et voir ce qui semble être la saveur de la journée pour cette période de temps particulière. Mais de toute façon, ou tu pourrais juste le laisser en blanc et le laisser choisir le sien. Mais nous allons frapper, créer ici. Et maintenant, il a créé cette base de données et vous pouvez voir que cette base de données est là, donc nous allons aller de l'avant et cliquer dessus. Et maintenant, ce que nous devons faire est de créer une table dans laquelle nous allons soumettre ces données. Donc nous allons créer une table appelée utilisateurs et le nombre de colonnes que nous allons définir à trois. Et je vais te montrer pourquoi ici dans une seconde. Donc, les utilisateurs Colonnes trois et va appuyer sur Go. Ok, donc nous savons que nous avons notre nom et notre email des données que nous allons soumettre dans cette base de données. Donc, ce n'est que deux colonnes. Pourquoi avons-nous besoin de trois ? Quoi ? On va créer ce qu'on appelle une colonne I. D. Donc on va donner à cette 1ère 1 le nom de I D, et je vais laisser ce set à la table. Um, je vais mettre ça à 20 et ah, on va aller à la clé primaire et pas non,
pas de valeur par défaut. Et ça devrait être bon là-bas. Donc ce qu'on fait ici Oh, façon. Besoin de définir l'incrément automatique. C' est crucial ici. Ok, cette IA est automatique Inker peut avoir besoin de s'assurer que c'est vérifié. Donc fondamentalement, ce que cela va faire est à chaque fois que ceci pour Miss soumis, il va créer un nouvel enregistrement dans notre base de données et nous allons jeter un oeil à ce que cela
ressemble ici dans une seconde. Mais nous voulons être en mesure d'indexer numériquement ces droits ? Si vous pensez à une feuille de calcul Excel lorsque vous êtes dans la feuille de calcul, vous avez des chiffres sur le côté gauche. C' est un 1234 et vous avez des nombres à travers le haut qui disent un B C D. Eh bien, par défaut, une base de données comme celle-ci n'a pas ces nombres le long de ce côté gauche. Donc, si vous voulez ceux-là et vous à peu près n'importe quelle application, vous allez vouloir ceux dont vous avez besoin pour créer réellement cela. Et c'est ce que ce champ I D est maintenant. Lorsque vous mettez cet ah, incrément
automatique, ce que cela signifie, c'est que vous n'avez pas à mettre manuellement les chiffres là-dedans, donc vous n'avez pas à spécifier l'un, les deux, les trois. Ce qu'il va faire, c'est quand le premier enregistrement sera soumis, ça donnera automatiquement que le numéro un le prochain enregistrement
lui donnera automatiquement le numéro deux. C' est donc ce que signifie l'auto-incréments. Il va à des incréments automatiques. Comme chaque enregistrement yeux ajouté, Il va également utiliser cela comme un premier, la clé primaire. Donc, c'est essentiellement dire, Ah, ma suite, que c'est la clé primaire de cette base de données que nous allons utiliser pour quatre King. Essentiellement, ajouter ces nombres I d est ce que c'est. Donc pour King, cette table. Ah, et ça doit être unique et tout ce genre de choses. C' est ce que cette colonne est. Ensuite, Ensuite, c'est ceux que vous penseriez en quelque sorte standard. Donc nous allons avoir un nom et nous allons maintenant vous pouvez aller et venir ici si vous voulez avoir quelque chose qui a,
vous savez, vous savez, peut-être que c'est une boîte de commentaires. Ou peut-être que vous créez un CMS et vous allez mettre Ah, ça va être votre boîte de contenu. Tu ferais quelque chose de plus grand, comme des textos. Ou peut-être que vous pourriez aller ici à un long texte, en fonction de la quantité de données que vous pensez qu'il va y être mis. Tu décides en quelque sorte. Et il y a toutes sortes d'informations sur la façon de décider ça. Comment quoi ? L' un est l'air, non ? Pour quel scénario ? Ah, encore une fois, je veux essayer de garder ça simple, donc je veux entrer là-dessus. Mais ici, on va utiliser var char, et on va juste en aller 20 parce que le nom va être, tu sais, ça va être juste. La plupart des noms vont être assez courts, donc on n'a pas les orteils. En fait, on va à 40 ans parce que ça devrait être plein pour ce dont on a besoin ici. Et puis on va aller avec un email et on va aller avec 2 55 ce qui est un
truc standard pour ah, en utilisant des emails, on va refaire var char. Jusqu' à présent, charge signifie juste que c'est une variable. Les personnages qui pourraient avoir, vous savez, cinq caractères dedans, il pourrait en avoir 20, c'est quelque chose qui est une variable. Et la façon dont il se sent affecte en quelque sorte la façon dont il remplit les données dans la base de données . Donc, vous ne prenez pas autant de place aide à la performance un peu. C' est l'idée de base ici. Ce n'est pas quelque chose dans lequel on s'emballe trop pour ça. Je voudrais juste m'en tenir à cela ici et ensuite nous n'avons pas besoin de mettre quoi que ce soit d'
autre pour que nous puissions aller de l'avant et frapper sauver ici et maintenant ça va créer ça. Si nous allons à la structure, nous avons maintenant notre champ I. D. Nous avons notre sentiment de nom et nous avons notre champ de courriel. Nous avons donc maintenant notre structure dans laquelle nous pouvons soumettre nos données. Donc nous avons notre formulaire qui a le qui va réellement collecter les données nous avons maintenant notre espace de
stockage dans lequel nous allons stocker ces données en sorte de sont sont. Si vous voulez utiliser l'analogie d'une feuille de calcul, nous avons la feuille de calcul. Nous allons stocker les données maintenant. On doit se connecter aux deux ensemble. Donc, lorsque le formulaire est soumis, il le soumet en fait à cette table et cette base de données. C' est donc ce que fait le code PHP dont nous allons parler. Et nous devons faire tomber ces choses. Cela aurait dit. Il y a quelques choses que nous devons examiner ici. La première chose, c'est que nous devons entrer dans notre dossier de conflit. J' aime mettre ça dans un dossier de conflit, et on doit le faire. Nous devons spécifier quelques choses ici pour accéder à notre base de données, donc la première chose que nous devons spécifier est le nom de la base de données. Alors rappelez-vous, nous avons créé la base de données. C' est appelé formulaires, et nous allons donc spécifier que le nom de cette base de données. Ensuite, nous avons besoin de l'utilisateur. Donc, dans ce cas, j'utilise simplement le compte racine parce que je suis dans un environnement de test, et donc le nom d'utilisateur dans les mots de passe ou l'utilisateur et passer ici. C' est impoli, et c'est un mot de passe vide. Maintenant, c'est par défaut, je dirais, si vous utilisez quelque chose comme l'exemple de William Server. Ça fait un moment que je n'ai pas de vous. Mais mon souvenir est que c'est assez standard pour les environnements de test qui va être route, puis un mot de passe vide. Il se peut que vous ayez juste besoin de vérifier avec celui que vous utilisez. C' est peut-être un peu différent. Donc, vous venez de vérifier et de voir, euh, mais quand il s'agit de serveurs de production réels, la
plupart du temps, vous aurez un assistant où vous créez réellement la base de données à travers le panneau
Voir. Et quand vous créez la base de données va vous demander de définir un nom d'utilisateur et un mot de passe, et donc vous allez les avoir. Assurez-vous juste de les copier quelque part. Donc vous avez ceux à votre disposition, mais l'air que vous mettrez ici pour l'hôte le plus configuré sera l'
hôte local . J' ai vu, je pense, aller, papa, où vous devez spécifier quelque chose d'un peu différent. Donc, si vous essayez l'hôte local et que vous obtenez une sorte d'air sur ce qui concerne l' hôte, alors vous pouvez aller à votre documentation pour votre serveur Web et voir s'il y a autre chose que vous devez spécifier ou contacter votre support là pour voir s'il y a autre chose que vous devez spécifier ici. Mais je dirais que la plupart d'entre eux, ce sera l'hôte local. Bon, donc nous mettons tout ça dans ce dossier de conflit, donc nous n'avons pas à le redéfinir constamment. On les définit comme Constance, ce qui veut dire qu'ils sont basiques. La façon de le dire est leur genre mondialement disponible. Ils seront disponibles à l'intérieur et à l'extérieur des fonctions par défaut. Nous n'avons pas de fonctions dans la version simple, mais ah, au cas où nous l'aurions fait, c'est juste une pratique standard de les mettre dans le fichier de conflit. Droit ? Donc je vais fermer ça parce qu'on ne l'utilisera plus. Vous pouvez voir que nous faisons un besoin une fois ici pour exiger ce fichier de conflit dans notre fichier PHP
point simple dit que c'est essentiellement apporter les données du fichier de conflit. Donc maintenant qu'on peut Accel évaluer ces constantes ici, accord, donc c'est mis en place. Vous pouvez voir ici. C' est en fait notre code d'insertion juste ici. Donc, vous pouvez voir que c'est vraiment assez simple. n'y a pas une tonne à ça. Donc la première chose que nous allons faire est que nous allons voir si ce post super global a des données dedans. Et la raison pour laquelle nous voulons le faire est parce que si nous allons à ce formulaire et qu'aucune donnée n'a été soumise, donc quand quelqu'un arrive d'abord sur le formulaire, nous ne voulons rien faire parce qu'il n'y a pas de données à utiliser. Et donc nous vérifions juste pour voir si ce post super global est vide. Si ce n'est pas vide. C' est ce que signifie ce point d'exclamation avant vide. Donc pas vide. Alors c'est qu'on le fera quand on fera le reste de ces trucs ici. Ok, donc on va se débarrasser de ça ici une seconde, et on va sauver ça. Et donc la première chose qu'on va faire, c'est de faire un lien avec ma suite. Donc on va mettre en place huit une nouvelle instance de ma vie. Donc c'est une sorte de l'extension construite dans mon école pour ah, pour PHP. Et bien sûr, vous pouvez utiliser PDO ici. Si vous êtes familier avec ça, vous pouvez certainement le faire. Et tu peux échanger ça ici. Et je vais juste essayer d'aller avec une sorte de norme Quoi ? Qu' est-ce qui est ici et disponible ? Um, à l'intérieur d'un PHP, bien qu'à nouveau, PDO est ces jours-ci. Mais en tout cas, nous allons lui présenter une nouvelle instance de mon école. Je vais ouvrir une connexion à notre base de données ou à ma suite, puis sélectionner notre base de données pour que nous puissions commencer à travailler avec. Donc, nous passons dans l'hôte de base de données, qui, rappelez-vous, était hôte local. Nous avons transmis notre nom d'utilisateur, dont je me souviens de notre conflit. Le profil était la route. Notre mot de passe était vide. Et puis le nom de notre base de données, qui était des formulaires et ce que cela fait est crée fondamentalement une connexion à notre base de données sur laquelle nous pouvons maintenant commencer à exécuter des requêtes. Ok, Maintenant, nous devons le faire d'abord, parce que je vais utiliser cette méthode qui est disponible pour mon SQL. J' ai appelé la vraie chaîne d'échappement. Hum, et tu dois avoir le lien de ma suite avant de pouvoir faire ça. OK, donc c'est pour ça qu'on doit le faire d'abord. Donc ce qu'on va faire, c'est qu'on va faire une carte de la pluie. Donc essentiellement, ce qu'une carte de rayon fait est qu'elle va, elle passe par un tableau, et elle dit chaque élément de ce tableau à une fonction de rappel que vous spécifiez. Donc, ce que nous transmettons pour un tableau est notre tableau post. Rappelez-vous, nous avions notre tableau qui contient toutes les informations de notre formulaire. Donc on est Pat. C' est le tableau que nous allons traverser. Et la fonction à laquelle nous allons l'envoyer est en fait une méthode de classe. Et donc quand vous faites une méthode de classe au lieu de simplement mettre le nom de la fonction ici Ah, vous mettez un rayon et vous passez dans l'objet. Ah, variable. Ici. Donc ma suite, c'est
ce que nous avons connecté et nous passons, puis la méthode principale. Donc essentiellement ce que cette carte de tableau va faire va prendre chaque élément de notre tableau post super global, et il va l'exécuter à travers cette, ma suite, vraie méthode de chaîne d'échappement. Maintenant, ce que cette méthode fait est essentiellement échappe aux données. Donc c'est juste une sorte de chose de sécurité de base que nous faisons ici, et ensuite ça prend cette fuite. Il prend que les données d'échappement le remettent dans le tableau, et il est enregistré comme cette variable de données et vous verrez d'ici sur ces données, les variables vont être une sorte de ce que nous travaillons. C' est donc un contrôle de sécurité
vraiment, vraiment basique ici. Maintenant, je veux vous mettre en garde ici. C' est le minimum absolu. Et vraiment, la seule raison pour laquelle j'ai même fait ça est parce que je ne voulais pas vous donner du code qui n'avait pas au moins le strict minimum en termes de sécurité. Mais ce n'est pas une sécurité suffisante pour vraiment l'utiliser en production. Ok, je vais parler de sécurité dans la prochaine leçon. On va aller sur la façon de sécuriser ça, mais j'ai débattu entre Ah, en mettant ça. Ils ne mettent pas ça là-dedans. Et j'ai décidé d'y mettre parce que je ne voulais pas te donner quelque chose qui n'avait pas au moins minimum. Mais cela ne suffit pas. J' essaie de me concentrer sur le lien avec ma suite et tout ce genre de choses. Donc j'essaie de ne pas devenir lourd et lourd insécurité ici. Donc ce que je veux te mettre en garde, c'est de penser que je suis bon pour la sécurité. Je suis en sécurité maintenant. Oui, ça va échapper aux données et ça ira probablement. Mais il y a des mises en garde, et il y a des Ah, nous ne faisons pas tout exactement exactement ici, donc Ah, je veux juste m'assurer que c'est clair. D' accord. Donc, hors du chemin, alors la prochaine chose qu'on va faire, c'est qu'on va faire un extrait sur nos données. Donc essentiellement, ce que cela fait est d'extraire prend les éléments de notre tableau et il les transforme en variables. Et donc il faut et il utilise parce que c'est un tableau associatif. Laisse-moi juste aller de l'avant et imprimer ce Ah, tableau de retour. Puisque nous en parlons tellement,
alors et puis sortez. Allons de l'avant et soumettons à nouveau ce formulaire afin que nous puissions voir les données
avec lesquelles nous travaillons ici. Donc Smit ça Ok, donc nous avons un rayon associatif signifie paires de valeur de clé nommées. Donc, c'est la clé, et puis c'est la valeur de cet élément, et c'est le premier élément du tableau. Et puis nous avons une clé et une valeur pour cet élément ici. Donc, ce que fait extrait est essentiellement prend ces données et il crée une variable appelée nom dont la valeur est définie sur John Morris. Donc, ce serait essentiellement la même chose que de dire Nom est égal à John Morris. D' accord. Il crée une variable avec le nom de la clé et la valeur définie sur ce qui est dans la valeur ici. Ok, donc on fait ça parce qu'on a un tableau. Nous le faisons juste sans avoir à spécifier chaque élément Ah, avec
lequel nous voulons travailler ici. Ok, Donc, essentiellement, après avoir exécuté l'extrait, ce que nous avons c'est que nous avons une variable appelée nom et une variable appelée email, et ils sont définis sur ces données de ce tableau. Euh ah. Euh, en conséquence. Donc, maintenant, nous pouvons réellement utiliser ces données. Nous devons le faire à cause de la façon dont nous transmettons les données ici. Um, nous utilisant la rue Data du tableau ne fonctionnerait pas la route étaient très bien. Ce sera moins important quand on entrera dans la prochaine partie où on parlera sécuriser. Mais maintenant, nous pouvons mettre en place notre requête. Donc, pour insérer des données dans une base de données, nous utilisons l'insert dans le nom de notre table, qui se souviennent, était les utilisateurs, puis les colonnes que nous avons gagné t soumettre les données dans. Alors rappelez-vous, dans notre base de données, nous avons une colonne. On a la
colonne
I.D. I.D. . Colonne de nom dans la colonne de courrier électronique. Maintenant, nous n'avons pas à le faire. Comme je l'ai dit, on n'a pas besoin de spécifier le
I.D. I.D. ça va augmenter automatiquement, donc on ne peut même pas lui soumettre des données, même si on le voulait. Donc, tout ce que nous devons spécifier sont les deux autres colonnes. Donc, la colonne de nom dans l'e-mail. Calme. Donc c'est le calme dans lequel nous allons soumettre des données. Et puis ces valeurs diffusent les valeurs. Et c'est donc la variable nom et email. C' est donc les données que nous avons obtenues de notre formulaire. Donc, nous allons du formulaire à notre tableau post ah de notre tableau post dans notre requête ici. C' est ainsi que nous lions notre formulaire à travers notre froid PHP, fin de compte à notre base de données. Donc, nous faisons correspondre les colonnes avec les données de notre formulaire. C' est ce qui est finalement ce nom de variable est des données soumises à partir de notre formulaire. Cet email variable est des données soumises à partir de notre formulaire, donc il est transmis d'une chose à l'autre. Ok, et ceux-ci sont dans l'ordre, donc si je devais changer cela et dire le nom de l'e-mail, le code PHP ne connaît pas de différence. Il soumettrait le nom de la variable nom dans la colonne e-mail. Ok, donc c'est stupide en ce sens. Donc, vous devez vous assurer que ces air dans le même ordre que les uns les autres, Donc nom, Nom, e-mail, nom, e-mail. Droit. Donc maintenant, une fois que nous avons toute cette requête configurée, alors et laissez-moi juste exécuter ce sont les empreintes de Meteo sont sur parce que je pourrais juste l'écho. Mais on va faire ça puisque nous sommes déjà là. Les empreintes sont là. Débarrassez-vous de celui-ci et montrons les espoirs de requête réels. Besoin de soumettre à nouveau les données. Et donc vous pouvez voir insérer dans la table d'un utilisateur le nom et les colonnes e-mail, les valeurs John Morris et les remords sportifs féminins en ligne dot com. Vous avez aussi remarqué ces ah, citations
simples ici. Ils doivent être là aussi. Ok, juste la façon dont ça marche. Tu dois les avoir là. Sinon, la création ne fonctionnera pas. D' accord, donc une fois que nous avons tout ça, alors tout ce que nous avons à faire est d'exécuter notre requête. Donc, nous allons passer notre requête que nous venons de créer ici dans ma suite, méthode de
requête, qui va réellement exécuter la requête, l'
envoyer à ma suite et obtenir une réponse. Donc c'est le vrai tout jusqu'à ce point, vraiment ? Il est en train de mettre en place pour exécuter notre requête. C' est là qu'on le dirige. C' est la ligne 14 juste là ? Ok, donc quand nous faisons cela, essentiellement avec maintenant, la méthode de requête, en fonction de cela, dépend du type d'instruction de requête que vous envoyez. Donc, si vous envoyez une instruction select, vous récupérez des données de la base de données. Et si la requête passe, tu vas récupérer ces données. Et il y en a d'autres où ce que cette méthode de requête retourne sera différent. Mais avec une instruction d'insertion comme celle-ci, cela va simplement retourner true ou false. Ok, donc cette variable d'insertion va être vraie ou elle va être fausse. Ah, et alors on peut l'utiliser. C' est alors ce que nous utilisons ici pour spécifier notre message. D' accord, donc, encore une fois ,
à ce stade, nos données sont soit soumises, soit non, et puis ici, nous allons dire, eh bien, OK, si insert est réglé sur quelque chose, à droite, donc si c'est réglé sur quelque chose, alors nous voulons voir ce qu'il a réglé aussi. Donc, si c'est, ah, nous allons afficher ceci soit un message de réussite et les messages aériens dépendent de ce qu'il a mis Nous avons besoin d'envelopper ceci est défini. Sinon, le reste de ceux-ci vous donnera une erreur de préavis. Donc fondamentalement, run est défini d'abord, puis à l'intérieur de cela, si elle est définie sur true, nous allons exécuter ce message de succès et s'il est réglé sur autre chose que vrai, qui serait faux parce que c'est vrai ou faux que nous allons afficher un message aérien et qu'il y avait un air avec cette présentation. Donc si je vais juste recharger ça, tu peux voir qu'on a ça. Les données ont été insérées avec succès Message de ces données que nous venons de soumettre. Si nous arrivons à notre base de données ici, nous cliquons sur nos utilisateurs. Vous pouvez voir maintenant nous avons notre champ I d. Nous avons notre colonne de nom, notre colonne de courriel, et nous avons nos données soumises dans ou formulaire ici. Donc, il a été soumis avec succès de nouveau, c'est le chemin du formulaire à travers le code PHP finalement dans la base de données. Donc, c'est comment soumettre des données d'un formulaire HTML de fusion H tomo dans une base de données ma suite en utilisant PHP. Je sais que je t'ai probablement jeté beaucoup dessus. Ce que je recommanderais, c'est que tu arrives ici et que tu trouves ça toi-même. Nous pouvons parler de plus de champs et ainsi de suite. Un peu plus tard. Mais entrez ici et gâchez vous-même la configuration de votre base de données. Vous savez, euh, quelque sorte de comprendre le code, passez par là encore si vous avez besoin, euh et juste un peu de vraiment plonger dans ce genre de choses, ce formulaire à la base de données sorte de chose est juste que c'est un fondamental clé pour construire n'importe quelle sorte d'application ou vraiment construire un site Web qui a une sorte d'interactivité à Il n'a pas d'importance. Pour vos noms et e-mails collectés, il peut s'agir de n'importe quoi si vous regardez
Twitter, tweets Twitter ou s'il s'agit d'un formulaire que vous soumettez à des messages Facebook. Ah, il y a un formulaire que vous soumettez. Si vous téléchargez une vidéo YouTube. La plupart de ce que vous devez remplir est de remplir un formulaire, donc tout est des formulaires. Donc, c'est une compétence fondamentale vraiment clé pour si vous voulez être un codeur juste la
construction de site Web . En général, si vous voulez avoir un site Web interactif, vous voulez collecter des informations. C' est une compétence clé. Alors creusez dans ce genre de passer à travers, mettez votre tête autour d'elle, et ça devrait commencer à devenir un peu plus clair. D' accord, ça va le faire pour cette leçon. Merci d'avoir regardé. On te parlera la prochaine fois.
3. Comment sécuriser votre formulaire: Heather John Morris ici, John Morris en ligne dot com Ce système. On va parler de la façon de sécuriser notre formulaire maintenant. Il y a quelques choses que nous devons respecter et juste pour couvrir brièvement l' esprit ici,
la chose que j'essaie toujours de dire aux gens quand il s'agit de sécurité, c'est de
garder à l'esprit, c' est qu'il n'y a pas de dur, des règles rapides parce qu'en fin de compte, vous avez affaire à des gens qui essaient de pirater des choses. Donc, chaque solution ou chose que nous trouvons pour aider à rendre quelque chose de plus sûr, ils essaient toujours de trouver des moyens autour de ces orteils pirater de différentes manières et ainsi de suite. C' est pourquoi les valeurs mobilières ont toujours cette sorte de porte tournante évolutive sur différentes choses qu'on doit apprendre. Mais avec cela dit, il y a des principes fondamentaux que nous pouvons faire pour ah, sécuriser les menaces connues qui sont là-bas et construire un moyen où il serait difficile de pirater ou Garmits de l'approche que quelqu'un pourrait prendre. Donc il y a quelques choses que vous voulez garder à l'esprit avec ça. Leur premier, il y a ce que j'appellerais une forme de validation, et c'est probablement un peu différent de ce que vous avez entendu. La façon dont vous avez entendu parler précédemment, je vais faire la distinction ici, mais pour invalidation est en fait valider que les données que nous avons reçues à notre script post. Donc, la partie de notre script qui va traiter le post Atta que le formulaire a reçu un était en fait notre formulaire, parce que quand vous avez un script là-bas qui traitera les données de post,
il traitera les données de post à partir d'un Demande Ajax. Il va le traiter à partir de ah, requête
curl déposée, se faire attraper n'importe quel genre de choses afin que quelqu'un puisse réellement trouver votre formulaire et
savoir où est votre script de traitement. Dans ce cas, c'est sur les mêmes pages ou formulaire, et s'ils le voulaient, ils pourraient construire un programme ah ou utiliser un script de programmeur qui enverrait un à lui pas réellement à partir de ce formulaire particulier. Donc, ce que nous voulons faire est une sorte d'aide à éliminer tout cela, et il y a un moyen que nous puissions le faire en utilisant pas, ah, nuances de
forme et nous en parlerons dans cette vidéo. Il y a aussi ce que j'appellerais la validation d'entrée, qui est mawr. Ce que vous pensez quand vous pensez à la validation de formulaire et que ce sont les données réelles qui ont soumis dans chacune des entrées validant et ou désinfectant ces données avant de les
mettre dans notre base de données, alors nous avons empêché ah SQL attaques par injection, dont nous allons en parler et en utilisant des déclarations préparées, puis une autre que nous aurions serait des attaques par script intersite. Et on ne parlera pas de ça dans cette vidéo parce que tu t'occupes de ça quand tu vas
vraiment afficher les données qu'on n'a pas encore eu. Mais quand nous parlons d'afficher les données, tous couvrent également ces attaques de script intersite. Donc tout cela dit, Ah, était certaines des choses que nous allons parler de la façon de défendre contre ces
choses et des principes fondamentaux que vous pouvez traverser pour faire ça. Donc un peu de mise en place ici. abord, si nous allons à notre fichier de conflit, vous remarquerez que j'ai créé une nouvelle constante ici appelée âme nonce et j'ai une sorte de caractère aléatoire ici. Maintenant, vous pouvez C'est ah, point
aléatoire ou gars croire que c'est. Vous pouvez aider à l'utiliser pour obtenir une chaîne aléatoire de caractères. Maintenant, ce genre de chose. Ce que je vais vous montrer avec tous les trucs de hachage qui n'est pas recommandé pour les mots de passe PHP a intégré des trucs de hachage de mot de passe. Donc, euh, ce n'est pas juste pour générer et nonce. Hum, et ce ne sont pas des annonces, parce que même si quelqu'un se passe autour, ce que nous protégeons toujours obtient les attaques d'injection SQL vous montreront un moyen que vous pouvez une autre façon de traiter le spam et ainsi de suite. Donc, ce n'est pas aussi essentiel pour la mission. Je le dirais. Ah, vous savez, nous ne allons pas faire des algorithmes de hachage standard ici, mais si vous avez affaire à des mots de passe et à un magasin ceux dans la base de données, c'est assez critique que vous utilisiez les trucs PHP intégrés, mais encore une fois, vous pouvez aller à des organisations de points aléatoires et cela vous permet de générer des chaînes aléatoires que je recommande. Fondamentalement, ce que je fais est un générer cinq chaînes de cinq poupées qui air 20 caractères, puis tous attraper deux ou trois d'entre eux et les combiner ensemble pour créer cette absurdité. Chaque fois que vous avez installé ce formulaire sur O R.
Vraiment,
chaque page sur laquelle vous utilisez ce formulaire devrait avoir un autre pas sel. installé ce formulaire sur O R. Vraiment, Si vous utilisez la même chose, pas de sel à travers différentes formes devient plus facile pour quelqu'un de comprendre ce que ce non-sens et effectivement être capable de hackett. Donc, vous devriez toujours utiliser un autre non sel pour chaque instance de ce formulaire. Ah, que vous utilisez. Et puis nous allons aller dans d'autres façons de faire cette variable aussi. Mais j'ai cette définition de ce non-côté. C' est quelque chose qui n'est pas du sel. C' est quelque chose que vous devrez ajouter manuellement à nouveau. Vous pouvez utiliser un point aléatoire ou pour vous aider à générer ce flux. D' accord, donc une fois que nous avons ça, il y a quelques choses que nous avons ajoutées à notre formulaire. Donc, si vous venez ici, vous voyez,
nous avons maintenant trois champs d'entrée cachés ici et ces actions de temps d'air et le hacher. Ainsi sont les noms ont été horodaté forme, action et hachage de forme. Donc, fondamentalement, l'idée ici est chaque fois que cette page se charge essentiellement Ce que nous allons faire est de
créer ce qu'on appelle un nonce, qui est un nombre utilisé une fois. Et chaque fois que cette page se charge, cette nonce sera différente parce qu'elle est basée hors du temps. Donc, si, euh ,
écoute, si on revient ici, tu peux voir que nous sommes en train de prendre le temps maintenant. Donc, c'est une fonction de temps est une fonction PHP intégrée qui nous donne le cas d'horodatage UNIX. Nous allons définir cela pour définir cette action pour soumettre le formulaire. Donc, la façon dont l'action fonctionne est fondamentalement ce que vous essayez, à tout moment, toute sorte d'action que vous prenez que vous voulez bien nonce, que vous voulez faire ce genre de protection pour devrait avoir un Chacun de ceux-ci devrait sa propre déclaration d'action. Donc, par
exemple, si nous étions dans un CMS et que nous voulions laisser quelqu'un cliquer sur un lien pour supprimer des utilisateurs, nous pourrions noeuds. On obtient nonce. Ah, que faire Ah, en utilisant un formulaire et en utilisant get par opposition à post. Mais cette action de suppression qui serait une action en soi. Donc supprimer le post serait en action. Une autre action à l'intérieur de ce TMS peut consister à supprimer un commentaire. Supprimer un commentaire serait une action différente ou supprimer un utilisateur supprimer un utilisateur serait une action
différente ou supprimer catégorie serait une action différente. Donc, ce sont toutes des actions différentes, et ils auraient des valeurs différentes ici pour cette action. Donc, vous changeriez cela ici pour chacun d'entre eux. Maintenant, avec cela encore une fois, tout comme le ne devrait pas être différent pour chaque instance de ce formulaire que vous mettez sur votre site. Cette action devrait être différente aussi, donc je viens de soumettre un formulaire pour garder un générique. Mais quoi que ce soit pour Mlle 4. Donc, par
exemple, disons que c'est que vous êtes un peu générique. Optez dans le formulaire afin que vous puissiez mettre opter générique. Et puis si vous mettez ceci dans une autre partie de votre site et que vous avez
complètement changé les champs de saisie et que vous prenez vos commentaires, ce serait le formulaire de commentaires afin que vous
utilisiez une action différente. Il est donc important que ces variables soient différentes pour les différentes instances de ce formulaire où vous utilisez, qu'il
s'agisse de sites différents ou de pages différentes sur le même site. Ah, c'est important qu'ils soient différents parce que si vous les gardez les mêmes sur toutes ces formes, si quelqu'un veut vraiment essayer de pirater votre site, ils vont commencer à comprendre, ah, les absurdités et ainsi de suite et il leur permet de pirater votre site. Donc tu veux rendre tout ça différent. Donc on a le temps. Nous avons l'action et nous avons ne sont pas vendus. Ce sont les trois choses qu'on va utiliser pour créer un hachage. Donc vous pourriez dire que j'utilise Sprint F ici. La façon dont fonctionne Sprint F est ces pourcentages ess ou des espaces réservés. Donc, l'action est mise à la place de cela. Ah, celui-ci ici, temps est mis à la place du 2ème 1 et le non-sel est mis à la place de ce 3ème 1 Donc,
fondamentalement, fondamentalement, ce que nous avons c'est que nous avons des soulignements de temps d'action ne sont pas du sel. Donc c'est notre ficelle. On vient de créer une chaîne à partir de ces trois choses. Et puis ce que nous allons faire est que nous allons les faire passer à travers cette fonction de hachage en utilisant cet algorithme Shah 5 12. Hum et en passant cette ficelle, et nous allons sauver ce hachage d'orteil ici. Donc, c'est ce qui crée notre hachage. Ok, donc si nous écoutons, rechargez cette page ou vite si je l'inspecte et rappelez-vous, nous faisons écho à ce hachage ici dans ce champ caché appelé hachage de formulaire. Ok, donc si j'inspecte ça ici, c'est essentiellement ce que nous recevons. Nous obtenons cette longue chaîne de caractères que nous avons créée selon un modèle. Maintenant, ce qui est important, c'est que nous avons créé ce hachage, mais nous devons soumettre ce formulaire, et quand ce formulaire soumettre va recharger cette page, et donc toute cette valeur de temps va être réinitialisée orteil quand cette page recharger. Donc ça va être différent de ce que c'était quand on a soumis. Ah, la forme. Et donc nous devons réellement mettre l'horodatage dans notre champ caché ici pour que nous puissions affaiblir re Nous pouvons vérifier notre hachage. Cela a été passé en fonction du moment où la page de formulaire a été chargée, pas quand elle a été soumise, car cela fera essentiellement qu'ils ne correspondent pas. Ok, donc c'est pourquoi nous mettons l'horodatage ici et formons l'action ici parce que nous allons réellement soumettre, Rappelez-vous, nous utilisons, Ah, temps nous utilisons l'action, et puis on utilise une nonce. Eh bien, nous mettons dans le temps l'action et le hachage qui a été créé quand tout cela a été chargé. Donc, nous avons tout ce dont nous avons besoin pour faire notre comparaison et ensuite sont des non-sens stockés dans notre fichier de
conflit. Donc la chose que le hacker ne sait pas, c'est les noeuds. C' est vrai ? Donc, ils pouvaient venir à cela et ils pouvaient voir là-bas en utilisant l'horodatage en utilisant cette
action de formulaire . Mais ils ne connaissent pas la nonce. Et c'est un peu comme si vous pensez à une clé publique et à une clé privée, c'est comme ça
que beaucoup d'yeux et de choses fonctionnent. Maintenant, les bêtises essentiellement genre de clé privée. Et d'une certaine façon, donc encore une fois, ce que cela nous permet de faire, c'est que ce sont nos formulaires, fondamentalement ne vont pas soumettre si notre nonce ne correspond pas. Ok, donc nous mettons en place un moyen de savoir qu'il a été soumis à partir de ce formulaire en particulier. Très bien, donc une fois que nous aurons tout ça, alors ce que nous pouvons faire, c'est retourner dans notre mémoire que nous avions avant. Si Post, si Post n'est pas vide, alors nous allons faire des choses avec nos données de poste. Maintenant, tout ça a changé. Je vais juste te le dire maintenant, mais je vais traverser tout ça pas à pas. Donc, la première chose que je fais ici est juste d'extraire Post. Nous n'allons plus utiliser une carte de rayon et ma suite, Real Escape String de ça. On va utiliser des déclarations préparées et le faire correctement. Et donc nous avons juste besoin d'un THE dans les variables. Ça va être plus facile de travailler. Donc, Extract va prendre toutes nos données de post et en créer des variables avec lesquelles nous pouvons ensuite travailler. Donc la première chose qu'on va faire, c'est vérifier nos noeuds. Donc ce qu'on va faire, c'est qu'on se souviendra ici qu'on a créé un flux comme ça. Eh bien, ce que nous allons faire, c'est que nous allons recréer cette chaîne maintenant avec le mais nous allons
utiliser ces données soumises. Ok, donc nous allons prendre en compte, action de
formulaire était l'action qui a été soumise dans ce domaine, et nous allons à l'horodatage est l'horodatage qui a été soumis dans ce domaine. Alors maintenant, on prend les trucs. Ce sont les données qui ont été soumises par le formulaire. Et nous créons un hachage de. Nous créons essentiellement un nouveau hachage à partir de cela. Ok, alors et ensuite. Et c'est ce que font ces deux lignes ici. Ils sont fondamentalement les mêmes que ces deux lignes ici, mais ce sont les données qui ont été soumises par le formulaire. Ok, sous la forme Champs cachés ici. Et puis nous comparons ce nouveau calcul du hachage au hachage qui a été passé dans le formulaire. Ok, donc nous avons un hachage qui a été créé lorsque la page a été chargée, et puis nous recréons ce hachage lorsque le for miss soumis, et nous vérifions par rapport à ce que nous calculons quand le formulaire a été soumis par rapport au hachage qui a été créé lors du chargement de la page. Et ces deux choses doivent être les mêmes maintenant. La seule instance et avec laquelle ils ne seraient pas les mêmes est si les données de poste qui ont été envoyées à notre script de traitement ne provenaient pas de ce formulaire. Ok, donc c'est comme ça que nous validons que ces données, les données qui ont été soumises à notre script post proviennent de ce formulaire. La seule façon pour eux de correspondre est qu'il soit venu de cette forme. Donc, il élimine fondamentalement les gens utilisant Ajax et curl sur toutes ces autres choses pour essayer de soumettre notre formulaire. C' est juste une limite. Notre formulaire ne sera tout simplement pas soumis. Ok, donc c'est ce que tout ça a pour but de faire. Et c'est ce que tout ce qui crée essentiellement tous ces hachages et puis exécute cette vérification ici. Donc, sur Lee, s'ils correspondent, on
va aller dans le reste de ce scénario ? S' il n'y a pas de correspondance, exécutaient ce bloc d'autre ici, ce qui définit essentiellement insert toe false. Ok, donc on va avoir ça. Ils seraient essentiellement en train de montrer un message aérien qui dit faux. Donc rien ne se passera si ça ne marche pas,
c'estune c'est sorte de notre première ligne de sécurité est de s'assurer que les données que nous avons obtenues proviennent de ce formulaire
spécifique. Bon, maintenant, une fois que c'est vraiment la partie la plus compliquée de tout ça, le reste est vraiment, vraiment simple, donc Ah, et aussi, que est pourquoi lorsque vous utilisez le hachage, vous faites des mots de passe que je recommande vraiment d'utiliser PHP est intégré aux fonctions parce que ce
ne sont que des fonctions que vous pourriez appeler, et ils le rendent beaucoup plus facile. L' autre chose, est que je ne pouvais pas faire ça. Ah, je pourrais nettoyer cela en mettant cet algorithme de hachage juste ici de la façon dont nous
les hachons dans sa propre fonction. Et puis au lieu d'avoir l'orteil droit recréé ici, je pourrais juste appeler la fonction quand j'en ai besoin. Mais cela crée une couche supplémentaire d'abstraction qui pourrait être difficile à suivre en allant de la forme que nous avions auparavant à la forme que nous avons maintenant. Donc je ne voulais pas faire ça. Je voulais le faire un peu,
un peu verbeux ici pour que vous puissiez voir,
vous savez, vous savez, juste que je ne voulais pas en faire 22 abstrait pour vous où ça commence, vous commencez à vous perdre un peu. Donc encore une fois, nous avons maintenant toutes nos vérifications de nonce effectuées. Nous savons que les données qui ont été soumises provenaient de ce formulaire et encore. Ce n'est pas une mission critique, il peut y avoir des moyens de contourner cela, mais c'est quelque chose qui fournit une sorte de niveau de défense de base tout de suite. Tu sais, ce n'est pas nécessaire. 100% infaillible et ça, mais ça n'a pas besoin d'aller, juste ça va en quelque sorte nous éliminer de seulement 95% des trucs et des ordures qui pourraient être
là-bas . Les gens qui essaient de spamper ceci ou autre. Une autre option que vous avez ici est que vous avez aussi la récupération. Et donc recapture est de Google, et ils ont la version deux. Donc, si vous avez déjà été sur ah site et que vous êtes allé soumettre un formulaire et qu'ils ont cette petite case à cocher que vous devez cocher qui dit que je ne suis pas un robot récupéré, c'est la version 2 de Recapture. Et donc ce que vous regardez ici, c'est en fait une classe P peach que vous pouvez utiliser pour ajouter à la fonctionnalité de récupération. Maintenant, vous devez aller sur le site de récupération et obtenir une clé de site dans une clé secrète et tout ce genre de choses. Mais une fois que vous faites cela en utilisant ce Ah, cette classe est en fait assez simple. Vous pouvez voir un exemple complet ici où vous créez une nouvelle instance, passant votre site, aidez en
passant votre site, aidezvotre clé secrète. Et puis vous utilisez ça. Il y a un type d'extrait de script Java que vous devez ajouter sur la page, donc c'est ce que cela fait. Ah, et puis il y a une petite ligne que vous devez ajouter dans votre formulaire dans votre champ de formulaire. Donc c'est ce que ça fait. Et puis dans votre vérification réelle, vous avez un petit chèque que vous devez exécuter, et c'est ce que cela fait. C' est donc la classe qui le rend vraiment, vraiment facile à intégrer. Récupérez dans votre formulaire. Vous pourriez certainement le faire à nouveau. Je voulais m'en tenir à des trucs PHP intégrés. Ce n'est pas une sorte de tierce partie parce que ça peut toujours changer. Donc ah, c'est pour ça qu'on fait ce qu'on fait ici avec ces trucs. Mais encore une fois, cette chose de capture recut est une option qui vous aidera également à faire avec le spam et les bots et ainsi suite. Ok, maintenant, une fois que nous avons fait tout ça, maintenant nous pouvons entrer dans la validation étrangère. Maintenant, nous pouvons entrer dans l'entrée, validation et la désinfection. Donc, tout d'abord, la différence entre la désinfection et la désinfection par validation,
c'est que vous permettez
aux données de passer par . Vous n'arrêterez pas le script, mais vous l'échappez ou vous le désinfectez d'une manière ou d'une autre pour le rendre sûr. Donc vous pourriez obtenir des données dangereuses. Mais vous l'exécutez à travers certains types d'algorithmes afin de le rendre sûr. Donc, vous le désinfectez donc, puis la validation est votre vérification pour vous assurer qu'il correspond à un certain ensemble de critères. Si ce n'est pas le cas, tu ne le fais pas, tu n'avances pas. Alors que utilisez-vous et quand cela dépend vraiment des données qui sont soumises et différents types de données. Je m'occuperais de différentes manières. Donc, les choses qui sont comme la mission critique qui doivent être doivent être justes. J' utiliserais la validation, les choses que vous pouvez, vous savez, seraient géniales. Si c'était le cas, ils avaient raison. Mais vous pouvez continuer même s'ils ne sont pas parfaits à 100%. Ensuite, j'utiliserais la désinfection pour que vous puissiez voir avec nos deux variables ici. Nous avons de bons exemples de cela pour le nom étaient en utilisant la désinfection parce que le nom est beau orteil ont. Mais ce n'est pas forcément. Et encore une fois, cela pourrait changer sur le contenu, en fonction du contexte. Mais ce n'est pas nécessairement, ah, 100% critique de mission. Où se trouve l'adresse e-mail ? Nous avons besoin de l'adresse e-mail pour pouvoir contacter ces personnes. Donc, s'ils soumettent ce formulaire pour que nous puissions les contacter, nous devons absolument l'avoir pour que cela soit d'une quelconque utilité. Donc on va valider ça. Un autre exemple est, vous savez, si vous l'étiez si vous aviez une zone de texte sur ce formulaire et que vous permettez aux gens de soumettre des commentaires via ce puits à nouveau, l'e-mail serait impératif. Mais cette rétroaction ne serait pas nécessairement ah b qu'il doit adapter une structure ah particulière pour qu'elle soit soumise. Tu peux en quelque sorte, tu sais, si ce n'est pas parfait à 100%,
ça va être plus un candidat pour la désinfection. Vous devez donc penser à cela en fonction du contexte de l'application et des données qui sont soumises et ainsi de suite. Mais c'est vraiment la différence entre les deux. Maintenant, il y a plusieurs fonctions pratiques à l'intérieur de PHP, mais celle que nous utilisons ici est appelée Filter Var. J' ai fait quelques pairs de vidéos dans le passé où il a parlé de l'entrée de filtre, ce qui vous permet en fait de saisir des données directement à partir d'un tableau d'affiches et de les filtrer de cette façon . Mais parce que nous avons déjà tout extrait ici parce que nous avions besoin de faire toutes nos vérifications de nonce et ainsi de suite maintenant, ils sont déjà invariables, donc nous pouvons simplement utiliser filter var. Donc, ils font vraiment la même chose. Donc, c'est juste une question de type de données avec lesquelles vous avez affaire. Donc nous allons filtrer le nom de la variable, et nous allons le faire passer par Santa Tie le filtre de chaîne de désinfection. Maintenant, je recommande lorsque vous cherchez à essayer de comprendre ce qu'il faut désinfecter et valider, juste le filtre Google souligne var. Et puis sur cette page il y aura un lien qui a une liste, dit certains, comme la liste des différents filtres. Cliquez sur cela et vous verrez enregistrer la validation. Les filtres diront les filtres d'assainissement. Quelques autres qui sont là ont juste regardé à travers eux et voir ce qui correspond aux
données et ce que vous voulez accomplir avec ces données en termes de validation et de désinfection , parce que encore une fois, ça va être différent pour chaque scénario. Mais toutes ces informations sont là pour que vous puissiez regarder. Donc, ce drapeau indique essentiellement filter var comment il doit filtrer ces données. Donc nous allons le désinfecter et c'est une chaîne pour chaîne de données. Donc c'est ce que nous allons et il y en aura si tu y vas et que tu regardes ça te dira exactement ce que ça fait. Et puis pour l'email étaient à nouveau en cours d'exécution à travers le filtre de notre filtrage de l'e-mail, et nous allons valider cela et nous allons valider que c'est une adresse e-mail. Donc, cela va réellement valider que c'est une adresse e-mail correcte et donc je peux
vous montrer un exemple ici si nous allons juste membre avant où je disais, si vous avez fait à un BB sur ce formulaire html cinq ne va pas attraper cela comme une adresse e-mail invalide. C' est évidemment une adresse e-mail non valide. Donc si nous soumettons ceci maintenant, vous pouvez voir que nous recevons le message aérien. Il y avait un air avec cette présentation. C' est à cause de cette vérification de validation juste ici. Donc, voici comment vous validez que ces adresses e-mail appropriées air. Bon, alors maintenant nous stockons ces variables. Ces barres obliques filtrées désinfectées, validées variables comme nom de filtre et e-mail de filtre. Donc nous les connaissons. Il y a maintenant des données propres, pour
ainsi dire, ou des données de fichier. Et puis nous allons faire ce chèque, donc filtrer les e-mails quand c'est une validation, comme quand c'est la désinfection va juste le faire passer par le désinfectant et retourner les liens
Saturne. Les données propres eso il nous a sauvé cela. Est ce nom de filtre pour la validation. S' il valide correctement, il va revenir. Les données validées ici sont cette variable. Mais s'il ne valide pas correctement, il retournera False. Donc, fondamentalement, ce que nous allons faire est de vérifier le filtre e-mail et s'il n'est pas égal à faux, cela signifie que
si cela n'est pas égal à faux, cela signifie
qu'il est valide. Ok, venir un double cheveu négatif. Mais si ce n'est pas faux, alors nous savons que c'est de bonnes données propres, et nous pouvons aller de l'avant et ensuite les soumettre à notre base de données. Si ce n'est pas des données propres, alors nous allons exécuter ce bloc d'autre ici et à nouveau tourner Ah dit insérer deux faux. Et ça va déclencher des messages aériens ici, non ? Et bien sûr, si ce n'est pas le
cas, si c'est égal à faux, aucun de ce code ici ne va s'exécuter, à droite, parce que pour que ce code exécute le filtre email ne doit pas être égal orteil false. D' accord, maintenant, en supposant que ce sont de bonnes données, alors on va, ah, se reconnecter à ma suite. C' est exactement le même avant une fois la danse et de nouveaux incidents de ma s Juillet ou en passant dans notre hôte ou l'utilisateur sont passe Ah, mot de passe et notre nom de base de données. C' est là que ça devient un peu différent. Maintenant, voici ce que nous allons faire, c'est qu'on va utiliser des déclarations préparées pour que vous puissiez voir au lieu de passer notre requête à ma requête escalate où nous la transmettons à mon école, je me prépare. Maintenant. C' est surtout la même chose en ce que nous avons inséré dans notre nom de table. Nous avons nos colonnes, nom et e-mail. Nous avons des valeurs, mais dans les parenthèses de valeurs ici, nous devons remettre en question les points. Ce sont de l'eau appelée « espaces réservés ». Donc nous ne mettons pas les données réelles dans la requête en disant, il y aura des données ici, mais nous nous ne vous avons pas encore envoyé ces données. Et c'est en fait ainsi que les déclarations préparées aident à sécuriser. Ah, les requêtes que vous envoyez dans ma suite. Parce que la première chose que vous faites quand vous exécutez cette déclaration de préparation Quoi, vous envoyez réellement cette déclaration de préparation à ma suite et racontez ma suite ? Hey, étaient sur le point d'exécuter cette requête et nous vous enverrons les données dans une seconde. Ok, donc vous divisez la requête des données réelles que vous envoyez dans la requête et les attaques
par injection SQL . Comptez sur ces deux choses ensemble. En fait, il injecte du code queary à la place des données. Quand on sépare ces deux choses, ça ne peut pas se produire. Il crée une ligne dure entre, ah, la requête qui est en cours d'exécution et les données. Donc, lorsque vous faites une déclaration préparée comme celle-ci et que nous envoyons réellement nos données que toe ma suite après que nous leur avons envoyé cette requête, ma suite ne prend pas les données, puis les met dans la requête et exécute la requête. Il est déjà en quelque sorte prêt la requête,
et il a juste besoin des données, et les deux choses ne se mélangent jamais. Ok, donc encore une fois, c'est juste un dur correctif deux attaques d'injection SQL. C' est pourquoi tant de gens disent et recommandent d'utiliser des déclarations préparées. Il y a juste une ligne dure qui ne peut pas vraiment être franchie. Donc, euh, c'est pourquoi nous avons mis ces espaces réservés et nous ne mettons pas les données réelles, et ensuite nous allons lui dire quelles données utiliser. Et c'est ce que cette prochaine ligne est qui achète Paramus. Donc, essentiellement ce que vous faites est que vous liez ces paramètres à ces espaces réservés. Donc tu racontes ma suite. Ok, ce sont les données que nous voulons mettre à la place de ces espaces réservés. Maintenant, vous avez ces types d'identification IRS ici les sont essentiellement dire à ma suite quel genre de données il s'agit. Dans ce cas, nous avons s pour chaîne. Peut-être imageur pourrait être flux à décimal. Il y en a un certain nombre, en fonction des données que vous possédez, mais dans ce cas, ces
deux sont des chaînes. Et donc quand vous envoyez les données, si vous dites que c'est un imageur, mais que vous envoyez une chaîne, ça ne va évidemment pas passer. Si vous dites que c'est une ficelle et que vous envoyez un blessé que c'est évident que je vais traverser donc c'est juste une façon d' ajouter une sécurité supplémentaire là et encore, parce que les deux choses sont séparées. Nous avons envoyé la requête via l'instruction préparée. Maintenant, nous lions les paramètres à eux, puis l'instruction exécuter est l'endroit où nous exécutons réellement la requête et exécutons la requête. Et cela va à ceci est un peu comme avant, euh, vous savez, si certains types de requêtes, ils vont s'il y a une sélection qui attend des données de retour, cela va vous donner un ma source de recherche de suite que vous pouvez utiliser pour obtenir ces données dans ce cas avec un insert parce qu'il n'y a rien que nous demandons de retour. On va juste faire une tournée fausse ici. Et donc, nous définissons notre insert égal à savoir si c'est vrai ou faux. Et si c'est vrai, alors on va afficher les inserts vont être réglés sur vrai. Ça va déclencher notre message ici pour vrai, pour une raison quelconque, il n'a pas été soumis, puis va déclencher faux, et nous allons lancer ce message. Donc, si nous allons à notre base de données ici, nous regardons notre table d'utilisateurs ici Laissez-moi aller de l'avant et reconnecter. Nous regardons notre table des utilisateurs, vous pouvez voir que nous n'avons aucun doute que j'ai supprimé toutes les données de celui-ci. Donc, si nous faisons juste une sorte de chose standard et soumettons le vous Zied dit que les données ont été insérées avec succès. Et si nous revenons ici, vous pouvez voir que les données sont maintenant là si nous y allons et encore avons vu ça. Mais faisons juste ça, euh, ce genre de chose et nous essayons de l'insérer. Nous arrivons à l'air qu'il n'a pas été soumis, et nous regardons ici, vous pouviez voir qu'il n'a pas été soumis. Ce sont les données que nous avions auparavant. Ah, et enfin, si vous voulez faire quelque chose comme ça, nous ferons juste cet e-mail. Donc c'est une citation et nous désinfectons le membre ou désinfectons notre chaîne ici. Il y a donc différents types de drapeaux que vous pouvez entendre utiliser ici. Certains encoderont les guillemets, et d'autres ne le feront pas dans ce cas, celui-ci le fera. Ça va coder ces citations. Donc si je soumets ceci, nous allons obtenir que les données ont été insérées parce que nous n'avons pas validé, nous avons désinfecté. Mais si nous venons ici, nous regardons notre soumission, vous pouvez voir que cela a été encodé. Cette citation a été encodée en entités HTML, au lieu de rester comme une citation. Ok, donc c'est une forme de désinfection. Et cela entre en jeu quand nous commençons à parler, vous savez, si vous obtenez ah, désinfecter String va aussi se débarrasser de si quelqu'un essaie d'insérer du code html, mais il n'y a aucune raison d'avoir une équipe Oh, dans le bloc de nom. Ok, donc ça va désinfecter si quelqu'un taille envoie un script Java, ce qui est qu'il nous aide à gérer les attaques de script inter-sites de ce côté de celui-ci. Vous voulez toujours le faire sur le côté de l'écran, mais c'est nous le traitons de ce côté aussi. Ok, donc, euh, c'est pour ça que ces citations Aaron citées codées, parce que la citation peut être une sorte de caractères problématiques, selon, vous savez, ils vont être utilisés dans si quelqu'un essaie de soumettre JavaScript. Oh, y a-t-il essayer de soumettre du code SQL etcetera ? Donc encoder ces aide à les rendre pas dangereux. Encore une fois, juste différent. Espérons la chose que vous obtenez de tout cela est une chose spécifique, spécifique pratique que vous pouvez faire. Mais vraiment, c'est juste son état d'esprit des couches de sécurité. Nous avons la forme hoche par lui-même, pas nécessaire à 100%. Ah, efficace. Mais cela crée une couche. Ensuite, nous avons filtrer les variables où il désinfecter ou valider à nouveau. Il pourrait y avoir des moyens que quelqu'un pourrait comprendre pour peut-être contourner cela individuellement, mais avec la forme danse et puis vous avez eu dans cette assainissement et validation et puis vous ajoutez dans deux déclarations préparées pour vous préparer contre les attaques d'injection émises . Ensuite, vous ajoutez, nous allons faire, euh, aider à échapper aux attaques de script intersite sur l'écran. Donc, vous avez juste plusieurs couches de sécurité qui devient vraiment difficile pour quelqu'un d'essayer de pirater ce que vous faites ou de trouver un moyen de ce que vous faites. Et tu sais, c'était quelque chose que j'ai appris quand j'étais dans l'armée. Mais j'ai dit, cette idée d'être une cible difficile. La plupart des pirates aériens à la recherche de leur recherche de cibles d'opportunités. Ils sont à la recherche de cibles faciles, donc s'ils sont assis ici et ils commencent à essayer de gâcher avec vos affaires et ils courent dans les non-trucs. Et puis le Sénat l'a mis en place. C' est juste que tu sais quoi ? Je vais passer à quelqu'un d'autre qui est plus vulnérable et le rendre facile, et ça te permettra de te faire passer. Et c'est l'idée de tout ça. Donc j'espère que c'est l'état d'esprit que tu as de ça encore. choses pratiques très spécifiques que vous pouvez faire. Mais la chose la
plus importante et la plus importante à long terme est probablement l'état d'esprit de créer ces différentes couches de sécurité. Et au fur et à mesure que de nouvelles menaces apparaissent, vous pouvez en apprendre davantage sur celles-ci, et vous pouvez apprendre à ajouter encore plus de couches et ah, et ainsi de suite. De toute façon, c'est comment sécuriser vos formulaires. Ce genre d'air de base de ce côté-ci pour faire ça. Donc j'espère qu'il a quelque chose de ça. Merci d'avoir regardé. On parlera au lendemain
4. Comment créer une forme avancée: Hé, là, John Morse. Ici. John Morris, point com
en ligne. Cette leçon. Nous allons entrer dans une forme un peu plus avancée, et je vais vous montrer certains des autres types d'entrée ou de champs que vous pouvez utiliser dans vos formulaires et comment traiter ceux dans votre code. Donc, comme vous pouvez le voir, ici, nous avons sur le côté droit, nous avons, ah, des boîtes radio. Nous avons des cases cochées. Nous avons une boîte de sélection et nous avons une zone de texte. Donc, c'est à peu près la plupart des choses que vous allez utiliser, probablement sur une base régulière pour vos formulaires. Je veux dire, il y a d'autres trucs là-bas, mais ils ne sont pas proches, c'est commun. Donc je veux m'assurer et couvrir ça. Il est très commun. Bon, donc si nous descendons en bas ici, je peux vous montrer le HTML d'abord, puis nous pouvons à nouveau aller à notre base de données et ensuite aller à notre code PHP pour connecter les deux. Donc nous allons commencer par ici avec cette section de fréquence monstre ici, et nous allons faire nos boîtes radio. Donc d'abord l'entrée que vous l'avez dit à un type de radio, sorte que ce qui en fait un bouton radio. Je lui donne une classe d'une radio, comme une cible via CSS. Bien que je n'ai pas vraiment ajouté de CSS pour les boutons radio ici, Um, nous allons sauter le I d pendant une seconde, et ensuite nous avions donné un nom de fréquence. Ah, la valeur du quotidien. Et puis vous pouvez voir qu'il a cette vérification, ah attributs ici. Maintenant, si on regarde notre autre et que je parle de ça dans une seconde, on regarde notre autre bouton radio. Vous pouvez voir qu'il a un type d'entrée de radio, une classe de radio bien sauté I d. pour la deuxième utilisation. Vous pouvez voir que le nom est le même, donc sa fréquence aussi, ce qui est différent est la valeur. C' est ainsi que vous gérez les cases à cocher car les cases à cocher sont censées être une chose ou une
chose de type . Et donc, ah, quand les cases à cocher quotidiennes ont sélectionné ce qui va être soumis ? Rappelez-vous, nos données qui sont dans notre forme sont soumises à ce post super global que tableau post. Eh bien, quand nous avons ces deux cases à cocher et qu'elles ont toutes les deux le même nom, celle qui est cochée est la seule qui va être soumise à notre
script PHP . Ok, donc on n'aura pas deux éléments dans notre rayon. On va en avoir un, et soit ça sera tous les jours, soit ça sera hebdomadaire. Ok, donc c'est comme ça que tu manières les boutons radio ? Parce qu'ils sont une situation ou l'une ou l'autre. Et si vous aviez trois boutons radio,
Armento Onley a l'un des trois sélectionnés. Et si vous aviez trois boutons radio, Donc, il n'y en aura toujours qu'un si vous faites quelque chose de différent, vous ne devriez pas utiliser de boutons radio pour que ce soit juste quelque chose à garder à l'esprit. Quand tu es en train de construire ça. Maintenant, nous allons parler de la i D. Pendant une seconde ici, vous pouvez voir que j'ai ce que je d mis à la fréquence tiret tous les jours et fréquemment tiret hebdomadaire, puis sur l'étiquette ici j'ai quatre égale fréquence tiret quotidienne et fréquence Dash hebdomadaire pour ceux-là. Donc, ces quatre attributs correspondent à l'air dans l'étiquette ici, correspond à l'
attribut I d. dans l'entrée qui est. Donc, si je clique sur les mots chaque semaine, il le change en fait et si je clique tous les jours, il le retourne. C' est ainsi que vous faites cela en utilisant ces quatre attributs, et c'est à l'i d de l'entrée. Donc, vous devez ajouter que je d si vous voulez que ce genre de chose fonctionne. Sinon, vous devez cliquer directement sur la case à cocher pour que cela fonctionne. Très bien, tôt sur le bouton radio. Je suppose que je devrais dire que c'est des cases à cocher. Et donc les cases à cocher sont un peu différentes en ce sens que, contrairement à un bouton radio, c'est en quelque sorte l'une ou l'autre des cases à cocher vous permettent de sélectionner plusieurs, donc je peux sélectionner toutes ces cases à la fois. Donc, nous les gérons un peu différemment. Donc, pour l'entrée, nous avons le type d'entrée égal à la case à cocher la classe égale à la case à cocher. Tu sais déjà pourquoi je suis
là. C' est exactement les mêmes raisons ci-dessus. Vous pouvez voir mes quatre étiquettes ici pour qu'on ne fouille pas là-dedans parce que c'est la même chose ici . Donc tapez check, case case à cocher classe et puis notre nom. Nous avons des intérêts, puis nous avons PHP entre parenthèses et ici nous avons des intérêts en HTML et entre parenthèses et ici. Nous avons des intérêts dans CSS et parenthèses et ils sont tous définis sur une valeur de 1. Donc, contrairement aux cases à cocher où celle qui est cochée est celle qui va être soumise dans ce cas, celles qui sont toujours celles qui ont été vérifiées. Mais parce que nous sommes fondamentalement il y avait tous les intérêts et nous voulons avoir essentiellement
tableau un tableau des intérêts que quelqu'un a vérifié. Laisse-moi aller de l'avant et on va vérifier ça et laisse-moi juste que je veux te montrer ça très vite
. Laisse-moi aller de l'avant et on va vérifier ça et laisse-moi juste que je veux te montrer ça très vite Donc, nous allons venir ici. Nous allons imprimer notre tableau de post. Oups. Eh bien, le nom de ce type et on sortira là. Et je passais par quelques données ici et je vais soumettre ceci. Cela devrait nous donner ce dont nous avons besoin. Ok, donc vous pouvez voir ça sous intérêt juste ici. C' est notre élément d'intérêt. Il devient un tableau et vous pouvez voir qu'il a un élément de PHP set toe un dans un HTML set toe one. Donc, fondamentalement, si nous ne faisons pas cela de cette façon, si nous définissons tous les intérêts de Teoh, nous serions seulement nous ne serions pas en mesure d'avoir plusieurs à l'intérieur d'un tableau. Droit ? Parce que si cela fonctionnait comme le bouton radio, il ne nous permettrait orteil en avoir un qui a été sélectionné. Donc, ce que nous faisons est essentiellement dans notre bloc de nom ou en utilisant une notation de rayon en enveloppant ceci entre parenthèses. Et c'est Ah, c'est ce qui crée finalement ce tableau ici. Donc, nous finissons avec ce ah, intérêts des noms clés de niveau
supérieur. Et puis nous avons un tableau dans les boîtes vérifiées. On va avoir des éléments avec ces valeurs. Maintenant, celui n'a pas vraiment d'importance en ce sens, mais, ah, on a juste une valeur là-dedans. Pour qu'il soit mis ici, ok. Et puis on parlera de la façon de gérer ça. On va s'embêter avec ça pour Nagel un peu dans notre code PHP. Mais encore une fois, il est important que toutes les cases à cocher que vous avez, vous utilisiez ce genre de modèle
ici . Donc, vous obtenez ce beau tableau que vous pouvez ensuite travailler avec. Très bien, donc ce sont les cases à cocher. Allons recharger ça. Le prochain est celui du pays. Maintenant, vous voyez ici avoir une liste de tous les pays ici. Je voulais juste vous donner un exemple de liste déroulante,
et je pensais que les pays étaient une chose très populaire que les gens veulent savoir comment faire. Je voulais juste vous donner un exemple de liste déroulante, Alors je suis allé de l'avant et je l'ai fait. Maintenant, vous verrez que j'ai le dossier de ce pays ici, donc si on ouvre ça, vous verrez que c'est juste cette liste de pays. C' est un grand tableau avec tous les pays. Je ne me suis pas assis et j'ai tapé tout ça. quelqu'un Heureusement, a fait pour nous. Et j'utilise ça de get hub ici. Donc, euh, vous serez évidemment capable de voir et d'obtenir le code que j'ai. Mais si tu veux Ah,
utilise-toi ça. Vous pouvez juste une sorte de tableau de pays Google PHP. Et c'est comme si les premiers résultats arrivaient ici et il suffit de le copier. Donc c'est exactement ce que j'ai fait. Je dépose tout ça dans un dossier, et si on y retourne, on va au sommet. Vous pouvez voir que j'ai besoin de ce dossier ici. Juste pour que je ne voulais pas laisser tomber toute cette ligne juste dans ce fichier ici et sorte de créer un tas de code ici qui pourrait causer un désordre visuellement. Donc, je l'ai juste mis dans son propre trouvé séparé et l'a exigé dans. Alors maintenant que nous avons cette panoplie de pays, n'allez pas de l'avant et fermez cela, alors ce que nous pouvons faire, c'est créer notre boîte à partir de là. Nous avons donc sélectionné Nous avons le nom. Je mets une classe de sélection et je suis que je l'ai fait cours requis ne pas avoir à faire cela. Mais je l'ai fait. Et puis nous créons une option avec la valeur définie sur vide appelé. Et puis nous, euh, définissons un pays ici. Et c'est juste pour que nous ayons une belle sélection d'un pays Ah, chose juste ici pour nous d'utiliser. Maintenant, une chose à garder à l'esprit avec ceci est HTML 5 est intelligent. Donc, nous avons cet ensemble à requis, et techniquement, cette sélection d'un pays est une option. Mais si j'essaie de soumettre ce formulaire comme ça, il reconnaît que cette valeur est vide et il ne va pas me laisser le soumettre pour
que ce soit une petite chose pratique avec HTML 5. Je dois choisir un pays ici. Ok, donc on fait
ça, juste là pour l'aspect visuel de ça. Donc, une fois que nous aurons ça, alors ce que nous allons faire, c'est nous allons parcourir le tableau de notre
pays et pour chaque pays, nous allons créer une nouvelle option dans notre liste ici. Donc, option. Et la valeur est définie sur le nom du pays. Et puis le ceci ferme l'ouverture à la balise d'option juste ici. Ce Ah, ce panneau juste ici. Et puis nous éco à nouveau le nom du pays pour qu'il apparaisse. Il se montre ici. Donc, si nous inspectons cela très rapidement, vous pouvez voir que nous avons une valeur d'option égale, dans ce cas,
l'Afghanistan, puis l'Afghanistan aussi. Donc, ce que vous voyez réellement à l'écran, c'est que dans ce cas, c'est ce qui va être enregistré dans
la base de données maintenant. Tu n'as pas toujours à faire ça. Ces valeurs peuvent être différentes de ce que vous avez dit ici, si vous avez une sorte de, vous savez, comme si je pouvais rendre tous les pays plus bas que pour une raison quelconque, je voulais le faire. Tu sais que c'est peut-être une chose qui a du sens. Pour que je puisse le faire. Mais je ne l'ai pas fait dans ce cas. Donc, encore une fois, nous avons fait une boucle, et c'est ce qui crée notre liste réelle. Voici cette panoplie de pays et de faire une boucle à travers cela pour créer cela. Et puis nous fermons notre pour chaque boucle en gros plan notre tag select, et cela nous donne notre boîte de sélection ici. Et puis la dernière est notre section de commentaires. C' est donc une zone de texte. Donc, ce sont des classes de zone de texte égales à la zone de texte. Le nom est égal à commentaire, et nous avons notre espace réservé pour entrer vos commentaires ici, puis une chose sur
les zones de texte qui est différente de certaines de ces autres,
comme les champs de saisie, est qu'ils ne sont pas auto fermeture. Donc, vous avez en fait une balise de zone de texte de fermeture, et la raison en est que vous pouvez réellement écrire au lieu d'utiliser un espace réservé, vous pouvez écrire du texte par défaut et cela aurait effectivement du texte par défaut ici. La différence entre les espaces réservés que vous voyez l'espace réservé, je peux juste commencer à taper. Où est le texte par défaut ? Je dois que je devrais effectivement copier ce texte et le supprimer ici serait le
texte réel qui est dans la boîte. Tout ce que vous mettez entre ces deux-là. Donc dans ce cas, nous allons laisser un vide et utiliser l'espace réservé. Droit ? Donc, c'est le HTML peut être familier avec cela. Peut-être pas. Pas tout à fait sûr, mais juste une sorte de marche à travers elle pour que vous puissiez concevoir ce que c'est. C' est probablement la chose la plus nuancée. C' est les cases à cocher ici et faire cette partie ici ? Alors faites attention à ça. Alors allons-y et laissez-moi. On dirait que j'ai accidentellement fermé de l'argent. PHP. Mon administrateur m'a glissé en quelque sorte dans ça. Tu n'as plus besoin de ça. Et alors allez à PHP. Mon administrateur et nous allons entrer dans nos formulaires. La base de données va entrer dans notre table d'utilisateurs. Nous allons aller à la structure et vous verrez que j'ai créé d'autres colonnes ici. Maintenant, comment faites-vous ça ? Vous voyez ici, quand vous êtes sous structure,
vous voyez, vous voyez, il dit ajouter une colonne, puis à la fin de la table au début de la table. Ou vous pouvez spécifier après une colonne existante spécifique. Donc, je viens d'ajouter quatre colonnes à la fin de la table. Donc, avant que nous venons d'avoir je d nom et e-mail. Et puis j'ai ajouté les quatre colonnes fréquence, intérêt, pays et commentaire. Et donc si je frappe aller ici, ça amènerait là où je peux faire ça. Maintenant, je ne vais pas en fait, je ne sais pas si ça le fera vraiment, oui. Je n'ai pas sélectionné de choses qui ne les ont pas réellement ajoutées, mais c'est à ça que ça ressemble à nouveau pour celles-ci. C' est, vous savez qui discute probablement de ce que c'est exactement. Vous avez juste un peu de chance avec votre je veux dire, Dieu ou quoi ? Vous savez, en ce qui concerne le type de structure à utiliser ici pour la fréquence qu'ils ont utilisé de minuscules textes parce que ce sera soit hebdomadaire ou quotidienne. Je sais comment mot maney laisser des lettres ou des caractères. Ça va être ça va être cinq ou six caractères, donc je n'ai pas besoin de créer un grand, énorme type de bloc ici pour pouvoir stocker ces données. Je sais que ce sera petit et minuscule Texas qui prévoit de le tenir,
donc j'utilise un petit texte ici pour les intérêts. Je veux dire, dans ce cas, on n'en a qu'une poignée, mais on va la sérialiser. On en parlera dans une seconde, donc ça fait un peu plus longtemps. Et puis, vous savez, vous pourriez ajouter n'importe quel nombre de blessés. J' ai vu des formulaires qui ont, genre, 30 ou 40 pas d'intérêt que quelqu'un peut vérifier. Donc, il le fait. Je suis allé avec Bar Char et j'ai mis 2 55 Um, c'est probablement plus grand que ce que tu finiras avec. Mais je voudrais juste, vous savez, encore une fois, cela pourrait être utilisé de plusieurs façons différentes. Et ce bloc d'intérêt est quelque chose qui pourrait être, euh, vous savez, il pourrait être utilisé. Il pourrait s'agir d'un certain nombre d'intérêts différents, alors je voulais juste rendre compte de ce pays. Est-ce que le graphique à la barre à 55 ? Je pourrais probablement réduire cela parce que nous savons que nous pouvons regarder notre liste et voir quel est le
nombre maximum de caractères dans notre liste, et donc nous pouvons avoir une bonne idée de ce dont nous avons besoin ici. Hum, mais tu sais, il y a quelqu'un de long. Il y a des noms un peu plus longs dans les cheveux, et c'est juste une sorte de norme comme chose par défaut pour moi. Donc, je suis juste allé avec ça. Tu pourrais. Tu pourrais t'embêter un peu avec ça. Je ne pense pas que c'est trop gros pour quelque chose comme ça. Tu sais, on ne stocke pas seulement des millions et des millions d'enregistrements et d'énormes morceaux de données,
donc je ne sais pas à quel point ça va faire la différence. Mais si vous voulez vraiment être conscient de la performance, vous pourriez vraiment resserrer cela un peu et ensuite commenter. J' ai mis un texto. Donc je pense que c'est probablement assez standard. Le texte est en quelque sorte. C' est assez grand pour prendre un bon morceau de texte. Mais tu ne vas pas écrire comme un mot complet. Pas de 10 000 mots WordPress blawg messages ou quelque chose dans. Et je ne veux pas vraiment que les gens soumettent cela dans ce bloc de commentaires de toute façon, donc la technologie semblait être un médium heureux pour moi là-bas, donc ce sont eux. Je veux dire, c'est tout ce que j'ai dit. Je n'ai rien mis d'autre pour le reste. Mais c' est la base de données. C' est là que nous allons stocker à nouveau les noms de colonnes ou les intérêts de fréquence, pays et les commentaires. Nous allons parcourir, alors vous pouvez voir que c'est vide en ce moment. Donc nous revenons ici, alors ce que nous allons faire c'est que nous allons juste lier ces nouveaux champs à partir du formulaire dans la base de données. Hum, donc beaucoup de choses en haut sont les mêmes. Donc, je n'ai pas changé le hachage ou tout ce genre de choses. La seule chose que j'ai vraiment fait est juste d'ajouter ce que nous avions besoin d'ajouter dans ces nouveaux champs. Donc, vous pouvez voir maintenant à la place, il suffit de filtrer le nom et le filtre e-mail. J' ai ces 33 supplémentaires ici, qui ou fréquence, pays et commentaire. Et nous utilisons le filtre var et tous ces filtres à air désinfectés chaîne parce que ce sont tous finalement bizarres. Maintenant, vous pourriez dire Ok, eh bien, les pays ont déjà rempli ce droit ? Nous sommes en train de spécifier ce que c'est. Pourquoi avons-nous besoin de les désinfecter ? Encore une fois, il est possible pour quelqu'un de soumettre ce formulaire. Ah, d'une certaine façon, ne pas utiliser ce formulaire essentiellement et donc nous devons toujours supposer que les données avec lesquelles nous travaillons sont sales d'une manière ou d'une autre. Donc, nous supposons toujours,
vous savez, que vous ne supposez jamais de données propres à partir de n'importe quel type d'entrée utilisateur. Même si vous spécifiez ce qu'ils peuvent mettre dans un champ de formulaire particulier, il y a toujours du gaspillage pour les pirates de contourner cela. Et vous ne voulez certainement pas que ce soit votre ligne principale et votre défense. Donc on va encore désinfecter les choses. Donc, encore une fois, la fréquence est quotidienne ou hebdomadaire. Donc c'est une chaîne de l'air du pays. Toutes les cordes. Le commentaire est une chaîne, donc j'utilise juste le filtre Santa Charlie enfilant ici. Il peut y avoir de nouveaux désirs que vous pourriez examiner à nouveau pour les différents champs. Vous savez, allez à cette entrée de filtre Ah ah, fonction et PHP et regardé à travers les différents filtres. Le lien existe pour les différents types de filtres. Et voyez si quelque chose est un peu plus logique pour les données que vous collectez. Mais dans ce cas, je veux juste désinfecter la souche. Une autre chose que je veux mentionner ici, c'est vous remarquerez que c'est un peu verbeux. Je regarde littéralement chaque, euh je cours tout le monde en quelque sorte manuellement, dans un sens, à travers le filtre var Il y a des moyens là-bas pour vous de le faire un peu plus programme et en fait boucle à travers le tableau et faites-le ou vous certaines des fonctions de tableau qui sont là pour le faire. Donc vous n'avez pas à, hum, tout de suite chacun. Comme je l'ai mentionné précédemment, j'ai décidé dans ce tutoriel d'être un peu plus d'elle, fois parce que j'ai trouvé quand je commence à obtenir super concis avec les choses, gens qui sont nouveaux à coder 10 toe, qui a tendance à être un peu déroutant. Et parfois je pense que c'est la seule façon de faire les choses. Et donc je veux juste te montrer la façon vraiment verbeuse de le faire. Et puis, au fur et à mesure que
vous gagnerez de l'expérience, vous verrez comment vous pouvez rendre cela plus concis. Maintenant, juste pour ceux d'entre vous qui regardent ça, qui peut-être un peu plus longtemps et ils sont comme, je veux vraiment rendre ça concis. Ce que vous voudriez, c'est cette fonction ici filtre import array. Donc, si nous venons ici, vous verrez qu'il faut un type, Et dans ce cas, nous ferions entrée Post. Donc, ce serait de notre savoir, d'utiliser notre tableau post. On peut définir des arguments,
Will. On peut définir des arguments, Regarde cette seconde annonce vide. Je ne sais pas. C' est fondamentalement si M. Key est manquant, voulez-vous ajouter knoll à cela,
hum, hum, peut ou ne peut pas s'appliquer à ce que vous faites, mais vous pouvez voir ici que c'est simuler quelques données de post. Très bien, donc c'est un taux de poste a produit I d composant, etcetera, ici dans notre bloc d'oeufs, qui est ce que nous passons dans notre deuxième paramètre ici pour filtrer le tableau d'entrée. C' est donc notre paramètre de définition ici. Hum, ce que nous créons est un tableau, et nous spécifions, pour chaque clé disait utiliser ce filtre. Donc, si un produit que j'utilise ce filtre pour la clé de composant utilisé ces filtres avec des drapeaux et des options pour les versions. Utilisez ce filtre afin que vous puissiez passer par cela et vous pouvez dire OK pour chacun de ces éléments
Elka dans mon tableau Ah, vous spécifiez ce que Ah, quel filtre vous voulez utiliser et utiliser l'entrée de filtre. Arrangement dit avoir fait ça pour les deux comme ça. Mais encore une fois, je voulais juste le garder un peu verbeux, afin que vous puissiez voir comment les choses progressent, mais pour le rendre plus concis tableaux d'entrée de filtre, ce que vous cherchez maintenant, le seul type de exception à tout cela est celle appelée Array. Il y a le domaine de la clé appelée intérêts. Et là encore, j'ai extrait tout ça ici. Je suppose que je ne l'ai pas mentionné, mais ceux-ci ont été extraits. Donc, ce sont tous maintenant comme, euh, très variables. Donc, les clés ont été transformées en variables. Mais avec celui-ci, parce que la valeur réelle encore que Ah, et nous avons l'imageur, est-ce
pas ? Si nous nous souvenons de notre tableau de post, nous aurons l'imageur. Laissez-moi juste imprimer ce retour très rapidement pour que nous puissions regarder cela parce que c'est un peu important orteil sous support. Comment ça va se réunir. Bon, alors allons-y et vérifions tout ça. Soumettons-nous ça. Encore une fois, nous avons la clé de nos intérêts ici et c'est un tableau. La chose dont nous avons vraiment besoin, c'est la clé, ça, celle dont nous n'avons pas besoin. On va complètement jeter ça parce que c'est juste là. Donc ça, parce que c'est comme ça que le formulaire fonctionne va apparaître ici. Mais ce que nous avons réellement besoin de l'intérêt dont nous avons besoin est PHP et HTML. C' est ce que nous voulons les données. Et c'est ce qu'il faut désinfecter ici et encore. On va juste complètement dissoutes. Jeter ceux-ci ici. On n'en a pas besoin. Donc, ce que nous faisons ici, c'est que nous faisons réellement un pour chaque boucle sur notre tableau d'intérêts, mais nous lançons une clé de rayon dessus en premier. Donc, fondamentalement, ce que ça va faire, c'est ça. Lorsque vous exécutez une touche de rayon sur un tableau, il va prendre toutes les clés et créer un nouveau rayon de seulement les clés. Donc, c'est en fait ce que nous sommes en boucle ici quand nous avons bouclé ici, c'est un tableau des clés, pas ce tableau réel ici quand cela fondamentalement juste là jette juste les
louent et nous donne un tableau de ce dont nous avons vraiment besoin. Donc, pour chaque clé de tableau comme un intérêt, alors nous allons créer un nouveau tableau appelé Intérêts de filtre. Et nous allons exécuter chacune de ces clés à travers le filtre de notre parce que rappelez-vous la chose, les attributs, Ce que nous avons réellement besoin de notre formulaire est ce qui est finalement tombé dans la clé. C' est ce que nous devons filtrer, parce que c'est ce que nous allons stocker dans notre base de données. Donc on va filtrer chaque intéressant. Nous allons juste utiliser filtre, désinfecter la chaîne, et ils seront sauvés dans ce nouvel intérêt de filtre d'appel de tableau. Donc encore une fois, juste pour vous montrer à quoi cela ressemble, nous venons ici et nous faisons une impression sont sur les intérêts filtrants. Après avoir fait tout ce filtrage, nous rechargeons cette trame, vous pouvez voir maintenant ce que nous avons ici est un tableau, et il a PHP à chaque fois. Ellen CSS C'est un tableau indexé avec nos intérêts. Et ces ceux-là que nous avions sont complètement partis. Donc c'est ce que nous allons réellement insérer dans notre base de données, accord ? A partir de là, le reste est vraiment, vraiment assez simple, assez similaire à ce que nous avons fait auparavant. Donc, ici, nous vérifions si nos filtres d'e-mail sont à nouveau définis sur false, comme nous l'avons fait auparavant. Nous nous connectons à notre base de données comme avant. Mais maintenant, nous changeons notre déclaration préparée. Nous ajoutons la rareté, intérêt, pays et les commentaires ont été ajoutés dans les espaces réservés mawr pour faire correspondre les nouveaux champs dans lesquels nous allons insérer des données, nous avons ajouté quatre désignations de type supplémentaires. Ils sont tous à nouveau des chaînes parce qu'on va sérialiser notre tableau d'intérêts ici dans une seconde. Et puis nous passons le filtre,
le nom, le
filtre, l'
email, email, fréquence du
filtre. Nous allons parler de la sérialisée dans la seconde, mais filtrer les intérêts filtre pays et filtre commentaire. Donc, fondamentalement, tout ce que nous avons fait est que nous venons d'ajouter au code que nous avions déjà les colonnes
supplémentaires, les champs supplémentaires dans lesquels nous allons soumettre des données et les correspondre maintenant sérialiser ici cette fonction PHP. Si vous n'êtes pas familier, vous ne pouvez pas prendre un tableau et simplement l'insérer dans une base de données. OK, il y a ça. Ce type de données dans ma suite n'existe pas. Donc, si vous voulez, il y a deux façons de gérer ça. Vous m'avez peut-être entendu parler de relations, tables avant. Dans certains cas, cela a du sens. Dans ce cas particulier, je ne sais pas si c'est nécessairement le cas. Donc, si vous voulez juste le sauvegarder d'une manière simple, ce que vous pouvez faire, c'est sérialiser. Et essentiellement, ce que fait la sérialisation, c'est qu'elle prend ce tableau et le met dans une chaîne. Mais c'est une chaîne qui est conçue d'une manière particulière, sorte que lorsque nous extrayons les données de la base de données, nous pouvons utiliser une fonction appelée un serialize et qui la reprendra d'une chaîne dans un tableau afin que nous puissions l'utiliser comme un tableau. Ok, donc sérialisé fait juste ça pour qu'on puisse stocker dans la base de données. Et puis quand nous allons à l'affichage des données, sera mensonges non sérieux et qui se transformera en un tableau. Ok, donc c'est ce que sérialisé fait ici. C' est pour ça qu'en fin de compte, on a toutes les ficelles ici, et ensuite on va exécuter et les vêtements et tout ce qu'on a fait avant tout ça est à peu près la même chose. Maintenant, avec tout mon ex, c'est parti. Si je recharge cette trame, nous devrions obtenir des données a été inséré avec succès. Si nous venons ici et nous regardons cela, vous pouvez voir nos données ont été mises dans leur nom email tous les jours. C' est à quoi ressemble la chaîne serialize. Nos pays Algérie. Je ne dois pas laisser de commentaire. Retournons ici et faisons-le chaque semaine. Faisons html CSS nous. Et mettons quelques commentaires ici pour que vous puissiez voir que nous obtenons les données qui étaient censées avoir si faiblement. Html CSS commentaires US Années vont de l'avant. Smith que et la Corée aux utilisateurs. Et vous pouvez voir le nom e-mail hebdomadaire maintenant html CSS États-Unis et commentaires ici. Ok, donc on obtient les données qu'on devrait obtenir. Et bien sûr, si quelque chose échouait, vous obtiendrez le message d'échec comme vous l'avez fait avant. Donc, c'est un peu plus d'un type avancé de formulaire et de gestion et ainsi de suite et vous montrant les différents types de champs HTML les plus courants champs formulaire avec lesquels vous pourriez travailler et comment les traiter et les gérer en PHP et stocker dans votre base de données également. Encore une fois, c'est quelque chose sur le premier genre de passé. Tu es genre, Oh, c'est beaucoup. C' est très bien. Entrez et travaillez avec. Entrez avec le code source et travaillez avec. Peut-être regarder cette vidéo à nouveau. Et au fur et à mesure que vous le faites et que plus vous commencez à interagir avec elle , plus il devrait commencer. Ah, pour avoir du sens. Donc ça va le faire pour cette leçon. Merci d'avoir regardé. On te parlera la prochaine fois.
5. Nettoyer votre formulaire avec un fichier Fonctions: Hé, là. John Morrissey, John Morris en ligne dot com. Cette leçon, on va tout nettoyer un peu et j'ai fait allusion au fait qu'il y a des façons plus concises de le faire. Et donc je voulais en quelque sorte passer par ça et te montrer ça un peu ici dans cette leçon. Vous pouvez donc passer à l'étape suivante avec. Maintenant, en
regardant cette page toutes sortes d'avis. Maintenant, la plupart du temps, cette page est juste une sorte de html. Il y a un peu dans l'en-tête ici maintenant, mais la plupart de ce code a disparu, et nous référençons en fait quelques fonctions. Donc, créez nonce dans ce processus, méthode ou fonction ici et ainsi de suite ici au lieu de nos blocs If else, nous avons faire des messages. Donc nous avons juste un peu nettoyé et je vais vous montrer ce que nous avons fait là-bas un peu maintenant quelques choses parce que nous avons pris tout ce qui en poste ici, et nous l'avons mis à l'intérieur de
fonctions. Les et les variables à l'intérieur de ces fonctions vont fonctionner dans une portée locale . On n'a pas à s'inquiéter autant des collisions avec ces variables ici. Donc, j'ai renommé certains de ces trucs pour être probablement un peu plus proche de ce que je
le nommerais réellement . Ainsi, par
exemple, horodatage. Maintenant, au lieu de l'action de formulaire temporel est en fait la même. Et puis nous avons des pasts au lieu de hachage. Et si nous venons ici genre de mise à jour dans le formulaire. Vous voyez, c'est l'horodatage et son écho. Horodatage ici forment des actions de la même manière. Et puis nous avons des nots et des éco nonce ici. Ok, donc juste quelques changements sur ce front et entendre parler aussi comme je l'ai mentionné ont fait écho à des messages ici, et nous sommes en train de passer. Insert insert vient d'ici. On va vérifier ça,
ce genre de choses. Euh, mais ah, cela prend essentiellement la plupart du code PHP réel d'ici et l'amène seulement via l' appel de
fonction. Donc ça garde ça beaucoup plus propre. Donc c'est toute l'idée ici. Une autre chose est, quand vous remarquez ici, ont besoin une fois, puis point bas PHP. Si j'ouvre bas point PHP. Ceci a notre fichier de conflit point PHP de notre pays Et maintenant il a ce nouveau fichier que j'ai créé appelé fonction stop PHP et les fonctions dot PHP repose sur le conflit point PHP. Donc, hum, je fais major pour les appeler dans un ordre particulier, mais je suis fan de ce genre de genre. Ces Ah, ces fichiers de chargement comme ça parce que sinon chaque page que vous voulez, vous savez, mettre ceci, vous devriez vous rappeler d'exiger toutes ces choses, Alors que si vous le mettez dans une charge comme celui-ci, alors vous pouvez juste exiger ce fichier de chargement, et c'est toujours le même. Donc, euh, j'aime faire ça pour rendre les choses un peu plus faciles. Alors passons à travers ça. Donc j'ai mon besoin ici, j'ai mon temps, mais j'ai mon inaction. Et puis je passe cela à une fonction appelée create knots, et je passe dans l'action de formulaire et l'horodatage. Donc, si nous passons à ce fichier de fonctions ici, vous verrez que j'ai une fonction appelée create nonce, et il prend l'action et l'horodatage, et il fait essentiellement ce que nous avons fait avant de créer notre chaîne pour nous le hachage orteil, puis il hache en fait, et puis il retourne juste que Donc c'est exactement le même code que nous avions avant. Nous l'avons juste mis à l'intérieur d'une fonction si simple. Ah, vous avez aussi remarqué que sur tout ça je les ai enveloppés. Si la fonction existe, c'est juste vraiment une sorte de Ah, bonne habitude d'entrer dans Juste au cas où vous avez d'autres choses qui sont dans l'espace global et PHP vous pourriez rencontrer des collisions. Et donc vous exécutez ceci si la fonction existe ici et vous l'empêcherez de s'aérer au moins à ce stade, et puis vous savez en quelque sorte s'il y a, um vous savez, si quelque chose ne fonctionne pas ici, alors que vous donnera un indice que quelque chose se passe là-bas. C' est donc juste une bonne habitude d'entrer dans, vérifier si une fonction qui existe déjà avant de la créer. C' est pour ça qu'ils le font sur chacun d'eux. Ensuite, j'ai ah, cette fonction appelée, euh ,
en fait, Lett revient à simple que PHP donc créer la nonce et nous utilisons la nonce juste ici pour mettre dans notre forme. Et ça va se passer Qu'est-ce qui va remplir notre formulaire ici ? Ah, si nous regardons juste ce vrai champ est caché juste ici sont une valeur absurde que nous créons ou pas, donc nous pouvons le remplir là-bas. Donc c'est cette fonction qui crée ça pour nous ? Et puis vous voyez, si le post n'est pas vide, nous le passons pour soutenir cette méthode de processus. Donc, si nous passons à cette méthode de processus, alors c'est tout le code que nous avions avant pour réellement traiter. Ah, les données. Mais on a un peu réarrangé. Maintenant, une des choses qui est la raison pour laquelle j'aime mettre ces choses et les fonctions est parce que si vous vous souvenez, avant que nous ayons ces gros blocs de
si, sinon c'était comme ça sinon, puis un autre. Si c'était le cas, ils étaient ,
ah, un peu imbriqués, et ça devient un peu compliqué et difficile à gérer lorsque vous mettez quelque chose à l'intérieur d'une fonction. Ce qui est bien, c'est que vous pouvez réellement vérifier pour faux ou vérifier un résultat négatif comme résultat vous ne voulez pas. Et puis si vous obtenez un résultat que vous ne voulez pas, vous pouvez juste revenir. Ok, quand tu n'es pas à l'intérieur d'une fonction, tu ne peux pas vraiment faire ça comme ça. Et c'est pourquoi j'aime mettre des choses et des fonctions parce que cela change la façon dont nous
écrivons notre code et rend un peu plus efficace. Donc la première chose que je peux faire ici maintenant à cause de cela est que je peux vérifier les noeuds parce que c'est en fait ce que je veux faire en premier. Je ne veux vraiment rien faire d'autre à moins de vérifier les noeuds. Ah, où est avant qu'on ait dû faire des trucs pour faire ça, et on a dû l'envelopper dans ces gros blocs. On peut juste vérifier la nonce tout de suite. Donc, nous appelons cette fonction verify nonce ici, et nous passons dans le nonce que nous avons obtenu à partir du formulaire HTML. Alors rappelez-vous encore où nous avons nonce ici qui va être soumis dans le cadre de nos données de
poste. Donc, nous passons que nous passons post ici et ensuite en utilisant cette variable. Donc c'est notre post nonce. C' est ce qui a été soumis. Um, par notre forme sont formés action de notre poste dans les horodatages. Donc ces champs cachés sont ici, et on n'a pas besoin de le faire. On n'a pas besoin d'orteils, vous savez, vérifier quoi que ce soit en termes de sécurité ou ce genre de choses. Parce qu'on ne le fait pas, on ne fait que les hacher, et on va le refaire et vérifier le hachage. Donc, si quelqu'un passe dans des trucs funky,
ça veut dire que les hachages que je vais travailler. Donc on a passé ça pour vérifier Nonce. Si nous regardons vérifier nonce ici, ce qu'il fait est qu'il prend l'action dans le temps juste ici, et il utilise create nonce pour recréer le nonce basé sur ce qui a été soumis par le formulaire pour créer notre hachage re créateur. Et puis il vérifie que par rapport à celui qui a été passé par le formulaire. Ok, donc on a exactement ce qu'on faisait avant, on l'a maintenant dans les fonctions. Et donc si cela retourne false que nous allons retourner false ici, et aucun du reste de ce code ne sera traité parce que nous sommes revenus ici Ok, donc c'est ce qui est bien, c'est que vous pouvez faire comme, vous pouvez faire une série de vérifie et renvoyez juste false si vous n'obtenez pas ce que vous voulez . Et puis une fois que vous avez fait toutes ces vérifications, vous pouvez alors simplement exécuter votre code. Tu n'as pas à tout envelopper dans ces gros blocs de feutres. D' accord, la prochaine, donc nous avons vérifié que ce n'est pas la prochaine dans laquelle nous allons entrer. Nous allons vérifier valider notre email parce que c'est le prochain Si notre e-mail est invalide, nous ne voulons pas que nous ne voulons pas la soumission. Donc vraiment, la même idée que nous dirigeons notre poste. Notre email qui a été soumis dans notre formulaire via filtre valide un email. Si c'est faux, nous allons retourner faux et juste un peu tuer le script à ce stade. Très bien, donc une fois qu'on aura ces deux types de vérifications du Maine, on le fait à ce stade ou à des validations après ça. Maintenant, on peut vérifier. Nous pouvons commencer à normaliser nos données afin de pouvoir les insérer dans notre base de données. Vous vous souvenez que j'ai parlé correctement ? Euh, moins un peu avant sur la façon dont vous pouvez utiliser le filtre, tableau
d'entrée ou, dans ce cas, tableau de
filtre var pour filtrer à travers les données d'une variable ou une entrée comme le post super global. Pour obtenir super global etcetera, vous n'avez pas besoin d'écrire chaque filtre de notre ligne. Eh bien, c'est un exemple de ça. On peut le faire ici. Ah, maintenant dedans. Et c'est un peu plus simple. Donc, comme je l'ai dit, vous avez créé notre tableau d'oeufs et pour chacune des clés que de votre post Ray que vous voulez filtre orteil, vous pouvez les mettre ici. Donc le Père Noël serré. Ah, nom, fréquence, pays et commentaire. Et on va les faire passer à travers la chaîne de désinfection. Maintenant, vous remarquez que nous n'avons pas d'e-mail et que nous n'avons pas d'intérêt. Nous n'avons pas d'e-mail parce que nous avons déjà envoyé des e-mails ici. Nous avons déjà filtré notre et nous l'avons validé. Donc cela a déjà été filtré, donc nous n'avons pas besoin de nous en soucier. Donc nous le faisons. Nous ne le faisons pas ici et aussi pour les filtres d'intérêt, nous devons faire des choses spéciales avec l'intérêt. On en a parlé avant, donc on ne va pas s'inquiéter ici aussi. Donc, nous créons ce tableau et nous disons à notre filtre notre fonction, quels filtres ? Nous voulons courir pour chaque clé que nous voulons désinfecter ici. Et puis on passe ça dans le filtre de notre race. Nous avons transmis nos données de poste et nous avons transmis nos arts. Et essentiellement, ce qui va faire, c'est que ça va faire correspondre ce que nous avons spécifié ici dans nos oeufs avec ce qu' il trouve dans les poteaux. Exécutez-le à travers ce filtre de désinfection ah, puis retournez le tableau en tant que post de filtre. Donc, ce post de filtre ici est sur Lee va contenir le nom, fréquence, pays
et le commentaire, et tout va avoir été désinfecté. Ok, donc c'est juste une façon un peu plus efficace de le faire. Donc, à ce stade, nous avons filtre l'e-mail. Nous avons le nom du filtre, la fréquence, le pays et les commentaires. Nous avons cinq des six Ah dont nous avons besoin. Notre dernier dont nous avons besoin, c'est l'intérêt du filtre. Et donc, si vous vous souvenez, nous avons un orteil, nous devons faire une boucle à travers notre Ah, ce tableau. Et on va se débarrasser de ceux qui étaient dedans, et on va prendre les clés et tout ce qu'on a fait avant. C' est essentiellement ce qu'on fait ici. Une chose que nous ajoutons est ce chèque. Donc, si l'intérêt de poste n'est pas vide, car une chose qui se produira est que si vous soumettez ce formulaire sans aucun de ces cochés , vous avez peut-être remarqué ceci. Si vous soumettez ce formulaire et que vous ne vérifiez rien de cela, vous auriez eu une erreur en disant que pour chaque clé attendue ou en fait est une clé de rayon s'attendait à ce que ce soit un tableau et je pense savoir ce qui est donné ou quelque chose comme ça. Donc, ça traite de ça. Il est dit que si ce n'est pas vide, alors on va le traverser. Sinon, s'il est vide, on va juste le mettre à une valeur vide, ok ? Et puis ça va juste être vide dans notre base de données parce que nous n'
avons rien prévu pour ça, ce
qui est ce que nous faisons ici. Mais si c'est le
cas, s'il y a des données, alors on va faire une boucle et faire exactement ce qu'on a fait avant. On va avoir un râteau, soulager les intérêts. Et puis on va les faire passer à travers le filtre var et créer un nouveau tableau de juste les clés juste ici. Et puis ici étaient en fait sérialiser ici. La raison pour laquelle on le fait ici au lieu d'ici. Maintenant, vous voyez, nous ne le sérialisons pas. Notre cram d'achat est plus à cause de cela, parce que si nous l'avons sérialisé ici et qu'il était vide, cela met en quelque sorte des caractères bizarres dans la base de données, et nous ne voulons pas cela. On veut juste qu'il soit vide. Donc nous le sérialisons ici maintenant, et nous ne le sérialisons que si c'est en fait des données Ray. Sinon, on va juste soumettre en blanc juste ici, à partir de là. Ce truc est à peu près pareil. Nouvelle instance de mon école. Je suis prêt. La déclaration est exactement la même. Ils achètent des cram. Notre type s'identifie avec le même. La seule chose qui est vraiment différente ici est maintenant que nous allons utiliser réellement notre post de filtre de
tableau parce que, ah, si vous essayez d'extraire un post de filtre ici, cela ne fonctionne pas. Et donc, et ce n'est pas forcément Ah, je dirais la meilleure façon de faire les choses dans ce cas. Hum et ainsi et nous là-bas, c'est vraiment seulement la commodité que nous l'utilisions à ce stade toute façon, donc, euh, avant que nous soyons en quelque sorte en train de le faire parce que nous utilisons ces données et différentes façons de exécuter à travers la barre de filtre. Nous pourrions encore avoir à utiliser le tableau réel, mais c'était un peu plus pratique. Mais ici, euh, tu sais, ça ne marche pas, et ce n'est pas vraiment nécessaire. Donc on va juste utiliser le message de filtre réel. Souviens-toi, ça vient d'ici. Après avoir parcouru un filtre de notre chemin pour un nom que notre email, nous nous sommes souvenus ici. C' est de là que ça vient. Filtre, Filtre fréquence
Post Intérêt était un autre spécial post post pays commentaire. Ok, donc c'est ça qui change un peu pour transmettre ces données là-dedans, mais c'est très bien aussi. Et puis nous allons exécuter notre instruction d'exécution et, euh, enregistrer le résultat de ce qui est soit vrai ou faux comme insert. On va fermer nos connexions, et ensuite on retournera des inserts. Donc, si vous regardez cet insert ou cette méthode, essentiellement cette fonction pourrait retourner false, false et ensuite visiter false ici. Donc trois faux sont et un vrai. Il ne retournera vrai que si les données vont et soumettent réellement tout le chemin à travers la base de données, quoi que ce soit de moins, il va à peu près revenir. Faux. Et rappelez-vous, sur notre simple que PHP sauvegardait le résultat du processus, qui est ceci que c'est la fonction avec laquelle nous travaillons ici est processus. Nous allons enregistrer le résultat de cela comme insert. Donc cet insert va être, ah non plus vrai. Si tout se soumet ou quoi que ce soit de moins, ce sera faux. Et puis nous transmettons cela dans nos messages do ici parce que nous avons besoin de savoir quel était le résultat de la requête pour faire nos messages. Donc, nous retournons faire des messages. C' est fondamentalement ce que nous avons exactement la même chose que nous avions avant, sauf qu'il est mis en fonction ici. Une des choses peut-être plus nuancées de ceci est que nous avons insert et il est par défaut toe knoll . Donc, c'est essentiellement comme ça que c'est en ce moment. n'y a rien dans l'insert n'est même pas défini, juste, donc ce n'est pas réglé ou quelque chose comme ça. Et donc si c'est si l'insert juste ici n'a pas été exécuté, nous essayons de lancer insert ici que c'est fondamentalement que rien n'est passé. Et cela va exécuter cette valeur par défaut, qui est fondamentalement le définir sur Knoll. Et donc la première chose que nous vérifions pour voir, c'est si c'est non. Si c'est non, on va revenir parce qu'on ne le fait pas, il n'y a rien soumis. Ce n'est que la première vue du formulaire, donc il n'y a pas de message à afficher. Donc, ah, si c'est fondamentalement pas savoir qu'il ne reviendra pas, et alors nous pouvons construire notre message et
si, si c'est basé sur, si c'est vrai ou faux. Donc, si c'est vrai, nous allons jouer le message de succès faux, nous allons afficher leur message. Donc encore une fois, c'est la plupart, eh bien, peu près tout ce code. Vraiment. J' ai juste copié et mis dans des fonctions et l'ai changé un peu, donc pour le faire fonctionner à l'intérieur d'une fonction et c'est celui que j'ai le plus foiré
pour le faire. Mais j'ai traversé pourquoi et comment j'ai fait ça. Donc nous revenons ici et nous allons à notre post sur nous juste vérifier quelques données ici. Nous pouvons frapper, soumettre des données a été inséré avec succès. Et si nous allons par ici, vous verrez qu'il y a nos données ici. Ok, donc c'est juste nettoyer un peu pour que cette page soit plus propre. Il n'a pas de gros morceaux de code. C' est un peu plus efficace. Un peu plus réutilisable et ainsi de suite. Il y a probablement d'autres choses que nous pourrions faire ici, mais je pense que pour ce que nous faisons ici, c'est probablement suffisant, évidemment. Vous savez, si vous l'utilisez et que vous l'utilisez encore et encore, vous pourriez développer des choses qui le rendent un peu plus facile pour vous. Mais dans l'ensemble, assez propre à ce stade. Très bien, ça va le faire pour cette leçon. Merci d'avoir regardé. On parlera à la prochaine fois.
6. Comment afficher vos données: Hé là, John Morris ici. John Morris, colonne de points
en ligne. Cette leçon. Nous allons parler de l'affichage de nos données de notre base de données. Alors voyez, ici
sur le côté droit, j'ai une sorte de petite table d'affichage ici des données que nous avons dans notre base de données. Viens ici à notre base de données. Vous pouvez voir les données ici reflètent ce qu'on obtient sur notre site, et donc je vais vous montrer comment on fait ça. Je vais aussi parler un peu de la partie sécurité de tout ça. Donc, la première chose que j'ai ajouté une fonction ici dans notre fichier de fonctions. C' est en fait la partie sécurité de tout ça. C' est une fonction. C' est le soulignement. E signifie essentiellement écho. Et fondamentalement, ce que cela fait est qu'il exécute vous passez une chaîne en Iran cette chaîne à travers des entités HTML avec ces drapeaux donc et les guillemets va échapper à la fois simple et double guillemets. Et h t ent html cinq va afficher le code en HTML cinq. Donc, et ,
ah, le caractère défini ici pour ça est utf 8, que nous
utilisons ici. Alors ? Donc, je dirais une chose assez standard. à faire ici. , L' idée de base,c'est que tu verras ici, juste là. Ce script de travail. Laissez-moi recharger cette page. Maintenant, si je ne faisais pas la désinfection que je faisais sur le front end en échappant que je fais sur le backend ici, alors ceci Quand nous avons chargé cette page, ce code fonctionnerait réellement. D' accord ? Et si nous avons ah, voir la source de trame ici très rapidement, vous pouvez voir la raison pour laquelle ce n'est pas parce que c'est en fait tous les huit. Les caractères spéciaux et ainsi de suite ont été transformés en entités HTML. Donc, c'est ainsi qu'ils sont réellement imprimés sur le code dans le code source de sorte que quand ils s' affichent, ils se répartissent comme ça au lieu de comme, par
exemple, ce javascript n'affiche pas et ne rend pas et traite comme javascript. Si vous deviez l'écrire dans votre code source serait Okay, donc c'est essentiellement comme ça que vous traitez avec les attaques de script inter-site à nouveau. On est aussi comme je l'ai mentionné faire de la désinfection à l'avant. Donc ça en fait partie. Nous faisons également échapper sur le back-end qui continue nous donne une autre couche. Ces deux couches ensemble aideront à empêcher ce genre de chose aider les gens à
empêcher les gens d'être en mesure d'injecter du javascript dans vos applications et d'avoir un processus lorsque vous affichez vos données. C' est donc la fonction que j'ai ajoutée ici. Et c'est vraiment la partie sécurité de toute cette partie de ce truc. À partir de là, nous pouvons juste entrer dans la façon dont nous obtenons réellement les données. Donc, nous avons à nouveau notre besoin une fois pour notre charge, nous avons notre type standard d'en-tête html. Ici. J' ai fait un style de corps en fait rendu celui-ci un peu plus large. Vous vous souvenez de notre forme, c'était des regards, je pense, 500 pixels. J' ai juste fait un style en ligne ici pour rendre ça un peu plus blanc. Probablement, vous savez, pas nécessairement la meilleure chose à faire. Elle pourrait peut-être aller, euh, vous savez, donner à ce corps un cours sur le planquage. Quoi qu'il en soit, je ne voulais pas passer par ça. Ah, juste pour ce but est donc j'ai juste fait un peu plus large là-bas, et ensuite nous entrons dans notre code réel pour sélectionner dans notre base de données. Donc, euh, on se connecte à la base de données, donc on savait ,
par exemple ,
mon école, comme on l'a fait. Donc, notre passe utilisateur hôte et nom de base de données, puis nous ici parce que nous sélectionnons toutes les données d'une table particulière et il n'y a pas de données entrées utilisateur lors de l'exécution de cette requête. En fait, nous exécutons juste cet orteil la méthode de requête. Maintenant, si l'utilisateur saisit les données, vous voudriez utiliser des instructions
préparées, préparées, comme nous l'avons fait dans le passé. Donc, dans ce cas particulier, parce que nous ne sommes pas, je suis juste présente cette année. Mais si vous deviez dire, Supposons que vous voulez afficher les données d'un utilisateur particulier afin que vous ayez peut-être fait quelque chose comme cet utilisateur. Je suis égal, disons juste un, je pense qu'un. Si nous regardons nos bases de données là-dedans, si oui, disons que nous voulions le faire maintenant, instant, nous ne traitons pas, donc ça ne va rien faire, mais vous voudrez peut-être faire quelque chose comme où je suis égal. Et puis, vous savez, dans le passé, vous pourriez vraiment obtenir et obtenir cet utilisateur. J' aime ça. D' accord. Eh bien, ce n'est vraiment pas sûr et sûr parce que les données dans les U. R L n'importe qui peut aller là-bas et changer ça. Donc ce que tu ferais c'est que, comme nous l'avons fait, tu mettrais un détenteur de place, et ce serait ma suite. Préparez à la place de la requête et puis ici, et nous ferions effectivement cette déclaration ah, déclaration, et puis nous faisons la déclaration Paramus aveugle. Et dans ce cas, ce serait un imageur, et on utiliserait que je n'en ferai pas. Je veux dire, vous voudriez toujours filtrer ceci et des trucs comme nous l'avons fait potentiellement en fonction
de ce que les données ne vont pas faire tout cela ici juste pour vous montrer si vite. Donc nous allons faire notre paramètre d'achat sur et la vapeur et exécuter ce qui ferait fonctionner genre de, Ah, qui exécuterait cette déclaration. Alors je pense que tu dois courir comme, obtenir des résultats. Um, pour obtenir le résultat, et ensuite vous le traverseriez comme ça, mais vous le feriez. Le point est, est-ce que vous utiliseriez des instructions préparées comme vous l'avez ici. D' accord. Donc, vous ne voulez pas si vous voulez faire quelque chose comme ça, vous ne voulez pas oui. Vous injectez les données que vous ne voulez pas vous ouvrir à l'injection SQL. D' accord, mais encore une fois ,
parce que dans ce cas, on ne fait pas ça. Nous sommes juste en train d'effacer pour tous les utilisateurs. Alors nous sommes bien de faire ce que nous faisons ici si bien n'avait pas recharger ça. Assurez-vous que tout va bien ici. Et alors, une fois que nous avons nos données, alors avez notre queer ici et nous avons nos données. Ensuite, nous allons lancer une boucle while et nous allons le faire, Donc c'est un peu délicat ici,
mais ah, ce que nous faisons ici, c'est quand vous exécutez cette requête et c'est la même chose. C' est pourquoi quand je suis arrivé à ce point dans, ah, avec les déclarations préparées, j'ai dû réfléchir un peu, et je ne voulais pas enliser le tutoriel, mais cela renvoie en fait une ressource, D' accord ? Il ne retourne pas le tableau réel de données si vous venez ici et que vous imprimez. Cette ressource n'est pas le tableau de données que vous pensez que vous pourriez obtenir Okay. Tu vois, il dit mon objet de résultat attribué. C' est son champ actuel. Innombrables. Comme si ce ne sont pas les données que cela vous dit juste sur les données Ok. Donc, lorsque vous exécutez une requête, utilisiez des instructions préparées ou quoi que ce que vous récupérez réellement est cet objet de
ressource. Alors tu dois le faire. C' est essentiellement ma suite qui vous dit Hey, c'est à quoi ressemblent les données. C' est là que vous pouvez trouver les données. C' est là que vous devez aller le chercher. Hey, eh bien, alors tu dois aller le chercher. Et si vous courez, récupérez, objet comme
ça, ça va aller chercher une sorte de première rangée. Et c'est tout ce que tu vas récupérer. C' est la première rangée ? Eh bien, nous voulons toutes les rangées. Donc ce qu'on va faire, c'est qu'on va faire une boucle pendant un certain temps et qu'on va faire une boucle. Ah, et on va chercher chaque rangée. Et nous définissons ro égal au résultat de l'objet fetch. Donc, nous sommes essentiellement ce que nous faisons, c'est que nous traversons chaque ligne Ah, dans nos résultats, que ici et nous allons le chercher et le chercher comme un objet. Donc, nous allons récupérer un objet, et nous stockons cela comme un élément dans notre tableau. D' accord. Et puis nous sommes une ligne dans notre tableau, et puis nous prenons chaque ligne, et nous la mettons dans ce tableau de résultats. Ok, donc si nous imprimons nos résultats maintenant, après avoir fait ça,
alors ce que nous obtenons est ce que vous attendiez. Hum, et oui. Tu vois, maintenant, c'est parce
que je ne me souviens pas que je n'ai pas échappé aux données là-dedans. Je l'imprime juste cru. C' est pourquoi j'ai obtenu le JavaScript à traiter. Encore une fois, C'est pourquoi échapper à la sortie est important. Donc, vous pouvez voir ici nous avons un tableau, et à l'intérieur de
chaque ligne est un objet. Ce sont les données que vous attendez normalement à récupérer. Ok, donc c'est ce que ça fait. Pour être honnête avec vous, il n'a même pas vraiment d'importance si vous comprenez cela nécessairement parce que vous à peu près toutes les données où vous attendez à obtenir quelque chose de retour où vous faites une
déclaration select . Essentiellement, tu vas devoir le faire, et c'est vraiment à peu près le même code à chaque fois. Donc écrivez ce cône ou utilisez ce code ou mettez-le quelque part parce que vous
allez l'utiliser encore et encore et encore. Ok, donc ça nous donne notre tableau. C' était un peu à la recherche ici. Et maintenant, nous devons construire notre table. Donc, dans notre tableau sont la section d'en-tête et notre section de pied de page ici resteront-ils les mêmes ? Donc, nous les construisons manuellement, comme vous le feriez pour n'importe quelle table ordinaire. Donc table T tête, table, ligne, en-tête
de table pour chaque élément. Je veux dire, c'est des trucs de table standard ici. C' est juste t pied que la table, ligne, en-tête
de la table pour chaque élément. Ok, donc son équipe standard de trucs de table pour la plupart des trucs ici dans le corps est là où nous devons réellement passer à travers. Et donc ici, nous faisons un quatre chacun, et nous examinons nos résultats fixés ici et pour chaque résultat. En conséquence, alors nous allons construire une rangée. Donc nous allons construire une ligne pour chaque enregistrement, et ensuite chaque cellule de cette ligne va contenir nos données qui correspondent à ce que nous mettons dans notre tête ou ainsi Nom,
email, centres d'intérêt de
fréquence, intérêt de
fréquence, observation de pays etc. D' accord. Et vous verrez que nous exécutons chacun d'entre eux à travers ce trait de soulignement e. C'est pourquoi quand j'ai imprimé ceci juste directement et j'avais ce script Java là-dedans. Il l'a fait écho. Il a en fait exécuté le JavaScript. Alors que quand je ne fais pas ça correctement, si je fais ça comme c'est, ça ne le fait pas. Il l'imprime comme ça. Encore une fois, c'est vraiment parfait. Excellent exemple de la raison pour laquelle vous devez échapper vos données lorsque vous les sortez. Et vous savez que le script Java dans ce cas est juste en alerte. Mais ce script Java pourrait être n'importe quoi, donc il pourrait faire toutes sortes de choses odieuses sur la personne qui pour la personne charge cette page. C' est pour ça que tu veux faire ça. Mais ici, nous faisons juste écho à chaque élément de notre ah de notre colonne de
notre base de données ici. Donc nom, email, fréquence, intérêt, pays commentaire. Donc c'est tout ce qu'on fait ici. Celui qui est un peu plus difficile ici est, comme nous l'avons mentionné, sorte d'avoir fait allusion à notre domaine d'intérêt parce qu'ils sont stockés dans notre base de données comme sérialisé une augmentation. Donc la première chose que nous devons faire est de ne pas sérialiser ceux maintenant j'ai tout ça ensemble, mais vous pouvez voir que j'ai des intérêts en matière de résultats ici au lieu de simplement faire écho. Je ne suis pas sérialisé au début, donc on ne le sérialise pas. Cela le transforme en un tableau. Mais nous ne pouvons toujours pas, vous savez, nous voulons qu'il soit convivial à lire. Donc on ne va pas juste imprimer le tableau. Donc, ce que nous faisons est d'utiliser implode, et donc implode fait est qu'il prend les éléments de Honore et les transforme en une chaîne en utilisant sorte de délimitation er que vous spécifiez. Et ici, nous spécifions une virgule puis un espace. Donc essentiellement, il va prendre la valeur de chaque tableau. Donc, cette chose exemple particulier l'élément un dans notre rayon était l'élément PHP à est chacun à mon élément
littéral. Zéro était PHP um que l'on était chacun à melon élément à un CSS. Il prend ces valeurs chacune d'entre elles, et il les écrase dans une chaîne. Mais c'est mettre une virgule, puis un espace entre chacun. Donc, prend fondamentalement votre pluie, transforme en une chaîne que vous pouvez alors juste écho. Et c'est ce que nous faisons ici en faisant écho à ça. Et le reste est juste un commentaire de pays standard. On fait écho à tous ces trucs. Donc c'est comme ça que nous traversons. Et nous saisissons réellement nos données, puis dans ce cas, boucle sur construire une table avec elle. , Bien
sûr, vous ne voulez pas avoir, vous savez, unité sensible aux données
utilisateur. C' est juste une grande ouverture pour le public comme ça. Et il y a toute une sorte d'autre arène dont on pourrait parler en termes d'avoir un endroit
pour se connecter, de pouvoir faire ça et tout ce genre de choses. Mais c'est juste un exemple simple de la façon dont vous entrez et attrapez ce père et le mettez dans une sorte de tableau de résultats que vous pouvez regarder. Donc c'est à peu près qu'il est simple que ce n'est pas vraiment une tonne à elle. Et encore une fois, comme je l'ai mentionné vraiment important que vous utilisiez ce Ah, les entités
html. Sinon, vous allez vous ouvrir aux gens Bajammal post toutes sortes de script Java juste un peu folly nilly sur votre site. Donc, d'accord, ça va le faire pour cette leçon. Merci d'avoir regardé. On parlera à la prochaine fois
7. Les prochaines étapes: Je suis honnête, il n'y en a plus. Donc online.com, si peu de ménage pour finir ce cours. Si vous ne l'avez pas encore fait, oubliez pas de vous diriger vers la zone de classe. Il y a une section de cours pour
certains, quelques étapes pour vous de marcher à travers pour ce cours. Assurez-vous donc de vous diriger en ce sens que c'est sous la discussion dans l'onglet Projets que vous verrez sur le cours. Aussi, si vous allez à mon profil, assurez-vous de me donner un suivi sur mon profil ici afin que vous soyez averti lorsque je sortirai de nouveaux cours. Et j'ai aussi une sorte de cours
hebdomadaire de style podcast appelé Let's Talk freelance. Donc, si vous voulez avoir une sorte d'accès à formation
continue sur le freelance, les affaires en ligne et ainsi de suite. Assurez-vous de vérifier ça. Parlons cours de freelance aussi. Et enfin, j'ai une lettre d'information quotidienne sur mon site Web à John Morris online.com. Si vous allez là-bas, vous pouvez vous inscrire à cette liste de diffusion. Vous serez également mis dans ma propre application mobile, ou vous aurez accès à plus de 78 heures de contenu
gratuit au moment de cet enregistrement lié à la freelance et ainsi de suite. Donc, si cela vous intéresse, BD sûr de vérifier cela aussi. Encore une fois, c'est John Morris online.com. D'accord. Merci d'avoir pris le cours. Si ça vous a plu, je vous apprécie pour vous. Laissez-moi un avis et nous vous verrons dans le prochain cours.