1 00:00:00,000 --> 00:00:05,040 2 00:00:05,040 --> 00:00:08,440 >> SAM Levatich: Bienvenue à section pour cette semaine. 3 00:00:08,440 --> 00:00:10,040 Je ne suis pas Andi. 4 00:00:10,040 --> 00:00:14,590 Andi est tombé malade ce jour, et je ont été en quelque sorte appelé en dernière minute 5 00:00:14,590 --> 00:00:15,700 prendre en charge. 6 00:00:15,700 --> 00:00:20,920 Il est la saison de grippe, alors assurez-vous que vous sont rester propre, se laver les mains, 7 00:00:20,920 --> 00:00:24,800 et la saine alimentation de telle sorte que vous aussi, vous n'êtes pas grabataire. 8 00:00:24,800 --> 00:00:26,870 >> Mais sans plus tarder, nous allons commencer. 9 00:00:26,870 --> 00:00:29,970 Aujourd'hui, nous allons parler à propos de PHP un peu comment bit-- 10 00:00:29,970 --> 00:00:33,900 PHP concerne HTML, comment il se rapporte à CSS, et une partie de la bande 11 00:00:33,900 --> 00:00:36,100 choses que vous avez fait sur la dernière attribution. 12 00:00:36,100 --> 00:00:37,930 Nous allons parler un peu de SQL 13 00:00:37,930 --> 00:00:41,360 et comment vous pouvez travailler avec des bases de données, qui est une composante clé de la jolie P 14 00:00:41,360 --> 00:00:43,650 mis 8-- P set 7. 15 00:00:43,650 --> 00:00:44,480 P set 7. 16 00:00:44,480 --> 00:00:48,400 >> Et puis nous allons parler un peu peu comment fonctionnent contrôleurs de vue 17 00:00:48,400 --> 00:00:54,640 et pourquoi cela est une philosophie derrière certains pages Web modernes et un design différent. 18 00:00:54,640 --> 00:00:58,760 Quasiment un grand nombre de types d'applications et les applications que vous pourriez expédier 19 00:00:58,760 --> 00:01:01,120 sont en utilisant ce modèle, cadre de contrôleur de vue, 20 00:01:01,120 --> 00:01:02,890 que vous serez à l'aide P mis 7, donc je vais 21 00:01:02,890 --> 00:01:05,220 parler un peu sur les raisons qui est devenu 22 00:01:05,220 --> 00:01:07,970 populaire, pourquoi il est important et agréable. 23 00:01:07,970 --> 00:01:12,052 Et puis je vais enfin passer à quelques conseils sur la lutte contre la P mis 7. 24 00:01:12,052 --> 00:01:13,760 Et si nous avons le temps reste à la fin, 25 00:01:13,760 --> 00:01:17,320 nous pouvons réellement faire quelque travailler sur cela ensemble. 26 00:01:17,320 --> 00:01:20,380 >> Donc, PHP. 27 00:01:20,380 --> 00:01:23,790 En fait, vous avez peut-être remarqué this-- vous ne l'avez pas vraiment besoin de plonger dans it-- 28 00:01:23,790 --> 00:01:27,880 mais P mis un peu de PHP 6 eu code qui se passait. 29 00:01:27,880 --> 00:01:34,710 Et parce que PHP est un C-like la langue, PHP, contrairement à HTML et CSS, 30 00:01:34,710 --> 00:01:39,030 est un langage de programmation, alors que HTML et CSS sont statiques. 31 00:01:39,030 --> 00:01:44,050 Ils sont les langages de balisage traitant avec le style et la présentation visuelle. 32 00:01:44,050 --> 00:01:46,230 PHP est la vraie affaire. 33 00:01:46,230 --> 00:01:51,590 >> PHP a boucles, il a conditions-- tout ça qui est amusant à propos de C. 34 00:01:51,590 --> 00:01:56,190 Il dispose d'un certain nombre de choses qui sont un peu peu mieux que C, qui nous le verrons, 35 00:01:56,190 --> 00:01:59,760 mais je pense que la meilleure façon de parler sur le PHP est juste de plonger. 36 00:01:59,760 --> 00:02:04,087 Donc, je vais aller droit dans l'IDE à ce point. 37 00:02:04,087 --> 00:02:06,170 La première chose que nous allons à faire est effectivement regarder 38 00:02:06,170 --> 00:02:10,169 un peu à une partie de la Code PHP qui était en P set 6. 39 00:02:10,169 --> 00:02:13,600 Donc, la façon dont nous faisons that-- avant, la façon dont nous courions 40 00:02:13,600 --> 00:02:18,550 le serveur de l'appareil était que nous aurions à bien-- 41 00:02:18,550 --> 00:02:21,750 soit utiliser votre mise en œuvre ou la mise en œuvre de l'équipe 42 00:02:21,750 --> 00:02:27,059 de server.c en allant dans le répertoire et courir server.c soit sans 43 00:02:27,059 --> 00:02:30,100 arguments-- si juste l'appeler sur le hôte local, qui est ce que vous avez probablement 44 00:02:30,100 --> 00:02:31,849 fait la plupart du time-- et ensuite le nourrir 45 00:02:31,849 --> 00:02:35,380 un directory-- avec qui pour l'utiliser comme sa racine 46 00:02:35,380 --> 00:02:38,310 où le site serait être exécuté, essentiellement. 47 00:02:38,310 --> 00:02:42,180 >> Cette semaine P set 7, comme grande que notre code pour server.c 48 00:02:42,180 --> 00:02:47,580 est, il ya des gens qui ont déjà écrit ces belles choses sur au CS50 49 00:02:47,580 --> 00:02:49,630 qui ont un peu plus de fonctionnalités, 50 00:02:49,630 --> 00:02:52,920 un programme de serveur qui est capable de traiter avec un peu plus 51 00:02:52,920 --> 00:02:56,350 des subtilités que nous allons voir à la fois P SET 7 et 8 P réglé. 52 00:02:56,350 --> 00:03:01,410 Et la façon dont vous démarrez le serveur est en tapant simplement, "apache50." 53 00:03:01,410 --> 00:03:03,960 >> Et avant que vous faites quelque chose, vous voulez vous assurer que 54 00:03:03,960 --> 00:03:06,070 qu'Apache 50 est pas déjà en cours d'exécution comme il est 55 00:03:06,070 --> 00:03:08,130 sur ma machine, je l'ai fait pour le tester. 56 00:03:08,130 --> 00:03:10,320 Et vous le faites en appelant apache50 cela. 57 00:03:10,320 --> 00:03:14,070 Arrêtez, et vous verrez que ça l'arrêt le serveur web, si vous pouvez y regarder 58 00:03:14,070 --> 00:03:16,340 au bas de la fenêtre du terminal. 59 00:03:16,340 --> 00:03:21,090 Et puis, juste pour commencer, nous sommes va appeler, "apache50 commencer." 60 00:03:21,090 --> 00:03:23,150 Et puis nous allons à nourrir un répertoire. 61 00:03:23,150 --> 00:03:26,950 >> Maintenant, parce que nous voulons regarder à une partie de la P mis 6 Code 62 00:03:26,950 --> 00:03:32,850 que nous avions mis en place, en fait je copié un peu de la P 63 00:03:32,850 --> 00:03:37,090 Set 6 code dans mon propre dossier, que vous pouvez voir sur la gauche il. 64 00:03:37,090 --> 00:03:40,170 Il a appelé «section8" dans toutes les lettres majuscules 65 00:03:40,170 --> 00:03:44,510 parce que je suis tellement excitée pour être diffusé en direct aujourd'hui. 66 00:03:44,510 --> 00:03:47,330 >> Donc, si nous courons cela, il se doit tout travail assez efficace. 67 00:03:47,330 --> 00:03:52,350 Il dit, OK, notre site est maintenant disponible à l'adresse de l'IDE, 68 00:03:52,350 --> 00:03:57,710 Fondamentalement, ce qui est ce que vous utilisez exactement comme il était en P mis 7-- P set 6. 69 00:03:57,710 --> 00:04:00,899 Tous mes indices sont un indice aujourd'hui. 70 00:04:00,899 --> 00:04:02,940 Donc, nous pouvons aller à cette adresse, si vous vous en souvenez, 71 00:04:02,940 --> 00:04:05,710 en cliquant simplement sur ce petit bouton dans le coin supérieur droit. 72 00:04:05,710 --> 00:04:14,200 >> Et vous vous souvenez de ce code, qui qui est arrivé quand vous êtes entré dans hello.php. 73 00:04:14,200 --> 00:04:18,000 Et ce que le code est conçu pour faire est quand vous avez saisi un nom 74 00:04:18,000 --> 00:04:20,550 ici-- si vous dites Sam parce que ce mon name-- 75 00:04:20,550 --> 00:04:23,620 et je clique Dis Bonjour, quand nous sommes allés à la page suivante, 76 00:04:23,620 --> 00:04:25,270 ce nom devait être affichée. 77 00:04:25,270 --> 00:04:28,550 Il disait: «Bonjour, Sam" ou "Bonjour," tout ce que vous nom 78 00:04:28,550 --> 00:04:32,470 mettons en elle, même si nous sommes allés à une toute nouvelle page web. 79 00:04:32,470 --> 00:04:36,610 >> Et ceci est le genre de chose que PHP peut faire pour vous. 80 00:04:36,610 --> 00:04:42,840 PHP est capable de transmettre des données entre deux pages Web. 81 00:04:42,840 --> 00:04:44,390 Ceci est une page totalement différente. 82 00:04:44,390 --> 00:04:46,990 Vous verrez le titre est "bonjour" ici. 83 00:04:46,990 --> 00:04:49,080 En fait, ils ont le même titre, mais je 84 00:04:49,080 --> 00:04:52,560 promettent qu'ils sont différents web pages si nous regardons à la source. 85 00:04:52,560 --> 00:04:55,890 Et vous pouvez passer les données qui entré dans ce champ de texte, 86 00:04:55,890 --> 00:04:59,830 vous soumettez à la prochaine page que nous appelé, 87 00:04:59,830 --> 00:05:02,490 et alors que les données sont en mesure de être là, dans sa forme actuelle. 88 00:05:02,490 --> 00:05:04,810 >> Maintenant, nous avons pas encore implémenté nous-mêmes, ce qui 89 00:05:04,810 --> 00:05:08,710 est ce que nous allons faire maintenant pour Trier obtenir une saveur pour le fonctionnement de PHP, 90 00:05:08,710 --> 00:05:15,070 mais l'idée clé est que vous pouvez PHP-- sorte de penser à elle comme une fonction. 91 00:05:15,070 --> 00:05:18,570 Quelque chose qui PHP peut vous laisser faire est il peut prendre des paramètres 92 00:05:18,570 --> 00:05:24,710 que vous entrez dans une page HTML grâce à l'utilisation de PHP et formes, 93 00:05:24,710 --> 00:05:29,960 et il peut passer ceux qui en tant que paramètres à la page suivante qui il charge. 94 00:05:29,960 --> 00:05:35,110 >> Dans ce cas, nous chargeons cette la page avec le bouton "Dites bonjour". 95 00:05:35,110 --> 00:05:38,960 Mais pour l'instant, je fait supprimé certains de ce code 96 00:05:38,960 --> 00:05:44,850 dans le hello.php qui était géré qui était en fait l'affichage de la "bonjour, 97 00:05:44,850 --> 00:05:49,680 monde "ou" bonjour, Sam »ou "Bonjour," tout ce qui était juste entrée. 98 00:05:49,680 --> 00:05:53,620 Donc, pour le moment, nous sommes va faire que, fondamentalement. 99 00:05:53,620 --> 00:05:56,570 Nous allons recréer et également ajouter un peu plus de fonctionnalités, 100 00:05:56,570 --> 00:06:00,210 faire un peu plus avec elle, voir ce que PHP est vraiment capable. 101 00:06:00,210 --> 00:06:04,870 >> Alors d'abord, parlons ce fichier, hello.php. 102 00:06:04,870 --> 00:06:07,440 Donc, si on fait un zoom dans un peu bit-- et maintenant je suis 103 00:06:07,440 --> 00:06:10,520 sorte d'essayer de faire défiler tous la façon around-- là nous allons. 104 00:06:10,520 --> 00:06:14,220 Vous verrez qu'il est appelé hello.php, mais la syntaxe de celui-ci 105 00:06:14,220 --> 00:06:16,880 ressemble à un fichier HTML. 106 00:06:16,880 --> 00:06:20,380 En effet, la PHP réelle dans ce fichier 107 00:06:20,380 --> 00:06:25,220 est tous coincés entre ces Question blocs marque-caret. 108 00:06:25,220 --> 00:06:28,610 Tout ici est considéré comme du code PHP. 109 00:06:28,610 --> 00:06:32,040 >> Et vous remarquerez que quand je faisais un commentaire, 110 00:06:32,040 --> 00:06:35,320 vous verrez le familier deux barres obliques. 111 00:06:35,320 --> 00:06:38,440 Et si vous vous souvenez, dans HTML, si je tape un commentaire, 112 00:06:38,440 --> 00:06:42,540 il ressemble à quelque chose plus proche de ce qui est un commentaire en HTML. 113 00:06:42,540 --> 00:06:46,570 Alors, vraiment tout entre ces deux équerres 114 00:06:46,570 --> 00:06:50,060 est maintenant le code PHP, qui se traduit par le fait 115 00:06:50,060 --> 00:06:53,270 que ce petit symbole de commentaire est transformé en un commentaire. 116 00:06:53,270 --> 00:06:58,420 >> Ainsi, chaque fois que vous écrivez du code PHP, même si il n'y a aucun code HTML en dehors d'elle, 117 00:06:58,420 --> 00:07:02,720 il va toujours être enfermé dans ces équerres 118 00:07:02,720 --> 00:07:04,080 avec des points d'interrogation. 119 00:07:04,080 --> 00:07:08,260 Vous pouvez sorte de penser it-- comment tout du code qui a couru dans vos programmes C 120 00:07:08,260 --> 00:07:13,950 a été enfermé dans une int main, vide, accolade, fin déclaration accolade. 121 00:07:13,950 --> 00:07:17,100 Et vous verrez accolades dans PHP, trop, mais cela est une sorte de 122 00:07:17,100 --> 00:07:20,490 comme la principale méthode de PHP. 123 00:07:20,490 --> 00:07:25,630 >> Alors maintenant, comment faisons-nous quelque chose en PHP? 124 00:07:25,630 --> 00:07:29,190 Maintenant, PHP est une programmation langue qui est très semblable à C, 125 00:07:29,190 --> 00:07:30,970 mais il fonctionne sur le web. 126 00:07:30,970 --> 00:07:33,270 Donc, une chose que vous aurez un immediately-- 127 00:07:33,270 --> 00:07:38,130 des premières choses que vous avez vraiment fait avec C est vous imprimé des choses, non? 128 00:07:38,130 --> 00:07:42,290 Donc, en C que nous avons fait avec une fonction printf. 129 00:07:42,290 --> 00:07:46,430 Nous lui avons donné une chaîne, probablement avec une nouvelle ligne, 130 00:07:46,430 --> 00:07:49,850 puis nous avons résilié avec un point-virgule. 131 00:07:49,850 --> 00:07:53,790 >> Donc, la façon dont nous allons faire ce que dans PHP-- car il est pas tout à fait printf. 132 00:07:53,790 --> 00:07:55,940 Il est un peu différente de la syntaxe. 133 00:07:55,940 --> 00:08:02,580 La façon dont nous imprimons les choses en PHP est que nous disons, "echo bonjour" 134 00:08:02,580 --> 00:08:04,180 ou "echo" tout mot. 135 00:08:04,180 --> 00:08:09,830 Et qui a pour effet de faire printf avec une ficelle, «bonjour». 136 00:08:09,830 --> 00:08:11,990 Et il ajoute la nouvelle ligne à elle. 137 00:08:11,990 --> 00:08:16,000 >> Donc, nous allons maintenant faire sure-- Je vais effectuer un zoom arrière un peu bit-- 138 00:08:16,000 --> 00:08:18,250 nous allons faire en sorte que que le code fonctionne 139 00:08:18,250 --> 00:08:21,030 car il pourrait très bien être un bug dans le code 140 00:08:21,030 --> 00:08:22,880 que nous devrons faire face. 141 00:08:22,880 --> 00:08:25,860 Donc le serveur est déjà en cours d'exécution. 142 00:08:25,860 --> 00:08:30,630 Donc, si nous revenir en arrière vers le bas, yup, le serveur est toujours en cours d'exécution. 143 00:08:30,630 --> 00:08:34,510 Donc, si nous exploitons seulement sur cette peu droit ici-- 144 00:08:34,510 --> 00:08:37,620 welcome-- nous devrions get-- grande. 145 00:08:37,620 --> 00:08:39,930 >> Nous sommes encore ayant la "Dites bonjour" le dialogue familier, 146 00:08:39,930 --> 00:08:45,750 mais quand je tape dans "Salut," nous verrons que le texte "bonjour" était en effet 147 00:08:45,750 --> 00:08:50,080 imprimé, ce qui est exactement comme nous nous attendions, car l'écho en PHP 148 00:08:50,080 --> 00:08:53,190 est comme une déclaration de printf. 149 00:08:53,190 --> 00:09:01,410 Donc, retour au code, comment dans P mis 6 ne le code de distribution vous sont fournis 150 00:09:01,410 --> 00:09:05,920 faire en sorte que PHP serait sortie la chose que vous 151 00:09:05,920 --> 00:09:07,920 tapé dans l'écran précédent? 152 00:09:07,920 --> 00:09:10,350 >> Et en quelque sorte d'examiner pourquoi cela arrive, nous sommes 153 00:09:10,350 --> 00:09:15,510 va aller en index.html, qui est le fichier d'origine, le fichier 154 00:09:15,510 --> 00:09:18,710 apparaît sur cet écran avec le bouton "Dites bonjour". 155 00:09:18,710 --> 00:09:20,950 Vous remarquerez qu'il ya toutes les choses classiques 156 00:09:20,950 --> 00:09:26,910 nous sommes venus à attendre de tels HTML que ces choses, ces balises enfermés 157 00:09:26,910 --> 00:09:31,080 entre crochets, comme PHP mais sans les points d'interrogation, 158 00:09:31,080 --> 00:09:34,650 ce qui indique quelque chose de spécial au format HTML. 159 00:09:34,650 --> 00:09:36,895 Nous avons titre, qui est «bonjour». 160 00:09:36,895 --> 00:09:41,010 Et vous remarquerez que nous avons vu, le titre est «bonjour» dans les deux cas. 161 00:09:41,010 --> 00:09:43,260 Nous allons changer celui- à "dire" juste pour nous 162 00:09:43,260 --> 00:09:48,170 peut nous distinguer là où nous sommes. 163 00:09:48,170 --> 00:09:49,600 >> Mais nous avons un corps. 164 00:09:49,600 --> 00:09:52,690 Et puis le peu intéressant, la bits qui apparaît dans le code HTML, 165 00:09:52,690 --> 00:09:54,530 est cet élément de formulaire. 166 00:09:54,530 --> 00:09:56,370 Et donc nous avons un formulaire. 167 00:09:56,370 --> 00:09:58,330 Et cela est la clé. 168 00:09:58,330 --> 00:10:00,530 Ceci est la façon dont nous travaillons avec PHP. 169 00:10:00,530 --> 00:10:05,790 Le paramètre d'action de forme dit que hello.php 170 00:10:05,790 --> 00:10:09,310 est ce que nous allons envoyer les valeurs dans ce formulaire. 171 00:10:09,310 --> 00:10:13,830 Voilà où nous passons les paramètres, pour ainsi dire. 172 00:10:13,830 --> 00:10:18,680 >> Vous remarquerez une autre chose ici est que le procédé est "get". 173 00:10:18,680 --> 00:10:24,450 Il ya deux écoles primaires méthodes par lesquelles sera 174 00:10:24,450 --> 00:10:28,750 être en utilisant PHP pour transmettre des données entre les pages Web websites--, 175 00:10:28,750 --> 00:10:30,500 rather-- dans cette mission. 176 00:10:30,500 --> 00:10:34,070 Et ces méthodes sont "get" et "après". 177 00:10:34,070 --> 00:10:37,010 Il ya quelques subtile différences entre GET et POST 178 00:10:37,010 --> 00:10:40,520 que nous obtiendrons into-- nous sera "get" en, si vous voulez. 179 00:10:40,520 --> 00:10:44,030 >> Mais pour toutes les intentions et fins, GET et POST 180 00:10:44,030 --> 00:10:47,120 sont tous deux à ce que des moyens vous passez paramètres 181 00:10:47,120 --> 00:10:49,500 légèrement différentes exécutions. 182 00:10:49,500 --> 00:10:53,500 Pour l'instant, nous allons utiliser obtenir parce que EEG a été ce qui était utilisé à l'origine 183 00:10:53,500 --> 00:10:57,340 dans le fichier PHP de P mis 6. 184 00:10:57,340 --> 00:11:00,850 Et effectivement, si nous allons et regarder avant que nous avons édité quelque chose d'autre, 185 00:11:00,850 --> 00:11:03,090 Je vais dire salut to-- quel est votre nom? 186 00:11:03,090 --> 00:11:03,812 >> AUDIENCE: Elliot. 187 00:11:03,812 --> 00:11:04,770 SAM Levatich: Oh, ça alors. 188 00:11:04,770 --> 00:11:05,600 Je ne sais pas comment épeler cela. 189 00:11:05,600 --> 00:11:06,766 Pouvez-vous épeler ce pour moi? 190 00:11:06,766 --> 00:11:08,710 AUDIENCE: E-L-L-I-O-T. 191 00:11:08,710 --> 00:11:09,720 >> SAM Levatich: I-O-T? 192 00:11:09,720 --> 00:11:10,440 >> AUDIENCE: Ouais. 193 00:11:10,440 --> 00:11:10,960 >> SAM Levatich: Parfait. 194 00:11:10,960 --> 00:11:11,210 D'ACCORD. 195 00:11:11,210 --> 00:11:12,751 Je suppose que je ne savais comment épeler cela. 196 00:11:12,751 --> 00:11:13,510 Désolé a propos de ça. 197 00:11:13,510 --> 00:11:16,560 Mais si nous disons "Dites bonjour," il est pas ça ne va pas à apparaître sur l'écran 198 00:11:16,560 --> 00:11:18,476 Pourtant, parce que nous avons modifié le code un peu. 199 00:11:18,476 --> 00:11:21,290 Mais si nous ne "dire bonjour" - OK, donc «bonjour» est ici. 200 00:11:21,290 --> 00:11:24,137 Mais si nous prenons de plus près regarder l'URL elle-même, 201 00:11:24,137 --> 00:11:26,220 nous verrons qu'elle se termine name = Elliot avec hello.php?. 202 00:11:26,220 --> 00:11:30,980 203 00:11:30,980 --> 00:11:37,180 >> Ainsi, la présente est un moyen de communiquer à la page web suivante 204 00:11:37,180 --> 00:11:39,240 les paramètres que nous avons adopté. 205 00:11:39,240 --> 00:11:40,870 Nous avons dit name = Elliot. 206 00:11:40,870 --> 00:11:46,290 Et voilà finalement comment P set 6 consultée la variable que nous avons passé dans 207 00:11:46,290 --> 00:11:47,520 grâce à la forme. 208 00:11:47,520 --> 00:11:51,470 Et ceci est quelque chose qui est propre à une requête GET. 209 00:11:51,470 --> 00:11:57,480 Une requête GET rend les paramètres connu dans l'URL du site. 210 00:11:57,480 --> 00:12:01,190 >> Et vous vous rappelez, aussi, P mis 6 que vous 211 00:12:01,190 --> 00:12:04,450 dû écrire une fonction qui portait sur le fait 212 00:12:04,450 --> 00:12:09,700 que cette chaîne de requête pourrait exister après un fichier. 213 00:12:09,700 --> 00:12:14,684 Il pourrait y avoir un point d'interrogation suivi par essentiellement un certain nombre de caractères. 214 00:12:14,684 --> 00:12:16,350 Et cela est exactement ce qui se passe ici. 215 00:12:16,350 --> 00:12:21,280 Et la raison pour laquelle vous aviez à analyser que dans votre mise en œuvre de server.c P 216 00:12:21,280 --> 00:12:27,570 Set 6 est de sorte que vous pourriez dire le code PHP ce nom = Elliot. 217 00:12:27,570 --> 00:12:30,460 Il fallait être en mesure de analyser que sur l'URL 218 00:12:30,460 --> 00:12:35,900 de sorte que le fichier PHP en question savait ce qu'il avait affaire. 219 00:12:35,900 --> 00:12:39,350 >> Donc, nous espérons que cela donne la motivation pour server.c 220 00:12:39,350 --> 00:12:43,900 maintenant que nous passons en dehors de C dans PHP. 221 00:12:43,900 --> 00:12:48,240 Donc, nous allons effectivement mettre l'accent sur l'accès à la les choses passent à travers une requête GET maintenant 222 00:12:48,240 --> 00:12:48,880 à ce point. 223 00:12:48,880 --> 00:12:50,157 Je vais enregistrer ce. 224 00:12:50,157 --> 00:12:51,240 Nous ne changeons rien. 225 00:12:51,240 --> 00:12:56,080 Il semble que nous avons un champ de saisie. 226 00:12:56,080 --> 00:12:58,550 >> Nous mettons en place certaines propriétés, que nous pouvons faire une HTML. 227 00:12:58,550 --> 00:12:59,550 Ce sont des choses simples. 228 00:12:59,550 --> 00:13:00,580 On n'a pas besoin de ces. 229 00:13:00,580 --> 00:13:03,750 Mais nous avons autocomplete off, says-- qui, fondamentalement, vous le savez, 230 00:13:03,750 --> 00:13:05,710 lorsque vous tapez les choses dans le web, parfois 231 00:13:05,710 --> 00:13:07,355 il essaie de combler ce pour vous. 232 00:13:07,355 --> 00:13:08,230 Donc, il est une bonne chose. 233 00:13:08,230 --> 00:13:11,700 Nous voulons pour l'éteindre à cet effet. 234 00:13:11,700 --> 00:13:13,970 Ce fut une décision de CS50. 235 00:13:13,970 --> 00:13:15,640 Donc, nous pouvons supprimer que si nous voulions. 236 00:13:15,640 --> 00:13:19,510 >> Autofocus colle tout simplement le curseur dans la bonne forme au début. 237 00:13:19,510 --> 00:13:21,060 Encore une fois, pas trop importante. 238 00:13:21,060 --> 00:13:26,220 >> Mais name = "nom" - il est un peu délicat parce que son nom et le nom. 239 00:13:26,220 --> 00:13:28,730 Mais nous pourrions avons changé ce à autre chose. 240 00:13:28,730 --> 00:13:30,563 Et en fait, que ce ce que nous allons faire maintenant. 241 00:13:30,563 --> 00:13:34,830 Nous allons dire «personne», qui est une sorte de nom 242 00:13:34,830 --> 00:13:36,790 si une personne est définie par leur nom. 243 00:13:36,790 --> 00:13:41,480 >> Donc, nous allons fermer cette, rouvrir notre site 244 00:13:41,480 --> 00:13:46,110 depuis notre serveur est toujours en cours Apache 50, et nous diront, bonjour, voici 245 00:13:46,110 --> 00:13:47,200 Elliot nouveau. 246 00:13:47,200 --> 00:13:48,460 Pourquoi pas? 247 00:13:48,460 --> 00:13:49,220 Bonjour. 248 00:13:49,220 --> 00:13:52,880 Et si nous allons ici, nous verrons alors au lieu de name = Elliot, 249 00:13:52,880 --> 00:13:55,200 il est dit personne = Elliot. 250 00:13:55,200 --> 00:14:00,060 Et cela est une conséquence directe du fait que nous venons de changer le nom = «personne». 251 00:14:00,060 --> 00:14:06,840 >> Ainsi, dans un élément d'entrée de un formulaire HTML, le champ de nom 252 00:14:06,840 --> 00:14:10,590 est l'identifiant de la paramètre qui est étant passé. 253 00:14:10,590 --> 00:14:14,250 Il est comme si vous créez une fonction "ajouter" qui a eu en deux entiers 254 00:14:14,250 --> 00:14:16,670 et vous avez dit int a et b int. 255 00:14:16,670 --> 00:14:22,680 Ce serait un nom, et si vous vouliez une autre forme, qui 256 00:14:22,680 --> 00:14:27,800 nous pouvons faire juste en copiant et coller, alors nous aurions nom b. 257 00:14:27,800 --> 00:14:31,030 >> Alors maintenant, nous aurons deux paramètres qui sont passés à travers 258 00:14:31,030 --> 00:14:36,970 se rendre à la prochaine website-- la page Web suivante, hello.php. 259 00:14:36,970 --> 00:14:39,770 Et nous pouvons réellement voir que si nous voulons à nouveau. 260 00:14:39,770 --> 00:14:44,830 Ceci est la meilleure façon de traiter avec le code web dans l'IDE, essentiellement. 261 00:14:44,830 --> 00:14:47,940 Vous démarrez le serveur, l'obtenir course, puis chaque fois que vous 262 00:14:47,940 --> 00:14:50,649 faire quelques changements, juste à proximité ce fichier juste pour être sûr. 263 00:14:50,649 --> 00:14:52,440 En appuyant sur le bouton de retour est un peu délicat 264 00:14:52,440 --> 00:14:55,800 car il pourrait charger un plus tôt la version, pas la plus à jour. 265 00:14:55,800 --> 00:14:59,200 >> Et puis vous cliquez simplement votre nouveau sur la touche, pop up-- droit oh, 266 00:14:59,200 --> 00:15:00,510 et maintenant il ya deux formes. 267 00:15:00,510 --> 00:15:10,440 Et si on tape une chose dans chaque One-- "Hirshhorn jason," pour instance-- 268 00:15:10,440 --> 00:15:11,590 nous disons bonjour. 269 00:15:11,590 --> 00:15:12,840 Nous regardons à nos paramètres. 270 00:15:12,840 --> 00:15:18,910 Il semble que nous avons, en tant prévu, a = b = Jason et Hirshhorn, 271 00:15:18,910 --> 00:15:23,760 qui représente les deux paramètres que nous sommes passés à cette fonction. 272 00:15:23,760 --> 00:15:27,900 >> Alors maintenant, nous allons réellement obtenir à la mise en œuvre de cette fonctionnalité que nous 273 00:15:27,900 --> 00:15:30,840 P eu à régler 6. 274 00:15:30,840 --> 00:15:32,490 Donc maintenant nous sommes juste écho bonjour. 275 00:15:32,490 --> 00:15:34,310 Et ce ne est pas très utile. 276 00:15:34,310 --> 00:15:38,530 Nous voulons faire écho à une variable qui a été adoptée pour nous. 277 00:15:38,530 --> 00:15:40,320 Et nous savons que le nom de cette variable. 278 00:15:40,320 --> 00:15:41,770 Nous avons un et nous avons b. 279 00:15:41,770 --> 00:15:43,500 Donc, nous pourrions choisir d'écho ou l'autre. 280 00:15:43,500 --> 00:15:45,470 >> Mais comment pouvons-nous y accéder? 281 00:15:45,470 --> 00:15:48,820 Eh bien, il ya certains variables globales en PHP. 282 00:15:48,820 --> 00:15:51,240 Et je vais écrire les dans les commentaires ici. 283 00:15:51,240 --> 00:15:59,910 Les deux plus importants sont get et poster pour nos besoins en ce moment. 284 00:15:59,910 --> 00:16:05,350 Ce sont les tableaux ou, Techniquement, les dictionnaires 285 00:16:05,350 --> 00:16:10,540 où nos variables que nous sommes passer à la page web suivante en direct. 286 00:16:10,540 --> 00:16:14,520 Et nous verrons bientôt comment les utiliser. 287 00:16:14,520 --> 00:16:19,720 >> Une autre brève note sur le code PHP et quelques spécificités de it-- en C, 288 00:16:19,720 --> 00:16:23,260 pour déclarer une variable ou d'utiliser des variables, 289 00:16:23,260 --> 00:16:24,570 il fallait d'abord les déclarer. 290 00:16:24,570 --> 00:16:30,860 Et ce que vous aviez à faire lorsque vous déclarés eux était int dire un ou char b. 291 00:16:30,860 --> 00:16:35,630 Vous avez eu à déclarer les types de ceux-ci les variables avant de les créer. 292 00:16:35,630 --> 00:16:38,800 PHP-- vous ne devez pas faire de tout ça. 293 00:16:38,800 --> 00:16:42,522 PHP ne demande pas le type de variable. 294 00:16:42,522 --> 00:16:44,480 Et la façon dont vous que créer un variable-- plutôt 295 00:16:44,480 --> 00:16:49,930 que de dire int, char, string-- qui est vraiment char *, comme nous know-- 296 00:16:49,930 --> 00:16:52,180 plutôt que de faire tous que, parce que tout 297 00:16:52,180 --> 00:16:54,620 est du même type, sans type, nous pouvons simplement 298 00:16:54,620 --> 00:16:59,210 utiliser un caractère qui est le signe du dollar. 299 00:16:59,210 --> 00:17:03,700 Et vous verrez qu'il est déjà popping up, les petites choses de saisie semi-automatique. 300 00:17:03,700 --> 00:17:11,380 Et il est dit que _GET et $ _POST sont deux options dont je dispose 301 00:17:11,380 --> 00:17:11,900 à moi. 302 00:17:11,900 --> 00:17:16,430 Certains de ces autres choses sont d'autres variables globales en PHP 303 00:17:16,430 --> 00:17:18,430 que vous allez utiliser plus au cours de P set 7. 304 00:17:18,430 --> 00:17:20,569 Pour l'instant nous allons se concentrer sur GET et POST. 305 00:17:20,569 --> 00:17:22,910 Mais ceci est une utile chose qui l'IDE ne 306 00:17:22,910 --> 00:17:24,980 où une fois que vous avez tapé dans ce signe de dollar, 307 00:17:24,980 --> 00:17:28,760 il va commencer à remplir dans des variables globales ou des variables que vous avez déjà définis. 308 00:17:28,760 --> 00:17:34,360 >> Donc, si vous voulez définir une variable appelée "chaîne" 309 00:17:34,360 --> 00:17:38,290 vous pouvez simplement le mettre égal à "salut." 310 00:17:38,290 --> 00:17:40,100 Et il est fondamentalement aussi simple que cela. 311 00:17:40,100 --> 00:17:44,720 Et puis nous pourrions faire quelque chose comme "echo $ string." 312 00:17:44,720 --> 00:17:48,524 L'IDE devrait être jetant quelques erreurs si je fais quelque chose de mal, 313 00:17:48,524 --> 00:17:50,190 alors espérons que je fais tout droit. 314 00:17:50,190 --> 00:17:52,060 Mais bogues ne se posent toujours. 315 00:17:52,060 --> 00:17:56,670 >> Une autre chose plus délicate sur PHP est qu'il est pas compilé. 316 00:17:56,670 --> 00:18:00,640 Donc, avec des programmes de C, vous feriez la routine quotidienne de-- essentiellement, 317 00:18:00,640 --> 00:18:02,710 vous souhaitez apporter des modifications à votre code, vous seriez l'enregistrer, 318 00:18:02,710 --> 00:18:04,460 puis vous le feriez faire, où était la marque 319 00:18:04,460 --> 00:18:08,830 l'étape qui a appelé le compilateur, clang, pour faire de votre code, ce texte 320 00:18:08,830 --> 00:18:10,570 déposer, dans un fichier exécutable. 321 00:18:10,570 --> 00:18:15,550 PHP est C-like, mais il est exécuté à la volée par votre navigateur Web. 322 00:18:15,550 --> 00:18:17,640 Il n'y a donc aucun moyen de savoir. 323 00:18:17,640 --> 00:18:19,790 >> Assurez jetterait ceux erreurs utiles, non? 324 00:18:19,790 --> 00:18:22,190 Ce serait comme, vous n'a pas déclaré cette variable 325 00:18:22,190 --> 00:18:23,320 avant d'essayer de l'utiliser. 326 00:18:23,320 --> 00:18:29,120 Vous avez fait tout ce mauvais segfault stuff--, Segfault, tout ce genre de moments de plaisir 327 00:18:29,120 --> 00:18:31,000 qui est venu avec maquillage. 328 00:18:31,000 --> 00:18:33,920 PHP est une épée à double tranchant parce que vous ne recevrez pas ces erreurs, 329 00:18:33,920 --> 00:18:37,770 mais cela signifie aussi que vous ne saurez pas vraiment ce qui ne va pas avec votre programme 330 00:18:37,770 --> 00:18:39,840 si vous lancez simplement et ça ne marche pas. 331 00:18:39,840 --> 00:18:45,130 Mais le débogueur doit souligner quelques petites choses, espérons utiles 332 00:18:45,130 --> 00:18:47,950 syntaxiquement que vous pouvez fixer. 333 00:18:47,950 --> 00:18:52,850 >> Alors maintenant, si nous dépassons to-- disent, fermons cela. 334 00:18:52,850 --> 00:18:54,522 Rouvrir. 335 00:18:54,522 --> 00:18:55,480 Et nous sommes de retour ici. 336 00:18:55,480 --> 00:18:57,210 Nous avons donc une variable et un variable b. 337 00:18:57,210 --> 00:18:58,626 Et ceux-ci n'a finalement pas d'importance. 338 00:18:58,626 --> 00:19:01,850 Nous les appelons h et g pour aucune raison particulière. 339 00:19:01,850 --> 00:19:03,120 >> Et nous disons bonjour. 340 00:19:03,120 --> 00:19:07,480 Maintenant, il ressemble à notre chaîne "salut" est en effet l'impression. 341 00:19:07,480 --> 00:19:10,460 Nous avons créé une variable appelée "string", réglez-le égal à "salut." 342 00:19:10,460 --> 00:19:15,520 Remarquez que nous ne devons faire malloc ou faire un tableau de caractères. 343 00:19:15,520 --> 00:19:19,110 >> En PHP, car les variables sont sans type, une chaîne 344 00:19:19,110 --> 00:19:22,230 est la même que pour un produit de carbonisation toutes fins utiles. 345 00:19:22,230 --> 00:19:23,570 Cela pourrait être "salut." 346 00:19:23,570 --> 00:19:26,340 Cela pourrait être simplement le caractère k. 347 00:19:26,340 --> 00:19:29,290 Cela peut être un numéro 1. 348 00:19:29,290 --> 00:19:30,300 Et il ne se soucie pas. 349 00:19:30,300 --> 00:19:33,560 PHP ne se soucie pas le type de la variable. 350 00:19:33,560 --> 00:19:34,390 Ou, il ne se soucie. 351 00:19:34,390 --> 00:19:36,240 Il se soucie lorsque vous essayez et faire des choses avec elle, 352 00:19:36,240 --> 00:19:38,790 mais il ne se soucie pas l'étape de déclaration. 353 00:19:38,790 --> 00:19:46,960 >> Et tout comme vous pouvez en C, vous pouvez déclarer cordes sur la pile comme ça 354 00:19:46,960 --> 00:19:51,130 mais en disant "pile" est un peu peu trompeur potentiel lorsque 355 00:19:51,130 --> 00:19:52,230 nous parlons de PHP. 356 00:19:52,230 --> 00:19:54,020 Mais nous ne devons pas nous inquiéter à ce sujet. 357 00:19:54,020 --> 00:19:55,936 Donc, nous avons eu notre chaîne "Salut," et nous faisons écho à chaîne. 358 00:19:55,936 --> 00:19:58,880 Alors maintenant, nous avons discuté des variables. 359 00:19:58,880 --> 00:20:06,060 Alors maintenant, nous devons parler de get et poster et effectuer la dernière chose qui est 360 00:20:06,060 --> 00:20:12,660 nécessaire pour vraiment obtenir ce retour jusqu'à à la fonctionnalité de la P mis 6. 361 00:20:12,660 --> 00:20:14,990 Donc maintenant nous sommes faisant écho à la chaîne, mais nous 362 00:20:14,990 --> 00:20:17,080 ne possèdent ces variables GET et POST. 363 00:20:17,080 --> 00:20:19,430 Et parce que nous utilisons le procédé se, il 364 00:20:19,430 --> 00:20:24,810 semble naturel que notre variable nous sommes intéressés à la fois A et B, 365 00:20:24,810 --> 00:20:29,870 sera situé dans la matrice ou un dictionnaire, obtenir techniquement. 366 00:20:29,870 --> 00:20:33,510 >> Donc, si nous mettons en place comme cela se avec votre groups-- Je pressai entrer 367 00:20:33,510 --> 00:20:36,770 et il n'a pas aimé it-- mais ici nous avons obtenir. 368 00:20:36,770 --> 00:20:38,000 Et donc obtenir existe déjà. 369 00:20:38,000 --> 00:20:41,380 Ainsi, nous pouvons déjà commencer à l'accès certains des éléments de get. 370 00:20:41,380 --> 00:20:45,000 Si nous ne recevons, cette syntaxe pour tableaux PHP est très C-like. 371 00:20:45,000 --> 00:20:47,900 Nous avons nos deux crochets. 372 00:20:47,900 --> 00:20:53,440 >> Donc, si nous disons obtenir dans une normale tableau, nous pourrions accéder 373 00:20:53,440 --> 00:20:55,600 l'indice de zéro, le premier indice. 374 00:20:55,600 --> 00:20:56,840 PHP est l'indice zéro. 375 00:20:56,840 --> 00:21:00,550 Nous pourrions dire zéro, un, two-- trucs comme ça. 376 00:21:00,550 --> 00:21:03,420 Et je disais que Get est techniquement un dictionnaire. 377 00:21:03,420 --> 00:21:08,290 Donc, ce que PHP est fait sous le capot, qui est un peu mieux que C, 378 00:21:08,290 --> 00:21:12,760 est-il déjà, vous donne une certaine fonctionnalité dictionnaire, qui 379 00:21:12,760 --> 00:21:16,240 est vraiment tables de hachage, ou tente de, soi-disant. 380 00:21:16,240 --> 00:21:19,360 Ou, techniquement, il pourrait être un essai aussi bien. 381 00:21:19,360 --> 00:21:25,500 Mais PHP met en œuvre une table de hachage, qui forme un dictionnaire efficace. 382 00:21:25,500 --> 00:21:28,400 >> Et si nous savons le nom de notre variable, non? 383 00:21:28,400 --> 00:21:32,440 On est en train adoptée en la chaîne de requête par PHP. 384 00:21:32,440 --> 00:21:37,290 Nous avons a = h et b = g et b où sont les noms des variables. 385 00:21:37,290 --> 00:21:41,580 Donc, la façon dont nous pouvons accéder à la valeur qui correspond à la clé 386 00:21:41,580 --> 00:21:45,055 dans notre dictionnaire est en disant simplement _GET_GET ["un"]. 387 00:21:45,055 --> 00:21:48,170 388 00:21:48,170 --> 00:21:51,365 >> Alors maintenant, nous avons _GET ["un"]. 389 00:21:51,365 --> 00:21:56,930 Et si nous remplaçons juste à l'intérieur notre écho, si nous faisons écho _GET_GET ["un"] - 390 00:21:56,930 --> 00:22:02,410 et nous allons voir si le débogueur jette des erreurs environ this-- 391 00:22:02,410 --> 00:22:05,620 nous allons garder et proches ceci. 392 00:22:05,620 --> 00:22:07,130 Ouvrez-le. 393 00:22:07,130 --> 00:22:10,390 Donc, nous faisons juste un droit maintenant et b ne devrait pas question. 394 00:22:10,390 --> 00:22:12,980 «elle» et «lui» - "fredonner." «son» et «hum». 395 00:22:12,980 --> 00:22:14,810 Ça m'a l'air bien. 396 00:22:14,810 --> 00:22:18,040 >> Et il imprimé "elle," ce qui est fou. 397 00:22:18,040 --> 00:22:21,920 Mais cela est exactement ce que qui se passait dans P mis 6. 398 00:22:21,920 --> 00:22:27,240 Fondamentalement, ce que P set 6 était doing-- écho bonjour, 399 00:22:27,240 --> 00:22:31,580 name-- où il avait un nom de variable et juste 400 00:22:31,580 --> 00:22:35,520 vous demande de taper que peu de texte. 401 00:22:35,520 --> 00:22:37,380 Il y avait aussi un certain code supplémentaire où 402 00:22:37,380 --> 00:22:40,550 il comprenait si les déclarations, que nous pouvons faire maintenant. 403 00:22:40,550 --> 00:22:50,120 >> Nous pouvons dire si elle existe, qui est une fonctionnalité dans PHP, 404 00:22:50,120 --> 00:22:55,110 _GET Avec le soulignement, "nom" - qui est essentiellement dire, 405 00:22:55,110 --> 00:22:58,760 "si le nom a été rempli" parce nous aurions pu simplement cliqué sur le bouton 406 00:22:58,760 --> 00:23:02,580 à soumettre le formulaire sans rien taper dans ce champ. 407 00:23:02,580 --> 00:23:07,760 Et nous conclurons que, dans notre accolades amicales. 408 00:23:07,760 --> 00:23:09,175 Nous pouvons avoir une instruction else. 409 00:23:09,175 --> 00:23:13,300 410 00:23:13,300 --> 00:23:18,820 Et cela est tout dans l'angle PHP support, point d'interrogation, équerre, 411 00:23:18,820 --> 00:23:20,040 si vous voulez. 412 00:23:20,040 --> 00:23:21,750 >> Et maintenant, nous allons voir si cela fonctionne. 413 00:23:21,750 --> 00:23:26,300 Je continue à attendre qu'il debug et de la merde sur moi, au fond, 414 00:23:26,300 --> 00:23:28,410 mais il n'a pas encore. 415 00:23:28,410 --> 00:23:30,830 Peut-être qu'il va maintenant parce que je parlais. 416 00:23:30,830 --> 00:23:31,330 Ouaip. 417 00:23:31,330 --> 00:23:32,510 Il a, en fait. 418 00:23:32,510 --> 00:23:34,610 Donc, rien ne se profile. 419 00:23:34,610 --> 00:23:38,750 Cela est à cause de quelque chose de mal que je l'ai écrit dans le code PHP. 420 00:23:38,750 --> 00:23:42,844 Et je l'ai mentionné le débogage est délicate parce que dans PHP, nous 421 00:23:42,844 --> 00:23:45,260 ne pas compiler avance et le compilateur ne ressemblait pas, 422 00:23:45,260 --> 00:23:46,710 voici où vos erreurs sont. 423 00:23:46,710 --> 00:23:49,690 >> Mais ce que nous pouvons faire est-- faire les gens se souviennent 424 00:23:49,690 --> 00:23:57,010 comment regarder l'autre réseau demandes ou que les sites PHP-- 425 00:23:57,010 --> 00:23:57,620 envoyer? 426 00:23:57,620 --> 00:24:00,290 [? Malin?] A fait en sermonner une ou deux fois. 427 00:24:00,290 --> 00:24:05,830 Vous souvenez-vous où nous allons trouver les différentes dettes et 200 OKs, 428 00:24:05,830 --> 00:24:09,780 tous ces codes qui sont envoyés via HTTP à partir de la page Web à la page web? 429 00:24:09,780 --> 00:24:12,514 Quelqu'un se souvient où nous allons faire cela? 430 00:24:12,514 --> 00:24:13,787 >> AUDIENCE: Source de la page. 431 00:24:13,787 --> 00:24:14,870 SAM Levatich: source de la page. 432 00:24:14,870 --> 00:24:15,890 Exactement. 433 00:24:15,890 --> 00:24:19,230 Si vous allez à la page d'Source-- parfait. 434 00:24:19,230 --> 00:24:21,630 Donc, la page Source tire vers le haut l'inspecteur. 435 00:24:21,630 --> 00:24:23,140 >> Et je suis en utilisant Safari. 436 00:24:23,140 --> 00:24:25,790 Beaucoup d'entre vous ne sera probablement être en utilisant Chrome ou Firefox. 437 00:24:25,790 --> 00:24:27,750 Mais aussi longtemps que vous êtes l'une quelconque des browser-- moderne 438 00:24:27,750 --> 00:24:29,500 et se sentir libre de suivre ainsi si vous voulez. 439 00:24:29,500 --> 00:24:32,560 Vous pouvez taper jusqu'à présent code ou il suffit de regarder à l'intérieur de l'ensemble de P 6 440 00:24:32,560 --> 00:24:35,820 répertoire pour certains trucs similaires. 441 00:24:35,820 --> 00:24:41,020 hello.php est ce que nous sommes travaille actuellement sur l'émulation. 442 00:24:41,020 --> 00:24:42,476 >> Donc, il ya une variété d'onglets. 443 00:24:42,476 --> 00:24:43,850 Nous pouvons regarder toutes les ressources. 444 00:24:43,850 --> 00:24:45,810 Nous pouvons voir le code source. 445 00:24:45,810 --> 00:24:49,900 Ressemble tellement qu'il n'a pas obtenir corps passé à la fin. 446 00:24:49,900 --> 00:24:54,890 Il a constaté une erreur dans PHP et il arrêté chargement de la page Web entière. 447 00:24:54,890 --> 00:24:58,320 Nous ne disposons même pas une fin tag pour HTML ou quoi que ce soit. 448 00:24:58,320 --> 00:25:07,189 >> Et si nous regardons le réseau, nous pouvons voyons que nous sommes étant envoyé une demande. 449 00:25:07,189 --> 00:25:07,980 Ceci est le nom de domaine. 450 00:25:07,980 --> 00:25:09,270 Ceci est l'adresse. 451 00:25:09,270 --> 00:25:10,070 Il est un document. 452 00:25:10,070 --> 00:25:14,310 Nous utilisons la méthode get. 453 00:25:14,310 --> 00:25:15,760 >> Et il est rouge. 454 00:25:15,760 --> 00:25:19,030 Ou, il était rouge quand je n'a pas été le sélectionnant. 455 00:25:19,030 --> 00:25:22,680 Comment puis-je désélectionner? 456 00:25:22,680 --> 00:25:23,980 Eh bien, il était rouge. 457 00:25:23,980 --> 00:25:25,201 Permettez-moi de vous rafraîchir. 458 00:25:25,201 --> 00:25:25,700 Le voilà. 459 00:25:25,700 --> 00:25:26,640 Maintenant, il est rouge. 460 00:25:26,640 --> 00:25:30,530 >> Donc, il est rouge, ce qui signifie elle a échoué, ce qui est mauvais. 461 00:25:30,530 --> 00:25:32,280 Examinons donc pourquoi il n'a sûr. 462 00:25:32,280 --> 00:25:37,070 Donc, tout ce que la source de la page peut essentiellement vous dire est votre truc 463 00:25:37,070 --> 00:25:38,720 ne fonctionne pas, que nous pouvons déjà voir. 464 00:25:38,720 --> 00:25:42,100 Donc, idéalement, il serait être un outil plus utile. 465 00:25:42,100 --> 00:25:45,710 Et il ya des extensions de navigateur qui vous permettent de déboguer PHP, 466 00:25:45,710 --> 00:25:50,490 mais on ne va pas à être écrit une tonne de PHP, 467 00:25:50,490 --> 00:25:53,190 donc il est probablement juste mieux de regarder à travers votre code 468 00:25:53,190 --> 00:25:56,760 attentivement et assurez-vous que il ne fait rien d'autre. 469 00:25:56,760 --> 00:26:03,876 >> Donc, nous allons voir si le format de cette if est où le problème est. 470 00:26:03,876 --> 00:26:07,420 Je veux charger que de retour ici. 471 00:26:07,420 --> 00:26:09,830 Salut. 472 00:26:09,830 --> 00:26:11,350 Donc, il ya un problème. 473 00:26:11,350 --> 00:26:15,130 >> Donc, pour la syntaxe correcte de PHP, PHP va 474 00:26:15,130 --> 00:26:17,369 être C-comme dans que vous verrez boucles. 475 00:26:17,369 --> 00:26:18,410 Vous verrez si les états. 476 00:26:18,410 --> 00:26:20,920 Vous verrez tous ces amis que vous avez familiariser 477 00:26:20,920 --> 00:26:24,820 avec plus de cours de cette CS50 semestre. 478 00:26:24,820 --> 00:26:29,960 Mais la meilleure façon de comprendre comment faire quelque chose en PHP est Google, il 479 00:26:29,960 --> 00:26:33,170 ou de regarder quelques exemples de code PHP parce que vous savez la fonctionnalité. 480 00:26:33,170 --> 00:26:35,080 >> Vous savez ce que vous pouvez faire avec le programme. 481 00:26:35,080 --> 00:26:35,976 Vous pouvez faire une boucle. 482 00:26:35,976 --> 00:26:37,600 Vous pouvez faire une boucle autant de fois que vous le souhaitez. 483 00:26:37,600 --> 00:26:39,433 Vous pouvez faire une boucle dans tous les sortes de façons différentes. 484 00:26:39,433 --> 00:26:40,700 Vous pouvez créer des fonctions. 485 00:26:40,700 --> 00:26:43,241 Vous pouvez créer des fonctions qui appeler d'autres fonctions, fonctions 486 00:26:43,241 --> 00:26:44,150 qui appellent eux-mêmes. 487 00:26:44,150 --> 00:26:45,733 Et vous avez des noms de ces concepts. 488 00:26:45,733 --> 00:26:49,860 Vous avez la récursivité, boucles, si, les autres flux de contrôle. 489 00:26:49,860 --> 00:26:51,300 Et si Google est votre meilleur ami. 490 00:26:51,300 --> 00:26:53,540 Même dire, "si PHP déclaration »et il y 491 00:26:53,540 --> 00:26:57,740 des tonnes de messages avec réponses à d'autres personnes 492 00:26:57,740 --> 00:27:02,090 qui ont eu des questions semblables à vous, qui commencent tout juste avec PHP 493 00:27:02,090 --> 00:27:03,820 et sont curieux de savoir une chose de syntaxe. 494 00:27:03,820 --> 00:27:08,480 >> Parce que nous avons le luxe d'être capable de regarder le code dans P ensemble 6, 495 00:27:08,480 --> 00:27:14,980 nous avons effectivement tirer vers le haut et de voir que OK, voici quelque chose d'intéressant. 496 00:27:14,980 --> 00:27:18,070 Donc, cela est ce qu'il est réellement ressemblait à P mis 6. 497 00:27:18,070 --> 00:27:20,340 Donc, si nous allons par ce biais, nous pouvons voir que nous avons 498 00:27:20,340 --> 00:27:27,150 eu plusieurs de ces petits Question mark bits de PHP-like. 499 00:27:27,150 --> 00:27:29,050 >> Et il n'y a pas d'accolades. 500 00:27:29,050 --> 00:27:30,250 Il ya deux points. 501 00:27:30,250 --> 00:27:32,340 Et il ya bouclés accolades en PHP, mais cette 502 00:27:32,340 --> 00:27:38,700 est un format et d'une façon de faire PHP qui fonctionne bien avec HTML 503 00:27:38,700 --> 00:27:43,830 parce que comme vous le verrez, nous fermons hors ces PHP bits-- l'elses 504 00:27:43,830 --> 00:27:49,770 et l'ifs et tous that-- puis nous intercalant HTML intérieur d'eux 505 00:27:49,770 --> 00:27:54,640 tout en suivant la flux de contrôle définis par PHP. 506 00:27:54,640 --> 00:27:58,480 >> Donc je vais juste marche rapide à travers ce 507 00:27:58,480 --> 00:28:01,740 car il ya beaucoup de la même concepts que nous faisions avant. 508 00:28:01,740 --> 00:28:07,280 Nous avons si non vide, parenthèses, _GET_GET ["nom"]. 509 00:28:07,280 --> 00:28:08,500 Ceci est tout de même des choses. 510 00:28:08,500 --> 00:28:15,430 Nous utilisons le dictionnaire _GET que PHP envoie à la demande de formes, 511 00:28:15,430 --> 00:28:20,720 parce que ce sont les paramètres de l'action, et la méthode est d'obtenir. 512 00:28:20,720 --> 00:28:22,110 Et puis qui finit que. 513 00:28:22,110 --> 00:28:27,420 Le côlon est un signifiant à tout faire si l'instruction if true. 514 00:28:27,420 --> 00:28:29,490 Il est comme une accolade. 515 00:28:29,490 --> 00:28:33,320 Et en fait, il est une accolade dans d'autres langues comme Python, 516 00:28:33,320 --> 00:28:37,070 que vous pouvez rencontrer si vous venez faire pour votre projet final. 517 00:28:37,070 --> 00:28:40,170 >> Et puis cette ligne, bonjour. 518 00:28:40,170 --> 00:28:41,510 Ensuite, nous avons cette chose bizarre. 519 00:28:41,510 --> 00:28:43,190 Nous avons plusieurs consoles. 520 00:28:43,190 --> 00:28:46,140 Il n'y a pas HTTP there-- ou PHP, désolé. 521 00:28:46,140 --> 00:28:47,250 Mais il ya un signe égal. 522 00:28:47,250 --> 00:28:50,625 Et puis nous avons une fonction, htmlspecialchars (_GEThtmlspecialchars (_GET ["nom"]). 523 00:28:50,625 --> 00:28:54,440 524 00:28:54,440 --> 00:28:58,040 Ceci est un peu comme un plus version avancée de l'écho. 525 00:28:58,040 --> 00:29:01,450 Comme nous avions écho comme un moyen d'imprimer les choses en PHP. 526 00:29:01,450 --> 00:29:03,890 Ceci est une fonction qui est que défini dans la PHP 527 00:29:03,890 --> 00:29:08,160 portera sur un peu plus agressif les personnages et les valeurs d'octets 528 00:29:08,160 --> 00:29:09,540 que vous pourriez passer. 529 00:29:09,540 --> 00:29:11,070 Il est toujours plus sûr d'utiliser ce. 530 00:29:11,070 --> 00:29:14,930 Mais l'écho va faire le travail très bien si nous ne sommes pas 531 00:29:14,930 --> 00:29:17,620 traiter avec quelque chose de trop méchant. 532 00:29:17,620 --> 00:29:20,340 >> Et donc cela a le même effet de fond, 533 00:29:20,340 --> 00:29:26,360 ce genre de choses entre la question marques est évaluée par PHP. 534 00:29:26,360 --> 00:29:34,490 htmlspecialchars renvoie une belle HTML valeur imprimée de _GET_GET ["nom"], à savoir 535 00:29:34,490 --> 00:29:36,010 quel que soit nous avons tapé dans le formulaire. 536 00:29:36,010 --> 00:29:40,025 Et puis il va dire bonjour, espace virgule, puis cela. 537 00:29:40,025 --> 00:29:42,910 Ce tout entre les équerres 538 00:29:42,910 --> 00:29:47,390 sera remplacé par quelque htmlspecialchars éteint. 539 00:29:47,390 --> 00:29:49,390 Voilà donc essentiellement similaire à ce que nous faisons. 540 00:29:49,390 --> 00:29:54,760 Et nous avons une déclaration qui est d'ailleurs Bonjour tout le monde, ce qui est logique. 541 00:29:54,760 --> 00:29:58,070 Alors maintenant, revenons à notre code et voir exactly-- oh. 542 00:29:58,070 --> 00:30:02,200 Je l'ai dit il existe, ce qui est pas une chose que nous voulions faire. 543 00:30:02,200 --> 00:30:05,370 Nous voulions dire pas vide. 544 00:30:05,370 --> 00:30:10,020 >> Et ce qui devrait travailler un peu peu mieux, pas _GET_GET vide ["nom"]. 545 00:30:10,020 --> 00:30:12,710 Et ce accolade correspond à celle accolade. 546 00:30:12,710 --> 00:30:15,210 Nous avons nos accolades ici. 547 00:30:15,210 --> 00:30:17,790 echo bonjour _GET ["nom"]. 548 00:30:17,790 --> 00:30:19,912 Voyons voir si cela fonctionne un peu mieux. 549 00:30:19,912 --> 00:30:21,350 Nous sommes encore en course notre serveur. 550 00:30:21,350 --> 00:30:23,910 Bonjour Jason. 551 00:30:23,910 --> 00:30:24,780 Bonjour Jason. 552 00:30:24,780 --> 00:30:25,810 Et cela a fonctionné cette fois. 553 00:30:25,810 --> 00:30:29,860 Et voilà une preuve que vous pouvez en effet 554 00:30:29,860 --> 00:30:35,180 utiliser les accolades que vous connaître et aimer dans le code PHP en HTML. 555 00:30:35,180 --> 00:30:41,100 Le code PHP fournie à vous dans pset 6-- pset 6-- 556 00:30:41,100 --> 00:30:44,760 fournit une autre façon de le faire même chose. 557 00:30:44,760 --> 00:30:49,220 >> Alors maintenant, nous avons le pouvoir. 558 00:30:49,220 --> 00:30:55,740 Nous avons à mettre en œuvre la fonctionnalité le code PHP que nous avons vu dans pset 6 559 00:30:55,740 --> 00:30:57,390 par nous-mêmes, essentiellement. 560 00:30:57,390 --> 00:31:01,350 Avant de passer, ce sont quelques-uns des questions que vous avez à ce point? 561 00:31:01,350 --> 00:31:02,066 Oui [inaudible]. 562 00:31:02,066 --> 00:31:06,512 >> Auditoire: Alors, dans sa version en pset6, lorsque vous l'exécutez, il ya un espace. 563 00:31:06,512 --> 00:31:09,330 Et je peux voir où l'espace est après la virgule. [Inaudible] début 564 00:31:09,330 --> 00:31:10,700 le support ouvert. 565 00:31:10,700 --> 00:31:15,420 Comment vous intégrez dans l'espace ne la façon dont vous avez écrit vos propres codes? 566 00:31:15,420 --> 00:31:17,910 >> Président: Cela est une bonne question. 567 00:31:17,910 --> 00:31:21,650 Et nous allons donc comprendre cela. 568 00:31:21,650 --> 00:31:24,450 Voilà donc une très bonne question et que je ne considère pas. 569 00:31:24,450 --> 00:31:25,950 Mais faisons-le ensemble. 570 00:31:25,950 --> 00:31:30,280 >> Alors tout d'abord, ce que Je fais avec echo 571 00:31:30,280 --> 00:31:33,690 est quand nous faisons écho juste bonjour, il affiche bonjour. 572 00:31:33,690 --> 00:31:41,310 Si nous faisons écho maintenant obtenir ce sur une séparée ligne, nous allons examiner ce qui se passe. 573 00:31:41,310 --> 00:31:43,740 Donc, nous cliquons sur ce sujet. 574 00:31:43,740 --> 00:31:45,220 Nous gardons en disant salut Jason. 575 00:31:45,220 --> 00:31:48,690 Encore une fois, nous ne disposons pas cet espace. 576 00:31:48,690 --> 00:31:53,090 >> Tout cela parce que, dans PHP, quand nous avons écho, 577 00:31:53,090 --> 00:31:55,820 peu importe combien de spaces-- Nope, pas le V-- 578 00:31:55,820 --> 00:32:01,770 peu importe combien de places nous avons mis en ici-- si nous chargeons maintenant que de nouveau, 579 00:32:01,770 --> 00:32:03,010 salut Jason. 580 00:32:03,010 --> 00:32:05,770 Ouais, voir, tous ceux espaces se sont mangés. 581 00:32:05,770 --> 00:32:08,020 Et ce quelque chose qui la fonction d'écho fait. 582 00:32:08,020 --> 00:32:11,110 >> Donc, pour prendre soin de cet espace, ce qui est 583 00:32:11,110 --> 00:32:14,960 l'une des raisons pourquoi vous ne l'utilisez pas d'écho 584 00:32:14,960 --> 00:32:18,200 et que vous utilisez htmlspecialchars place. 585 00:32:18,200 --> 00:32:22,140 Je suis curieux de savoir ce qui serait passerait-il si nous faisions cela 586 00:32:22,140 --> 00:32:26,700 où nous joignons un espace dans une chaîne. 587 00:32:26,700 --> 00:32:29,720 Je suis honnêtement pas sûr de ce qui va se passer quand je fais cela. 588 00:32:29,720 --> 00:32:30,790 >> Voilà donc une façon. 589 00:32:30,790 --> 00:32:32,210 Voilà une façon de prendre soin d'elle. 590 00:32:32,210 --> 00:32:34,840 Si vous enveloppez dans l'espace une chaîne, puis l'espace 591 00:32:34,840 --> 00:32:36,920 sera bien sortie par écho. 592 00:32:36,920 --> 00:32:41,930 La chose la plus sûre à faire est faire htmlspecialchars. 593 00:32:41,930 --> 00:32:43,800 Voilà toujours le pari sûr. 594 00:32:43,800 --> 00:32:47,050 Mais maintenant, nous avons une façon de le faire avec écho si nécessaire. 595 00:32:47,050 --> 00:32:50,700 Et de la même manière, nous pouvons écho de nouvelles lignes, tout le genre 596 00:32:50,700 --> 00:32:53,550 de choses que vous êtes familier faire en PHP. 597 00:32:53,550 --> 00:32:57,460 >> Quelqu'un d'autre, ce sont plus des questions que d'autres personnes ont 598 00:32:57,460 --> 00:33:01,090 à ce point à propos de PHP? 599 00:33:01,090 --> 00:33:04,620 Si les gens ont montré un peu de retard, Je suis heureux de rester après un peu 600 00:33:04,620 --> 00:33:06,420 et parler de certains des le début. 601 00:33:06,420 --> 00:33:10,380 Et il est également tout livestreamed, et archivés, ce qui est fou. 602 00:33:10,380 --> 00:33:13,960 >> Quoi qu'il en soit, maintenant faisons un peu plus de choses de pointe avec PHP. 603 00:33:13,960 --> 00:33:18,790 Et l'une des premières choses que vous ont été introduites dans C était pour les boucles. 604 00:33:18,790 --> 00:33:24,060 Et PHP dispose d'un plus puissant pour boucle appelée boucle foreach. 605 00:33:24,060 --> 00:33:37,940 Et il semble que this-- pour chaque vierge comme vierges, accolades, faire la chose. 606 00:33:37,940 --> 00:33:41,500 Donc, cela est essentiellement un raccourci. 607 00:33:41,500 --> 00:33:45,380 >> Voir, la boucle comme un construction syntaxique 608 00:33:45,380 --> 00:33:50,590 a été conçu en C et en assembleur la langue et les choses aiment. 609 00:33:50,590 --> 00:33:56,300 Conçu en C, précisément, comme un raccourci pour un grand nombre de types de boucles 610 00:33:56,300 --> 00:33:57,750 que les gens verraient. 611 00:33:57,750 --> 00:34:01,230 Comme quand vous avez écrit une boucle, il est souvent une étape d'initialisation 612 00:34:01,230 --> 00:34:04,700 exécutée dès le début, un condition où la boucle serait stop-- 613 00:34:04,700 --> 00:34:07,030 et que la fonction est qui est juste dans une boucle while, 614 00:34:07,030 --> 00:34:10,040 ou qu'un tout a exactement juste que feature-- puis 615 00:34:10,040 --> 00:34:12,320 une étape d'incrémentation à la fin. 616 00:34:12,320 --> 00:34:16,489 Et si vous souhaitez vous trouvez souvent l'écriture de code comme le suivant. 617 00:34:16,489 --> 00:34:19,780 Je vais effacer une partie de cette. 618 00:34:19,780 --> 00:34:23,850 >> Mais si nous nous parcourons caractères dans un tableau, 619 00:34:23,850 --> 00:34:26,960 par exemple, comme nous l'avons obtenu un tableau de caractères. 620 00:34:26,960 --> 00:34:29,400 Désolé pour ramener C. Je sais, vous pensiez que vous aviez terminé. 621 00:34:29,400 --> 00:34:31,900 Mais il est uniquement dans le but de l'apprentissage de PHP, je le promets. 622 00:34:31,900 --> 00:34:38,880 Donc, si vous avez un str char de longueur 8, et nous allons 623 00:34:38,880 --> 00:34:46,760 dire qu'il dit Hellooo avec une nulle de fuite. 624 00:34:46,760 --> 00:34:48,270 Grande, de sorte que est notre chaîne. 625 00:34:48,270 --> 00:34:51,469 >> Et puis nous avons eu une boucle for. 626 00:34:51,469 --> 00:34:53,730 Nous avons int i est égal à 0. 627 00:34:53,730 --> 00:34:57,960 628 00:34:57,960 --> 00:35:09,110 Et nous voulons sortir quand str de i vaut pas égal à null, 629 00:35:09,110 --> 00:35:11,590 parce que nous sortons quand il est égal à zéro. 630 00:35:11,590 --> 00:35:19,170 Et puis nous faisons i ++ à chaque point de la boucle. 631 00:35:19,170 --> 00:35:30,480 Faire quelque chose avec str i. 632 00:35:30,480 --> 00:35:34,950 >> Donc, la formule de base était, nous avions ce tableau que nous 633 00:35:34,950 --> 00:35:37,910 voulu traiter comme des éléments séparés. 634 00:35:37,910 --> 00:35:45,170 Mais ce que nous avions à faire est nous avons dû essentiellement créer un nombre entier séparée 635 00:35:45,170 --> 00:35:50,530 variable qui a été égrène les fois que nous allions à travers la boucle. 636 00:35:50,530 --> 00:35:55,240 Et puis nous aurions à appeler puis strstr [i] alors que nous avons vraiment voulu faire 637 00:35:55,240 --> 00:35:57,280 est juste aller caractère par le caractère, non? 638 00:35:57,280 --> 00:36:00,185 Nous ne voulons pas d'incrémenter un entier et ensuite l'utiliser entier 639 00:36:00,185 --> 00:36:02,780 pour accéder à chaque personnage individuellement. 640 00:36:02,780 --> 00:36:04,410 Nous voulons vraiment caractère par caractère. 641 00:36:04,410 --> 00:36:08,600 >> Et ainsi pour chaque intelligemment calcule que pour nous. 642 00:36:08,600 --> 00:36:11,875 Si nous avons un tableau, qui nous pouvons déclarer en PHP 643 00:36:11,875 --> 00:36:15,900 just-- que si nous avons une variable appelle, appelons-le tableau. 644 00:36:15,900 --> 00:36:19,840 Les miracles de la frappe pas, il est comme toute autre variable. 645 00:36:19,840 --> 00:36:20,730 Il est juste un tableau. 646 00:36:20,730 --> 00:36:26,890 Et nous avons un peu de [inaudible] comme 1, 2, 3, juste une sorte de tableau initialisé. 647 00:36:26,890 --> 00:36:29,680 Il est OK, il ne aime pas mon foreach. 648 00:36:29,680 --> 00:36:33,120 >> Mais si nous ne foreach-- effectivement Je tapé qu'un peu de mal. 649 00:36:33,120 --> 00:36:34,840 Il ya deux façons de faire une boucle foreach. 650 00:36:34,840 --> 00:36:37,400 Il ya de la syntaxe et de la syntaxe que. 651 00:36:37,400 --> 00:36:40,580 Et nous allons faire en première syntaxe, pas aussi. 652 00:36:40,580 --> 00:36:41,780 Voilà mon erreur. 653 00:36:41,780 --> 00:36:53,785 >> Num Donc foreach dans le tableau, l'écho num. 654 00:36:53,785 --> 00:36:56,970 655 00:36:56,970 --> 00:36:59,500 Et PHP est criant au moi pour une raison quelconque. 656 00:36:59,500 --> 00:37:03,520 Il est de trouver un inattendu dans quelque chose, 657 00:37:03,520 --> 00:37:05,820 qui est un peu d'une peine. 658 00:37:05,820 --> 00:37:09,105 Mais nous allons trouver pourquoi ce qui est dans un moment. 659 00:37:09,105 --> 00:37:11,960 660 00:37:11,960 --> 00:37:13,610 Donc, pas comme ça. 661 00:37:13,610 --> 00:37:15,040 Essayons utilisant l'AS. 662 00:37:15,040 --> 00:37:17,310 Il préfère la syntaxe est comme semble. 663 00:37:17,310 --> 00:37:22,550 Alors, faisons ensemble foreach comme num. 664 00:37:22,550 --> 00:37:24,520 >> Donc, une petite explication de ce qui vient de se passer 665 00:37:24,520 --> 00:37:30,670 est la syntaxe que saying-- est bien d'abord, Voyons ce que cela imprime. 666 00:37:30,670 --> 00:37:32,260 Donc, nous ouvrons notre IDE. 667 00:37:32,260 --> 00:37:33,110 Nous allons ici. 668 00:37:33,110 --> 00:37:35,845 Nous disons, Bonjour Jason. 669 00:37:35,845 --> 00:37:41,390 Et il l'a fait 123, qui était le contenu du tableau que nous avons créé en haut. 670 00:37:41,390 --> 00:37:45,500 >> Alors plonger dans cette boucle de foreach, nous avons un réseau de variable appelée 671 00:37:45,500 --> 00:37:47,470 qui est un tableau de trois numéros. 672 00:37:47,470 --> 00:37:52,120 Et puis nous faisons foreach tableau comme num, écho num. 673 00:37:52,120 --> 00:37:54,990 Et qui est plus intuitive qu'un pour Lop. 674 00:37:54,990 --> 00:38:02,380 Nous disons, le traitement de chacun des les choses dans le tableau comme num, 675 00:38:02,380 --> 00:38:05,180 Je veux que vous me donniez num. 676 00:38:05,180 --> 00:38:06,640 Et cela est exactement ce qu'il fait. 677 00:38:06,640 --> 00:38:12,000 >> PHP est le calcul que quand vous dites tableau foreach, 678 00:38:12,000 --> 00:38:16,080 et vous avez affaire à un tableau, ce qui vous allez vouloir parcourir 679 00:38:16,080 --> 00:38:19,950 est les personnages de ce tableau, est les ints dans ce tableau, 680 00:38:19,950 --> 00:38:21,920 est les éléments dans ce tableau. 681 00:38:21,920 --> 00:38:26,110 Et ça vous permet de stocker ces variables comme num, 682 00:38:26,110 --> 00:38:29,360 et num puis juste sortie tout de suite plutôt que de dire, 683 00:38:29,360 --> 00:38:34,090 Je dois une variable appelée i, et alors je veux sortie strstr [i]. 684 00:38:34,090 --> 00:38:39,130 >> Et pour que nous permet de faire des choses cool. 685 00:38:39,130 --> 00:38:43,330 Comme fondamentalement, nous ne disposons pas de créer ces variables comme les i et faire tout 686 00:38:43,330 --> 00:38:45,090 cette incrémentation des trucs à la fin. 687 00:38:45,090 --> 00:38:48,290 PHP prend soin de tout cela pour vous. 688 00:38:48,290 --> 00:38:54,470 >> Laissez donc maintenant nous allons parler comme foreach il applique à notre dictionnaire _GET. 689 00:38:54,470 --> 00:38:57,170 Donc, nous allons commenter cette rapidement. 690 00:38:57,170 --> 00:39:02,030 Donc, nous avons notre réseau de _GET. 691 00:39:02,030 --> 00:39:04,361 Nous avons cette variable. 692 00:39:04,361 --> 00:39:05,610 Et il a obtenu quelques trucs dedans. 693 00:39:05,610 --> 00:39:10,275 >> À l'heure actuelle, nous avons une seule variable étant transmis à ce qui est le nom. 694 00:39:10,275 --> 00:39:13,420 Mais si nous appuyez sur Entrée, maintenant nous pouvons avoir deux variables. 695 00:39:13,420 --> 00:39:17,910 Nous pouvons avoir des nom et l'âge, par exemple, si nous voulons obtenir de l'âge et aussi 696 00:39:17,910 --> 00:39:20,960 le nom d'une personne, curieusement. 697 00:39:20,960 --> 00:39:25,690 >> Alors maintenant _GET va être un dictionnaire avec deux éléments, 698 00:39:25,690 --> 00:39:27,980 avec deux paires de valeurs clés. 699 00:39:27,980 --> 00:39:33,490 Et la première KEY-- je vais écrire ce une place sur la carte aussi. 700 00:39:33,490 --> 00:39:37,136 Nous avons notre dictionnaire est _GET. 701 00:39:37,136 --> 00:39:39,520 Désolé, il est est un peu difficile à voir. 702 00:39:39,520 --> 00:39:46,690 Mais à l'intérieur, nous avons notre dictionnaire nom, qui est va être quelque chose 703 00:39:46,690 --> 00:39:47,680 que nous sommes donné. 704 00:39:47,680 --> 00:39:53,040 Et nous aurons l'âge, qui est aussi va être quelque chose que l'on nous donne. 705 00:39:53,040 --> 00:39:56,020 Et cela est l'ensemble de notre dictionnaire. 706 00:39:56,020 --> 00:39:57,730 >> Donc il existe deux éléments en elle. 707 00:39:57,730 --> 00:40:01,310 Et parce que foreach boucles sont intelligents, nous 708 00:40:01,310 --> 00:40:04,900 pourraient penser, et correctement pourrait penser que foreach 709 00:40:04,900 --> 00:40:08,080 peut itérer cette dictionnaire, imprimant 710 00:40:08,080 --> 00:40:10,850 Les valeurs indiquées par le nom et l'âge. 711 00:40:10,850 --> 00:40:14,510 >> Donc, nous allons en fait faire exactement cela. 712 00:40:14,510 --> 00:40:17,520 Construisons une boucle foreach. 713 00:40:17,520 --> 00:40:23,351 Et nous allons faire pour que _GET. 714 00:40:23,351 --> 00:40:24,850 Et nous allons faire ce qui suit. 715 00:40:24,850 --> 00:40:34,186 Donc, nous allons voir ce qui arrive si nous tapons juste mot, et puis dire mot écho. 716 00:40:34,186 --> 00:40:40,540 Nous allons également faire écho à une nouvelle ligne juste pour le rendre un peu plus clair, 717 00:40:40,540 --> 00:40:41,260 ce qui se passe. 718 00:40:41,260 --> 00:40:42,890 >> Voyons donc. 719 00:40:42,890 --> 00:40:44,390 Ca me donne pas des erreurs. 720 00:40:44,390 --> 00:40:46,810 Et nous terminons cette. 721 00:40:46,810 --> 00:40:51,020 Sur notre site, vous allez faire beaucoup de cela au cours de pset7. 722 00:40:51,020 --> 00:40:53,890 Donc, nous disons mon nom est Sam. 723 00:40:53,890 --> 00:40:58,560 Mon âge est de 45. 724 00:40:58,560 --> 00:41:01,060 Ce n'est pas. 725 00:41:01,060 --> 00:41:05,640 Mais il imprime, comme prévu, Sam 45. 726 00:41:05,640 --> 00:41:08,930 >> Et vous remarquerez que ce qui boucle foreach did-- ici, 727 00:41:08,930 --> 00:41:12,360 Revenons à ce que donc il est en place sur la board-- nous obtenons _GET comme mot. 728 00:41:12,360 --> 00:41:15,130 Et il y avait quatre choses dans _GET. 729 00:41:15,130 --> 00:41:17,410 Mais il ne imprimé deux choses. 730 00:41:17,410 --> 00:41:21,290 foreach, étant son auto de renseignement, supposé que ce que nous voulions vraiment 731 00:41:21,290 --> 00:41:24,100 était les valeurs, pas les clés. 732 00:41:24,100 --> 00:41:27,800 >> Mais il ya une façon que nous pourrions imprimer les touches ainsi, si nous voulions. 733 00:41:27,800 --> 00:41:30,810 Si nous voulions savoir aussi ce que ces variables ont été appelés, 734 00:41:30,810 --> 00:41:33,540 il ya une façon que nous peuvent accéder à cette ainsi. 735 00:41:33,540 --> 00:41:36,840 Et la façon de faire de sorte que, de sorte que nous pouvons dire, laisse vraiment 736 00:41:36,840 --> 00:41:39,485 diviser en paires clé-valeur. 737 00:41:39,485 --> 00:41:42,370 738 00:41:42,370 --> 00:41:47,580 Voyons donc ce qui se passe maintenant. 739 00:41:47,580 --> 00:41:50,550 >> Donc, nous avons la clé. 740 00:41:50,550 --> 00:41:52,290 Nous avons la valeur. 741 00:41:52,290 --> 00:41:56,650 Nous avons un autre nouveau ligne pour plus de lisibilité. 742 00:41:56,650 --> 00:42:00,540 Et nous allons voir ce qui se passe lorsque nous faisons cela maintenant. 743 00:42:00,540 --> 00:42:04,950 744 00:42:04,950 --> 00:42:06,720 Je ne sais pas quel âge est Jason. 745 00:42:06,720 --> 00:42:09,180 Jason 15. 746 00:42:09,180 --> 00:42:11,650 Nous avons donc le nom de Jason, 15 ans. 747 00:42:11,650 --> 00:42:15,830 Donc, nous avons pu accéder à la clé et des paires de valeurs de ce dictionnaire 748 00:42:15,830 --> 00:42:18,590 en disant simplement que les points clés de la valeur. 749 00:42:18,590 --> 00:42:23,350 Et voilà un syntaxique foreach peu de sucre qui permet 750 00:42:23,350 --> 00:42:25,960 d'accéder à des choses dans le dictionnaire. 751 00:42:25,960 --> 00:42:31,190 >> Donc, nous espérons que ce genre de souligne la puissance de la boucle foreach. 752 00:42:31,190 --> 00:42:35,690 Vous pouvez très bien lancer tout ce qui semble iterable, 753 00:42:35,690 --> 00:42:38,922 comme tout ce qui a de multiples des éléments comme un tableau, 754 00:42:38,922 --> 00:42:41,880 comme un dictionary-- Ce sont deux premières choses que vous allez travailler avec 755 00:42:41,880 --> 00:42:45,630 à la fois dans la vie et dans pset 7. 756 00:42:45,630 --> 00:42:49,350 Ainsi, vous pouvez jeter ce truc à elle, et il va comprendre 757 00:42:49,350 --> 00:42:51,030 ce que vous voulez faire avec elle. 758 00:42:51,030 --> 00:42:54,250 Il va dire, OK, je vais obtenir ces choses aux données 759 00:42:54,250 --> 00:42:55,680 a été adoptée pour moi. 760 00:42:55,680 --> 00:43:02,470 Et ce quelque chose que vous êtes va être en utilisant un lot de 7 à pset. 761 00:43:02,470 --> 00:43:08,550 >> Je vais défilement rapide bas juste pour voir où je suis. 762 00:43:08,550 --> 00:43:11,410 763 00:43:11,410 --> 00:43:13,070 Les gens ont des questions à ce point? 764 00:43:13,070 --> 00:43:13,778 Questions à tous? 765 00:43:13,778 --> 00:43:14,400 Oui? 766 00:43:14,400 --> 00:43:18,320 >> Auditoire: Alors, avec la clé et la valeur, vous pouvez nommer ce quelque chose d'autre 767 00:43:18,320 --> 00:43:20,507 et il serait encore travailler? 768 00:43:20,507 --> 00:43:21,090 CONFÉRENCIER: Oups. 769 00:43:21,090 --> 00:43:22,820 Wow, je suis totalement supprimé toute la ligne. 770 00:43:22,820 --> 00:43:23,380 Bon travail. 771 00:43:23,380 --> 00:43:26,502 Ainsi, a, a. 772 00:43:26,502 --> 00:43:30,109 Clé et la valeur est juste une convention. 773 00:43:30,109 --> 00:43:30,650 Il est utile. 774 00:43:30,650 --> 00:43:34,010 Vous obtiendrez une certaine conception points, peut-être quelques points de style 775 00:43:34,010 --> 00:43:36,970 pour faire cela, car il transmet vraiment l'intention. 776 00:43:36,970 --> 00:43:39,650 Mais nous disons a et Yarp. 777 00:43:39,650 --> 00:43:42,476 >> AUDIENCE: Vous ne devez pas changer quelque chose dans le fichier HTML 778 00:43:42,476 --> 00:43:43,607 afin de refléter cela? 779 00:43:43,607 --> 00:43:44,440 CONFÉRENCIER: Pas du tout. 780 00:43:44,440 --> 00:43:47,260 Public: Et il sait juste que en raison de la plus grande équivaut than-- 781 00:43:47,260 --> 00:43:47,801 CONFÉRENCIER: Oui. 782 00:43:47,801 --> 00:43:49,489 AUDIENCE: indicateur --Que que that's-- 783 00:43:49,489 --> 00:43:50,030 CONFÉRENCIER: Oui. 784 00:43:50,030 --> 00:43:52,260 Voilà une syntaxe foreach, mais oui. 785 00:43:52,260 --> 00:43:53,720 >> PUBLIC: Il n'y a pas les types. 786 00:43:53,720 --> 00:43:57,230 Alors que faire si vous vouliez l'âge d'être seulement un nombre? 787 00:43:57,230 --> 00:43:59,510 Y at-il un moyen de faire cela? 788 00:43:59,510 --> 00:44:04,550 >> CONFÉRENCIER: Il existe des moyens pour vérifier si les variables sont conformes à certains types. 789 00:44:04,550 --> 00:44:08,482 Donc PHP demande un peu plus de vous car il n'y en types. 790 00:44:08,482 --> 00:44:09,440 Certains égards, il demande moins. 791 00:44:09,440 --> 00:44:11,070 À certains égards, il demande plus. 792 00:44:11,070 --> 00:44:13,320 Parce que si vous avez juste quelque chose dans une variable, 793 00:44:13,320 --> 00:44:14,960 vous avez aucune idée de quel type il est. 794 00:44:14,960 --> 00:44:19,310 Mais si vous êtes intelligent sur les variables que vous attribuez à types et assurez- 795 00:44:19,310 --> 00:44:22,750 qui ne fonctionne que vous return-- veulent fonctions à seulement retour 796 00:44:22,750 --> 00:44:26,210 un type de valeur afin que vous pouvez essentiellement 797 00:44:26,210 --> 00:44:31,090 attendre à ce que la variable que vous revenir à partir d'une fonction sera du type 798 00:44:31,090 --> 00:44:32,780 que vous pensez que ce sera, essentiellement. 799 00:44:32,780 --> 00:44:36,550 >> Mais il existe quelques méthodes par lequel vous pouvez vérifier. 800 00:44:36,550 --> 00:44:39,801 Je ne me souviens pas sur le dessus de ma tête. 801 00:44:39,801 --> 00:44:43,300 Je suis en attente pour elle de virer au bleu. 802 00:44:43,300 --> 00:44:45,560 isint? 803 00:44:45,560 --> 00:44:48,070 isstr? 804 00:44:48,070 --> 00:44:52,000 Il existe des méthodes intégrée à PHP, qui peut 805 00:44:52,000 --> 00:44:54,440 vérifier le type de variables pour vous. 806 00:44:54,440 --> 00:44:58,250 Mais si vous affectez des variables intelligemment, vous ne devriez pas 807 00:44:58,250 --> 00:45:01,330 avoir à faire cela trop dans pset 7. 808 00:45:01,330 --> 00:45:02,780 Mais ces méthodes existent. 809 00:45:02,780 --> 00:45:06,704 Et ce quelque chose qui est dans la langue elle-même. 810 00:45:06,704 --> 00:45:08,370 Et je ne me souviens pas de la syntaxe précise. 811 00:45:08,370 --> 00:45:09,930 Nous pourrions même regarder vers le haut. 812 00:45:09,930 --> 00:45:11,974 Mais le temps est de l'essence. 813 00:45:11,974 --> 00:45:13,890 avoir Quelqu'un d'autre avez d'autres questions? 814 00:45:13,890 --> 00:45:14,660 Oui. 815 00:45:14,660 --> 00:45:15,951 >> AUDIENCE: Je dois juste un de plus. 816 00:45:15,951 --> 00:45:19,050 Donc, vous avez parlé de la méthode GET, mais vous ne mentionne pas la méthode POST. 817 00:45:19,050 --> 00:45:20,500 Sommes-nous en revenons à cela? 818 00:45:20,500 --> 00:45:21,540 >> Président: Oui, nous allons être revenir à cela. 819 00:45:21,540 --> 00:45:24,840 Voilà exactement ce que je cherchais à mon téléphone, qui maintenant est endormi, 820 00:45:24,840 --> 00:45:26,960 mais je vais le trouver. 821 00:45:26,960 --> 00:45:30,680 Juste nous assurer que nous frappons toutes les notes de PHP. 822 00:45:30,680 --> 00:45:35,640 Yep, il n'y a aucune version de débogage. 823 00:45:35,640 --> 00:45:41,940 Oui, nous avons un peu plus de choses qui nous voulons faire maintenant, à ce point. 824 00:45:41,940 --> 00:45:45,980 >> Donc parler POST, dont vous avez parlé, 825 00:45:45,980 --> 00:45:49,630 la seule différence entre GET et POST est 826 00:45:49,630 --> 00:45:53,150 rappelons que lorsque nous avons examiné à l'adresse suivante et nous avons vu, oh, 827 00:45:53,150 --> 00:45:58,270 équivaut à un nom et l'âge est égal Yarp sont en plein URL là pour nous. 828 00:45:58,270 --> 00:46:03,300 POST est un peu plus secret avec son passage de l'information. 829 00:46:03,300 --> 00:46:08,090 >> Donc, si vous ne voulez pas un utilisateur à savoir, par exemple, vous 830 00:46:08,090 --> 00:46:11,160 je ne voulais pas le nom d'utilisateur et mot de passe de la personne 831 00:46:11,160 --> 00:46:15,080 actuellement connecté à afficher dans l'URL, ce qui est une chose raisonnable 832 00:46:15,080 --> 00:46:17,770 de ne pas vouloir dans l'URL, parce que quelqu'un peut le voir. 833 00:46:17,770 --> 00:46:21,520 Si elles relient quelqu'un à une page, vous ne veulent pas que leur URL il plâtré, 834 00:46:21,520 --> 00:46:27,850 parce que cela permettra aux gens de se connecter juste avec le collage d'une URL à la place 835 00:46:27,850 --> 00:46:29,670 du fait de remplir un formulaire. 836 00:46:29,670 --> 00:46:31,710 POST est un peu plus discret. 837 00:46:31,710 --> 00:46:34,150 >> Et les seules choses qui nous devrons changer 838 00:46:34,150 --> 00:46:38,550 sont cette méthode, le changement de rendre à poster. 839 00:46:38,550 --> 00:46:42,367 Et puis à l'intérieur du HTTP, la place d'accéder à la _GET de tableau, 840 00:46:42,367 --> 00:46:43,950 nous allons accéder à la _POST de tableau. 841 00:46:43,950 --> 00:46:48,600 >> Et nous allons remarquons que, si nous ouvrons cette remonter, 842 00:46:48,600 --> 00:46:51,910 Jason décline lentement dans l'âge. 843 00:46:51,910 --> 00:46:53,230 nommer Jason, 14 ans. 844 00:46:53,230 --> 00:46:54,280 La même chose apparaît. 845 00:46:54,280 --> 00:46:57,190 Mais nous allons à l'URL et ces variables ne sont pas là. 846 00:46:57,190 --> 00:47:00,540 >> Et la façon dont POST passes-- afin souvenir 847 00:47:00,540 --> 00:47:02,750 comment regarder la source d'une page. 848 00:47:02,750 --> 00:47:04,570 Nous allons au réseau. 849 00:47:04,570 --> 00:47:06,920 Nous Actualiser. 850 00:47:06,920 --> 00:47:10,690 Et ceci est une autre chose qui POST vous donnera des avertissements au sujet. 851 00:47:10,690 --> 00:47:15,050 Vous pourriez avoir vu une boîte, un texte boîte comme cela dans votre navigateur. 852 00:47:15,050 --> 00:47:18,170 Es-tu sûr que tu veux d'envoyer un formulaire à nouveau? 853 00:47:18,170 --> 00:47:21,170 POST est ce que l 'envoi de ces formes. 854 00:47:21,170 --> 00:47:24,680 >> Parce que, fondamentalement, si vous avez envoyé votre informations de carte de crédit à quelqu'un, 855 00:47:24,680 --> 00:47:26,350 cela ne va pas à apparaître dans l'URL. 856 00:47:26,350 --> 00:47:28,180 Cela va être une requête POST. 857 00:47:28,180 --> 00:47:32,905 Ainsi, lorsque vous actualisez la page, il est de renvoyer cette demande de poste. 858 00:47:32,905 --> 00:47:35,530 Alors maintenant, nous voulons envoyer le former à nouveau parce que ça ne va pas 859 00:47:35,530 --> 00:47:37,340 pour créer des achats en double. 860 00:47:37,340 --> 00:47:41,160 >> Et nous remarquons que ici, la méthode que nous utilisons est POST. 861 00:47:41,160 --> 00:47:43,065 Et il a effectivement transférer octets. 862 00:47:43,065 --> 00:47:45,460 Elle a transféré 401 d'entre eux. 863 00:47:45,460 --> 00:47:47,190 Programme est assez petit. 864 00:47:47,190 --> 00:47:51,600 Mais il n'y a nulle part que nous pouvons voir les valeurs qui sont transmises. 865 00:47:51,600 --> 00:47:59,540 Les pages web se peut voir, mais nous, les utilisateurs ne sommes pas en mesure de voir, 866 00:47:59,540 --> 00:48:01,650 sauf si vous êtes un hacker. 867 00:48:01,650 --> 00:48:05,340 Si vous êtes un bon hacker, vous pouvez regarder. 868 00:48:05,340 --> 00:48:09,360 >> Si vous connaissez la base format du HTML, 869 00:48:09,360 --> 00:48:11,790 les valeurs feront connaître dans les pages. 870 00:48:11,790 --> 00:48:13,160 Vous serez en mesure de voir. 871 00:48:13,160 --> 00:48:16,720 Les valeurs seront là, ils sont juste un peu moins évident pour vous 872 00:48:16,720 --> 00:48:19,522 d'accès, essentiellement. 873 00:48:19,522 --> 00:48:23,620 >> Avons-nous plus questions au sujet de GET, POST 874 00:48:23,620 --> 00:48:26,800 before-- ce que nous allons faire ensuite est réellement regarder une partie du code 875 00:48:26,800 --> 00:48:30,837 que vous vous donnez en pset 7, parlez comment il utilise certains de ces concepts, 876 00:48:30,837 --> 00:48:32,670 et parler de la choses que vous allez 877 00:48:32,670 --> 00:48:35,090 d'avoir à faire un peu de pset 7. 878 00:48:35,090 --> 00:48:36,760 D'autres questions avant? 879 00:48:36,760 --> 00:48:38,047 Plus de questions que vous les gars ont? 880 00:48:38,047 --> 00:48:41,250 881 00:48:41,250 --> 00:48:41,840 Génial. 882 00:48:41,840 --> 00:48:45,370 >> Très bien, regardons un peu à pset 7, 883 00:48:45,370 --> 00:48:49,530 sans aucun doute ce que vous êtes tous plus excités. 884 00:48:49,530 --> 00:48:52,126 885 00:48:52,126 --> 00:48:54,750 Je veux dire, ce qui est quelque chose David passe par un peu. 886 00:48:54,750 --> 00:49:00,890 Mais nous aurons trois répertoires à la dessus, ainsi que d'un fichier de configuration. 887 00:49:00,890 --> 00:49:04,650 Voilà pour les bases de données, que nous allons parler en cinq minutes environ. 888 00:49:04,650 --> 00:49:07,220 Comprend, vous ne devez jamais de regarder dans ce répertoire 889 00:49:07,220 --> 00:49:12,480 si vous ne voulez pas, mais il est agréable de savent qu'il ya toutes sortes d'aides. 890 00:49:12,480 --> 00:49:14,210 Helpers est comme fonctions utiles. 891 00:49:14,210 --> 00:49:18,120 Et puis nous avons config, qui définit certains trucs. 892 00:49:18,120 --> 00:49:24,590 >> Il ya certaines fonctions qui a CS50 écrite qui sont en aide et config. 893 00:49:24,590 --> 00:49:27,250 Et une partie de la PHP qui existe déjà dans les fichiers 894 00:49:27,250 --> 00:49:30,880 va faire beaucoup de la sorte plus travail de la jambe du obtus pour vous. 895 00:49:30,880 --> 00:49:35,250 Comme si nous entrons dans publique login.php, qui est ce que 896 00:49:35,250 --> 00:49:38,350 apparaît à droite quand vous allez dans pset 7. 897 00:49:38,350 --> 00:49:40,580 Nous verrons qu'il ya cette déclaration exige. 898 00:49:40,580 --> 00:49:43,420 Et ce genre de comme un forte comprennent, hashtag 899 00:49:43,420 --> 00:49:46,850 comprendre, si vous êtes d'une génération plus récente. 900 00:49:46,850 --> 00:49:49,740 Mais cette essentiellement dit que je dois accès 901 00:49:49,740 --> 00:49:52,260 à toutes les fonctions dans config.php. 902 00:49:52,260 --> 00:49:55,290 Et vous pourriez avoir un besoin de pour toutes sortes d'autres choses. 903 00:49:55,290 --> 00:49:59,670 >> config nécessite effectivement des aides. 904 00:49:59,670 --> 00:50:02,490 Donc, chaque fois vous avez besoin config, vous êtes aussi 905 00:50:02,490 --> 00:50:05,660 y compris les aides ou nécessitant ainsi. 906 00:50:05,660 --> 00:50:09,590 Alors que vous donne accès à tous les fonctions sympas que nous allons utiliser, 907 00:50:09,590 --> 00:50:10,420 des choses comme rendre. 908 00:50:10,420 --> 00:50:13,490 Je vais en fait pour faciliter cette baisse un peu. 909 00:50:13,490 --> 00:50:16,280 Donc la fonction alors nous sommes aller à pied à travers 910 00:50:16,280 --> 00:50:22,380 juste avant de passer à un peu de SQL bit est la fonction de login.php, juste 911 00:50:22,380 --> 00:50:26,586 car il utilise certains des sujets que nous venons de parler en PHP. 912 00:50:26,586 --> 00:50:30,840 >> Vous voyez la première chose est si $ _SERVER. 913 00:50:30,840 --> 00:50:34,500 Ceci est une autre variable globale qui vous allez avoir affaire à. 914 00:50:34,500 --> 00:50:38,460 Il est comme _GET et $ _POST, mais ce serveur contient est ce pouvez-vous laisser 915 00:50:38,460 --> 00:50:42,730 savoir si la méthode de requête était un GET ou POST. 916 00:50:42,730 --> 00:50:47,250 Comme précédemment ce que nous faisions est juste dans notre code que nous avons écrit, 917 00:50:47,250 --> 00:50:51,880 nous étions juste en train de changer ce soit GET et POST en fonction de ce que le HTML a. 918 00:50:51,880 --> 00:50:55,120 Mais il existe des pages qui peuvent être consultée avec deux types de demandes. 919 00:50:55,120 --> 00:50:57,410 Et vous pouvez faire choses différentes en fonction 920 00:50:57,410 --> 00:50:59,740 le type de demande, juste comme connexion fait. 921 00:50:59,740 --> 00:51:04,400 >> Ainsi, vous pouvez vérifier que la demande méthode par touches accès, 922 00:51:04,400 --> 00:51:08,630 grâce à l'aide d'une clé et d'obtenir le valeur de quelque chose dans le dictionnaire 923 00:51:08,630 --> 00:51:10,260 _SERVEUR. 924 00:51:10,260 --> 00:51:13,800 Voilà donc un autre mondial de variable comme _GET et $ _POST. 925 00:51:13,800 --> 00:51:16,990 >> Si elle est GET, nous voulons rendre le formulaire de connexion. 926 00:51:16,990 --> 00:51:21,920 Render est une fonction que, fondamentalement, juste met en place le code HTML appropriée 927 00:51:21,920 --> 00:51:24,500 et le transmet certains paramètres. 928 00:51:24,500 --> 00:51:28,740 Ce titre est un paramètre qui est utilisé dans l'affichage, assez curieusement, 929 00:51:28,740 --> 00:51:32,670 le titre de la page en question, la chose ici, 930 00:51:32,670 --> 00:51:34,850 dire bonjour ou dans notre exemple précédent. 931 00:51:34,850 --> 00:51:36,100 Maintenant, nous avons une chose différente. 932 00:51:36,100 --> 00:51:38,570 Sinon, si il est POST, nous faire d'autres choses. 933 00:51:38,570 --> 00:51:40,790 Nous utilisons cette méthode vide. 934 00:51:40,790 --> 00:51:42,750 Ça existait pas, il est vide. 935 00:51:42,750 --> 00:51:45,440 Et nous avons vu avant, PHP a une bonne quantité de construction 936 00:51:45,440 --> 00:51:52,370 dans des méthodes qui y David will-- si sont des méthodes qui vous sont utiles, 937 00:51:52,370 --> 00:51:55,560 ils seront alertés de vous dans la promenade à travers ce que David 938 00:51:55,560 --> 00:51:59,770 donne à l'aperçu en commençant, et également des bits utiles de Zamyla. 939 00:51:59,770 --> 00:52:01,040 Elle est de retour tout le monde. 940 00:52:01,040 --> 00:52:03,100 Nous pouvons tous nous réjouir. 941 00:52:03,100 --> 00:52:06,530 présenter des excuses est une fonction bien nommé qui imprime juste fondamentalement sur 942 00:52:06,530 --> 00:52:10,130 certains messages d'erreur, parce CS50 est très poli. 943 00:52:10,130 --> 00:52:14,770 >> Et ceci, ceci est un peu délicat parce que ce 944 00:52:14,770 --> 00:52:16,697 est l'endroit où nous l'interrogation de la base de données. 945 00:52:16,697 --> 00:52:18,280 Maintenant, nous avons pas parlé des bases de données. 946 00:52:18,280 --> 00:52:22,220 Et nous allons dans le prochain cinq minutes, au maximum. 947 00:52:22,220 --> 00:52:24,980 Mais cela est une fonction CS50 qui a écrit 948 00:52:24,980 --> 00:52:38,050 pour obtenir une table essentiellement une base de données que nous travaillons avec dans pset 7. 949 00:52:38,050 --> 00:52:40,860 Je suis vraiment mal avec ma indexation zéro aujourd'hui. 950 00:52:40,860 --> 00:52:42,060 Mais oui, il est 7. 951 00:52:42,060 --> 00:52:46,340 >> Donc requête, il va retourner un tableau, est essentiellement le bit clé. 952 00:52:46,340 --> 00:52:54,130 Et parce que ces choses ne doivent pas dactylographie, de sorte rangées est un tableau de tableaux. 953 00:52:54,130 --> 00:52:59,480 Parce que quand nous réfléchissons une table, ce que nous allons faire 954 00:52:59,480 --> 00:53:04,830 est, comme vous avez appris dans psets comme le jeu de 15, de toute façon 955 00:53:04,830 --> 00:53:06,990 où vous deviez utiliser un matrice double, nous avons essentiellement 956 00:53:06,990 --> 00:53:15,210 avoir éventail d'autres tableaux font une table. 957 00:53:15,210 --> 00:53:18,150 Et vous avez rangées et de colonnes. 958 00:53:18,150 --> 00:53:24,450 Et puis, vous pouvez y accéder comme à [0] [1], vous obtenez le [0] [1]. 959 00:53:24,450 --> 00:53:26,900 Trucs de base comme ça. 960 00:53:26,900 --> 00:53:29,380 >> Donc, ce que nous faisons ici, dans cette fonction, 961 00:53:29,380 --> 00:53:35,070 nous demandons la base de données si l'utilisateur qui est 962 00:53:35,070 --> 00:53:40,200 tentez de vous connecter, ce sera envoyé par la méthode POST. 963 00:53:40,200 --> 00:53:43,950 Nous allons voir que nous obtenons le nom d'utilisateur de _POST. 964 00:53:43,950 --> 00:53:46,900 Ils ont envoyé, l'utilisateur ou vous, enverra une valeur 965 00:53:46,900 --> 00:53:50,750 à travers un formulaire par poste parce que il est le nom d'utilisateur et mot de passe des trucs. 966 00:53:50,750 --> 00:53:54,830 Nous vérifions le nom d'utilisateur pour voir, est-ce dans le tableau? 967 00:53:54,830 --> 00:53:58,070 Parce que si un utilisateur se connecte dans, puis leur nom d'utilisateur 968 00:53:58,070 --> 00:54:03,320 doit être stocké dans la table de les utilisateurs qui existent pour ce site. 969 00:54:03,320 --> 00:54:09,360 Donc, fondamentalement, si le utilisateur se trouve dans la base de données, 970 00:54:09,360 --> 00:54:16,400 requête va revenir cette ligne, qui est un tableau. 971 00:54:16,400 --> 00:54:24,560 >> Mais la partie la plus délicate est que si même si la double tableau est seulement d'une rangée, 972 00:54:24,560 --> 00:54:31,900 même si elle est une une ligne array-- comme vous avez basically-- 973 00:54:31,900 --> 00:54:36,900 si vous avez une taille un réseau que ça tenant un autre tableau, 974 00:54:36,900 --> 00:54:38,940 vous êtes vraiment face à une colonne. 975 00:54:38,940 --> 00:54:41,420 Mais il est toujours traitée comme un double tableau. 976 00:54:41,420 --> 00:54:44,560 >> Et cela est l'endroit où il peut parfois obtenir délicat, parce que nous avons rangées ici. 977 00:54:44,560 --> 00:54:46,440 Notre variable est rangées. 978 00:54:46,440 --> 00:54:48,590 Et puis nous créons une nouvelle variable appelée ligne 979 00:54:48,590 --> 00:54:51,450 et le mettre égal à la première rangée de lignes. 980 00:54:51,450 --> 00:54:55,150 Et vous remarquerez que commentaire dit qu'il est la première et seule rangée. 981 00:54:55,150 --> 00:54:57,080 >> Voilà donc la délicate fonctions de partie où maintenant 982 00:54:57,080 --> 00:54:59,660 peut renvoyer des tableaux très facilement. 983 00:54:59,660 --> 00:55:01,270 Il n'y a pas mallocs. 984 00:55:01,270 --> 00:55:02,280 Vous ne verrez pas mallocs. 985 00:55:02,280 --> 00:55:03,940 Donc, vous ne verrez pas les défauts seg. 986 00:55:03,940 --> 00:55:08,380 Mais les fonctions seront toujours passer autour des tableaux et des données dans les groupes. 987 00:55:08,380 --> 00:55:12,250 Et vous avez à se méfier de ce exactement vos fonctions seront de retour. 988 00:55:12,250 --> 00:55:15,160 Et même si elle est l'un colonne comme cela, interroger 989 00:55:15,160 --> 00:55:17,520 est toujours en cours pour retourner un tableau double. 990 00:55:17,520 --> 00:55:21,390 Donc, pour l'accès que vous ou column-- peut penser de tout cela que inversé 991 00:55:21,390 --> 00:55:22,870 puisque nous parlons de lignes. 992 00:55:22,870 --> 00:55:26,810 Mais pour accéder à une ligne qui, vous ne pouvez pas simplement dire rangées. 993 00:55:26,810 --> 00:55:31,540 Même si elle est une ligne, vous devez ne rowsrows [0] pour éliminer cette sorte de 994 00:55:31,540 --> 00:55:37,360 bit externe de la matrice et avoir juste votre une rangée. 995 00:55:37,360 --> 00:55:38,342 >> Faites quelques autres choses. 996 00:55:38,342 --> 00:55:40,050 Il ya une fonction appelé password_verify 997 00:55:40,050 --> 00:55:42,980 vérifie que le mot de passe qui a été publié. 998 00:55:42,980 --> 00:55:48,500 Et puis nous voyons une autre mondiale la variable ici, _SESSION. 999 00:55:48,500 --> 00:55:51,340 Fondamentalement, l'identifiant de session comment vous garder une trace 1000 00:55:51,340 --> 00:55:53,990 de si quelqu'un est connecté ou non. 1001 00:55:53,990 --> 00:55:58,590 Donc en ce moment avec login.php, nous connecter un utilisateur. 1002 00:55:58,590 --> 00:56:01,920 Donc, ce que nous voulons faire est que nous voulons dire l'identifiant de session est égale à la ligne 1003 00:56:01,920 --> 00:56:05,890 id, qui tout à fait logique, car chaque ligne aura un id différent 1004 00:56:05,890 --> 00:56:07,239 Numéro dans le cadre de la table. 1005 00:56:07,239 --> 00:56:09,280 Nous allons entrer dans SQL dans un deuxièmement, si tout cela 1006 00:56:09,280 --> 00:56:13,500 semble un peu comme bla, alors tout sera éclairci. 1007 00:56:13,500 --> 00:56:18,450 Mais nous allons régler l'id égal à la bonne chose, l'enregistrement de l'utilisateur dans. 1008 00:56:18,450 --> 00:56:20,530 Excuse si quelque chose va mal. 1009 00:56:20,530 --> 00:56:27,600 Et tel est l'objet de connexions dans vie comme professeur Malan dirait. 1010 00:56:27,600 --> 00:56:29,130 >> Alors qui était login.php. 1011 00:56:29,130 --> 00:56:33,750 Et une grande partie du code PHP que vous écrivez dans pset 7, ils seront un peu. 1012 00:56:33,750 --> 00:56:36,470 Ne pas oublier de chmod pour les autorisations appropriées. 1013 00:56:36,470 --> 00:56:40,180 Il y aura un peu de en ce que le début de la spécification. 1014 00:56:40,180 --> 00:56:46,382 >> Mais le PHP que vous êtes l'écriture va être 1015 00:56:46,382 --> 00:56:47,840 faire des trucs qui est similaire à cela. 1016 00:56:47,840 --> 00:56:49,715 Vous allez être l'accès à certaines choses qui 1017 00:56:49,715 --> 00:56:52,760 vous sont donnés dans le variables globales de PHP qui 1018 00:56:52,760 --> 00:56:56,105 sont aux prises avec le courant utilisateur connecté, qu'il y 1019 00:56:56,105 --> 00:57:00,460 a eu des demandes envoyées à cette la page, différentes choses comme ça. 1020 00:57:00,460 --> 00:57:05,790 Et il sera également potentiellement itérer rangées de cette chose. 1021 00:57:05,790 --> 00:57:09,010 >> Dans une fonction différente, requête ne renvoyer ce double tableau. 1022 00:57:09,010 --> 00:57:11,450 Et si il ya plus d'un rangées en elle, 1023 00:57:11,450 --> 00:57:15,080 si il n'y soient: oui, si il ya plus d'une des lignes qui s'y trouvent, 1024 00:57:15,080 --> 00:57:16,870 alors ce sera une table. 1025 00:57:16,870 --> 00:57:20,500 Et vous pouvez itérer à travers les rangées de ce tableau à l'aide 1026 00:57:20,500 --> 00:57:22,860 la boucle foreach que nous avons décrite. 1027 00:57:22,860 --> 00:57:30,270 >> Donc, si vous faites foreach sur un double tableau, quel sera le word-- ici, 1028 00:57:30,270 --> 00:57:31,909 Je vais effectivement l'écris. 1029 00:57:31,909 --> 00:57:32,950 Je vais l'écrire rapide ici. 1030 00:57:32,950 --> 00:57:44,280 >> Si nous avons un foreach de lignes que le rang, quel est le type de ligne? 1031 00:57:44,280 --> 00:57:45,390 Est-ce que quelqu'un sait? 1032 00:57:45,390 --> 00:57:54,000 1033 00:57:54,000 --> 00:57:54,500 Tu l'as eu? 1034 00:57:54,500 --> 00:57:57,110 Donc rangées est une double matrice. 1035 00:57:57,110 --> 00:58:02,810 Alors qu'est-ce foreach va déduire que nous voulons de cette double rangée 1036 00:58:02,810 --> 00:58:04,280 si nous itérer sur elle? 1037 00:58:04,280 --> 00:58:07,170 1038 00:58:07,170 --> 00:58:10,770 Nous pouvons supposer que fondamentalement ça va être des éléments, 1039 00:58:10,770 --> 00:58:14,970 ou des lignes ou des colonnes, essentiellement. 1040 00:58:14,970 --> 00:58:18,740 Et ainsi de lignes et de colonnes nous peut traiter que la même chose. 1041 00:58:18,740 --> 00:58:23,880 >> Fondamentalement, ce que la boucle foreach va à faire est qu'il va renvoyer des lignes. 1042 00:58:23,880 --> 00:58:28,500 rangée va être de type ligne, tandis que les lignes est une double matrice. 1043 00:58:28,500 --> 00:58:32,290 Donc, si vous donnez foreach une double tableau, il est 1044 00:58:32,290 --> 00:58:35,830 ne va pas à itérer plus d'un niveau profond. 1045 00:58:35,830 --> 00:58:44,464 Qui est essentiellement de dire si il sont huit cellules dans cette table-- 1,2, 1046 00:58:44,464 --> 00:58:48,110 3 4, 5, 6, 7, la 8-- boucle foreach est pas 1047 00:58:48,110 --> 00:58:51,880 passer en revue chacune de ces cellules. 1048 00:58:51,880 --> 00:58:56,390 Qu'est-ce que la boucle foreach fera a été il faudra passer par cette ligne, 1049 00:58:56,390 --> 00:58:57,870 vous donner toute cette rangée. 1050 00:58:57,870 --> 00:58:59,410 Et puis ça va passer par cette ligne. 1051 00:58:59,410 --> 00:59:01,850 >> Donc, il ne parcourt un niveau de profondeur. 1052 00:59:01,850 --> 00:59:05,310 Si vous ajoutez un imbriquée boucle foreach, alors vous 1053 00:59:05,310 --> 00:59:16,280 peut traiter chaque ligne renvoyée à partir lignes, vous ne foreach ligne comme élément, 1054 00:59:16,280 --> 00:59:17,640 Disons. 1055 00:59:17,640 --> 00:59:22,750 Et puis vous pouvez l'écho de l'élément. 1056 00:59:22,750 --> 00:59:24,930 Voilà donc un bref petit rappel sur la façon dont 1057 00:59:24,930 --> 00:59:30,220 vous utilisez peut-être foreach des boucles dans le cadre de la requête. 1058 00:59:30,220 --> 00:59:32,840 >> Y at-il des questions sur PHP? 1059 00:59:32,840 --> 00:59:36,520 Rien du tout avant que nous passer à parler de SQL 1060 00:59:36,520 --> 00:59:37,820 et le plaisir de la base de données? 1061 00:59:37,820 --> 00:59:41,480 1062 00:59:41,480 --> 00:59:42,110 Se sentir bien? 1063 00:59:42,110 --> 00:59:42,750 Se sentir bien. 1064 00:59:42,750 --> 00:59:43,470 Bien. 1065 00:59:43,470 --> 00:59:49,130 >> Passons à l'arrière PowerPoint, qui vous manquez probablement. 1066 00:59:49,130 --> 00:59:51,800 SQL, yay. 1067 00:59:51,800 --> 00:59:57,900 Les gens qui sont dans ma section généralement sachez que sous-positions du acronymes 1068 00:59:57,900 --> 01:00:01,220 sont toujours seulement les premiers mots Je pense que de ce match qui 1069 01:00:01,220 --> 01:00:02,690 algorithm-- cet acronyme. 1070 01:00:02,690 --> 01:00:04,090 Il est pas un algorithme. 1071 01:00:04,090 --> 01:00:08,050 >> Donc SQL est une base de données. 1072 01:00:08,050 --> 01:00:11,060 Il est une langue fonctionne avec les bases de données. 1073 01:00:11,060 --> 01:00:14,440 Et toutes les bases de données sont est tables, au moins dans la façon 1074 01:00:14,440 --> 01:00:17,220 que SQL les représente. 1075 01:00:17,220 --> 01:00:23,610 >> Une autre façon de penser à des bases de données est bases de données sont un ensemble de clés et valeurs 1076 01:00:23,610 --> 01:00:24,110 fondamentalement. 1077 01:00:24,110 --> 01:00:29,530 Vous pouvez penser à une base de données un dictionnaire et également sous forme de tableau. 1078 01:00:29,530 --> 01:00:34,300 Fondamentalement, il est un moyen d'associer différentes données avec d'autres données, 1079 01:00:34,300 --> 01:00:36,270 souvent par le biais des lignes et des colonnes. 1080 01:00:36,270 --> 01:00:38,470 Et qui est la façon dont que ce SQL fonctionne le mieux. 1081 01:00:38,470 --> 01:00:40,880 >> Donc, ceci est un exemple d'une table. 1082 01:00:40,880 --> 01:00:44,610 Je ai quelques exemples de les gens dans ma section, qui 1083 01:00:44,610 --> 01:00:45,970 Je ne l'ai pas eu le temps de changer. 1084 01:00:45,970 --> 01:00:52,020 Mais nous avons des choses comme ID, nom, superpuissance, et ville natale. 1085 01:00:52,020 --> 01:00:54,100 Je ne sais pas où tout le monde est à partir dans ma section, 1086 01:00:54,100 --> 01:00:56,266 donc je vais juste à assumer tout le monde est de New York 1087 01:00:56,266 --> 01:00:59,370 Ville parce que je dois une grande statistique probabilité d'être correcte. 1088 01:00:59,370 --> 01:01:04,200 >> SQL prendra automatiquement soins de la colonne d'ID pour vous. 1089 01:01:04,200 --> 01:01:07,560 Si vous insérez une nouvelle ligne dans une base de données SQL, 1090 01:01:07,560 --> 01:01:09,700 il incrémentera que Numéro d'identification et juste 1091 01:01:09,700 --> 01:01:14,890 essentiellement tenir comme cinq noms, superpuissance, ville natale, celui qui 1092 01:01:14,890 --> 01:01:16,430 sur l'extrémité dudit tableau. 1093 01:01:16,430 --> 01:01:19,160 Donc, ID est une colonne vous verrez ne jamais avoir à vous soucier. 1094 01:01:19,160 --> 01:01:22,770 Mais, comme dans le cas de login.php, lorsque nous 1095 01:01:22,770 --> 01:01:26,610 obtenaient l'ID de session d'une table et en utilisant simplement ID, 1096 01:01:26,610 --> 01:01:30,320 ID est un moyen d'identifier de manière unique un élément d'une base de données. 1097 01:01:30,320 --> 01:01:34,980 >> Donc, si nous avions deux Sams, à la fois de qui enseignait CS50, et les deux de qui 1098 01:01:34,980 --> 01:01:39,370 étaient de Milwaukee, ceux feriez ont encore des numéros d'identification distincts 1099 01:01:39,370 --> 01:01:43,420 et donc être distinct dans le contexte de la table. 1100 01:01:43,420 --> 01:01:48,700 Voilà donc ce que SQL traite avec, en collaboration avec dans la partie arrière. 1101 01:01:48,700 --> 01:01:54,160 >> Maintenant, ce sont les quatre commandes que vous aurez besoin de travailler avec SQL. 1102 01:01:54,160 --> 01:01:56,390 Et je les jetai sur une diapositive. 1103 01:01:56,390 --> 01:01:59,530 Mais nous allons passer par tous individuellement. 1104 01:01:59,530 --> 01:02:03,300 >> La première commande est UPDATE qui fait ce que vous pourriez vous attendre. 1105 01:02:03,300 --> 01:02:07,240 Disons que vous avez des données la table qui est obsolète. 1106 01:02:07,240 --> 01:02:09,470 Comme si vous conservez trace des noms des personnes 1107 01:02:09,470 --> 01:02:13,350 et les âges, si quelqu'un l'âge augmente, puis 1108 01:02:13,350 --> 01:02:18,590 vous allez vouloir aller et mettre à jour l'âge de juste que personne. 1109 01:02:18,590 --> 01:02:21,902 Pour un exemple qui fonctionne avec notre premier table-- 1110 01:02:21,902 --> 01:02:24,610 ne vous inquiétez pas sur l'écriture de tous ces commandes en même temps. 1111 01:02:24,610 --> 01:02:27,640 Mais si vous avez mise à jour vers le bas, ce sera bon pour cette partie, 1112 01:02:27,640 --> 01:02:29,790 parce que nous allons retourner à la table. 1113 01:02:29,790 --> 01:02:33,920 >> Donc, si nous revenons à la table, disons quelque chose qui est arrivé 1114 01:02:33,920 --> 01:02:38,480 a été il y avait un tremblement de terre ou une ligne de faille qui a divisé directement 1115 01:02:38,480 --> 01:02:39,920 à travers New York. 1116 01:02:39,920 --> 01:02:45,130 Et nous voulions mettre à jour tout le monde qui a vécu à New York. 1117 01:02:45,130 --> 01:02:49,670 Ils avaient tous de se déplacer à la Pennsylvanie. 1118 01:02:49,670 --> 01:02:51,130 Cela ne veut pas d'une ville natale. 1119 01:02:51,130 --> 01:02:53,180 Ils avaient tous de déménager à New Haven. 1120 01:02:53,180 --> 01:02:54,030 Nous y voilà. 1121 01:02:54,030 --> 01:02:57,630 Donc tout le monde à New York se déplace à New Haven. 1122 01:02:57,630 --> 01:03:01,300 >> Et pour que quelque chose qui est éditer trois lignes dans cette table. 1123 01:03:01,300 --> 01:03:04,716 Mais dans SQL, vous pouvez faire que dans une seule déclaration. 1124 01:03:04,716 --> 01:03:05,715 Nous en revenons donc mettre à jour. 1125 01:03:05,715 --> 01:03:09,670 Permettez-moi de effacement rapide à nouveau cette carte. 1126 01:03:09,670 --> 01:03:14,570 Lorsque nous parlons mise à jour, il y a 1127 01:03:14,570 --> 01:03:17,640 quelques parties de la syntaxe qui sont la clé. 1128 01:03:17,640 --> 01:03:19,770 Eh bien, toute la syntaxe est la clé. 1129 01:03:19,770 --> 01:03:22,210 Mais les choses en vert est facultative. 1130 01:03:22,210 --> 01:03:25,680 Le blanc sont nécessaires, noms prédéfinis analogues. 1131 01:03:25,680 --> 01:03:30,750 Et le bleu clair sont des choses qui varient en fonction de la table. 1132 01:03:30,750 --> 01:03:34,640 Voilà donc ce qui se passe avec le schéma de couleurs ici, là-haut. 1133 01:03:34,640 --> 01:03:40,250 >> Donc, si nous voulons mettre à jour que les lignes des gens qui vivent à New York, 1134 01:03:40,250 --> 01:03:43,490 donc ce que nous ferions si nous ladite mise à jour? 1135 01:03:43,490 --> 01:03:46,320 Donc table est où nous mettons le nom de notre table. 1136 01:03:46,320 --> 01:03:49,170 Disons simplement que le nom de notre table est un tableau. 1137 01:03:49,170 --> 01:03:52,515 Donc, nous voulons mettre à jour le tableau ci. 1138 01:03:52,515 --> 01:03:57,470 Et nous voulons set-- Que voulons-nous pour régler? 1139 01:03:57,470 --> 01:04:05,160 Eh bien, nous voulons dire, PHP afin column-- traite rangées comme des identificateurs uniques. 1140 01:04:05,160 --> 01:04:07,930 Et puis colonnes sont les différents domaines 1141 01:04:07,930 --> 01:04:09,940 des éléments de la base de données. 1142 01:04:09,940 --> 01:04:14,210 >> Ainsi, le premier élément de la base de données a un nom de Sam, la superpuissance du CS50, 1143 01:04:14,210 --> 01:04:16,210 et un ville natale de Milwaukee. 1144 01:04:16,210 --> 01:04:20,710 Donc, si nous dudit ensemble, regardons les paramètres à nouveau cet ensemble prend. 1145 01:04:20,710 --> 01:04:23,880 Nous avons colonne égale valeur. 1146 01:04:23,880 --> 01:04:27,290 Donc, nous voulons dire quelque column-- qui rappelons 1147 01:04:27,290 --> 01:04:31,850 est un field-- Nous voulons voir une champ égale à quelque chose de nouveau. 1148 01:04:31,850 --> 01:04:42,340 >> Donc, si nous venons de dire mise à jour tableau 1, nom du jeu égale Elliot. 1149 01:04:42,340 --> 01:04:46,310 Obtenez des gens de la nouvelle section sur cette. 1150 01:04:46,310 --> 01:04:51,540 Mais si nous avons juste fait table de mise à jour 1 nom du jeu égale Elliot, ce qui serait 1151 01:04:51,540 --> 01:04:55,530 le look de table comme après cela? 1152 01:04:55,530 --> 01:04:56,410 Les gens ont une idée? 1153 01:04:56,410 --> 01:04:59,710 1154 01:04:59,710 --> 01:05:00,210 Ouais. 1155 01:05:00,210 --> 01:05:03,195 >> Public: Tout dans cette rangée deviendrait Elliot. 1156 01:05:03,195 --> 01:05:04,570 CONFÉRENCIER: Tout dans quelle rangée? 1157 01:05:04,570 --> 01:05:06,067 AUDIENCE: Dans la première rangée. 1158 01:05:06,067 --> 01:05:07,150 CONFÉRENCIER: Dans la première rangée? 1159 01:05:07,150 --> 01:05:09,724 Pourquoi la première rangée? 1160 01:05:09,724 --> 01:05:10,890 Je ne veux pas prendre à vous. 1161 01:05:10,890 --> 01:05:13,287 >> AUDIENCE: Peut-être que tout dans l'ensemble de la table? 1162 01:05:13,287 --> 01:05:15,120 CONFÉRENCIER: Tout dans l'ensemble de la table, oui. 1163 01:05:15,120 --> 01:05:19,520 Et cela est exact, je because-- a été viens de vous aider un peu 1164 01:05:19,520 --> 01:05:22,650 there-- parce nous avons omis la clause WHERE facultative. 1165 01:05:22,650 --> 01:05:27,260 Si vous ne disposez pas du OÙ clause, ce que cette commande va faire 1166 01:05:27,260 --> 01:05:32,240 est il va travailler avec tous les rangée dans le tableau. 1167 01:05:32,240 --> 01:05:35,430 Le nom de tout le monde devenir Elliott, essentiellement, 1168 01:05:35,430 --> 01:05:37,360 Elliot, qui est très heureux. 1169 01:05:37,360 --> 01:05:40,070 Ou Yanni, l'un des deux. 1170 01:05:40,070 --> 01:05:42,490 Mais le nom de tout le monde va changer. 1171 01:05:42,490 --> 01:05:47,880 >> Donc, la façon dont nous utilisons l'OÙ clause-- et cela vaut pour tous les oùS 1172 01:05:47,880 --> 01:05:51,410 qui sont respectivement de ces différentes choses. 1173 01:05:51,410 --> 01:05:54,380 Donc, vous remarquerez que SET a la colonne valeur égale. 1174 01:05:54,380 --> 01:05:55,190 Et il en va de WHERE. 1175 01:05:55,190 --> 01:06:00,040 Mais ceux-ci sont différents types de déclarations. 1176 01:06:00,040 --> 01:06:04,400 Donc, la colonne est égale à la valeur dans le SET est en mission. 1177 01:06:04,400 --> 01:06:08,320 Comme nous disons que nous voulons au nom de l'ensemble égale à Elliot. 1178 01:06:08,320 --> 01:06:15,390 Mais dans les clauses WHERE, ce sont des déclarations d'égalité. 1179 01:06:15,390 --> 01:06:20,410 Donc, disons que nous ne voulions changer le nom de la personne à Elliot 1180 01:06:20,410 --> 01:06:23,940 si leur nom était Ryan, disons. 1181 01:06:23,940 --> 01:06:24,920 >> Donc, quand nous disons 1182 01:06:24,920 --> 01:06:32,700 >> WHERE nom est égal à Ryan, qui réussirait seul changement 1183 01:06:32,700 --> 01:06:37,440 l'name-- ce serait seulement modifier le champ Nom en rangées 1184 01:06:37,440 --> 01:06:40,770 où le champ de nom est égal à Ryan. 1185 01:06:40,770 --> 01:06:44,430 Donc, si nous avions plusieurs personnes nommé Ryan, tous leurs noms 1186 01:06:44,430 --> 01:06:45,730 allait changer à Elliot. 1187 01:06:45,730 --> 01:06:48,169 >> Ceci est similaire à l'exemple de si une ligne de faille divise 1188 01:06:48,169 --> 01:06:50,960 New York et tout le monde doit se déplacer à New Haven, la façon dont nous pouvons 1189 01:06:50,960 --> 01:06:56,570 faire que dans une déclaration est UPDATE table1 SET ville natale = New Haven 1190 01:06:56,570 --> 01:07:00,210 où est égal ville natale de New York City. 1191 01:07:00,210 --> 01:07:03,410 Ceci est la puissance de l'instruction UPDATE. 1192 01:07:03,410 --> 01:07:10,530 Nous pouvons sélectionner un certain nombre de rangées par de vraies déclarations 1193 01:07:10,530 --> 01:07:12,860 sur les champs de ces lignes. 1194 01:07:12,860 --> 01:07:19,510 Nous ne pouvons pas dire ensemble UPDATE table1 name = Elliot OÙ rang = 1, 1195 01:07:19,510 --> 01:07:24,820 sauf que nous le pouvons si nous disons ID = 1. 1196 01:07:24,820 --> 01:07:27,350 1197 01:07:27,350 --> 01:07:29,830 >> Nous allons donc être travailler avec l'égalité 1198 01:07:29,830 --> 01:07:32,830 des champs, de l'égalité de colonnes. 1199 01:07:32,830 --> 01:07:38,030 Mais en utilisant le champ ID est un moyen de sélectionner des lignes individuelles spécifiquement, 1200 01:07:38,030 --> 01:07:43,210 car le champ d'ID est unique identifiant dans une base de données SQL. 1201 01:07:43,210 --> 01:07:45,860 Donc, comme la mise à jour la première rangée, ID est égal à 1. 1202 01:07:45,860 --> 01:07:49,560 Mise à jour de la deuxième ligne, juste modifier ce numéro d'identification. 1203 01:07:49,560 --> 01:07:51,610 Mais la puissance du WHERE est que nous 1204 01:07:51,610 --> 01:07:57,480 peut mettre à jour les choses en fonction de ce que leur valeurs actuelles de certaines choses sont. 1205 01:07:57,480 --> 01:07:58,155 Oui Elliot? 1206 01:07:58,155 --> 01:08:02,678 >> Public: Et si vous voulez to-- encore une fois, ceci est une autre question. 1207 01:08:02,678 --> 01:08:07,660 Mais ma première question était, où est-ce qui se passe? 1208 01:08:07,660 --> 01:08:09,130 Où suis-je mettre à jour ce? 1209 01:08:09,130 --> 01:08:11,100 Est-ce dans un code PHP? 1210 01:08:11,100 --> 01:08:13,379 >> CONFÉRENCIER: Où vous mettez à jour, oui. 1211 01:08:13,379 --> 01:08:15,170 Nous allons parler sur l'endroit où tout cela 1212 01:08:15,170 --> 01:08:18,729 se passe sorte de fois nous allons à travers toutes les commandes. 1213 01:08:18,729 --> 01:08:21,130 Mais ce que vous devez savoir pour l'instant est essentiellement 1214 01:08:21,130 --> 01:08:26,279 que votre base de données SQL existe quelque chose comme 1215 01:08:26,279 --> 01:08:30,090 à être consultée par la requête fonction, qui définit CS50. 1216 01:08:30,090 --> 01:08:33,800 Donc, si vous utilisez la fonction de requête, vous pouvez accéder à cette table. 1217 01:08:33,800 --> 01:08:39,529 >> Donc, vous serez l'envoi de ces commandes à votre table dans les fichiers PHP 1218 01:08:39,529 --> 01:08:41,420 grâce à la fonction de requête. 1219 01:08:41,420 --> 01:08:45,410 Vous pouvez également jouer avec votre table directement. 1220 01:08:45,410 --> 01:08:49,050 Et voilà la meilleure façon de tester ces sortes de commandes. 1221 01:08:49,050 --> 01:08:52,720 Et nous allons passer par exactement comment de le faire dans un tout petit peu. 1222 01:08:52,720 --> 01:08:54,910 >> Voilà donc commande UPDATE. 1223 01:08:54,910 --> 01:08:57,939 Et le reste des commandes vont être une sorte de semblable, 1224 01:08:57,939 --> 01:08:59,069 travailler sur des choses semblables. 1225 01:08:59,069 --> 01:09:02,740 Le INSERT INTO est probablement le plus différent de UPDATE. 1226 01:09:02,740 --> 01:09:06,170 Je vais laisser cela là pour juste un peu et de travailler ici. 1227 01:09:06,170 --> 01:09:10,215 Donc INSERT INTO, vous verrez cette table est toujours la même. 1228 01:09:10,215 --> 01:09:17,010 Vous souhaitez insérer dans. 1229 01:09:17,010 --> 01:09:20,286 La capitalisation, SQL est sensible à la casse. 1230 01:09:20,286 --> 01:09:22,160 Donc, vous ne devez pas capitaliser ces choses. 1231 01:09:22,160 --> 01:09:27,960 Par convention, les mots en blanc sont capitalisés. 1232 01:09:27,960 --> 01:09:31,590 Mais je aussi la couleur les codés. 1233 01:09:31,590 --> 01:09:34,390 La seule raison pour laquelle vous capitalisez ceux où vous les taper 1234 01:09:34,390 --> 01:09:36,609 est juste souligner ceux qui sont des constantes. 1235 01:09:36,609 --> 01:09:39,189 Et donc vous pouvez soit regarder la capitalisation ou le fait 1236 01:09:39,189 --> 01:09:40,740 que je les ai colorié différemment. 1237 01:09:40,740 --> 01:09:44,910 >> Nous avons donc INSERT INTO, Faisons à nouveau table1. 1238 01:09:44,910 --> 01:09:45,930 Ceci est sur une seule ligne. 1239 01:09:45,930 --> 01:09:48,609 Je suis juste séparant par les différents états. 1240 01:09:48,609 --> 01:09:52,399 Donc, ne vous inquiétez pas pour le fait que table1 fait sur la deuxième ligne. 1241 01:09:52,399 --> 01:09:56,130 >> Donc, nous voulons INSERT EN TABLE1 certaines valeurs. 1242 01:09:56,130 --> 01:09:58,922 Et vous remarquerez l'option peu, que je vais dans un instant. 1243 01:09:58,922 --> 01:09:59,755 Nous avons donc VALEURS. 1244 01:09:59,755 --> 01:10:03,640 1245 01:10:03,640 --> 01:10:08,100 >> Donc, disons que nous voulons ajouter Andi à notre table, parce que nous manquons Andi. 1246 01:10:08,100 --> 01:10:09,390 Andi est malade. 1247 01:10:09,390 --> 01:10:12,490 Ajoutons donc Andi à notre table. 1248 01:10:12,490 --> 01:10:15,150 Rappelez-vous que le numéro d'identification est mise à jour automatiquement. 1249 01:10:15,150 --> 01:10:17,320 Donc, les seuls champs nous besoin de vous soucier 1250 01:10:17,320 --> 01:10:20,230 sont le nom, la superpuissance, et ville natale. 1251 01:10:20,230 --> 01:10:23,660 >> Et la façon dont nous le faisons, regarder notre syntaxe, est que nous avons 1252 01:10:23,660 --> 01:10:28,780 viens de recevoir un parenthèses, des virgules valeurs séparées, chacune d'entre elles 1253 01:10:28,780 --> 01:10:29,890 est une valeur. 1254 01:10:29,890 --> 01:10:35,530 Donc, si nous voulions insérer dans notre Andi table, tout ce que nous avons à faire est juste Andi. 1255 01:10:35,530 --> 01:10:38,630 Quelle est la superpuissance Andi, personnes dans la section Andi? 1256 01:10:38,630 --> 01:10:45,406 1257 01:10:45,406 --> 01:10:47,545 Elle aime vol, ou comme la vitesse, ou quelque chose. 1258 01:10:47,545 --> 01:10:48,920 Qu'est-ce que nous avons déjà là-haut? 1259 01:10:48,920 --> 01:10:53,425 Nous avons CS50, vol, la vitesse et la force. 1260 01:10:53,425 --> 01:10:54,850 >> AUDIENCE: Voyage dans le temps. 1261 01:10:54,850 --> 01:10:56,180 >> CONFÉRENCIER: Voyage dans le temps, incroyable. 1262 01:10:56,180 --> 01:11:04,280 Nous avons donc Andi, temps Voyage, et sa ville natale. 1263 01:11:04,280 --> 01:11:05,530 Voilà une très bonne question. 1264 01:11:05,530 --> 01:11:09,210 New York City, à moins que quelqu'un sait. 1265 01:11:09,210 --> 01:11:13,600 Tout le monde est de New York est le leçon à emporter à partir d'aujourd'hui. 1266 01:11:13,600 --> 01:11:17,710 >> Donc, cette déclaration serait insérer, comme une cinquième rangée, 1267 01:11:17,710 --> 01:11:21,900 avec la superpuissance Voyage dans le temps et un ville natale de New York City. 1268 01:11:21,900 --> 01:11:25,660 Mais le champ optionnel est essentiellement un moyen 1269 01:11:25,660 --> 01:11:30,090 de préciser exactement quelles colonnes vous voulez insérer choses. 1270 01:11:30,090 --> 01:11:33,710 >> La façon dont nous le faisons maintenant, Andi, Voyage dans le temps, New York City, 1271 01:11:33,710 --> 01:11:38,150 se passe dans l'ordre exact de notre Nom table--, superpuissance, ville natale. 1272 01:11:38,150 --> 01:11:42,290 Et si vous vouliez faire autre chose que cela, 1273 01:11:42,290 --> 01:11:44,970 comme dire que vous ne saviez pas la superpuissance de quelqu'un, 1274 01:11:44,970 --> 01:11:47,660 comme la façon dont je ne savais pas Andi superpuissance au début. 1275 01:11:47,660 --> 01:11:50,450 Donc, tout ce que je savais était elle nom et sa ville natale. 1276 01:11:50,450 --> 01:11:54,550 Qu'est-ce que je pourrais faire est que je pouvais do-- je vais effacer cette rapide. 1277 01:11:54,550 --> 01:11:57,910 1278 01:11:57,910 --> 01:12:00,090 >> Je veux seulement mettre à jour les colonnes. 1279 01:12:00,090 --> 01:12:04,100 Et cela est l'endroit où l'option la liste de la colonne entre en jeu. 1280 01:12:04,100 --> 01:12:09,185 Je veux seulement mettre à jour le nom et ville natale. 1281 01:12:09,185 --> 01:12:12,650 1282 01:12:12,650 --> 01:12:16,480 Et puis je dirai VALEURS. 1283 01:12:16,480 --> 01:12:24,430 Je vais faire Andi et à New York. 1284 01:12:24,430 --> 01:12:28,980 >> Si je l'avais omis de la liste des colonnes et vient de faire ces deux choses, 1285 01:12:28,980 --> 01:12:32,450 où serait New York City ont disparu? 1286 01:12:32,450 --> 01:12:35,900 Quelle est la colonne serait de New York Ville ont été placés dans? 1287 01:12:35,900 --> 01:12:38,950 Les gens ont une idée? 1288 01:12:38,950 --> 01:12:40,160 Superpuissance, exactement. 1289 01:12:40,160 --> 01:12:41,890 >> Donc, ce sera juste aller dans l'ordre. 1290 01:12:41,890 --> 01:12:45,530 Et une fois qu'il atteint la fin de la liste, il va juste arrêter de remplir les choses. 1291 01:12:45,530 --> 01:12:49,080 Et les valeurs qu'il vont rester dans toutes les colonnes vont tout simplement être NULL. 1292 01:12:49,080 --> 01:12:51,840 Ainsi, parce que nous avons spécifié nom et ville natale, 1293 01:12:51,840 --> 01:12:56,110 nous allons avoir ID 5, nommer Andi, superpuissance NULL. 1294 01:12:56,110 --> 01:12:58,750 Donc superpuissance est une valeur non initialisée. 1295 01:12:58,750 --> 01:13:01,340 Vous ne recevrez pas nécessairement la Valgrind mêmes erreurs si vous essayez 1296 01:13:01,340 --> 01:13:01,970 et y accéder. 1297 01:13:01,970 --> 01:13:05,160 Tout sera bien mis à zéro , parce que NULL est une valeur dans SQL. 1298 01:13:05,160 --> 01:13:06,780 Cela est une constante. 1299 01:13:06,780 --> 01:13:08,980 Et puis, ville natale sera New York. 1300 01:13:08,980 --> 01:13:11,860 Voilà donc la commande INSERT INTO. 1301 01:13:11,860 --> 01:13:13,610 Avant de passer, il ya deux autres commandes. 1302 01:13:13,610 --> 01:13:19,060 Les gens ont des questions sur UPDATE, INSERT INTO propos, sur SQL 1303 01:13:19,060 --> 01:13:21,556 généralement avant que nous passions sur nos morceaux finaux? 1304 01:13:21,556 --> 01:13:25,500 1305 01:13:25,500 --> 01:13:26,910 Les gens se sentent bien, très bien. 1306 01:13:26,910 --> 01:13:27,410 Aimer. 1307 01:13:27,410 --> 01:13:29,480 Donc, nous allons parler de SELECT. 1308 01:13:29,480 --> 01:13:33,445 Going fossé ACTUALISATION ici. 1309 01:13:33,445 --> 01:13:35,720 >> Et SELECT va être très similaire. 1310 01:13:35,720 --> 01:13:38,790 Le but de SELECT, Le but de SELECT dans la vie 1311 01:13:38,790 --> 01:13:45,910 est de vous donner un tas de colonnes qui satisfont à certaines conditions. 1312 01:13:45,910 --> 01:13:48,230 Et quand je dis satisfait certaines conditions, 1313 01:13:48,230 --> 01:13:50,800 votre esprit pourrait immédiatement revenir à cette clause WHERE 1314 01:13:50,800 --> 01:13:52,090 qui est venu dans UPDATE. 1315 01:13:52,090 --> 01:13:54,880 Et cette clause est exactement là dans SELECT. 1316 01:13:54,880 --> 01:14:06,020 >> Si nous ne mettons pas l'WHERE clause et nous disons SELECT name, 1317 01:14:06,020 --> 01:14:16,490 hometown-- orthographié qu'un peu wrong-- nom, ville natale FROM table1. 1318 01:14:16,490 --> 01:14:19,690 Si nous venons de dire que, ce SELECT va nous donner est qu'il est 1319 01:14:19,690 --> 01:14:23,730 va nous donner un double-- une table, plutôt. 1320 01:14:23,730 --> 01:14:27,450 Une double rangée si nous sommes penser en PHP détecte. 1321 01:14:27,450 --> 01:14:33,239 Mais il va juste nous donner un matrice double de deux columns-- nom, 1322 01:14:33,239 --> 01:14:33,780 et ville natale. 1323 01:14:33,780 --> 01:14:36,400 1324 01:14:36,400 --> 01:14:38,130 Et il ignorera ID. 1325 01:14:38,130 --> 01:14:41,310 Et il ignorera superpuissance. 1326 01:14:41,310 --> 01:14:44,696 Et ça vient de nous donner tous les seule rangée de ce tableau. 1327 01:14:44,696 --> 01:14:46,570 Donc, si nous avons juste inséré Andi, nous aurons Andi. 1328 01:14:46,570 --> 01:14:48,605 Et nous aurons les quatre d'origine. 1329 01:14:48,605 --> 01:14:53,720 Si ils ont été mis à jour, qui sera être réfléchi, et cetera, et cetera. 1330 01:14:53,720 --> 01:14:56,520 >> Donc, cela est parce que nous ne pas utiliser la clause WHERE. 1331 01:14:56,520 --> 01:14:59,200 Mais nous pouvons l'utiliser exactement de la même façon que nous l'utilisions dans UPDATE. 1332 01:14:59,200 --> 01:15:05,310 Si nous voulons seulement un tableau des noms et des super pouvoirs de personnes vivant 1333 01:15:05,310 --> 01:15:13,430 à New York, nous pouvons exécuter une instruction comme SELECT nom, superpower-- 1334 01:15:13,430 --> 01:15:27,190 Je vais juste laisser that-- DE table1 WHERE ville natale = New York City. 1335 01:15:27,190 --> 01:15:33,370 >> Donc, cela montre que vous pouvez obtenir totalement différentes colonnes, 1336 01:15:33,370 --> 01:15:36,920 et ensuite mettre les colonnes que vous n'êtes pas même reprendre la clause WHERE. 1337 01:15:36,920 --> 01:15:39,200 Nous ne voulons même pas la ville natale de tout le monde. 1338 01:15:39,200 --> 01:15:41,920 Mais nous voulons que le nom et la superpuissance de personnes 1339 01:15:41,920 --> 01:15:43,817 dont la ville natale est New York. 1340 01:15:43,817 --> 01:15:45,650 Voilà donc quelque chose que nous peut faire avec la clause WHERE 1341 01:15:45,650 --> 01:15:49,112 la clause est que nous pouvons traiter avec des colonnes que nous ne voulons pas nécessairement dos. 1342 01:15:49,112 --> 01:15:52,320 Dans la même manière dans UPDATE, nous pouvons traiter avec des colonnes que nous ne le faisons pas nécessairement 1343 01:15:52,320 --> 01:15:53,270 mettre à jour. 1344 01:15:53,270 --> 01:15:58,890 Nous pouvons mettre à jour la ville de tout le monde qui est le nom est Sam, par exemple. 1345 01:15:58,890 --> 01:16:02,080 Nous pouvons mettre à jour la ville de tous ceux dont le numéro d'identification est 2. 1346 01:16:02,080 --> 01:16:04,960 Il suffit donc de mettre à jour le ville de la deuxième rangée 1347 01:16:04,960 --> 01:16:08,220 où nous ne disposons pas pour faire face à nécessaire la question commune. 1348 01:16:08,220 --> 01:16:13,264 >> Et supprimer est, comme vous le feriez attendre, DELETE FROM table1. 1349 01:16:13,264 --> 01:16:14,930 Et puis nous avons une autre clause WHERE. 1350 01:16:14,930 --> 01:16:17,940 Donc nous pouvons dire WHERE ID = 1. 1351 01:16:17,940 --> 01:16:18,950 Supprimer la première rangée. 1352 01:16:18,950 --> 01:16:23,240 Et DELETE sera toujours supprimer une ligne, ou il va supprimer certains nombre de lignes. 1353 01:16:23,240 --> 01:16:26,990 DELETE FROM table WHERE ville natale = New York City 1354 01:16:26,990 --> 01:16:28,740 va supprimer tous à New York. 1355 01:16:28,740 --> 01:16:30,985 Voilà, si il y avait un peste tragique soudaine 1356 01:16:30,985 --> 01:16:33,360 et que vous vouliez juste pour retirer tout le monde de la table qui 1357 01:16:33,360 --> 01:16:35,760 vécu dans une certaine ville qui a été touché par la peste. 1358 01:16:35,760 --> 01:16:38,050 Puissent-ils reposer en paix. 1359 01:16:38,050 --> 01:16:43,849 >> Ce sont les quatre commandes SQL que vous aurez besoin d'utiliser. 1360 01:16:43,849 --> 01:16:45,390 Vous pourriez même pas besoin de les utiliser tous. 1361 01:16:45,390 --> 01:16:47,690 Mais ce sont les quatre CS50 que vous attend 1362 01:16:47,690 --> 01:16:53,630 être à l'aise d'entrer dans des tant questionnaire 1, et également pset7 et pset8. 1363 01:16:53,630 --> 01:16:55,820 >> Il ya encore juste cette table. 1364 01:16:55,820 --> 01:16:58,930 Dans celui-ci, la superpuissance Roy a été mise à jour des faisceaux laser, qui 1365 01:16:58,930 --> 01:17:00,880 est un exemple que je ne l'utilise. 1366 01:17:00,880 --> 01:17:05,480 Je ne sais pas lequel Roy préfère, mais la force. 1367 01:17:05,480 --> 01:17:07,670 Roy a la superpuissance de la force. 1368 01:17:07,670 --> 01:17:09,090 Katherine n'a pas fait aujourd'hui. 1369 01:17:09,090 --> 01:17:10,260 C'est dommage. 1370 01:17:10,260 --> 01:17:11,260 Mais elle a super vitesse. 1371 01:17:11,260 --> 01:17:13,780 1372 01:17:13,780 --> 01:17:14,670 >> Eh bien, ce fut PHP. 1373 01:17:14,670 --> 01:17:19,410 Avant de parler de MVC, ne Quelqu'un at-il des questions sur PHP? 1374 01:17:19,410 --> 01:17:23,864 Maintenant, SQL, PHP ou si vous avez soudainement venir avec une question sur PHP? 1375 01:17:23,864 --> 01:17:27,560 1376 01:17:27,560 --> 01:17:28,460 Génial. 1377 01:17:28,460 --> 01:17:29,920 Très bien, nous sommes tous mis ensuite. 1378 01:17:29,920 --> 01:17:33,660 >> Donc, parler un peu à propos de vue du modèle contrôleurs, 1379 01:17:33,660 --> 01:17:38,770 Revenons à certains de la substance dans pset7. 1380 01:17:38,770 --> 01:17:42,470 Alors, que la vue du modèle contrôleur est-- je ne suis pas 1381 01:17:42,470 --> 01:17:45,660 va sauver mes changements de connexion parce que je suis totalement massacré il. 1382 01:17:45,660 --> 01:17:49,220 Mais fondamentalement, nous avons deux choses distinctes passe. 1383 01:17:49,220 --> 01:17:52,390 Nous avons un partenariat public répertoire qui contient 1384 01:17:52,390 --> 01:17:56,460 le code qui va être exécuté et les pages web qui seront visités. 1385 01:17:56,460 --> 01:17:58,780 Et nous avons aussi ce répertoire de vues. 1386 01:17:58,780 --> 01:18:01,780 Et vues contient des modèles. 1387 01:18:01,780 --> 01:18:04,390 >> Ceci est ce que la fonction render-- nous avons vu le rendu 1388 01:18:04,390 --> 01:18:08,240 fonction dans un tas de code PHP CS50 qui a déjà écrit pour vous, 1389 01:18:08,240 --> 01:18:10,550 qui prend dans certains paramètres. 1390 01:18:10,550 --> 01:18:14,510 Qu'est-ce que le code est fait est il va dans des vues, 1391 01:18:14,510 --> 01:18:18,000 qui sont des ensembles comme code HTML prédéfinis, 1392 01:18:18,000 --> 01:18:20,720 et il est d'insérer des valeurs dans certains endroits. 1393 01:18:20,720 --> 01:18:23,990 Voilà comment lorsque vous aller dans CS50 Finances, 1394 01:18:23,990 --> 01:18:25,760 le même en-tête est sur chaque page. 1395 01:18:25,760 --> 01:18:28,130 Le même pied est sur chaque page. 1396 01:18:28,130 --> 01:18:31,880 Ceci est parce que la manière qui rendent œuvres est ça va 1397 01:18:31,880 --> 01:18:36,720 assigner automatiquement en-tête et en ce que spectateur que vous pouvez trouver dans les vues. 1398 01:18:36,720 --> 01:18:41,400 >> En fait, nous pouvons aller en tête, et regardez, il est un fichier HTML avec une tête. 1399 01:18:41,400 --> 01:18:43,280 Il a obtenu quelques feuilles de style. 1400 01:18:43,280 --> 01:18:48,450 Vous ne devez pas regarder CSS pour pset7 si vous ne voulez pas. 1401 01:18:48,450 --> 01:18:50,560 Mais vous pouvez modifier eux si vous voulez, font 1402 01:18:50,560 --> 01:18:53,470 votre Finances regarder un peu différent. 1403 01:18:53,470 --> 01:18:57,560 >> Il est obtenu en peu de PHP la tête un peu pour voir 1404 01:18:57,560 --> 01:19:01,240 si il ya un autre titre il faut mettre dans cette tête. 1405 01:19:01,240 --> 01:19:04,300 Mais seulement certains autres scripts, et des liens, et d'autres choses. 1406 01:19:04,300 --> 01:19:08,700 Chef se termine, corps commence, et oups, nous avons ce petit bout de fin bizarre. 1407 01:19:08,700 --> 01:19:14,730 Et il ya une div, tout comme une sorte informe de l'élément 1408 01:19:14,730 --> 01:19:17,120 qui a une idée du milieu. 1409 01:19:17,120 --> 01:19:22,450 >> Et puis, quand on voit le pied de page, nous avons l'extrémité d'un div. 1410 01:19:22,450 --> 01:19:25,000 Nous avons un fond, qui est où le texte de bas de page est. 1411 01:19:25,000 --> 01:19:26,770 Fin de la div, extrémité du corps, fin de HTML. 1412 01:19:26,770 --> 01:19:29,070 >> Alors qu'est-ce rendu est faire est de rendre est une sorte 1413 01:19:29,070 --> 01:19:33,150 de rafistoler tête, un fichier PHP différent qui 1414 01:19:33,150 --> 01:19:37,110 contiendra les choses réelles que vous affichez, comme votre table des stocks 1415 01:19:37,110 --> 01:19:39,690 si vous achetez ou vendez des stocks. 1416 01:19:39,690 --> 01:19:41,480 Et puis il va ajouter dans le pied. 1417 01:19:41,480 --> 01:19:44,890 Et la vue du modèle idée de contrôleur est que nous 1418 01:19:44,890 --> 01:19:49,590 vouloir séparer comment les choses semblent à partir du code. 1419 01:19:49,590 --> 01:19:53,420 Il est, nous voulons séparer le frontend et le backend, où le frontend est 1420 01:19:53,420 --> 01:20:00,440 les trucs que l'utilisateur voit, la belle visuals-- HTML, CSS, des choses comme ça, 1421 01:20:00,440 --> 01:20:02,320 images, et cetera. 1422 01:20:02,320 --> 01:20:05,780 Et le backend est PHP. 1423 01:20:05,780 --> 01:20:07,710 Ceci est du code que vous écrivez. 1424 01:20:07,710 --> 01:20:10,240 Ceci est où le code qui est faire des opérations réelles. 1425 01:20:10,240 --> 01:20:12,400 Ceci est lorsque vous ajoutez un stock à votre table, 1426 01:20:12,400 --> 01:20:14,890 Lorsque vous achetez et vente, qui est backend. 1427 01:20:14,890 --> 01:20:20,210 >> Et nous pouvons, comme vous avez vu, y compris PHP directement en HTML. 1428 01:20:20,210 --> 01:20:23,210 Donc, ce que nous aurions pu faire pour cette affectation est juste eu 1429 01:20:23,210 --> 01:20:26,200 un fichier HTML pour chaque page, comme connexion. 1430 01:20:26,200 --> 01:20:30,260 Et puis, sur cette page, juste eu un énorme bloc de code PHP, 1431 01:20:30,260 --> 01:20:33,822 y compris tous les codes que cette page serait spécifiquement besoin. 1432 01:20:33,822 --> 01:20:35,780 Et puis nous pourrions avoir fait que pour le portefeuille. 1433 01:20:35,780 --> 01:20:40,250 Nous aurions pu faire tous les achats et la vente dans les pages individuelles. 1434 01:20:40,250 --> 01:20:43,680 >> Mais parce que nous sommes rendu séparément d'où 1435 01:20:43,680 --> 01:20:46,660 nous écrivons le backend code, nous pouvons facilement 1436 01:20:46,660 --> 01:20:52,660 changer la façon dont les choses semblent sans changer chaque fichier. 1437 01:20:52,660 --> 01:20:55,460 Nous faisons les choses comme il suffit d'ajouter une nouvelle div vers le bas 1438 01:20:55,460 --> 01:21:00,720 de-- Bonjour je l'ai modifié le pied de page. 1439 01:21:00,720 --> 01:21:03,710 Vous pouvez juste faire des trucs comme ça. 1440 01:21:03,710 --> 01:21:07,250 Mais aussi, vous pouvez changer toute la mise en page visuelle 1441 01:21:07,250 --> 01:21:09,290 sans affecter ce qui est aller dans le backend. 1442 01:21:09,290 --> 01:21:12,000 Et vous pouvez changer la toute backend et encore 1443 01:21:12,000 --> 01:21:13,900 ont l'air tout comme il l'a fait auparavant. 1444 01:21:13,900 --> 01:21:14,400 Ce 1445 01:21:14,400 --> 01:21:16,170 >> Est l'idée de la vue du modèle contrôleur. 1446 01:21:16,170 --> 01:21:19,992 Et il est en fait un paradigme imposé dans certains langages de programmation 1447 01:21:19,992 --> 01:21:21,700 vous pouvez utiliser pour des projets finaux. 1448 01:21:21,700 --> 01:21:25,100 Si vous faites du développement iOS, ils ont vues, 1449 01:21:25,100 --> 01:21:29,120 qui est ce que vous voyez sur l'iPhone, et puis backend que comme une chose distincte. 1450 01:21:29,120 --> 01:21:31,260 >> Vous pouvez penser un peu. 1451 01:21:31,260 --> 01:21:35,190 Il ya beaucoup de fichiers binaires dans informatique, ce qui est drôle, 1452 01:21:35,190 --> 01:21:37,270 parce que tout est en binaire. 1453 01:21:37,270 --> 01:21:38,550 Je ne prévoyais pas que. 1454 01:21:38,550 --> 01:21:41,590 Ce fut un jeu de mots involontaire. 1455 01:21:41,590 --> 01:21:43,860 Oui, calembour pas destiné. 1456 01:21:43,860 --> 01:21:49,070 >> Mais comme les fichiers .h et fichiers .c, il ya beaucoup de séparation des choses que nous 1457 01:21:49,070 --> 01:21:49,900 ne pourriez pas besoin. 1458 01:21:49,900 --> 01:21:54,330 Donc, nous pouvons simplement modifier les fichiers de H, ou quelqu'un peut juste voir un fichier .h et le savoir 1459 01:21:54,330 --> 01:21:57,650 exactement les fonctions qui sont .c sans nécessairement connaître 1460 01:21:57,650 --> 01:21:58,870 leur mise en œuvre. 1461 01:21:58,870 --> 01:22:02,800 Cette idée de séparation des constituants qui dépendent les uns des autres 1462 01:22:02,800 --> 01:22:06,990 mais peut sorte d'accéder à l'autre à travers différents canaux, passant 1463 01:22:06,990 --> 01:22:09,310 de variables, tout simplement comprennent des déclarations, des choses 1464 01:22:09,310 --> 01:22:14,440 comme ça, ce principe contribue à créer des applications 1465 01:22:14,440 --> 01:22:17,080 qui peuvent être plus facilement édité par plusieurs personnes, 1466 01:22:17,080 --> 01:22:20,440 peut être plus facilement changé ou modifié sur une grande échelle, 1467 01:22:20,440 --> 01:22:24,880 et sont plus faciles à déboguer dans beaucoup de façons. 1468 01:22:24,880 --> 01:22:28,254 >> Vraiment rapide, je dois quelques conseils pour pset7, 1469 01:22:28,254 --> 01:22:31,420 que je vais faire plein écran de sorte que vous ne simplement en regardant the-- tip tippee. 1470 01:22:31,420 --> 01:22:33,964 1471 01:22:33,964 --> 01:22:35,130 Il n'y a pas que de nombreux conseils. 1472 01:22:35,130 --> 01:22:38,060 >> Mais je l'ai mentionné PHP est difficile à déboguer. 1473 01:22:38,060 --> 01:22:39,290 Double et triple vérifier. 1474 01:22:39,290 --> 01:22:41,550 Si votre code est tout simplement pas à apparaître sur la page, 1475 01:22:41,550 --> 01:22:46,240 il est probablement une erreur de PHP, désolé. 1476 01:22:46,240 --> 01:22:48,570 >> Vous ne devez regarder CSS si vous ne voulez pas. 1477 01:22:48,570 --> 01:22:52,150 Mais une fois que vous avez terminé, il peut être une belle chose peu de plaisir à aller en juste 1478 01:22:52,150 --> 01:22:54,770 et le désordre avec les paramètres CSS. 1479 01:22:54,770 --> 01:22:58,700 CSS et HTML sont un exemple d'un modèle style de vue du contrôleur chose aussi, non? 1480 01:22:58,700 --> 01:23:02,150 Vous pourriez avoir des balises de style l'intérieur des éléments HTML. 1481 01:23:02,150 --> 01:23:04,800 Mais si vous sorte de leur sous-traitance à CSS, 1482 01:23:04,800 --> 01:23:08,180 ils sont plus faciles à modifier, et le jeu avec, et vous amuser avec. 1483 01:23:08,180 --> 01:23:10,816 >> Traiter CS50 aide fonctions comme des boîtes noires. 1484 01:23:10,816 --> 01:23:12,940 Vous ne devez savoir exactement ce Render faire, 1485 01:23:12,940 --> 01:23:16,770 mais lui faire confiance pour toujours faire la bonne chose en fonction de ce que vous lui transmettez, 1486 01:23:16,770 --> 01:23:17,690 ce genre de choses. 1487 01:23:17,690 --> 01:23:21,040 Et je vous recommande regarder la procédure pas à pas de David, 1488 01:23:21,040 --> 01:23:24,490 passer par tous les trucs, pas seulement les todos, 1489 01:23:24,490 --> 01:23:26,960 mais vous ne pouvez vraiment traiter ces cases en noir. 1490 01:23:26,960 --> 01:23:29,280 Ne pas aller dans ces fonctions à la recherche de bugs. 1491 01:23:29,280 --> 01:23:33,510 >> Et accueillir le retour de notre seigneur Zamyla. 1492 01:23:33,510 --> 01:23:34,010 Génial. 1493 01:23:34,010 --> 01:23:40,430 >> Y at-il des questions finales avant nous sorte de rebondir pour la journée? 1494 01:23:40,430 --> 01:23:42,610 Suis-je vis encore? 1495 01:23:42,610 --> 01:23:44,700 Génial. 1496 01:23:44,700 --> 01:23:47,120 Personnes livestream Hi. 1497 01:23:47,120 --> 01:23:47,620 Génial. 1498 01:23:47,620 --> 01:23:50,260 Y at-il plus de questions? 1499 01:23:50,260 --> 01:23:50,760 Non? 1500 01:23:50,760 --> 01:23:52,884 >> Et puis je pense que nous sommes bon d'aller pour aujourd'hui. 1501 01:23:52,884 --> 01:23:55,550 Je vais rester un peu après, si les gens avaient des questions 1502 01:23:55,550 --> 01:23:57,480 ils avaient peur de poser sur le flux. 1503 01:23:57,480 --> 01:23:59,790 Mais sinon, avoir une bonne journée. 1504 01:23:59,790 --> 01:24:01,933