[MUSIC SPIEL] ROB BOWDEN: Hallo. Ich bin Rob, und ich hoffe, dass Sie bereit sind Aktien in dieser Lösung setzen. Lassen Sie uns zunächst einen Blick auf Register. Also denken Sie daran, dass wir hier die Überprüfung zu sehen, ob eine Form war auf dieser Seite veröffentlicht. Also erste, was wir gehen zu tun ist, gehen Sie zum anderen. Und wir werden machen das Anmeldeformular. Also das Anmeldeformular wird zu register.php posten. Und was wird es zu schicken? Es geht um einen Benutzernamen zu senden, dass die Benutzer wird sich füllen, ein Kennwort und eine Bestätigung - das Passwort erneut eingegeben werden. So, jetzt, wenn das Formular an geschrieben register.php wir diese ausführen, wenn. Mit Blick auf diese, wenn wir zuerst gehen, um die Eingabe zu bestätigen. Wir wollen sicherstellen, dass der Benutzername und Passwort nicht leer waren, und dass die Bestätigung tatsächlich mit dem Passwort. Sobald wir überprüft haben, dass wir tatsächlich registrieren Sie den Benutzer. Was bedeutet das? Nun, einfügen wollen wir die Benutzer in unserer Datenbank. Und das ist, wie wir das tun. So werden wir in die Benutzer einfügen Tabelle die Felder Benutzername, Hash und Bargeld. Der Standardwert von Bargeld wird zu 10.000 sein. Und wir werden als Benutzernamen übergeben, Benutzername, den POST Super global das ist von der Form vorgelegt. Und wir werden zu verschlüsseln das Passwort. Also, wenn das gelungen, dann ergibt wird nicht falsch sein. Wenn er versagt, dann werden wir möchte mich entschuldigen. Etwas ist schief gelaufen. Und was könnte falsch gelaufen sein? Nun, es muss sein eine einzigartige Benutzernamen ein. Und so könnte die Abfrage gescheitert wenn schon der Benutzername in der Tabelle existiert. Also vorausgesetzt, es war eine einmalige Benutzername, dann werden wir abfragen, um zu packen das Identifikation des Benutzers. Beachten Sie, dass die ID Autozählen. Und so, wenn das passiert, für einige nicht Grund, sich zu entschuldigen, dann wollen wir dass wir nicht greifen die ID. Aber unter der Annahme, dass es nicht scheitern, dann wir greifen die ID von dem, was die Abfrage zurückgegeben, zu speichern, dass in unserer Sitzung - so um dem Benutzer in durch einloggen wollen wir Speichern der ID der Sitzung Super global, und schließlich Umleitung zu unserem Portfolio. Und das ist es für die Register. Jetzt werden wir auf dem Weg zu zitieren. So Zitat ist zu haben, ein wirklich ähnliche Einrichtung. Wir sehen hier, dass es sich um den Code, der wir werden ausgeführt, wenn ein Formular auf dieser Seite veröffentlicht. Aber zuerst haben wir eigentlich , um diese Form zu bringen. So nehmen Sie einen Blick auf Angebotsformular, gibt, welche Felder? Wir sehen, dass alle Angebot hat, ist eine einzige Textfeld mit dem Namen Symbol. Und so, wenn Angebotsformular gebucht zu quote.PHP wir jetzt gehen, um diesen Code auszuführen. Und die einzige Variable in unserem Super-POST weltweit wird sich Symbol sein. Wir bestätigen, dass Sie sicherstellen, dass sie tatsächlich geschrieben das Symbol. Und wenn sie es nicht, sagen wir Ihnen muss eine Symbol. Unter der Annahme, sie lieferten ein Symbol, wir schauen, dass das Symbol. Jetzt nicht vergessen, dass Nachschlag haben könnte da gescheitert, na ja, vielleicht war es nicht ein gültiges Symbol für den Anfang. Also, wenn dieser nachschlagen return false, wir uns entschuldigen möchten, dass die Symbol wurde nicht gefunden. Sobald wir das Symbol gefunden, jetzt sind wir können die quote.PHP Vorlage zu machen. Was macht das aus? Das wird nur gehen, um zu drucken, dass ein Teil von was auch immer der Name war Bestände ist es wert, was der Aktienkurs. Nun, warum nutzen wir diese htmlspecialchars funktionieren? Das ist, weil der Aktien Namen und das Symbol vielleicht tatsächlich enthalten spezielle Zeichen, die nicht sollten als HTML interpretiert werden. Alles klar, so dass es für Angebot. Jetzt wollen wir schauen auf index.php und Portfolio. Aber zuerst müssen wir eigentlich bauen Portfolios der Tabelle. Hier ist, wie wir das zu tun. Werfen wir also einen Blick auf die Struktur. Und wir sehen, dass die Portfolios Tabelle wird, um eine ID zu haben. Also, das wird die Benutzer-sein ID, hat Einsetzen der Aktien. Wir haben ein Symbol, die gehen, um sein das Symbol der Firma, die wir sind Einsetzen der Aktien. Und dann Anteile ist die Anzahl der Aktien, die eingefügt wird. Also denken Sie daran, dass nach der pset spec, Wir geben diese ID und Symbol - wir auschecken Indizes, ID und Symbol ist der Primärschlüssel. So eine Benutzer-ID und Symbol-Paarung sollte nur eine einzige erscheinen Zeit in dieser Tabelle. Jetzt schauen wir uns den Code. So, jetzt index.php wird alle packen Informationen zu unserem Portfolio und Anzeigen an den Benutzer. Also zuerst, wir gehen, um das Geld zu greifen dass der Benutzer die momentan von Cash-Tisch. Denken Sie daran, dass die Abfrage wird immer , um ein Array von Arrays zurück. Also auch wenn wir nur ausgewählte Cash aus einer einzigen Zeile, noch müssen wir greifen, dass Geld durch Indizierung in der nullten Index der Zeilen und packte die Cash Index. So, jetzt wollen wir alle die wählen Informationen aus der Tabelle Portfolios das ist relevant für die derzeit angemeldeten Benutzers. Wir brauchen natürlich, dass validieren dass tatsächlich gelungen, die wir immer tun sollten, wenn wir abfragen. Sobald wir alle diese Informationen, die pset spec informiert uns, dass wir sollte dies, um schön zu speichern tun alle Informationen, die in dieser Positionen Array. Daher freuen wir uns über alle die Looping Portfolio-Informationen, suchen die Lager mit jeder Zeile in die zugehörige Portfolio-Informationen, und dann Speichern in der Lage Array den Namen, die Preis, Aktien-und Symbol alle mit dieser Aktie verbunden. Und schließlich werden wir machen portfolio.PHP, vorbei an der Menge Geld wir derzeit haben, die Positionen Array, dass wir nur gebaut und der Titel dieses Seite, die Portfolio sein wird. Werfen wir einen Blick auf portfolio.PHP. Und wir sehen, dass die Haupt interessant Teil ist diese Schleife. Daher freuen wir uns über die Positionen Looping Array, die Schaffung eines Tisch, wo die Tabelle - wir bevöl jede Zeile mit der Informationen, die wir innerhalb der Put- Positionen Array. Auch hier müssen wir htmlspecialchars im Falle dieses Symbol oder den Namen HTML-Zeichen enthalten. Und hier sind wir die Multiplikation der Preis-und die Menge der Aktien, die wir haben , um zu bekommen, wie viel das ist, Zeit wert für den Benutzer. Und das ist es für das Portfolio. Jetzt werden wir einen Blick auf Verkauf zu nehmen. So verkaufen wird, zurück zu gehen, die Format, die in register.php hatte. Wir sehen, dass eine Form wird auf dieser Seite veröffentlicht. Aber zuerst, wenn wir die Seite zu laden, wir werden dies tun. Also, was ist diese da? Nun, wir könnten nur noch die Seite verkaufen einen einzigen Textfeld, die der Benutzer tritt dieses Symbol, dass wir verkaufen möchten. Aber wir werden ein bisschen klüger sein und wir werden einen Rückgang haben gelegt, dass kann der Benutzer wählen tatsächlichen Symbole, die sie bereits haben. So bekommen wir das Portfolio des Benutzers. Wir werden aus Portfolios wählen sämtliche Symbole, dass der Benutzer derzeit, die aktuell angemeldeten Benutzers. Stellen Sie sicher, dass das gelungen. Und jetzt sind wir eine Schleife über das Gehen Informationen zurückgegeben, nur Grabbing jedes Symbol, und Speichern Symbole in diesem Array. Und jetzt sind wir zu gehen machen das Verkaufsformular. So ist die Verkaufsform wird sich nur ein Dropdown-Menü, eine auszuwählen. Und jede Option in der Verkaufsform werde nur drucken Sie das Symbol dass wir von der griff Portfolios Tisch. So ist die Verkaufsform wird zu zurück zu unterbreiten sell.PHP. Mit Blick auf sell.PHP, ist dies der Code das wird ausgeführt, wenn wir vorlegen auf diese Seite. Wir wollen überprüfen, ob der Benutzer tatsächlich trat ein Symbol. Jetzt davon aus, dass sie es taten - so jetzt zu bestimmen, wollen wir, wie viele Aktien der Benutzer tatsächlich verkauft und wie viel Geld bekommen sollte der Benutzer für den Verkauf, dass viele Aktien. So greifen wir die Anzahl der Aktien, die die der Benutzer für dieses Symbol. Wir suchen bis in die Portfolios für gegebenen Benutzer und der gegebenen Symbol. Nun stellen Sie sicher, dass die tatsächlich eine Zeile zurückgegeben. Denn wenn es nicht klappt, nicht der der Benutzer haben tatsächlich dieses Symbol zu verkaufen. Unter der Annahme, sie haben dieses Symbol, wir, die Anzahl der greifen wollen Aktien, die sie haben. Und jetzt wollen wir schauen, wie viel jeder Aktie wert ist. So haben wir die Funktion nachschlagen. Wir suchen Sie den Wert des Symbols. Unter der Annahme, dass der Blick nach oben gelungen, jetzt wir werden eigentlich alle aktualisieren die Informationen. Also wir von Portfolios löschen möchten die Aktien, die wir verkaufen. Wir wollen aktualisieren Sie die Benutzer- Menge an Bargeld. Und wir aktualisieren sie von Aktien mal den Aktienkurs - so das ist, wie viel Geld der Benutzer gerade gemacht. Und jetzt wollen wir unsere Geschichte zu aktualisieren. So haben wir einen Blick nicht getroffen in der History-Tabelle vor. Also werden wir zurückkommen. Nun endlich werden wir umleiten zurück zum Portfolio. Werfen wir nun einen Blick auf Kauf. Also, kaufen sollte hübsch sein ähnlich zu verkaufen. Wir sehen, dass wir wieder in Gang zu überprüfen, um zu sehen, ob wir Vorlage zu dieser Seite. Unter der Annahme, dass wir nicht, wir sind gehen, um die Kauf-Formular zu laden. Also, was bedeutet das Buy Form aussehen? Wir sehen hier, es ist nur eine ganz normale bilden, das ist zu gehen zurück zu unterbreiten buy.PHP. Und es geht um ein Symbol haben, dass der Benutzer die Eingabe der Anzahl der Aktien, die der Benutzer kaufen will dieses Symbol, und das ist es. Also, wenn wir zurück zu unterbreiten buy.PHP, wir sind jetzt gehen, um den Code auszuführen. Wir wollen wieder zu bestätigen, dass die Benutzer eingegebenen etwas gültig. So, hier sind wir dafür, dass sie tatsächlich trat ein Symbol. Hier werden wir dafür sorgen, dass sie tatsächlich eingetragenen Aktien. Und hier sind wir sicher, dass sie trat eine ganze Zahl von Aktien, so sie versuchen nicht, ABC-Aktien zu kaufen. Jetzt wollen wir sehen den Preis für die Symbol, damit wir wissen, wie viel Geld wir sollte von dem Benutzer zu subtrahieren. Jetzt werden wir wählen, wie viel Geld der Nutzer tatsächlich hat und stellen Sie sicher, dass gelungen. Hier greifen wir das Bargeld. Und jetzt hier, wir sind dafür, dass dass der Benutzer genug Geld. Also, wenn die Anzahl der Aktien der Benutzer will mal kaufen den Preis von jeweils dieser Aktien ist größer als der Menge an Bargeld, die wir haben, dann ist die Benutzer kann nicht leisten. Unter der Annahme, dass der Benutzer genug Geld hat, nun in die einfügen möchten wir Portfolio Benutzers. Nun, wir werden in den Benutzers einfügen Portfolio, wenn dies geschieht, zu sein die Erstmals wird der Benutzer kaufen dass bestimmte Symbol. Aber was, wenn sie bereits geschehen einige Apple-Aktien haben? Nun, jetzt sind wir die Nutzung der auf duplicate key update-Anweisung. Also das ist, warum wir früher festgelegt, dass ID und Symbol sollte eine gemeinsame sein Primärschlüssel, so dass, wenn wir versuchen, legen Sie eine ID und ein Symbol, das sind schon da, wir aktualisieren werde der Aktien, die neuen Aktien, die zählen der Benutzer kauft. Nun, die Menge an aktualisieren möchten wir Geld, das der Benutzer besitzt, da sie nur etwas Geld auf Aktien ausgegeben. Und schließlich, wir aktualisieren die Geschichte Tisch. Welche, wieder, wir freuen bei in einer zweiten. Und schließlich werden wir umleiten zurück zum portfolio.PHP. Werfen wir also einen Blick auf die Geschichte Tisch. Jetzt erinnern, dass die Geschichte Tabelle soll den Überblick über alle Käufe zu halten und verkauft, dass alle Benutzer zu machen, nicht nur die aktuelle Anzahl der Aktien, dass die Benutzer haben, das ist, was Portfolio ist. Also sind wir die Verfolgung der Nutzer, dass Kauf oder Verkauf, ob diese besondere Geschäft um ein Kauf oder ein Verkauf, das Symbol, das Wesen des gekauft oder verkauft, die Anzahl der Aktien dass wir den Kauf oder Verkauf der Preis einer einzelnen Aktie, die Befinden gekauft oder verkauft, und schließlich die Zeit dass dieser Kauf oder Verkauf auftritt. Und das ist alles von der Geschichte Informationen, die wir brauchen zu verfolgen. Also, wenn wir uns in Verkauf, sahen wir, dass wurden wir in die Geschichte verkaufen Einfügen, als ob wir kaufen oder verkaufen, die aktuelle Uhrzeit und das aktuellen Benutzer, das Symbol, das Wesen des verkauft, die Anzahl der Aktien, die sind verkauft werden, und der Preis der die Aktie zu diesem Zeitpunkt. Auch in Kauf, werde es sehen fast gleich. Der einzige Unterschied ist, anstatt der Verkauf, wir kaufen. Also verkaufen und kaufen, sind wir in Einfügen die Geschichten Tabelle alle der kauft und verkauft, die passiert sind. Also alles history.php tun muss, ist grab die Informationen aus der Geschichte Tisch, sicherzustellen, dass es gelang, und machen diese Informationen. So suchen Sie in der history.php Vorlage die interessante Informationen ist hier richtig. Wir sind über alle der Schleife Transaktionen, ob diese Druck war ein zu kaufen oder zu verkaufen, Formatierung Datum Zeit dass wir diese Transaktion. Erinnern wir müssen htmlspecialchars am Symbol, nur für den Fall. Und schließlich die Anzahl der Formatierung Aktien, die gekauft wurden und der Preis einer Aktie zu diesem Zeitpunkt. Und das zeigt die ganze Geschichte Informationen, die wir brauchen. Und das ist es für diese pset. Mein Name ist Rob, und dies war CS50 Finance.