1 00:00:00,000 --> 00:00:03,000 [Powered by Google Translate] [Návod Problém Set 7] 2 00:00:03,000 --> 00:00:04,400 [Zamyla Chan] [Harvard University] 3 00:00:04,400 --> 00:00:07,640 [To je CS50] [CS50.TV] 4 00:00:07,640 --> 00:00:12,090 >> Ahoj všichni, vítejte na Walkthrough 7, CS50 financí. 5 00:00:12,090 --> 00:00:15,090 Nyní jsme oficiálně udělali se všemi psets v CS50, 6 00:00:15,090 --> 00:00:19,380 a my jsme jen zbývá jeden, který bude zábavný provádění 7 00:00:19,380 --> 00:00:23,770 internetové stránky, kde mohou uživatelé přihlásí do CS50 Finance 8 00:00:23,770 --> 00:00:25,830 a kupovat a prodávat akcie. 9 00:00:25,830 --> 00:00:32,280 >> Dnes budeme mít několik nástrojů máme k dispozici. 10 00:00:32,280 --> 00:00:34,320 Budeme mluvit o oprávnění. 11 00:00:34,320 --> 00:00:36,380 Kdykoli máte webové složky, 12 00:00:36,380 --> 00:00:40,800 budete chtít umožnit uživatelům spouštět některé soubory 13 00:00:40,800 --> 00:00:42,500 ale také jen číst ty ostatní, 14 00:00:42,500 --> 00:00:45,150 takže se podíváme do oprávnění a jak můžete nastavit ty. 15 00:00:45,150 --> 00:00:49,630 Pak budeme dívat do PHP, HTML a SQL kód. 16 00:00:49,630 --> 00:00:51,990 >> První, oprávnění. 17 00:00:51,990 --> 00:00:56,060 Když jste v terminálu v určitém adresáři, 18 00:00:56,060 --> 00:01:00,430 pak to, co chcete udělat, je chcete spustit příkaz chmod. 19 00:01:00,430 --> 00:01:03,750 To je poté buď písmena nebo číslice 20 00:01:03,750 --> 00:01:08,100 odpovídající tomu, co v podstatě chtějí, aby se svět vidět, 21 00:01:08,100 --> 00:01:09,830 můžete sami vidět, atd. 22 00:01:09,830 --> 00:01:13,350 Například, pokud máte složku, 23 00:01:13,350 --> 00:01:15,560 pak chcete, aby složka být spustitelný všichni, že vidí to, 24 00:01:15,560 --> 00:01:19,500 tak co byste udělat, je můžete spustit příkazu chmod + x 25 00:01:19,500 --> 00:01:21,050 a pak název složky. 26 00:01:21,050 --> 00:01:28,110 Máte-li soubor jako soubory CSS nebo obrazové soubory - 27 00:01:28,110 --> 00:01:33,060 jako JPEG a bitmap, podobné věci, nebo jakýkoliv kód JavaScript - 28 00:01:33,060 --> 00:01:36,440 chcete, aby být čitelný všichni, 29 00:01:36,440 --> 00:01:39,880 takže pak to, co děláte, je můžete použít zástupný znak - 30 00:01:39,880 --> 00:01:41,650 který je hvězdička - 31 00:01:41,650 --> 00:01:46,190 v podstatě uvést ve složce CSS - vše v této složce - 32 00:01:46,190 --> 00:01:48,740  Já řeknu, že to bude čitelný každý. 33 00:01:48,740 --> 00:01:54,220 S oprávněním, když budeme používat písmena, 34 00:01:54,220 --> 00:01:57,610 můžeme také použít čísla místo. 35 00:01:57,610 --> 00:02:00,900 Tak vidíte, že nakonec, když chcete něco být spustitelný - 36 00:02:00,900 --> 00:02:02,810 , který je reprezentován číslem 1 - 37 00:02:02,810 --> 00:02:08,340 něco ke čtení, je číslo 4, a potom - 38 00:02:08,340 --> 00:02:10,590 writable je číslo 2 - 39 00:02:10,590 --> 00:02:13,670 a tak v podstatě, pokud chcete kombinaci těch, potom přidat. 40 00:02:13,670 --> 00:02:15,860 Pokud chcete něco být čitelný, zapisovat a spustitelný, 41 00:02:15,860 --> 00:02:21,970 pak byste přidat až 4, 2, a 1, a že by vám 7, 42 00:02:21,970 --> 00:02:26,230 pak vždy, když máte složku, kterou chcete, aby se spustitelný všichni - 43 00:02:26,230 --> 00:02:31,380 stejně jako čtení a zápis - pak dělat, že 7, 1, 1. 44 00:02:31,380 --> 00:02:38,140 To by měla být 7 pro vás, pak 1 pro ostatní lidi. 45 00:02:38,140 --> 00:02:42,870 Máte-li ve specifikaci, bude to vlastně určit, které složky a soubory, které 46 00:02:42,870 --> 00:02:45,040 musí být chmod-ed konkrétně. 47 00:02:45,040 --> 00:02:47,920 Například, pokud máte složky - to jsou 7-1-1 - 48 00:02:47,920 --> 00:02:52,690 pokud máte obrázky, nebo HTML, CSS, JavaScript, 49 00:02:52,690 --> 00:02:55,870 pak ty, se bude 6, 0, 4 - nebo 6, 4, 4 - 50 00:02:55,870 --> 00:03:00,030 a pak PHP soubory se bude 6, 0, 0. 51 00:03:00,030 --> 00:03:04,940 Myšlenka, že je to, že uživatelé by neměli vlastně vidět váš PHP kód, 52 00:03:04,940 --> 00:03:08,370 ale jen moci vidět výstup. 53 00:03:08,370 --> 00:03:11,030 >> Výborně! Přesun do PHP. 54 00:03:11,030 --> 00:03:18,850 Stačí, když budete chtít soubor PHP, soubor přípona. Php. 55 00:03:18,850 --> 00:03:22,000 Můžete také smíchat s HTML kódem PHP. 56 00:03:22,000 --> 00:03:24,880 Pokud máte soubor HTML, například, 57 00:03:24,880 --> 00:03:32,520 pak můžete přiložit ji s levým úhlem, otazník, php - 58 00:03:32,520 --> 00:03:39,320 dát svůj PHP kód - a pak zavřete, že s jinou otazníkem a pravý úhel. 59 00:03:39,320 --> 00:03:45,020 Proměnné v PHP je mnohem jednodušší řešení než proměnných C. 60 00:03:45,020 --> 00:03:50,310 Jakákoli proměnná právě začíná znakem dolaru před ním, a oni slabě zadali. 61 00:03:50,310 --> 00:03:53,470 To znamená, že nemusíte starat o nastavení něco 62 00:03:53,470 --> 00:03:55,020 rovná řetězec nebo celé číslo. 63 00:03:55,020 --> 00:03:57,710 Můžete jednoduše říct, že toto je moje jméno proměnné 64 00:03:57,710 --> 00:04:00,390 a pak je to jeho hodnota, 65 00:04:00,390 --> 00:04:03,280 takže to bude jednodušší zabývat se tam. 66 00:04:03,280 --> 00:04:08,220 >> Další věc je, že PHP umožňuje používat asociativní pole. 67 00:04:08,220 --> 00:04:11,330 Můžete jednoduše definovat pole jako byste v C 68 00:04:11,330 --> 00:04:14,900 tím, znak dolaru, název vašeho pole-rovná, 69 00:04:14,900 --> 00:04:22,600 a pak v hranatých závorkách mají v podstatě jen seznam hodnot všech prvků v poli. 70 00:04:22,600 --> 00:04:27,160 Ale v PHP, co můžete udělat, je zadat také v podstatě - 71 00:04:27,160 --> 00:04:31,050 je to něco jako funkce hash. 72 00:04:31,050 --> 00:04:34,410 Můžete zadat index - co budete říkat - 73 00:04:34,410 --> 00:04:37,030 a pak se, že odpovídá hodnotě. 74 00:04:37,030 --> 00:04:42,880 Pokud jste skutečně předat v = 1, b = 2, c = 3, 75 00:04:42,880 --> 00:04:50,820 pak se vaše pole na indexu by vám 1. 76 00:04:50,820 --> 00:04:56,600 To Pset se zahřeje tě s nějakým PHP v sekci otázek, 77 00:04:56,600 --> 00:04:59,240 a pak jsme se ponořit do CS50 financí. 78 00:04:59,240 --> 00:05:02,650 >> Máme pár - máme nějakou funkcionalitu, v podstatě, 79 00:05:02,650 --> 00:05:05,130 provádět na těchto webových stránkách. 80 00:05:05,130 --> 00:05:10,440 Chceme, aby uživatelé zaregistrovat na našich stránkách pomocí uživatelského jména a hesla. 81 00:05:10,440 --> 00:05:13,670 Chceme, aby mohli vyhledat cenovou nabídku, 82 00:05:13,670 --> 00:05:19,330 a pak bychom vytisknout název tohoto citátu, stejně jako aktuální cenu, že je to na. 83 00:05:19,330 --> 00:05:26,830 Chceme, aby mohli vidět portfolio všech akcií, které si koupili tak daleko. 84 00:05:26,830 --> 00:05:34,240 Chceme také, aby mohli nakupovat akcie, stejně jako prodat. 85 00:05:34,240 --> 00:05:37,540 A pak konečně, chceme jim umožní vidět historii 86 00:05:37,540 --> 00:05:39,490 všech transakcí, které jste provedli. 87 00:05:39,490 --> 00:05:41,540 Potom, nakonec, poté, co realizován všechno, 88 00:05:41,540 --> 00:05:45,110 pak máte možnost realizovat jeden navíc funkci. 89 00:05:45,110 --> 00:05:46,610 Půjdeme do těch. 90 00:05:46,610 --> 00:05:51,330 Ty mohou být buď umožňuje uživatelům získat peníze navíc tím, že uloží peníze navíc, 91 00:05:51,330 --> 00:05:54,550 nebo můžete jim umožní změnit své heslo, nebo něco takového, 92 00:05:54,550 --> 00:06:00,590 email jim potvrzení, když koupit nebo prodat akcie. 93 00:06:00,590 --> 00:06:05,370 Tam je omezený seznam funkcí, které byste mohli realizovat sami, 94 00:06:05,370 --> 00:06:08,340 tak to je poslední tam. 95 00:06:08,340 --> 00:06:13,430 >> Protože se jedná o internetové stránky, vy také spoustu volného přizpůsobit ji. 96 00:06:13,430 --> 00:06:20,960 Děláme poskytují nějaký kód CSS, ale vy jste určitě možnost vyladit, 97 00:06:20,960 --> 00:06:26,680 aby to vypadalo lépe, ale základní je základní funkce 98 00:06:26,680 --> 00:06:30,310 tak se vždy vztahují k spec o tom, co budete skutečně potřebovat zahrnout tam. 99 00:06:30,310 --> 00:06:39,940 Po spec, budeme používat přístroj jako i server. 100 00:06:39,940 --> 00:06:43,910 Je to bude hostit naše webové stránky pro nás, na jeho lokálním serveru. 101 00:06:43,910 --> 00:06:49,750 Pokud budete postupovat podle těchto pokynů, a rozbalte PSet 7 distribuční kód 102 00:06:49,750 --> 00:06:53,500 do svého virtuálního hostitele / local hostitelské složky, 103 00:06:53,500 --> 00:07:02,470  pak stačí navštívit http://localhost/ v Google Chrome ve spotřebiči, 104 00:07:02,470 --> 00:07:09,120 a pak byste dosáhnout kód, ve kterém jste písemného PSet 7. 105 00:07:09,120 --> 00:07:14,490 >> Pset 7 přichází s partou distribuční kódu, 106 00:07:14,490 --> 00:07:18,330 a doufejme, že neplánujeme zde - přes všechny psets před tímto - 107 00:07:18,330 --> 00:07:21,700 zvyklí nás čtení prostřednictvím distribuční kódu, 108 00:07:21,700 --> 00:07:25,650 pochopení toho, co funkce jsou již k dispozici, a jak bychom mohli být schopni používat 109 00:07:25,650 --> 00:07:29,470 ty a další funkce, které budeme k realizaci. 110 00:07:29,470 --> 00:07:31,570 V tomto případě, máme 3 složky. 111 00:07:31,570 --> 00:07:36,350 Máme složku HTML, obsahuje složku, a šablony složku. 112 00:07:36,350 --> 00:07:40,630 Co budeme dělat s touto PSet je druh oddělení myšlení - 113 00:07:40,630 --> 00:07:45,580 programování myšlení - z PHP kódu s aktuální vizuální aspekt. 114 00:07:45,580 --> 00:07:52,690 Budeme mít jeden PHP soubor, který provede veškeré myšlení, čte do databáze, 115 00:07:52,690 --> 00:07:55,620 vytiskne věci, má-li závěrka - podobné věci - 116 00:07:55,620 --> 00:08:02,140 a pak, že si předávat data do našeho souboru šablony - nebo template.php soubor. 117 00:08:02,140 --> 00:08:05,710 Co to bude dělat, je číst data a pak to bude jej vytisknout. 118 00:08:05,710 --> 00:08:09,550 >> Můžeme léčit šablony jako "hloupé", že jsme opravdu nechci jim 119 00:08:09,550 --> 00:08:12,370 se, že dělá hodně práce při výpočtu věci. 120 00:08:12,370 --> 00:08:16,330 Chceme, aby naši správci udělat. 121 00:08:16,330 --> 00:08:21,610 Trochu na to - pojďme se podívat na některé z distribuční kódu. 122 00:08:21,610 --> 00:08:28,250 Zde máme soubor index.html, a je to docela prázdný. 123 00:08:28,250 --> 00:08:34,429 V podstatě to, co dělá - to říká, dobře, budu požadovat configuration.php soubor. 124 00:08:34,429 --> 00:08:40,120 Nechceme vidět, že tam, ale je to v podstatě voláním configuration.php soubor, 125 00:08:40,120 --> 00:08:42,240 a provádění, které. 126 00:08:42,240 --> 00:08:45,130 Poté, co dělá, že to bude k tomu, aby se portfolio. 127 00:08:45,130 --> 00:08:49,310 Rendering je funkce, takže když jsme v regulátoru, 128 00:08:49,310 --> 00:08:56,490 zavoláme render, dáme mu na soubor a potom data, která jsme projíždějící v, 129 00:08:56,490 --> 00:09:04,570 tak, že zavolám do portfolio.php--druhu pasu v tom, že dat, takže portfolio může se s tím vypořádat. 130 00:09:04,570 --> 00:09:10,540 >> A teď, tady, máme login.php formulář. 131 00:09:10,540 --> 00:09:17,540  Toto je ovladač, který v podstatě se stará o přihlášení 132 00:09:17,540 --> 00:09:29,090 Tady, kontroluje, zda formulář byl předložen k tomuto souboru a zabývá se ověřování podání. 133 00:09:29,090 --> 00:09:31,990 My se podíváme do tohoto omluvit funkci. 134 00:09:31,990 --> 00:09:35,100 Když chceme, vytiskne se chybová zpráva, 135 00:09:35,100 --> 00:09:39,550 používáme omlouváme a že bude přesměrovat uživatele na určitou stránku 136 00:09:39,550 --> 00:09:42,530 že bude tisknout konkrétní chybovou zprávu, že jsme naznačovaly. 137 00:09:42,530 --> 00:09:47,860 Pokračování na, bude vyhledávat v databázi - Dáme si do více později. 138 00:09:47,860 --> 00:09:54,180 Pak zjistíte, že se zde objeví formulář nebyl předložen, pak to činí formulář. 139 00:09:54,180 --> 00:10:01,360 To znamená, že jde do login_form.php, tak se pojďme podívat na to. 140 00:10:01,360 --> 00:10:09,400 >> Login.php je vlastně, kde vidíme HTML, které se zabývají skutečnou vizuální aspekt. 141 00:10:09,400 --> 00:10:15,130 Zde máme vstupní tag pro uživatelské jméno, vstup pro zadání hesla, 142 00:10:15,130 --> 00:10:16,630 stejně jako tlačítko Odeslat. 143 00:10:16,630 --> 00:10:22,660 To je vlastně, kde vizuální stránka a formulář HTML se bude konat. 144 00:10:22,660 --> 00:10:27,550 Tady, to říká, že to bude nám určitý způsob, volal po. 145 00:10:27,550 --> 00:10:30,190 Dostaneme se do rozdílů mezi metodami - 146 00:10:30,190 --> 00:10:33,240 přidat proti dostanete, je tu také něco, co nazývá řečeno - 147 00:10:33,240 --> 00:10:36,160 dostaneme do těchto metod později, ale v zájmu tohoto PSet, 148 00:10:36,160 --> 00:10:37,810 Byl bych velmi doporučujeme použít místo. 149 00:10:37,810 --> 00:10:42,210 >> Víme, že v podstatě jakmile tato forma je předložen - 150 00:10:42,210 --> 00:10:44,650 od login_form.php-- 151 00:10:44,650 --> 00:10:50,850 pak to bude jít do akce - login.php-- 152 00:10:50,850 --> 00:10:56,070 v podstatě předat ve všech těchto parametrech z těchto forem do login.php. 153 00:10:56,070 --> 00:11:04,900 Výsledky z této formě jsou obsaženy v tento příspěvek asociativního pole. 154 00:11:04,900 --> 00:11:11,710 Indexy různých prvků v po poli 155 00:11:11,710 --> 00:11:15,290 jsou přesně to, co zde zadáte. 156 00:11:15,290 --> 00:11:19,240 Říkáte, že jméno tohoto vstupu je jméno. Název tohoto jednoho je heslo. 157 00:11:19,240 --> 00:11:26,840 Podobně vidíte uživatelské jméno jako index asociativního pole tam. 158 00:11:26,840 --> 00:11:35,110 Pokud půjdeme do složky obsahuje, máme tuto funkce souboru, který se chystá být velmi užitečné. 159 00:11:35,110 --> 00:11:37,570 >> Všechny tyto funkce jsou realizovány pro vás. 160 00:11:37,570 --> 00:11:41,870 Nemusíte konkrétně plnit některou z těchto sami, 161 00:11:41,870 --> 00:11:43,140 ale oni budou velmi užitečné. 162 00:11:43,140 --> 00:11:49,450 Jsme Omlouváme se, který, jak jsem již řekl, bude v podstatě vytisknout chybovou zprávu 163 00:11:49,450 --> 00:11:52,920 pro vás na určitou stránku - apology.php. 164 00:11:52,920 --> 00:11:59,890 Pak máme skládku, takže pokud stačí zavolat dump a pak předat v proměnné, 165 00:11:59,890 --> 00:12:04,930 pak se dostanete na stránku, která bude zobrazovat tuto proměnnou pro vás. 166 00:12:04,930 --> 00:12:09,950 Pak jsme se odhlásit, která bude v podstatě konec jistého relace uživatele. 167 00:12:09,950 --> 00:12:12,240 Vyhledávání bude užitečná. 168 00:12:12,240 --> 00:12:15,870 Vzhledem k tomu, máme co do činění s citacemi a zásob, budeme mít možnost - 169 00:12:15,870 --> 00:12:17,650 a je to v podstatě v reálném čase. 170 00:12:17,650 --> 00:12:21,380 Musíme vědět, co ty fotky jsou hodnoty, 171 00:12:21,380 --> 00:12:28,210 takže máme vyhledávací funkci, která se zabývá dokumentací Yahoo zásob. 172 00:12:28,210 --> 00:12:37,700 Jakmile se podíváte nahoru určitý symbol populace, vrátí se k vám legální symbol 173 00:12:37,700 --> 00:12:41,480 , jakož i jména a aktuální cenou této populace. 174 00:12:41,480 --> 00:12:44,330 To je vyhledávání funkce. 175 00:12:44,330 --> 00:12:48,350 >> Pak máme co do činění s mySQL, 176 00:12:48,350 --> 00:12:53,970 takže budeme se chtít provést některé dotazy na naší databázi SQL. 177 00:12:53,970 --> 00:12:58,890 Máme dotaz na řešení - na druhu abstraktní některé z těchto ven. 178 00:12:58,890 --> 00:13:03,200 Budeme se procházet v celém řetězci našeho SQL dotazu - 179 00:13:03,200 --> 00:13:05,360 a všechny proměnné, které jdou v něm - 180 00:13:05,360 --> 00:13:09,480 a co to dělá, je skutečně provést, že pro nás. 181 00:13:09,480 --> 00:13:15,070 Místo toho, psát to vše se pokaždé, které chcete dotaz - 182 00:13:15,070 --> 00:13:21,740 tím, že se všechny výsledky z tohoto dotazu - 183 00:13:21,740 --> 00:13:24,740 pak stačí zavolat dotazu funkci, a to vrátím k vám - 184 00:13:24,740 --> 00:13:28,750 v závislosti na tom, co používáte pro Váš dotaz - 185 00:13:28,750 --> 00:13:33,000 Pravděpodobně řada všechny výsledky, které odpovídají dotazu nebo podobný. 186 00:13:33,000 --> 00:13:34,690 Více o tom později ačkoli. 187 00:13:34,690 --> 00:13:41,200 >> Konečně máme přesměrování, které, jak název napovídá, vás přesměruje na jinou stránku. 188 00:13:41,200 --> 00:13:46,280 A pak máme render, který jsme bude volat několikrát. 189 00:13:46,280 --> 00:13:51,010 Když jste v regulátoru, volat vykreslit do šablony stránky 190 00:13:51,010 --> 00:13:55,390 a pak předat v hodnotách, které šablona pak zabývají. 191 00:13:55,390 --> 00:13:59,540 Tyto hodnoty jsou pravděpodobně bude řešení typu výstupu, který chcete 192 00:13:59,540 --> 00:14:01,050 se ukáže na stránku šablony. 193 00:14:01,050 --> 00:14:09,370 Dobře. To jsou funkce, a tam je mnohem více tohoto distribučního kódu. 194 00:14:09,370 --> 00:14:12,930 Vybízím vás, abyste projít a prozkoumat sami. 195 00:14:12,930 --> 00:14:17,050 Také se spec pravděpodobně vás provede některými dalšími prvky distribuční kódu. 196 00:14:17,050 --> 00:14:27,360 Zde je souhrn funkcí nalezených v functions.php. 197 00:14:27,360 --> 00:14:31,710 >> Dobře. Prvním úkolem je umožnit uživatelům se zaregistrovat na webových stránkách. 198 00:14:31,710 --> 00:14:34,860 Právě teď, je přihlašovací formulář na webových stránkách, 199 00:14:34,860 --> 00:14:40,080 a jsou vám k dispozici několik uživatelů s hesly. 200 00:14:40,080 --> 00:14:42,130 Můžete použít tyto uživatelská jména a přihlášení, 201 00:14:42,130 --> 00:14:45,140 ale chcete, aby lidé mohli vytvořit vlastní uživatelské jméno 202 00:14:45,140 --> 00:14:47,390 a přidat se na internetových stránkách. 203 00:14:47,390 --> 00:14:53,070 Rozložení pro registraci je dost podobný přihlašovacím formulářem, 204 00:14:53,070 --> 00:14:56,340 kromě uživatelské jméno není pre-existující, 205 00:14:56,340 --> 00:14:59,430 a uživatel musí také poskytnout nové heslo, 206 00:14:59,430 --> 00:15:02,440 a pak obvykle máme heslo potvrzení. 207 00:15:02,440 --> 00:15:06,580 Jakmile uživatelské vstupy všechny uvedené informace, 208 00:15:06,580 --> 00:15:10,620 chceme přidat do naší databáze uživatelů. 209 00:15:10,620 --> 00:15:12,970 Budeme mít databázi - databáze SQL - 210 00:15:12,970 --> 00:15:14,470 že budeme odkazovat. 211 00:15:14,470 --> 00:15:18,140 V této databázi, budeme mít tabulku se všemi uživateli 212 00:15:18,140 --> 00:15:23,850 obsahující jejich jméno, jejich heslo, a také, kolik peněz mají. 213 00:15:23,850 --> 00:15:28,480 >> V registru, chceme, aby mohly vstoupit tyto informace. 214 00:15:28,480 --> 00:15:29,740 Chceme zobrazit tento formulář. 215 00:15:29,740 --> 00:15:32,210 Chceme, aby se ujistil, že jejich heslo - 216 00:15:32,210 --> 00:15:37,490 že Zadali, a pak také, že hesla zápas, když do něho vstupují dvakrát. 217 00:15:37,490 --> 00:15:42,240 Po všech, co se děje - za předpokladu, že tyto chyby jsou kontrolovány - 218 00:15:42,240 --> 00:15:45,120 pak budeme chtít přidat tyto uživatele do naší databáze. 219 00:15:45,120 --> 00:15:49,630 Konečně, jakmile jste se zaregistrovali, je to docela užitečné, pokud nechcete nutné se přihlásit znovu 220 00:15:49,630 --> 00:15:51,000 Jakmile jste zaregistrováni, 221 00:15:51,000 --> 00:15:54,000 takže budeme se přihlásit je do webové stránky, pokud jste registrovali v úspěšně. 222 00:15:54,000 --> 00:16:00,360 >> Prvním úkolem je zobrazit formulář, a to je vlastně bude - 223 00:16:00,360 --> 00:16:04,920 celý tento proces registrace se bude modelovat dost těsně po přihlášení 224 00:16:04,920 --> 00:16:10,510 kromě namísto login.php můžete mít register.php. 225 00:16:10,510 --> 00:16:14,300 Místo toho, aby login_form.php--což je šablona - 226 00:16:14,300 --> 00:16:16,030 budete mít zaregistrovat formulář. 227 00:16:16,030 --> 00:16:19,680 Budete chtít přidat ještě jednu oblast - potvrzení hesla pole - 228 00:16:19,680 --> 00:16:23,450 místo toho jen jedno uživatelské jméno a heslo na jedné. 229 00:16:23,450 --> 00:16:28,120 Dále chceme zjistit, zda se hesla odpovídají nebo jsou prázdné. 230 00:16:28,120 --> 00:16:38,560 Máme regulátor - register.php--, který se chystá postarat o tom tyto kontroly. 231 00:16:38,560 --> 00:16:41,690 Když je forma podává prostřednictvím metody POST 232 00:16:41,690 --> 00:16:47,050 pak všechny tyto proměnné jsou obsaženy v post pole. 233 00:16:47,050 --> 00:16:52,280 Chcete, aby se ujistil, že po pole hodnota na indexu heslo 234 00:16:52,280 --> 00:16:58,080 odpovídá potvrzovací prvek. 235 00:16:58,080 --> 00:16:59,410 Chcete, aby se ujistil, že nejsou prázdné, 236 00:16:59,410 --> 00:17:01,650 a chcete, aby se ujistil, že jsou stejné. 237 00:17:01,650 --> 00:17:05,960 >> Jedna věc, o pohodlné PHP je, že nemusíte používat řetězec porovnání už. 238 00:17:05,960 --> 00:17:08,410 Můžeme použít rovná-se rovná provozovatele 239 00:17:08,410 --> 00:17:11,470  zkontrolovat, zda jsou řetězce shodné navzájem. 240 00:17:11,470 --> 00:17:14,960 Pro chyb, budete chtít omluvit. 241 00:17:14,960 --> 00:17:17,150 Se omluvit, můžete jednoduše zavolejte funkci 242 00:17:17,150 --> 00:17:21,910  a poté zadat typ zprávy, kterou chcete výstup. 243 00:17:21,910 --> 00:17:24,630 Potom chcete přidat uživatele do databáze. 244 00:17:24,630 --> 00:17:30,880 Až teď, vše, co jsme dělali právě zabývá lokálně s výsledky formuláře. 245 00:17:30,880 --> 00:17:33,940 Nyní, vlastně chceme přidat do naší databáze. 246 00:17:33,940 --> 00:17:38,890 K tomuto účelu je nejprve chtít, aby se ujistil, že uživatelské jméno není prázdný. 247 00:17:38,890 --> 00:17:44,550 Pochopte, že na webových stránkách, nemůžete mít více uživatelů se stejným uživatelským jménem, 248 00:17:44,550 --> 00:17:50,010 takže si budete chtít, aby se ujistil, že při vložení něco do databáze - 249 00:17:50,010 --> 00:17:56,650 vložit nového uživatele - pak nechápu kolizi mezi pre-existující uživatelské jméno 250 00:17:56,650 --> 00:17:59,150 a jméno, že se uživatel pokouší odeslat. 251 00:17:59,150 --> 00:18:02,250 Za tímto účelem, jakmile spuštění dotazu - 252 00:18:02,250 --> 00:18:08,760 vložení určitého uživatele s jejich heslem a původní částky v hotovosti - 253 00:18:08,760 --> 00:18:15,140 Jednou říkáš, že dotaz, mySQL se skutečně vrátí false, pokud selže. 254 00:18:15,140 --> 00:18:21,050 >> Struktura uživatelů je taková, že uživatelské jméno je jedinečná hodnota, 255 00:18:21,050 --> 00:18:22,540 takže nemůžete mít více než jeden. 256 00:18:22,540 --> 00:18:30,080 Při pokusu a vložit nový řádek s uživatelským jménem, ​​které již existuje, 257 00:18:30,080 --> 00:18:34,470 že se to vrátí false - jako logická hodnota false. 258 00:18:34,470 --> 00:18:45,320 Ošemetná věc je, že budete chtít zjistit, zda výsledek je výsledek vašeho dotazu. 259 00:18:45,320 --> 00:18:52,320 Pokud se nezdaří, pak budete chtít zkontrolovat s triple-rovná provozovatele. 260 00:18:52,320 --> 00:18:55,420 To se vlastně bude kontrolovat, zda je porucha, nebo ne, 261 00:18:55,420 --> 00:19:02,760 vzhledem k tomu, v jen jednoduchý rovná-se rovná, by to byla pravda, kdyby řádek byl prázdný. 262 00:19:02,760 --> 00:19:06,000 Výsledkem poruchy, jestliže je kolize mezi uživatelským jménem 263 00:19:06,000 --> 00:19:10,350 je skutečná hodnota false. 264 00:19:10,350 --> 00:19:15,230 >> Zde je, jak byste vložit do databáze. 265 00:19:15,230 --> 00:19:19,220 Zde je dotaz, který by běžel přesně v SQL. 266 00:19:19,220 --> 00:19:25,750 Jedna věc je, že můžete skutečně jít na webové stránky, které spravuje SQL databáze 267 00:19:25,750 --> 00:19:31,070 a hrát si tam zadáním ručně buď hodnoty nebo řádků. 268 00:19:31,070 --> 00:19:34,540 To bude výstup, co SQL výstup. 269 00:19:34,540 --> 00:19:38,870 Můžete také spustit SQL příkazy v rámci databáze 270 00:19:38,870 --> 00:19:42,200  a poté, co syntaxe může být, 271 00:19:42,200 --> 00:19:46,790 a pak převést do dotazu funkci, kterou jsme v PSet 7, 272 00:19:46,790 --> 00:19:51,120 která bude velmi podobná dotazů, které jste vlastně běží. 273 00:19:51,120 --> 00:19:54,570 >> Pokud bych chtěl vložit nový řádek do mého tabulky uživatelů, 274 00:19:54,570 --> 00:20:01,240 pak bych upřesnit vložku do uživatele, který je jméno mého stolu. 275 00:20:01,240 --> 00:20:06,870 Pak bych zadat názvy sloupců. 276 00:20:06,870 --> 00:20:13,230 Pak bych poskytnout hodnoty spolu s mým heslem. 277 00:20:13,230 --> 00:20:17,080 Hesla v naší tabulce users nejsou uloženy jen jako řetězec. 278 00:20:17,080 --> 00:20:19,440 Jsou uloženy jako šifrované verze, 279 00:20:19,440 --> 00:20:24,560 takže si budete chtít spustit funkci kryptu na skutečné heslo, 280 00:20:24,560 --> 00:20:29,680 a že vám správný typ úložiště pro uživatele pole. 281 00:20:29,680 --> 00:20:34,960 Běh to bude vložit nový řádek do tabulky uživatelů. 282 00:20:34,960 --> 00:20:39,020 >> Vypořádat se s dotazu funkcí, 283 00:20:39,020 --> 00:20:43,100 předtím v C jsme použili znak procent jako zástupný znak. 284 00:20:43,100 --> 00:20:47,670 Podobně, ze stejného pojmu zástupný zde platí. 285 00:20:47,670 --> 00:20:50,720 S dotazem, můžete zadat celý dotaz, 286 00:20:50,720 --> 00:20:55,510 kromě kdykoli máte co do činění s proměnnými jako vstup do dotazu, 287 00:20:55,510 --> 00:21:00,490 pak místo skutečně jejich uvedení v -, jako když jsme měli printf prohlášení v C. 288 00:21:00,490 --> 00:21:03,740 Rádi bychom dát provázek a pak zástupný symbol tam, a pak se po každém 289 00:21:03,740 --> 00:21:06,990 čárka, určit, které proměnné jsme měli. 290 00:21:06,990 --> 00:21:14,480 Zde, budeme používat otazník označení jako náš zástupný symbol 291 00:21:14,480 --> 00:21:21,670 a pak se projít v každé proměnné, respektive s cílem, pro umístění - 292 00:21:21,670 --> 00:21:24,420 pokud tyto proměnné by mělo jít. 293 00:21:24,420 --> 00:21:29,470 Takže zde by první otazník být nahrazen skutečnou uživatelským jménem 294 00:21:29,470 --> 00:21:33,610 pak druhý otazník heslem. 295 00:21:33,610 --> 00:21:37,000 >> Pak konečně, jakmile jste zaregistroval a přidal je do databáze, 296 00:21:37,000 --> 00:21:40,510 pak se chcete přihlásit je do webové stránky. 297 00:21:40,510 --> 00:21:45,320 Máme jakýsi super-globální proměnné nazvané zasedání. 298 00:21:45,320 --> 00:21:48,160 Sezení trvá určitou id, 299 00:21:48,160 --> 00:21:51,750 a že id odpovídá uživatele, který je aktuálně přihlášeného 300 00:21:51,750 --> 00:21:56,380 Co budete chtít udělat, je najít to, co jejich uživatel id je 301 00:21:56,380 --> 00:22:03,710 a pak nastavit, aby session id, jako je úcastníka id. 302 00:22:03,710 --> 00:22:07,560 Funkce, která budete chtít používat zde SQL příkaz 303 00:22:07,560 --> 00:22:15,150 které budou načíst poslední vložený identifikační číslo z tabulky. 304 00:22:15,150 --> 00:22:24,560 Pak řádky budou volat - it'll zavolejte id - it'll přiřadit jméno k číslu, které se vrací. 305 00:22:24,560 --> 00:22:27,900 Bude říkat, že id. 306 00:22:27,900 --> 00:22:33,370 Nyní jsme dokončili registraci, a můžeme přejít k citovat. 307 00:22:33,370 --> 00:22:36,610 >> Quote umožňuje uživateli zadat název určité populace, 308 00:22:36,610 --> 00:22:41,940 a pak se vrátím kvalit této populace. 309 00:22:41,940 --> 00:22:48,410 Co budete chtít udělat je mít ovladač a některé šablony. 310 00:22:48,410 --> 00:22:53,380 V tomto případě, budeme mít regulátor, který je udělá všechny myšlení pro nás. 311 00:22:53,380 --> 00:23:01,210 Bude to vypadat nahoru symbol a potom předat hodnot na šablony, které budou vytištěny. 312 00:23:01,210 --> 00:23:03,060 Budeme mít 2 šablony zde. 313 00:23:03,060 --> 00:23:07,260 Budeme mít 1 šablonu, která poskytuje formu, v níž jsou uživatelé chystá 314 00:23:07,260 --> 00:23:09,920 Vstup název populace - název podílu. 315 00:23:09,920 --> 00:23:16,030 Pak jsme také bude chtít jinou šablonu, která zobrazuje tyto hodnoty. 316 00:23:16,030 --> 00:23:27,450 Můžete se podívat na přihlášení pro příklad toho, jak budete mít formulář, který přijímá vstup, 317 00:23:27,450 --> 00:23:30,060 s výjimkou tady, chceme jen 1 pole. 318 00:23:30,060 --> 00:23:31,630 Nechceme uživatelské jméno a heslo pole. 319 00:23:31,630 --> 00:23:37,110 Chceme jen 1 textové pole, které umožňuje uživateli zadat název určité populace. 320 00:23:37,110 --> 00:23:40,110 Pak chcete odeslat tato data - jakmile jste se podíval, že zboží - 321 00:23:40,110 --> 00:23:45,550 k quote_form.php. 322 00:23:45,550 --> 00:23:50,780 Vyhledávání vrátí symbol na populaci, jméno a cenu. 323 00:23:50,780 --> 00:23:53,910 Ti, kteří jsou obsaženy v asociativním poli. 324 00:23:53,910 --> 00:24:01,390 Podívejte se na vyhledávací funkci uvnitř functions.php pro více informací 325 00:24:01,390 --> 00:24:04,010 o návratových typů těch. 326 00:24:04,010 --> 00:24:08,520 >> Výborně! Takže nakonec, budete chtít zobrazit informace o akciích. 327 00:24:08,520 --> 00:24:14,110 Budete chtít, aby pravděpodobně zobrazovat - budeš chtít mít přístup tyto proměnné. 328 00:24:14,110 --> 00:24:17,610 Jakmile budete mít cenu v proměnné - 329 00:24:17,610 --> 00:24:20,860 jakož i jméno a symbol - 330 00:24:20,860 --> 00:24:25,550 pak budete chtít zobrazit ty své stránky šablony. 331 00:24:25,550 --> 00:24:31,540 To šablona stránka může být nazýván show_quote.php nebo tak něco. 332 00:24:31,540 --> 00:24:39,660 Vaše quote.php strana zbavuje zobrazit nabídku a pak předat ve všech těchto hodnot. 333 00:24:39,660 --> 00:24:47,170 Pak v php stránky, jste vlastně vytisknout tyto hodnoty do HTML aspektu stránky. 334 00:24:47,170 --> 00:24:53,800 Stačí použít funkci tisku a předat v ceně. 335 00:24:53,800 --> 00:24:57,990 Existují 2 způsoby - buď můžete spojit s operátorem tečka, 336 00:24:57,990 --> 00:25:02,230 nebo použijte zástupný symbol. 337 00:25:07,580 --> 00:25:12,750 >> Uživatelé nakonec se bude kupovat a prodávat akcie. 338 00:25:12,750 --> 00:25:18,450 Chceme, aby jim nějaký způsob, jak vidět všechny zásoby, které v současné době mají. 339 00:25:18,450 --> 00:25:21,350 Budeme říkat, že jejich portfolio. 340 00:25:21,350 --> 00:25:26,180 Portfolio by pravděpodobně pro každého uživatele, obsahuje spoustu řádků 341 00:25:26,180 --> 00:25:31,760 vypisovat druhu akcií, které mají, a pak, jak mnozí z těch, co mají. 342 00:25:31,760 --> 00:25:36,500 Naše stávající tabulky - teď máme uživatelů tabulku v naší databázi. 343 00:25:36,500 --> 00:25:41,780 , Který obsahuje uživatelské jméno uživatele, stejně jako jejich heslo a kolik hotovosti mají. 344 00:25:41,780 --> 00:25:50,390 Není tam žádný skutečný způsob, jak ukládat všechny své zásoby v rámci které. 345 00:25:50,390 --> 00:25:58,010 Je to, jako bychom můžete vložit nové sloupce pro každý sklad. 346 00:25:58,010 --> 00:26:03,650 To by bylo velmi, velmi dlouhá řada, protože máme nekonečné množství 347 00:26:03,650 --> 00:26:06,200 druhů zásob, které by mohly mít. 348 00:26:06,200 --> 00:26:09,150 Takže místo toho, co budeme dělat, je ve stejné databázi, 349 00:26:09,150 --> 00:26:15,000 budeme mít uživatelé tabulku, ale pak budeme také mít portfolio tabulku. 350 00:26:15,000 --> 00:26:18,430 Portfolio tabulka bude určitě spojeno s tabulky uživatelů, 351 00:26:18,430 --> 00:26:24,600 ale místo toho portfolia struktura tabulky budou mít informace o akciích, 352 00:26:24,600 --> 00:26:27,780 kolik akcií této populace má uživatel, 353 00:26:27,780 --> 00:26:31,620 Stejně jako uživatele zejména identifikační číslo. 354 00:26:31,620 --> 00:26:34,620 Máte uživatelů tabulku, která má ID, stejně jako uživatelské jméno, hash - 355 00:26:34,620 --> 00:26:40,130 což je heslo, zašifrované heslo - 356 00:26:40,130 --> 00:26:42,130 a pak se množství hotovosti mají. 357 00:26:42,130 --> 00:26:47,900 Id číslo by být vázána na identifikační číslo z portfolia. 358 00:26:47,900 --> 00:26:52,490 Portfolio by jen mít symbol populace stejně jako akcie - 359 00:26:52,490 --> 00:26:55,410 počet akcií této populace, které má uživatel. 360 00:26:55,410 --> 00:26:58,520 V tomto portfolia tabulce budete mít v podstatě 361 00:26:58,520 --> 00:27:03,760 všechny akcie posedlý všechny uživatele na vašem webu. 362 00:27:03,760 --> 00:27:10,550 Později, specifikovat jen určitý uživatel akcie - pouze jejich portfolio - 363 00:27:10,550 --> 00:27:15,360 byste načíst hodnoty z vašeho portfolia stole takový to 364 00:27:15,360 --> 00:27:19,930 id číslo je specifické pro daného uživatele. 365 00:27:26,520 --> 00:27:34,890 >> Při zobrazení portfolio, budete chtít ohlásit každý z populací v uživatelské portfoliu. 366 00:27:34,890 --> 00:27:41,670 Budete chtít nahlásit počet akcií a aktuální hodnota těchto akcií. 367 00:27:41,670 --> 00:27:45,950 To současná hodnota těchto akcií není uložen v tabulce portfolia 368 00:27:45,950 --> 00:27:51,640 protože to je bude aktualizovat - minimálně - každý den Yahoo. 369 00:27:51,640 --> 00:27:58,550 Chcete-li získat tyto informace, nemůžete odkazovat, že z vašeho dotazu SQL. 370 00:27:58,550 --> 00:28:02,400 Jakou funkci stanoví, že k nám? Jakou funkci dostane cenu? 371 00:28:02,400 --> 00:28:09,110 To je vyhledávání, takže pomocí vyhledávání na konkrétní symbol vám spoustu informací. 372 00:28:09,110 --> 00:28:13,710 Dá vám 3 kusy informací - jméno, symbol, stejně jako cenu. 373 00:28:13,710 --> 00:28:17,490 Jakmile vyhledávání určité symbol, pak se můžete dostat cenu, 374 00:28:17,490 --> 00:28:20,460 a pak můžete použít cenu, která se zobrazí ve vašem portfoliu. 375 00:28:20,460 --> 00:28:26,190 >> Portfolio by mělo také zobrazovat uživatele aktuální peněžní zůstatek. 376 00:28:26,190 --> 00:28:30,310 Toto pole je uložen ve vaší tabulce users. 377 00:28:30,310 --> 00:28:33,400 Takže si vzpomněl, jak jsme v podstatě museli - 378 00:28:33,400 --> 00:28:36,850 budeme mít různé typy PHP souborů. 379 00:28:36,850 --> 00:28:40,160 Budeme mít regulátor, který v podstatě dělá všechny myšlení pro vás. 380 00:28:40,160 --> 00:28:45,940 A pak máme šablonu, v níž šablona se zabývá výstup dat. 381 00:28:45,940 --> 00:28:50,790 Musíte myslet na to, co proměnných regulátor bude muset vzít dovnitř 382 00:28:50,790 --> 00:29:01,630 Pokud máme co do činění s portfoliem, které výstupy každé jméno, symbol, a sdílet číslo, 383 00:29:01,630 --> 00:29:03,730 , jakož i proud cena zásob, 384 00:29:03,730 --> 00:29:06,950 pak budete chtít najít nějaký způsob, jak v podstatě předávání in - 385 00:29:06,950 --> 00:29:12,070 můžete předat v poli hodnot, které odpovídají, že. 386 00:29:15,250 --> 00:29:24,360 >> Pojďme do příklad toho, jak by se Vám mohl načíst do všech akcií 387 00:29:24,360 --> 00:29:26,210 vlastnictví konkrétního uživatele. 388 00:29:26,210 --> 00:29:31,400 To není řešení - dosud - s cenou populace. 389 00:29:31,400 --> 00:29:33,520 Co by to udělat, je spustit dotaz. 390 00:29:33,520 --> 00:29:37,070 To by získat symbol stejně jako akcie od - 391 00:29:37,070 --> 00:29:42,770 Volám tuto tabulku, ale v tomto případě to, co by to bylo? 392 00:29:42,770 --> 00:29:49,400 Jaký je název tabulky, která máme co do činění s tím má symbol a akcie 393 00:29:49,400 --> 00:29:52,280 pro konkrétního uživatele? 394 00:29:52,280 --> 00:29:56,410 Je to buď uživatele nebo portfolia. 395 00:29:56,410 --> 00:29:57,820 Portfolio. 396 00:29:57,820 --> 00:30:03,220 Co by to udělat, je dotaz portfolio pro symboly a podílů 397 00:30:03,220 --> 00:30:04,920 pro konkrétního uživatele. 398 00:30:04,920 --> 00:30:09,260 Zde, říkám, (SELECT symbol, akcie Z tbl - 399 00:30:09,260 --> 00:30:12,280 ale místo tabulky, budete nahradit, že s portfoliem. 400 00:30:12,280 --> 00:30:15,220 "Kde je v podstatě můj stav. 401 00:30:15,220 --> 00:30:21,050 Říkám jen chci dostat ty asociativních polí, které odpovídají 402 00:30:21,050 --> 00:30:23,850  k tomuto následující podmínku - id rovná. 403 00:30:23,850 --> 00:30:27,600  Pak dávám zástupný tam a pak relace id. 404 00:30:27,600 --> 00:30:36,720 Co by to udělat, je říct, pro každý řádek v řádcích. 405 00:30:36,720 --> 00:30:40,940 Jedná se o elegantní způsob, místo skutečně nutnosti nastavování pro smyčce 406 00:30:40,940 --> 00:30:47,450 že iteruje přes všechny indexy, pak v PHP můžete mít pro-each. 407 00:30:47,450 --> 00:30:53,520 >> Pokud máte zadány pole, pak si můžete říct, že budu volat každý následující prvek - 408 00:30:53,520 --> 00:30:57,930 Jdu zavolat každý prvek tento název. 409 00:30:57,930 --> 00:31:02,780 Takže, pro každou z těchto prvků, budu jim říkat to, 410 00:31:02,780 --> 00:31:04,500 pak jsem to udělat. 411 00:31:04,500 --> 00:31:10,370 V tomto pro každého, máte řádky jako vaše skutečné pole, a každý řádek vy budete volat řádek. 412 00:31:10,370 --> 00:31:12,420 Pokaždé, když se provede tělo, 413 00:31:12,420 --> 00:31:16,960 to půjde a bude aktualizovat řádek na další prvek v řádcích. 414 00:31:18,900 --> 00:31:25,260 >> Nyní, pokud jde o nákupu zásob, 415 00:31:25,260 --> 00:31:29,500 to, co chceme udělat, je dostat akcie, které uživatel chce koupit 416 00:31:29,500 --> 00:31:35,300 a množství akcií, které uživatel chce koupit, a pak - pokud chtějí - 417 00:31:35,300 --> 00:31:38,120 Dodávám, že zboží do svého portfolia. 418 00:31:38,120 --> 00:31:40,310 Je zřejmé, že v případě, že kupujete něco, pak že to bude snižovat 419 00:31:40,310 --> 00:31:43,520 množství peněz, které mají, tak že to bude snížit jejich peníze. 420 00:31:43,520 --> 00:31:48,380 Budeme se zabývat aktualizace portfolia, stejně jako tabulky uživatelů, 421 00:31:48,380 --> 00:31:50,300 který obsahuje hotovost. 422 00:31:50,300 --> 00:31:54,920 Ale nejprve musíte dostat skutečnou skladem a množství akcií, které chce uživatel. 423 00:31:54,920 --> 00:32:00,010 Za to, že budete potřebovat HTML formulář, který bude žádat o symbol populace 424 00:32:00,010 --> 00:32:03,360 které si chcete koupit, stejně jako počet akcií. 425 00:32:03,360 --> 00:32:08,300 Pak budete chtít přidat. 426 00:32:08,300 --> 00:32:13,750 Budete chtít vybrat určité hodnoty. 427 00:32:13,750 --> 00:32:19,670 Přešli jsme přes to trochu už, ale když se snažíte získat určité řádky - 428 00:32:19,670 --> 00:32:22,020 načíst některé řádky z tabulky SQL, 429 00:32:22,020 --> 00:32:24,290 To je následující syntaxi. 430 00:32:24,290 --> 00:32:28,400 Jste vybrat, a pak, pokud zadáte hvězdu, 431 00:32:28,400 --> 00:32:31,830 že to v podstatě vrátí celou, celý řádek pro vás. 432 00:32:31,830 --> 00:32:36,890 Pak znovu, budete mít stav, při kterém, a pak zadáte - 433 00:32:36,890 --> 00:32:39,990 Chci jen uživatelské jméno se rovná mail-in, 434 00:32:39,990 --> 00:32:46,660 tak to bude pouze načíst řádek uživatelů, která odpovídá mail-in. 435 00:32:46,660 --> 00:32:52,860 >> Když chce uživatel přidat podíl na portfoliu, 436 00:32:52,860 --> 00:32:54,400 je třeba zkontrolovat několik chyb. 437 00:32:54,400 --> 00:32:57,680 Chcete, aby se ujistil, že uživatel může skutečně dovolit zboží, 438 00:32:57,680 --> 00:33:00,810 takže si budete chtít zkontrolovat svou hotovost. 439 00:33:00,810 --> 00:33:05,810 Než jsme použili hvězdičku načíst celý řádek z tabulky SQL. 440 00:33:05,810 --> 00:33:08,930 Ale tady, můžeme skutečně jen upřesnit, že chci jen hodnotu 1 - 441 00:33:08,930 --> 00:33:10,080 Chci jen hotovost. 442 00:33:10,080 --> 00:33:17,970 Tak tady by to vrátit hotovost pro uživatele s číslem id 1. 443 00:33:17,970 --> 00:33:25,940 Pokud uživatel již koupil určité zboží, ale pak kupuje více této populace, 444 00:33:25,940 --> 00:33:30,440 pak ve svém portfoliu - nechcete samostatnou linku, 445 00:33:30,440 --> 00:33:34,770 další řádek, který obsahuje tuto novou transakci. 446 00:33:34,770 --> 00:33:37,950 Vy vlastně chcete aktualizovat částku. 447 00:33:37,950 --> 00:33:42,530 Vše, co se to mění opravdu je množství akcií, které tento uživatel vlastní. 448 00:33:42,530 --> 00:33:47,730 Pokud použijete vložku do dotazu - tak to stačí vložit do svého portfolia všech těchto hodnot - 449 00:33:47,730 --> 00:33:51,710 uživatele id číslo, stejně jako symbol populace, které kupujete 450 00:33:51,710 --> 00:33:57,750 a podíly, pak budete také chtít určit, dobře, když jsem běžet do duplikátu klíče - 451 00:33:57,750 --> 00:34:00,750 v tomto případě, duplicitní klíč je nejen uživatele id, ale také symbol akcie - 452 00:34:00,750 --> 00:34:08,340 protože můžete mít pouze - náš předpoklad je, že můžete mít pouze 1 řádek 453 00:34:08,340 --> 00:34:10,699  že odpovídá 1 specifický symbol. 454 00:34:10,699 --> 00:34:13,659 Takže, na duplicitní klíč - pokud se dostanete do kolize tam - 455 00:34:13,659 --> 00:34:18,520 jste jen tak aktualizovat akcií na novou hodnotu. 456 00:34:18,520 --> 00:34:23,290 Akcie rovná, co jsme měli předtím a počtu akcií, které uživatel kupuje. 457 00:34:27,790 --> 00:34:31,090 >> Nyní, když jsme aktualizovali portfolio tabulky, 458 00:34:31,090 --> 00:34:34,730 budeme chtít aktualizovat uživatele hotovost. 459 00:34:34,730 --> 00:34:40,300 To je v tabulce users, takže budeme se odečtením určitou částku z hotovosti. 460 00:34:40,300 --> 00:34:46,270 Lze předpokládat, že to bude v hotovosti se rovná peněžní minus - a pak určitá částka. 461 00:34:46,270 --> 00:34:50,560 Chcete-li aktualizovat hotovost, by si - 462 00:34:50,560 --> 00:34:55,699 kdybych chtěl vzít peníze z mail-in, pak bych spustit tento dotaz - 463 00:34:55,699 --> 00:35:00,220 "Aktualizace uživatelů a potom nastavte hotovosti sloupec hotovosti - 464 00:35:00,220 --> 00:35:07,300 >> Chtěl bych odstranit 9999 dolarů jen v případě, že uživatelské jméno je rovna mail-in. 465 00:35:07,300 --> 00:35:12,020 Ale v tomto případě, my nechceme odečíst 9999 konkrétně. 466 00:35:12,020 --> 00:35:17,610 Chceme určit, dobře, chceme odečíst aktuální cenu populace 467 00:35:17,610 --> 00:35:22,400 vynásobená počtem akcií, které oni kupují. 468 00:35:25,260 --> 00:35:29,910 >> Teď jsme jim umožnila vidět všechny zásoby, které mají, 469 00:35:29,910 --> 00:35:33,080 stejně jako koupit více populací. 470 00:35:33,080 --> 00:35:37,430 Také jsme již dříve dovolil jim vyhledat aktuální cenu akcie. 471 00:35:37,430 --> 00:35:40,030 Zde chceme, aby mohli prodat. 472 00:35:40,030 --> 00:35:42,160 Nejprve chceme zobrazit v podstatě - 473 00:35:42,160 --> 00:35:45,270 Chceme umožnit jim vidět do všech akcií, které mají, 474 00:35:45,270 --> 00:35:53,170 takže tady chceme zobrazit všechny řádky z portfolia. 475 00:35:53,170 --> 00:35:56,650 Pokud se rozhodnou prodat určité zboží, 476 00:35:56,650 --> 00:35:59,140 pak budeme předpokládat, že chtějí prodat všechno. 477 00:35:59,140 --> 00:36:04,350 Oni nejsou jen tak prodat 50% svých akcií, se chystají prodat 100% ní. 478 00:36:04,350 --> 00:36:08,630 Můžeme jen odstranit celý řádek z portfolia. 479 00:36:08,630 --> 00:36:17,520 Můžeme odstranit daného uživatele akcie na některých symbolu. 480 00:36:17,520 --> 00:36:21,410 Tam je syntaxe pro to. 481 00:36:21,410 --> 00:36:22,710 >> Pak chceme aktualizovat hotovost. 482 00:36:22,710 --> 00:36:30,930 Budeme přidávat v hotovosti rovnající se počtu akcií, které jsou prodejní 483 00:36:30,930 --> 00:36:34,640 vynásobí aktuální ceny populace - 484 00:36:34,640 --> 00:36:38,610 není cena, za kterou si koupili, ale spíše na cenu, za kterou jsou - 485 00:36:38,610 --> 00:36:40,500 aktuální cena, když se ho prodá. 486 00:36:40,500 --> 00:36:43,660 Chcete-li odkazovat aktuální cenu akcií, 487 00:36:43,660 --> 00:36:49,120 budete chtít použít vyhledávání, které vám cenu na populaci 488 00:36:50,030 --> 00:36:52,650 v současné době. 489 00:36:52,650 --> 00:36:55,930 >> Nyní nám nezbývá s historií, 490 00:36:55,930 --> 00:37:00,170 které chcete povolit uživateli sledovat všechny jejich transakce - 491 00:37:00,170 --> 00:37:03,040 chce vidět pokaždé, když prodávají něco, vždy, když koupil akcie. 492 00:37:03,040 --> 00:37:08,870 Chceme určit čas, ve kterém oni dělali, že stejně jako kolik jich koupili 493 00:37:08,870 --> 00:37:11,650 a co fotografii to bylo. 494 00:37:11,650 --> 00:37:17,800 Máme žádné aktuální, stávající strukturu, která určuje, že? 495 00:37:17,800 --> 00:37:25,230 No, máme portfolio, které zobrazuje počet populací, které má uživatel 496 00:37:25,230 --> 00:37:26,470 pro danou akcii. 497 00:37:26,470 --> 00:37:34,060 Ale my jsme strukturovat portfolio tak, že se aktualizuje, když jsme se koupit více, 498 00:37:34,060 --> 00:37:40,190 vzhledem k tomu, historie by - pokud si koupíte Apple, 10 akcí z ní, a později na prodeji 5, 499 00:37:40,190 --> 00:37:44,040 pak budete chtít vidět ty odděleně jako samostatné akce, samostatné řádky. 500 00:37:44,040 --> 00:37:48,520 Vzhledem k tomu, že opatření, která představit, že v našem portfoliu tabulce 501 00:37:48,520 --> 00:37:52,540 by být jen aktualizace na konkrétní řádek, 502 00:37:52,540 --> 00:37:55,740  tak jsme pravděpodobně bude chtít jinou tabulku. 503 00:37:55,740 --> 00:38:00,460 V naší databázi máme našim uživatelům tabulku, máme portfolio stůl, 504 00:38:00,460 --> 00:38:04,090 a teď budeme pravděpodobně potřebovat tabulky historie. 505 00:38:04,090 --> 00:38:08,070 Že historie tabulka může sledovat aktuální datum, 506 00:38:08,070 --> 00:38:12,800 stejně jako konkrétní symbol akcie, stejně jako to, kolik akcií, 507 00:38:12,800 --> 00:38:15,410 a pak, jaké kroky je - 508 00:38:15,410 --> 00:38:18,800 zda jste si kupovali ty akcie, nebo zda jste prodávají. 509 00:38:20,660 --> 00:38:25,720 >> Abychom se s datem, existuje několik způsobů, jak můžete udělat to. 510 00:38:25,720 --> 00:38:28,820 PHP má způsob, jak udržet přehled o datu, které si můžete vzhlížet sami. 511 00:38:28,820 --> 00:38:33,990 V SQL můžete také použít buď teď, nebo aktuální timestamp. To záleží na vás. 512 00:38:33,990 --> 00:38:40,720 Jen se ujistěte, že pokaždé, když uživatel koupí nebo prodá, budete aktualizovat své peníze 513 00:38:40,720 --> 00:38:46,750 v tabulce users, budete aktualizovat řádky v tabulce portfolia, 514 00:38:46,750 --> 00:38:50,900 pak budete také aktualizace historii, 515 00:38:50,900 --> 00:38:56,260 takže se bude 3 samostatné SQL dotazy, které budete volání tam. 516 00:38:58,640 --> 00:39:01,530 Máme spoustu funkcí nyní. 517 00:39:01,530 --> 00:39:10,600 >> Jen pár připomínek, které v indexu souboru, budete chtít odkaz na alespoň vaše - 518 00:39:10,600 --> 00:39:15,550 ale budete chtít, aby uživatel odkaz na buy.php stránku. 519 00:39:15,550 --> 00:39:23,560 To se děje, aby uživatel - buy.php je regulátor, tak, že to bude buď 520 00:39:23,560 --> 00:39:29,170 poslat tě do -, že to bude poslat tě do formuláře, který vám umožní podívat věci. 521 00:39:29,170 --> 00:39:34,420 Máme historii. Máme odhlášení, dostat cenovou nabídku a pak prodávat. 522 00:39:34,420 --> 00:39:37,350 To jsou minimálně to, co chcete zobrazit. 523 00:39:37,350 --> 00:39:43,640 Z hlediska portfolia, je portfolio skutečně uvedeny v indexu stránce. 524 00:39:43,640 --> 00:39:52,050 Pokud půjdeme do indexu, zde vidíme, že činí portfolio.php 525 00:39:52,050 --> 00:40:00,050 a přechází v asociativním poli - v podstatě název rovná portfolio. 526 00:40:00,050 --> 00:40:02,610 Takže, to je regulátor. 527 00:40:02,610 --> 00:40:08,000 Pokud půjdeme do šablony portfolio.php, 528 00:40:08,000 --> 00:40:18,060 pak vše, co má, je - zobrazí v podstatě obraz, který říká, oh, toto místo je ve výstavbě. 529 00:40:18,060 --> 00:40:23,810 Později, jakmile předáte - budeš se procházet v podstatě specifickým informacím. 530 00:40:23,810 --> 00:40:27,400 Namísto pouhého titulu, budete pravděpodobně projde v dalších věcech. 531 00:40:27,400 --> 00:40:32,010 Jakmile budete mít tyto hodnoty, pak portfolio.php si poradit s těmito hodnotami 532 00:40:32,010 --> 00:40:34,490 a jejich tisk v nějakém druhu objednávky. 533 00:40:34,490 --> 00:40:41,660 >> Jakmile jste implementovali všechny ty, musíte také implementovat 1 další funkce. 534 00:40:41,660 --> 00:40:44,890 To může být buď umožňuje uživateli změnit své heslo, 535 00:40:44,890 --> 00:40:50,110 obnovit své heslo, jestli už zapomněl - tak pro resetování hesla, pak 536 00:40:50,110 --> 00:40:54,560 budete pravděpodobně také chtít upravit registraci tak, že jim umožňuje určit e-mail, 537 00:40:54,560 --> 00:40:57,910 takže v případě, že zapomenete své heslo, pak můžete dostat, že. 538 00:40:57,910 --> 00:41:02,870 Mohou pravděpodobně vstoupí v jejich uživatelské jméno, a pak-mailu bude odeslána na ně 539 00:41:02,870 --> 00:41:06,180 s odkazem, aby byl schopen obnovit své heslo. 540 00:41:06,180 --> 00:41:10,980 Můžete mít něco, co umožňuje uživatelům získat příjmy 541 00:41:10,980 --> 00:41:12,380 pokaždé, když koupit nebo prodat něco, 542 00:41:12,380 --> 00:41:19,910 a pak konečně, umožnit jim přidat peníze na své webové stránky. 543 00:41:19,910 --> 00:41:24,970 Stačí jít zpět do koncepce regulátorů a šablon trochu. 544 00:41:24,970 --> 00:41:31,170 Budete mít něco jako -, takže budete mít regulátor zde. 545 00:41:31,170 --> 00:41:35,080 Právě teď, jsme při pohledu na login.php příklad. 546 00:41:35,080 --> 00:41:38,220 Když máme ovladač, v podstatě to bude trvat 2 případů. 547 00:41:38,220 --> 00:41:42,090 Když máme řadiče, jsme v této skladbě, že jsme také trochu zabývá 548 00:41:42,090 --> 00:41:43,880 když máme formy stejně. 549 00:41:43,880 --> 00:41:47,500 Regulátor bude mít de facto samostatné akce - 550 00:41:47,500 --> 00:41:53,880 jeden, pokud forma již byla podána, a pak dva v případě, že uživatel přichází do té straně 551 00:41:53,880 --> 00:41:56,870 poprvé a ještě potřebuje vstupu, které tvoří. 552 00:41:56,870 --> 00:42:02,820 >> Chystám se skočit na této věci dřív, než jít do prvního případu ve tvaru dovnitř 553 00:42:02,820 --> 00:42:12,640 Zde říkáme, pokud je formulář byl předložen s metodou post - 554 00:42:12,640 --> 00:42:13,580 nebojte se o tom trochu. 555 00:42:13,580 --> 00:42:19,780 Nedělejte si starosti, že příliš mnoho, ale pochopit, že v podstatě tato funkce se zabývá 556 00:42:19,780 --> 00:42:22,430 zda forma byla předložena, nebo ne. 557 00:42:22,430 --> 00:42:25,640 Tato podmínka platí, pokud uživatel předloží formulář. 558 00:42:25,640 --> 00:42:45,940 Pokud ne, pak budeme chtít volat činí login_form.php, a pak předat v názvu. 559 00:42:45,940 --> 00:42:48,010 Tento titul je jen v podstatě bude v záhlaví. 560 00:42:48,010 --> 00:42:54,990 Co to dělá, je v podstatě říká, jo - no, pokud uživatel přejde login.php 561 00:42:54,990 --> 00:43:00,310 a nemá vlastně přihlášen, pak chci poslat je na stránku, která má tuto formu 562 00:43:00,310 --> 00:43:03,160 která jim umožňuje zadat uživatelské jméno a heslo. 563 00:43:03,160 --> 00:43:07,590 Pak jsem jít do login_form, a pak, že má skutečnou podobu. 564 00:43:07,590 --> 00:43:13,750 Poté, co uživatel odešle tento formulář, jdou ji předloží login.php 565 00:43:13,750 --> 00:43:15,840 s metodou post. 566 00:43:15,840 --> 00:43:21,560 Pak jsem vlastně chystá vstoupit tuto část svého if-else smyčky. 567 00:43:21,560 --> 00:43:29,560 Pak je tady to, jak zacházíme s hodnotami zadaných do formuláře. 568 00:43:29,560 --> 00:43:32,800 Je to tady, že jsme s nimi zacházet. 569 00:43:32,800 --> 00:43:40,860 >> Pak, jakmile se vypořádat s těmito hodnotami - pokud máte co do činění s - 570 00:43:40,860 --> 00:43:46,640 říci, máme co do činění s quote.php stránku, kde někdo může zadat akcie, které 571 00:43:46,640 --> 00:43:49,950 chtějí vypadat, a pak vidět, že displej - 572 00:43:49,950 --> 00:43:52,850 to je něco podobného tady. 573 00:43:52,850 --> 00:43:56,070 Zde máme přihlašovací formulář - you'd mít pravděpodobně poptávkový formulář - 574 00:43:56,070 --> 00:44:00,290 ale pak jednou uživatel skutečně tvrdila, že informace, 575 00:44:00,290 --> 00:44:04,810 pak budete chtít regulátor přejít do jiné šablony 576 00:44:04,810 --> 00:44:07,430 že jim ukáže, že aktuální informace. 577 00:44:07,430 --> 00:44:11,250 Takže přímo tady, pak budete pravděpodobně - 578 00:44:11,250 --> 00:44:18,830 kolem konce Vašeho stavu zde - v případě, že metoda se rovná příspěvek - 579 00:44:18,830 --> 00:44:22,520 pak budete pravděpodobně chtít vykreslit další stránku - přehlídka citace - 580 00:44:22,520 --> 00:44:28,040 která vás pošle na tuto stránku - show_quote.php-- 581 00:44:28,040 --> 00:44:34,120 a pak se v tomto souboru bude odkazovat těchto hodnot. 582 00:44:34,120 --> 00:44:36,480 Dává to smysl? 583 00:44:36,480 --> 00:44:40,390 >> Máme řadič, který v podstatě zabývá se 2 případů - 584 00:44:40,390 --> 00:44:42,710 zda jste zadali formuláře, nebo ne. 585 00:44:42,710 --> 00:44:43,950 Pokud jste nezadali formulář, 586 00:44:43,950 --> 00:44:47,300 pak vás přesměruje na tomto formuláři, který pak vás zpět na tuto stránku. 587 00:44:47,300 --> 00:44:54,020 Pak, až budete mít informace v regulátoru, bude tento orgán se s tím vypořádat 588 00:44:54,020 --> 00:44:59,750 informace podle potřeby - buď vzhlédl hodnoty pro populaci, 589 00:44:59,750 --> 00:45:04,150 a pak, jakmile je to vzhlédl tyto hodnoty a má je v pěkně formátované pole, 590 00:45:04,150 --> 00:45:08,180 pak mohou projít, že pole do šablony stránky 591 00:45:08,180 --> 00:45:10,330  , která se zabývá výstupu tuto informaci. 592 00:45:10,330 --> 00:45:14,680 >> Opět, protože je to web, to bude legrace. 593 00:45:14,680 --> 00:45:20,310 Jsme mimo C, takže jsme nejen na ASCII a že terminálu výstup, 594 00:45:20,310 --> 00:45:21,800 tak bavit s tím. 595 00:45:21,800 --> 00:45:24,920 Můžete si jej jako vizuální, jak chcete. 596 00:45:24,920 --> 00:45:31,860 Můžete povolit uživatelům vstupních milionů dolarů v době, 597 00:45:31,860 --> 00:45:34,730 nebo omezit je a bude skutečně znamenají a umožnit jim zadávat pouze 1 cent v době 598 00:45:34,730 --> 00:45:36,330 nebo něco takového. 599 00:45:36,330 --> 00:45:38,550 Rozhodně nezapomeňte se bavit s tím. 600 00:45:38,550 --> 00:45:47,030 >> PHP kód je trochu jednodušší v tom, že je to trochu jednodušší zmapovat svou pseudokódu 601 00:45:47,030 --> 00:45:50,070 do skutečného provedení. 602 00:45:50,070 --> 00:45:56,320 Takže, určitě bavit s tím, protože to je vlastně naše poslední kus CS50. 603 00:45:56,320 --> 00:46:01,150 S tím, to bylo Návod 7. 604 00:46:01,150 --> 00:46:04,640 Jakmile budete hotovi sledujeme návodu a skončil svůj PSet, 605 00:46:04,640 --> 00:46:09,590 pak tito byli také psets, a teď jsme na konečný produkt - 606 00:46:09,590 --> 00:46:12,330 poté, co jsme se přes kvízu 1. 607 00:46:12,330 --> 00:46:16,200 Pak doufejme, že můžete použít nástroje, které jste se naučili od psets - 608 00:46:16,200 --> 00:46:21,980 nejen syntax, ale abstraktní pojem o tom, jak se jisté - 609 00:46:21,980 --> 00:46:24,950 rád, já chci dělat to a pak vlastně provádí, že. 610 00:46:24,950 --> 00:46:28,740 Naučit se, jak se probíjejí syntaxi a distribuční kód. 611 00:46:28,740 --> 00:46:33,020 Čtení kódu jiných lidí, a pak se výkladu, že používání již existujících funkcí. 612 00:46:33,020 --> 00:46:37,360 >> Tak hodně štěstí s posledním PSet. 613 00:46:37,360 --> 00:46:39,930 Je to potěšení vést návody. 614 00:46:39,930 --> 00:46:40,940 Doufám, že jsem byl užitečné pro vás. 615 00:46:40,940 --> 00:46:46,560 Jednalo se o návody, a díky moc. 616 00:46:52,580 --> 00:46:56,200 [CS50.TV]