[MUSIQUE JEU] ROB BOWDEN: Salut. Je suis Rob, et j'espère que vous êtes prêt de mettre stock en cette solution. Tout d'abord, nous allons jeter un coup d'oeil à la caisse. Alors, n'oubliez pas que ici nous vérifions pour voir si un formulaire a été posté sur cette page. Donc la première chose que nous allons à faire est d'aller à l'autre. Et nous allons rendre le formulaire d'inscription. Ainsi, la forme de registre va pour poster register.php. Et qu'est-ce que ça va envoyer? Il va envoyer un nom d'utilisateur que l' utilisateur va remplir, un mot de passe, et une confirmation - le mot de passe tapé de nouveau. Alors maintenant, quand cette forme est affecté à register.php nous exécutons ce cas. En regardant cette si, nous sommes les premiers aller à valider l'entrée. Nous voulons faire en sorte que le nom d'utilisateur et mot de passe n'était pas vide et que la confirmation effectivement correspond au mot de passe. Une fois que nous avons vérifié que nous pouvons fait enregistrer l'utilisateur. Qu'est-ce que ça veut dire? Eh bien, nous voulons insérer le utilisateur dans notre base de données. Et c'est ainsi que nous allons le faire. Nous allons donc à insérer dans les utilisateurs tableau le nom d'utilisateur des champs, hachage, et de l'argent. La valeur par défaut de la trésorerie va être 10 000. Et nous allons passer comme nom d'utilisateur, username, par le super POST mondiale qui est soumis de la forme. Et nous allons crypter le mot de passe. Donc, si c'est réussi, alors les résultats seront non-faux. Si elle a échoué, alors nous vouloir m'excuser. Quelque chose s'est mal passé. Et ce que aurait pu mal tourner? Eh bien, il faut un nom d'utilisateur unique. Et donc, la requête aurait échoué si le nom d'utilisateur déjà existé dans le tableau. Donc, en supposant qu'il s'agissait d'un nom d'utilisateur unique, alors nous allons interroger à saisir le Identification de l'utilisateur. Rappelez-vous que l'ID est auto-incrémentation. Et si cela se produit à l'échec pour certains raison, alors nous voulons des excuses que nous ne pouvions pas saisir l'ID. Mais en supposant qu'il n'a pas manqué, alors on récupère l'ID de ce la requête retourné, stocker que dans notre séance - si nous voulons identifier cet utilisateur dans de stocker l'ID de la session superbe mondiale, et enfin rediriger vers notre portefeuille. Et c'est tout pour registre. Maintenant, nous allons passer à la citation. Alors citation va avoir un ensemble vraiment similaire jusqu'à. Nous voyons ici que c'est le code qui nous allons exécuter quand un formulaire est posté sur cette page. Mais d'abord, nous avons fait pour rendre cette forme. Donc, en prenant un coup d'oeil sous forme de citation, quels domaines sont-ils? Nous voyons que tous les devis a est un zone de texte avec le symbole de nom. Et lorsque le formulaire de devis est affiché à quote.PHP nous allons maintenant exécuter ce code. Et la seule variable dans notre super POST mondiale va être le symbole. Nous validons que de s'assurer que ils avaient enregistré le symbole. Et s'ils le faisaient pas, nous vous disons doit fournir un symbole. En supposant qu'ils ont fourni un symbole, nous regardons ce symbole. Maintenant, rappelez-vous ce regard pourrait avoir échoué depuis, eh bien, c'était peut-être pas un symbole valide pour commencer. Donc, si ce regard vers le haut rendement faux, nous tenons à nous excuser que l' symbole n'a pas été trouvé. Une fois que nous avons trouvé le symbole, maintenant nous peut rendre le modèle quote.PHP. Qu'est-ce que cela ressemble? Cela va juste pour imprimer qu'une part de ce que le nom stocks était vaut quel que soit le prix de l'action est. Maintenant, pourquoi utilisons-nous cette htmlspecialchars fonctionner? C'est parce que le nom et le symbole boursier pourrait en fait contenir spéciale caractères qui ne devrait pas être interprété comme HTML. Très bien, alors que c'est tout pour la citation. Maintenant, nous voulons regarder index.php et de portefeuille. Mais d'abord, nous avons besoin de construire la table de portefeuilles. Voilà comment nous allons le faire. Donc, nous allons jeter un oeil à la structure. Et nous voyons que les portefeuilles table va avoir un ID. Donc cela va être l'utilisateur de ID qui est l'insertion des actions. Nous avons un symbole, qui va être le symbole de la société que nous sommes insérer les actions pour. Et puis des actions est le nombre de part qui est inséré. Alors, n'oubliez pas que pour la spécification pset, nous précisons que ID et le symbole - nous vérifions les index, les ID et symbole est la clé primaire. Ainsi, un ID utilisateur et un symbole jumelage ne devrait apparaître une seule temps dans ce tableau. Maintenant, regardons le code. Alors maintenant index.php va attraper tous des informations de notre portefeuille et afficher à l'utilisateur. Alors d'abord, nous allons prendre l'argent que l'utilisateur dispose actuellement de l' tableau de trésorerie. Rappelez-vous, cette requête va toujours pour retourner un tableau de tableaux. Ainsi, même si nous ne choisi trésorerie à partir d'une seule ligne, nous devons encore prendre cet argent en indexant dans le indice zéro de lignes et de saisir le Indice de trésorerie. Alors maintenant, nous voulons sélectionner tous les informations de la table des portefeuilles c'est pertinent pour le moment utilisateur connecté. Nous devons bien sûr à valider qui effectivement réussi, qui nous doit toujours faire chaque fois que nous interrogeons. Une fois que nous avons toutes ces informations, la spécification pset nous informe que nous devrait faire afin de bien mémoriser toutes les informations dans ce positions tableau. Nous sommes donc en boucle sur l'ensemble de la informations de portefeuille, la recherche du actions associées à chaque ligne de la informations de portefeuille, puis stocker dans le tableau de position le nom, prix, actions et symbole tout associée à ce stock. Et enfin, nous allons rendre portfolio.PHP, dans la quantité de trésorerie que nous avons actuellement, la positions tableau que nous venons de construit, et le titre de cette la page qui sera portefeuille. Jetons un coup d'oeil à portfolio.PHP. Et nous voyons que le principal intéressant partie est de cette boucle. Nous sommes donc en boucle sur les positions matrice, créant ainsi une table, où la table - nous peupler chaque ligne avec le informations que nous avons mis à l'intérieur du positions tableau. Encore une fois, nous devons utiliser htmlspecialchars au cas où ce symbole ou le nom contenir des caractères HTML. Et ici nous sommes en multipliant le prix et la quantité d'actions que nous avons afin d'obtenir combien c'est a une valeur à l'utilisateur. Et c'est tout pour le portefeuille. Maintenant, nous allons jeter un oeil à la vente. Donc vente va revenir à la le format que nous avions en register.php. Nous voyons que la forme va être affiché sur cette page. Mais d'abord, quand nous chargeons de la page, nous allons le faire. Quel est donc ce fait? Eh bien, nous pouvions avoir la page de vente avoir une seule zone de texte que l'utilisateur entre dans ce symbole nous voulons vendre. Mais nous allons être un peu plus intelligent et nous allons avoir une baisse bas qui permet à l'utilisateur de sélectionner symboles réels qu'ils ont déjà. Nous allons donc obtenir le portefeuille de l'utilisateur. Nous allons sélectionner des portefeuilles tous les symboles que l'utilisateur dispose actuellement, le moment utilisateur connecté. Assurez-vous que que réussi. Et maintenant, nous allons faire une boucle sur l' retourné informations, juste saisissant chaque symbole, et en le stockant dans ce tableau des symboles. Et maintenant, nous allons rendre la forme de vente. Ainsi, la forme de vente va juste un menu déroulant, sélectionnez un. Et chaque option sous la forme de vente est va juste imprimer le symbole que nous avons pris de l' table portefeuilles. Ainsi, la forme de vente va présenter de nouveau à sell.PHP. En regardant sell.PHP, c'est le code qui va à exécuter lorsque nous soumettons à cette page. Nous voulons valider que l'utilisateur effectivement entré un symbole. Maintenant en supposant qu'ils ont fait - alors maintenant nous voulons déterminer le nombre de part l'utilisateur est en fait la vente et combien d'argent l'utilisateur doit obtenir pour la vente que de nombreuses actions. Donc, on récupère le nombre d'actions que l'utilisateur dispose pour ce symbole. Nous sommes à la recherche dans les portefeuilles pour la utilisateur donné et le symbole donné. Maintenant, assurez-vous que ce que fait retourné une rangée. Parce que si elle n'a pas, l'utilisateur ne ont fait que symbole de vendre. En supposant qu'ils ont ce symbole, nous voulons saisir le nombre de actions qu'ils ont. Et maintenant, nous voulons voir comment beaucoup chaque action vaut. Nous avons donc utilisé la fonction rechercher. Nous recherchons la valeur du symbole. En supposant que le look up réussi, maintenant nous allons effectivement mettre à jour tous l'information. Donc, nous voulons supprimer des portefeuilles les actions que nous nous vendons. Nous voulons mettre à jour l'utilisateur de somme d'argent. Et nous mettons à jour par actions fois le prix d'achat d'actions - c'est ainsi que beaucoup d'argent l'utilisateur vient de faire. Et maintenant, nous voulons mettre à jour notre histoire. Donc, nous n'avons pas pris un coup d'oeil à encore la table d'historique. Donc, nous allons revenir à cela. Maintenant, enfin, nous allons rediriger sauvegarder au portefeuille. Maintenant, nous allons jeter un oeil à acheter. Donc, achetez doit être assez similaire à vendre. Nous voyons que nous sommes encore en cours vérifier pour voir si nous sommes soumettre à cette page. En supposant que nous ne sommes pas, nous sommes va charger le formulaire d'achat. Alors qu'est-ce que la forme d'achat ressembler? Nous voyons ici c'est juste un régulier forment que cela va présenter de nouveau à buy.php. Et il va avoir un symbole qui l'utilisateur saisit, le nombre d' actions que l'utilisateur veut acheter de ce symbole, et c'est tout. Ainsi, lorsque nous soumettons de nouveau à buy.php, nous sommes maintenant va exécuter ce code. Nous voulons à nouveau pour valider que le utilisateur a entré quelque chose de valable. Donc, ici, nous faisons en sorte qu'ils effectivement entré un symbole. Ici, nous faisons en sorte qu'ils actions effectivement inscrites. Et ici, nous faisons en sorte qu'ils entré un nombre entier d'actions, de sorte ils n'essaient pas d'acheter des actions ABC. Maintenant, nous voulons voir le prix de la symbole, donc nous savons combien d'argent nous devrait soustraire de l'utilisateur. Maintenant, nous allons sélectionner combien d'argent l'utilisateur a fait et assurez-vous que qui a réussi. Ici, nous allons saisir l'argent. Et ici, nous nous assurons que l'utilisateur dispose de suffisamment d'espèces. Donc, si le nombre d'actions à l'utilisateur veut acheter fois le prix de chaque de ces actions est supérieure à la montant d'argent que nous avons, le utilisateur ne peut pas se le permettre. En supposant que l'utilisateur dispose d'assez d'argent, maintenant, nous voulons insérer dans le Le portefeuille de l'utilisateur. Eh bien, nous allons insérer dans le mode de portefeuille si cela arrive à être la première fois que l'utilisateur achète ce symbole particulier. Mais que faire si elles se produisent déjà d'avoir une action Apple? Eh bien, maintenant nous faisons usage de la sur dupliquer déclaration de mise à jour touche. Donc, c'est pourquoi nous l'avons précisé plus tôt que ID et le symbole doivent être un joint clé primaire, de sorte que si nous essayons de insérer un identifiant et un symbole qui sont déjà là, nous allons mettre à jour le actions pour inclure les nouvelles actions que l'utilisateur achète. Maintenant, nous voulons mettre à jour la quantité de espèces que l'utilisateur dispose, car ils Je viens de passer un peu d'argent sur ces actions. Et enfin, nous mettrons à jour le tableau de l'histoire à nouveau. Qui, encore une fois, nous verrons à une seconde. Et enfin nous redirigeons revenir à portfolio.PHP. Donc, nous allons jeter un oeil à le tableau de l'histoire. Maintenant rappelez-vous que la table de l'histoire est censé garder une trace de tous les achats et vend que tous les utilisateurs font, pas seulement la nombre actuel d'actions que la les utilisateurs ont, ce qui est portefeuille est pour. Nous allons donc garder la trace de l'utilisateur qui est d'acheter ou de vendre, si cette transaction était un achat ou une vente, le symbole qui est d'être achetés ou vendus, le nombre d'actions que nous achat ou la vente, la prix d'une action simple qui est d'être acheté ou vendu, et enfin, le temps que cette achat ou la vente se produit. Et c'est toute l'histoire informations que nous avons besoin à garder la trace. Ainsi, lorsque nous avons examiné la vente, nous avons vu que nous insérons dans la vente de l'histoire, comme si nous acheter ou vendre, l'estampille temporelle en cours, et l' utilisateur actuel, le symbole qui est d'être vendus, le nombre d'actions qui sont vendus, et le prix de le stock à ce moment. De même, en acheter, ça va regarder presque la même. La seule différence est la place de vente, nous achetons. Donc, dans la vente et l'achat, nous insérer dans la table des histoires tous les achète et vend qui se passe. Donc tout history.php doit faire est de saisir les informations à partir de l'histoire table, assurez-vous qu'il a réussi, et de rendre cette information. Donc, en regardant le modèle history.php, les informations intéressantes est ici. Nous boucle sur tous les transactions, si cette impression était un achat ou de vente, la mise en date heure que nous avons fait cette opération. Rappelez-vous, nous devons utiliser htmlspecialchars sur l' symbole, juste au cas où. Et enfin, le formatage du nombre de actions qui ont été achetés et le prix d'une seule action à ce moment. Et qui affiche tout de l'histoire informations dont nous avons besoin. Et c'est tout pour ce jeu de processeurs. Mon nom est Rob, et ce était CS50 Finances.