扬声器1:所有,欢迎回来。 这是CS50。 这是9周的开始。 这是开始的其余部分 你的时间,我们在CS50 现在,终于到Web转型 方面的课程,在那里你会 发现很多的基本面, 我们已经出口数周 还回来参观, 或困扰我们。 但现在,你会发现,它是一个 为了要容易得多, 完成某些任务和 解决某些问题 - 以至于即使你认为 在他们的乐趣若干问题集 自己的路,我认为你会发现 P设定7,第8,然后, 最终,最终的项目将 更可喜的,因为你会 发现我们开始想当然 现在喜欢的东西的内存管理, 指针,这是怎么回事 引擎盖下。 再次,专题,所有整个 学期一直是这种分层 和层次感。 而现在我们排序 在这里,站在 过去几周的肩膀。 现在,回想最后一次 谈到如何在互联网上工作。 这也许是一个 过于简单,但要记住, 在世界上的每一台电脑都有一个IP 解决,虽然这是一个有点 仍然过于简单化。 这些地址被用来唯一 识别机,这样 当您发送信息,或包, 可以这么说,他们可以有一个原点 地址和目的地址。 而那些可以使用相同的IP地址 既为好,也为邪恶, 跟踪你的,例如。 事实上,每一个你用笔记本电脑 现在打开,或在你的手机 口袋里,都有一个IP地址 哈佛的网络。 它不是那么困难 关联,谁和你 这些天。 但更多的,也许 在未来。 现在,我想我会带回一些 [回忆?提升?]给你 你一个展示的另一个剪辑 可能会发现熟悉。 如果我们可以把灯光调暗 短短的几秒钟。 显示数字追凶。 扬声器2:这是一个的32位IPP4地址。 扬声器3:IPP,在互联网? 扬声器2:专用网络。 阿弥陀佛的私人网络。 她是如此惊人。 扬声器3:来吧,查理。 扬声器2:这是。 镜子的IP地址。 她让我们看什么 她在做实时的。 扬声器1:OK,这样的几件事情 不对的图片。 所以,这个人是可以接受的, 这实际上是 不是一个有效的IP地址。 一个有效的IP地址必须是数字 形式w.x.y.z的,其中每个 这些信件是0到255。 但是,这很好,因为就像 电影里他们假的电话号码, 他们伪造的IP地址。 其实你不打真正的服务器。 但是,你要知道,这是一个浏览器。 浏览器不启动输出 像这样的计算机代码。 如果我们看得更深,注意 ,他们所看到的语言 屏幕上是一种语言叫 目的C,这是语言 iPhone应用程序被写入, 特别是那些涉及 蜡笔,你可以看到从 这里的源代码。 OK,我认为这非常可笑。 因此,这个代码片段绝对 不管这无关 特别是情节。 所以这个笑话是一种对乡亲 服用此授予。 但是这还不是全部,很难得到 这些技术细节的权利。 我会鼓励你。 而实际上,50很可能糟蹋 很多的电视节目和电影,或者你 因为你会发现,它只是 不可能的,他们是怎么 在屏幕上做。 但事实上,这是代码 可能会看到它在iPhone应用程序 或Mac OS的应用程序。 它什么都没有 与安全。 因此,保持眼睛出更多的 如此有趣之类的东西。 但是今天,我们开始潜水真的 深入到语言一整套。 事实上,总体 这个部分的外卖 当然不是学习如何编程 在PHP中,没有学习SQL本身,而不是 学习JavaScript本身,而是 教自己如何教 自己新的语言,因为,事实上, 我们现在开始采取 训练车轮关闭,因此后 当然年底,你不要指望一个20 页的规范来告诉你如何 实现一些程序。 你有足够的成分在你的 头脑,你的工具和足够的工具 套件,开始建设 感兴趣的问题的解决方案 一些学生组,对于一些 研究项目,或者什么 你的兴趣。 为此,记得,这是 图片中我们把它最后一次。 这是两台电脑,客户端和 断绝,彼此交谈。 的协议,语言,所以 说话,那这两台计算机发生 发言被称为HTTP。 而这仅仅是所使用的协议 计算机传输信息 万维网。 网页,当然,这只是一个服务 顶部的运行 所谓的互联网。 什么提供其他服务 顶在互联网上这些天? 其他一些协议或 - 那是什么? 观众:FTP。 扬声器1:FTP。 因此,文件传输协议是另一回事。 大多数人可能都没有使用过它。 但你们中的大多数可能已经使用 之类的东西Gchat,或即时 消息更一般地, 当然电子邮件。 而这些,也都是上运行的服务 在互联网的顶部,因为在 一天结束的时候,互联网本身 真的只是得到数据从A点到 B点,它使用了大量的 颗粒本身,其中一个或两个 的他们最一般称为TCP / IP, 这就是说,一台计算机上 互联网实际上可以做 不同的东西,电子邮件, 和网页,等等。 谷歌做了很多这方面。 那么,如何是那些独特的服务 确定,我们说,在电脑上 实际上可能会做 多重的东西? 端口号。 而这些都只是人类任意 约定如80网络,443是 加密网络,25是电子邮件。 有一个串他人。 这些数字只是包含在 这些数据包的信息,这些 虚拟信封,实际上 包含了一个请求或响应。 所以,当你回来的响应 网页,通常情况下,你不会看到任何 无论在任何数字 响应的状态码。 其实你不看 内部运作的 回来的数据包。 但200确实意味着确定。 这意味着一切都很好。 你可能已经看到了一堆这些。 这可能是最常见的 你见过在网络上? 404。 它只是意味着找不到文件。 这意味着有人搞砸了。 你输错网址,或者是有人 给你一个别人做的 无效的URL,或者删除了 文件和URL仍然是 被人们所使用。 因此,任何数量的原因可以解释 为什么文件没有找到。 你会看到,在未来几周内, 这些错误代码,你会 趁他们中的一些。 最糟糕的是500。 如果你得到一个500错误代码,您已经 写的,认为那是那种 模拟赛格中的故障 Web编程的世界。 不,这是相当可怕的。 但它只是意味着,在某处, 你搞砸了。 所以那些期待。 但是,让我们来看看,如果我们能 看到这些上下文中。 让我去这里的浏览器 并做到以下几点。 因此,这是Chrome浏览器,这恰好 安装在产品中。 但几乎每一个浏览器,这些天有 一些相同的功能。 我要去Chrome的菜单, 去工具,而且我要去 开发工具。 你会看到,这个小面板 打开窗口的底部。 另一种快捷方式,说实话,我 自己平时使用右键单击 或控制点击在网络上的任何地方 页面,只是去检查元素。 而且,不仅将打开 这有你。 它也将打开,​​具体而言, 元素部分 左手侧。 所以,我们当然看到谷歌。 今天他们改变他们的标志。 但是,如果我在这里向下滚动,请注意 根据元素,你看 什么叫做HTML超文本标记 语言,这是语言 ,这和所有的网页, 真的,编写的。 但实际上它是格式化 我们这么多可读性 比正常的。 事实上,如果我缩小,我反而 只需右键单击或控制点击 在页面上点击,然后去查看 页面源代码,这是字面意思是什么 谷歌向下发送到我的浏览器。 于是某人或某些人写的 Google.com使用这个源代码。 其中大部分是没有的HTML。 它实际上是一个语言,称为 JavaScript中,这 我们还会回来上周三。 但是,Chrome和每一个浏览器 可以为我们做什么,是那种见 过去所有的分心 疯狂的语法,然后重新插入空白 对我们来说,甚至语法高亮, 或上色为我们的事情。 所以你会发现,这些所谓的 内置了浏览器的开发者工具 这样会让你的生活,所以更容易 因为你可以探索,通过此菜单 接口,正是底层 源代码是为 在互联网上的任何页面。 事实上,这是一个最 有效的方法来学习如何做 新的东西,至少如果页面 也不是那么复杂压倒, 开始戳它周围的HTML,看 在其所谓的CSS,我们还会回来 一个位为好,得到 的那个程序员如何理解 某些特定的实施 功能的页面。 但技术上更有趣的权利 现在还会是这样。 如果我去“网络”选项卡, 现在,让我们清除此。 我要点击小 在这里交叉符号,然后 转到另一个网站。 我只是要输入 在Facebook.com。 没有HTTPS,HTTP,没有任何WWW。 让我们真正看到这里发生了什么。 回车键。 现在可以看到一大堆东西 出现在这个底部面板, 除了网页 出现在顶部。 我要滚动备份到 网络“选项卡在这里,我要 点击第一行。 此工具会向我们揭示了什么 是每一个HTTP请求 只是迅速回去 我的浏览器之间来回 Facebook的服务器。 所以每一个这些行 代表这样的一个请求或 响应,一个或多个 那些虚拟的信封。 或者更随意,这就像一个人 就像一个人,一个客户在一个 餐厅,要求的东西 一遍,一遍,又一遍。 服务员不断带来 回一次。 所以,现在,如果我在变焦时,请注意 这将是诸如此类的事情, 欢迎你,并鼓励 发挥你自己,因为我们 不会去通过一切 很详细。 但是请注意,有一个 这里的几个子选项卡 - 接头,预览,响应, 饼干,和时机。 我只是要看看报头 现在,因为这些小 成分在里面的信封 帮助数据和从地方。 因此,首先让我点击,查看 来源请求头旁边。 有要求我的浏览器, 在这种情况下,浏览器,发送内侧 该虚拟信封。 你还记得上周我 手动键入它,而 假装是一个浏览器。 然后,它提醒服务器,它是 寻找称为主机 Facebook.com。 再有是一个有点神秘的 信息,我们将挥手 现在我们手中。 但是,如果我现在开始向下滚动 这个窗口中,让我得到的 响应头。 这是在虚拟 信封回来 Facebook.com。 如果我只是单击“查看源文件” 看它的原始文本, 注意到一些事情。 一,Facebook还讲同 协议,其1.1版本。 所以这是很好的。 但是,状态代码301, 永久地移动。 嗯,赫克Facebook的去了? 这是什么试图传达给我们的吗? 那么,请注意这里还有另一个 头叫位置。 那么,为什么是Facebook告诉我说,他们 被永久移动到该网址 旁边的位置吗? 我忘了www。 所以这是我的选择。 事实上,我们大多数人很少,大概, 键入www.whatever.com这些天。 但事实证明,一个系统管理员, 像Facebook, 以这样一种方式配置自己的服务器 无论是Facebook.com的作品,或 www.Facebook.com的作品,或者,真的, 在他们面前任何这样的前缀 域名。 所以,他们做了我们。 他们重定向,大概 对于一些技术, 一些市场营销的原因。 他们只是想规范化 上www.Facebook.com。 但是,这不是相当。 如果我在这里向下滚动,让 看个究竟。 这是告诉我,我们 永久移至 http://www.Facebook.com。 因此,让我们来看看第二个请求 我的浏览器发送。 不幸的是,它看起来像Facebook 再次提出,因为第二个 请求的网址,而不是通过选择, 说,也感动 久治不愈。 并让我在这里向下滚动 响应头。 Facebook的现在已经不存在了吗? 所以HTTPS。 所以,现在Facebook已经开始, 特别是在光电流 在最近几个月的事件,尤其是 在过去几年也 迫使他们的所有用户,在一个良好的 的方式,以使用HTTPS,这是更 安全,虽然并非完全安全。 所以现在我的网页,我的浏览器 将要求这第三个URL。 而现在,终于,我们得到 否则看不见200确定。 那么,什么在世界上所有 这些行这里。 我简直输入一件事,我 浏览器似乎已经要求像 20一些奇怪的事情。 那是什么? 观众:脚本? 扬声器1:脚本,所以其他文件 书面语言叫 JavaScript中,这一次,我们将 在周三去看了一下。 还有什么呢? 样式表。 所以东西的语言叫 CSS,我们会看到在一个位。 GIF动画和JPEG,GIF和PNG格式,图片, 和电影文件 - 无论一个网页 已经是最有可能在 一个文件的形式。 还等什么,我们看到在左边 右手边有所有文件 铬下载, 递归的,如果你愿意,为了 构成的页面的全部。 所以,我们刚才也看到了与谷歌, 如果我点击的元素 标签,这肯定的是,HTML, 组成该页面的语言。 但是,还有其他的事情串。 还有一个标志。 有那些蓝十岁上下的 那边的图标。 还有其他元素仍然 页面本身可能会对 单独的文件。 那么,什么是浏览器很好 它着眼于我们要去的语言 开始写,或者你已经 在P组7,数字开始写作 这些文件在哪里住了, 去抓住他们。 我不能强调不够,甚至 虽然这可能看起来有点 神秘的或压倒乍一看, 学习如何编程 为Web应用程序,它的 无价的,以了解这些 小工具的工作。 这些都是有点像GDB工具一样, 但简单得多,最终使用 - 真的让你的眼睛变成了什么 我们一直理所当然 相当一段时间了。 所以我们现在做什么用 这一信息? 好吧,让我们实际来看看 基本概念的HTML。 我们会推迟,因为我们已经有了, 部分本周的问题 设置7说明书中,一些比较 这些语言的详情。 但是,让我们看到,如果我们不能画一个 你应该明白什么图片 整体这里。 所以HTML超文本标记语言, 是不是一种编程语言。 那是什么意思呢? 因此,HTML看起来是这样的。 一些你已经知道这一点。 你们中的一些人一直在做 这一段时间。 但是,让我们看看我们是否可以不填 在一些空白。 所以在这里发现一对夫妇的事情。 一,它只是文字。 因此,它的源代码就像 C,或其他语言。 请注意,似乎有 这里有一种模式。 有压痕,但在技术上 压痕是人性 约定。 Â浏览器不关心,如果有新的 行和制表符像我们看到有。 但注意到,有 这里的对称性。 有什么我会打电话的顶部, 此文件中,打开的标签,或者开始 标签,称为HTML。 然后,向下跌破,完美内衬 ,就像我们做的大括号, 我们看到开放式支架,前进 斜线,HTML,靠近支架。 所以这是对应关闭 标签或结束标签,那件事。 总之,一切都里面的 所谓的开放标记和结束标记 谱写我们会打电话给一个元素。 我们将看到,在短短的时刻,它的 真的很喜欢在树上的一个节点。 因为,如果你认为现在 缩进,这里的暗示, 样的,喜欢,祖父母 节点称为HTML。 多少个孩子,你可能会说,根据 这张照片上的HTML元素? 所以,可能有两个。 一个是头元素,显然。 一个是人体元素。 为什么两个孩子呢? 好吧,我只是一种推断,如果 我有一个开放的头标记,然后 头部标记,这是一个元素。 然后,如果有一个开放式的身体 标签和近身标签,就像 另一个元素。 因此,在这个意义上说,如果我种旋转 在其一侧的图片,这是 就像有一个HTML标记,然后一个 头标记,然后身体标记, 然后一些文本,你好世界,晃来晃去 关闭body标签本身。 因此,我们可以得出一个图片 可能会这个样子。 的形状是任意的。 但是请注意,我用的排序 椭圆形的顶部来表示 文件本身。 原来,有可能是其他的东西 我不是一个网页,里面的 这里引出。 所以我们要去甚至挂HTML 所谓的文件节点的节点关闭。 然后我们有头部和 身体和标题,通知, 进一步嵌套。 我没有刻意把额外的行 标题标签里面休息。 它只是感觉就像是获得 显得有点冗长。 所以,我离开了它在一行, 开题,你好,靠近世界冠军。 然后我们有一些文字 这里晃来晃去。 因此,这幅画会回来 当我们潜入成JavaScript。 和理解,当你 写HTML这个样子, 浏览器是在做什么? 好吧,我们不必担心 它是如何这样做,或什么 算法,但在一天结束时, 当浏览器收到类似HTML 认为,从Facebook或谷歌,它分析 它,可以这么说,它会读取它, 像用fread的东西,顶 底部,左到右,因为它 意识到,哦,开放标签,然后关闭 标签,开始对malloc,可以这么说, 的树中的节点。 当它遇到,因为我们已经暗示 这里与压痕, 子节点,它mallocs一个节点 并附着到树。 因此,树的结构,二叉树 三元树,和更大的树, 我们在一两个星期前,扫了一眼通知 ,同样的原则是 回来给我们。 凡实施,铬无论 团队这样做,大概有 实现某种类型的树结构 引擎盖下。 而这本身就是很可能在 语言如C或C + +或较低 层次的语言,我们会 现在使用的网页之上。 所以,现在,也许,这将 更有意义。 一些家伙,谁可能实际纹身 最终后悔了,有种。 OK,所有的权利,所以很多的网络幽默。 这不是真的 在今天这么好。 因此,我们将继续前进。 好的。 因此,让我们来看看现在 几个例子。 最简单的可能 事情可能是这样的。 我要去进取,不断开拓中 gedit的一个文件名为hello.php的。 在这里,我要迅速 只是这样做的printf,报价 引文结束的“hello world”。 因此,通知,我会尽我的反斜线Ñ, 我没有打扰申报主体。 事实证明,在PHP中,和很多 语言,你不需要主 功能本身。 您可以开始写 你的程序。 现在,当我保存这个文件,通知我 要做到以下几点。 我不会使用,我不 要使用铛因为PHP,不像 C,是不是编译语言。 这就是被称为一种解释 语言,这意味着你运行它 通过另一个程序作为输入 所谓的解释。 并且该程序读取,顶 底部,从左向右,做 无论你告诉它做的。 因此,在这种情况下,在这里我有 行的printf说。 所以,当我运行这个源代码, hello.php的,虽然一个程序, 情况下,方便,被称为PHP, 该程序PHP要读 这个文件,从上到下,从左到右, 它会做什么,我 告诉它做 - 执行代码,如果 它不承认的东西,只是 随地吐痰出来。 所以,我要继续前进, 运行PHP的hello.php。 回车键。 这并不完全是我的本意。 那么,这是为什么? 嗯,PHP是一门语言,这实际上是 设计是相当 交织在一起的网络。 当这种语言制作网页 PHP的,因为我们很快就会看到,我们将 想要做类似打印 出像这样的线。 所以我要做到这一点。 打开支架,问号,PHP, 现在我只是要缩进只是为了保持 美好的东西。 现在我要做的一个问题 标记密切支架。 所以这是一个有点不对称。 你不这样做。 而且你不必做一个斜线,所以 PHP是一个有点不同。 但现在,如果我重新运行这个程序, PHP的hello.php,现在我 实际上得到的Hello World。 我们将看到为什么这是有价值的。 一,它让我来指定, 超明确,这是 代码执行。 而这的确是这些 特殊的标签,意味着这里。 但是,这也意味着,如果我只是做 类似我的目标是在这里, ,从字面上看,这将只是手段 被打印出来,而不需要 实际上调用printf或打印, 或任何类似的功能。 因此,我们会回来, 在短短的时刻。 首先,让我们做到这一点。 里面的家电,我们有一个 目录称为虚拟主机,虚拟 主机,斜线本地主机,削减公共。 所以这是一个有点冗长,但很长的故事 总之,设备的设计不 只支持这也是 旨在支持PHP。 但它也被设计成一个网页 服务器,和数据库服务器。 它的设计,真正的配置, 任何让人联想 商业网站托管公司 你可能支付每月5美元, $ 100一个月。 无论服务,它的配置 是非常类似于一个 真实世界的生产服务器。 这是什么意思是,运行 该设备是Web服务器软件。 它发生在被称为Apache的。 这只是免费的,开源的, 而大受欢迎。 我们已经配置好Apache知道 如果我访问某个网址, 浏览器或任何浏览器里面的 家电,寻找到这个目录 文件 用户请求。 换句话说,让我 继续前进,做到这一点。 我的公开目录里面,我要去 继续前进,建立一个文件 名为index.html。 这给了我这里的标签。 我要走得非常快 继续前进,爆炸了 这个程序在这里。 DOCTYPE HTML,现在,只 假设你必须键入。 这只是一个神秘的标签,这不是 真正的HTML标记,它指定 这里是一些HTML。 我要继续前进,并重新 我们刚才也看到了。 下面是在页面头部。 头部内侧 - 这样的标题。 所以我们会说你好,世界。 再往下是身体标记。 让我收身标签。 然后在这里,我也会说, 只是为了清晰世界,你好。 因此,这是可以说,最简单的 可能网页 能使这是有效的。 这是语法上是有效的。 一切的打开关闭。 一切都很好 风格和缩进。 所以,让我们来看看现在我怎么 可以访问此文件。 好了,让我去这里的铬。 并让我去 http://localhost/index.html。 那么什么是本地主机? 嗯,大部分在世界上任何一台计算机, 在Linux,Mac OS,Windows中,有一个绰号 所谓本地主机。 所以,如果你想谈 自己的电脑 - 不过,奇怪的本能 - 你称自己为本地主机。 不管你的实际计算机 ,无论是大卫的MacBook 空气,或更多的东西 冗长的那样。 所以这个网址显然要使用 HTTP谈论到本地主机, 在同一台计算机,家电, 要问,只取一 猜测,什么样的文件? index.html的。 因此,该设备已配置在 提前知道,如果我问 类似的index.html,寻找 在一个文件夹中,在一个被称为虚拟主机 文件夹,名为本地的文件夹中 其中被称为公众。 这就是我的所有公共 文件将要。 所以我现在要敲回车。 该死的,还有就是禁 消息,否则403中,被称为 它的数字代码。 那么,什么是错在这里? 嗯,这是不够的,只是把 我的文件夹里面的文件。 我需要做以下。 让我去,进到我的虚拟主机目录 本地主机,进入公共场所,并让 我LS划线升。 还有一些其他的东西 在这里为今天的目的。 但是请注意,在左侧,旁边 到index.html,我们看到的只是一个RW。 而在过去, RW站在了? 只要读或写。 事实上,它在左边以rw说 意味着我拥有这个文件,可以 读或写它。 但我需要让所有的人在 世界阅读本,虽然没有写出来。 所以我要改变的模式 文件,属性,给所有加r 每个人的读取权限, 名为index.html的文件。 如果我现在重新输入LS几许升,通知 在这里,多了一些 R的弹出。 而现在,规范进入 的更多细节。 对于P套7,这只是意味着每个人 现在可以读取这个文件。 如果我回到我的浏览器 现在重装,瞧。 世界,你好。 我什至可以打开我的Chrome工具 看看,就像谷歌和 Facebook上有我的HTML, 格式化了一下 不同的颜色。 如果我去“网络”选项卡,并重新加载 的页面,发现有得到 要求Chrome的发送 家电。 有200, 特定的文件。 因此,在短期,这是如何使所有这些 各个部分都撞在了一起。 它只是恰巧,在Web服务器 我们现在正在使用的并不遥远, 像Facebook。 严格地讲,它在同一台计算机上, 这是完全确定的。 那么什么我们可以做一个网页呢? 好了,只是,让微风拂过 一对夫妇的这些东西。 不过,让我继续前进,重新打开 gedit中的index.html。 让我继续前进,打招呼CS50, 保存这个文件,回去 浏览器,真正给人留下深刻印象的变化。 但是,如果我们想要真正 连结的东西呢? 所以,事实证明,我们可以有 在HTML中的链接,只是标签 自己。 它发生在被称为 锚标记。一个href的等于的 https://www.cs50.net,www.cs50.net 报价接近,靠近支架。 现在让我们来看看 否则接下来。 我已经打开的标签。 我现在需要给它 短语像CS50。 让我关闭标签。 并注意几件事情。 即使有这个神秘的东西 在这里,我不重复它,当你 关闭标签。 你刚刚关闭的标签 其名称本身。 这是被称为 属性的值。 属性只需要修改的行为 一些标签的一个页面内。 因此,这是指定的超级 花式一种说法参考, 此锚的URL,这 链接,应该是CS50.net。 而我们要显示的文字 用户不是该原始URL,而是 字CS50。 所以,如果我现在重装,让我放大以 清晰度,让我重新加载页面, 注意到我们有这个老学校 蓝色带下划线的链接。 如果我将鼠标悬停在它,它是怎么回事 很难看到,在左下方 右下角的画面,请注意 它说,到的URL 我要去。 如果我点击那里,瞧, 现在我制作网页。 而且我们自己 到主页。 但是请注意,有什么发展潜力 这为我们提供了。 安全是非常 在流行的这些日子。 如果我不是这样说 这一点,我反而去,说,让我们 看到,fakeCS50.net。 刷新此页。 OK,所以发现它仍然看起来像我 CS50,除非一个精明眼 会注意到我要假CS50。 我猜此域不采取。 OK,所以无法使用。 所以这是很好的。 居然没有一个人拥有该域名。 但是,让我们多了几分恶意 因为这是一种愚蠢的。 如果我们改变到PayPal。 如果我们调用这个一样, www.paypal.badguy.com 无论您正在访问的域名。 这可能存在。 所以,现在让我重新加载页面。 这里,我们有一个钓鱼的排序 攻击,p-h-I-S-H-I-N-G,这是 傻字的攻击 尝试鱼信息,或更好 ,钱,出人通过欺骗 他们到提供信息 否则他们可能不会做。 这看上去完全合法的,对不对? 我必须有一个链接在这里Paypal.com的。 凭心而论,如果我绝育手术了一些 图形,我们可以使它看起来 如PayPal。 对吗? 因为我可以,顺便说一句, 我可以去Paypal.com。 我们刚刚看到,我怎么能 看到他们的HTML。 我可能只是把它复制并重新创建 美学贝宝,而不是去 这里的老同学。 但是请注意,当然,这是一个有点 仍小,只有在底部 左上角,像一个10点 字体,你看你是什么样的网址 实际上是被领导。 所以如果你曾经得到的垃圾邮件说 先走了,你的帐户 已大打折扣。 请点击这个链接,让我们知道, 您的密码,所以我们可以确保你 你永远不这样做。 这些东西应该是不言而喻。 但它的奇妙有趣,并且 惨烈,每年这似乎 发生一些非零 许多人。 这就是美丽 网络钓鱼攻击。 您可以发送100万封电子邮件。 即使0.01%的人实际上 点击Paypal和给你 密码,这仍然是一个非零数字 刚刚给谁的人 你自己的钱。 接收和发送电子邮件,当然是相当 容易,从本质上讲,自由 这些天。 所以长话短说,奇妙 美丽的想法,对吧? 几年前,这是最早的 网页,使网 资源之间的超链接。 但如此之快可能是 用于生病的目的。 电子邮件,我只想说,这些 天,里面嵌入HTML。 好吧,让我只是另一件事情。 我们将推迟主要部分 问题设置七,让您 探索的详情。 不过,让我继续前进, 在这里做几件事情。 我要去,并宣布 什么叫做一个div,或 师的页面。 让我关闭该div标签。 我会说 这里页的前头。 然后下面这个,我要做的事情 像另一个分区,请关闭此 标签,做页面底部。 让我们保存它。 所以,现在让我们回到我的文件。 非常深刻印象。 但是,什么样的分工, 引擎盖下,这实际上 一个很好的结构元素。 它不具有任何美学迄今 我们可以看到,以外,很显然, 把东西放在新线。 但是请注意,顺便说一句,只是击中 输入不削减它在HTML喜欢它 并在C你可能会认为这是 打算把一个漂亮的大差距 在页面的顶部和底部。 但它忽略。 基本上是忽略空白 网页以外的第一 空格字符,回车, 你打在键盘上。 如果你想更多的换行符, 有自己指定它。 所以我要做的几件事情 这里要说明发生了什么事情。 我要添加一个属性 存在并再次,你的学习方式 哪些属性存在,存在什么标签, 真的,是网上的引用。 HTML语言的那种 - 这是 不是一种编程语言。 这是一种标记语言 - 后 良好的半个小时,也许一个小时, 它,你一定会把握,最 可能的是,基本的想法。 然后谷歌搜索距离是所有 你可能会对可能的标签 感兴趣 按照规范,那是相当的 欢迎这里和鼓励。 所以,现在让我继续前进, 做这样的事情。 背景颜色。 而现在,我要做的事情 喜欢红色,分号。 你可以做到这一点 几种不同的方式。 我只是那种超级键入 明确越好。 但事实证明,这里,这个值是 什么叫做CSS层叠样式 床单,这是另一种 语言完全。 CSS无关,与 打开标签和关闭标签。 它做与性能。 和属性是简单的键值 对,这只是意味着一些字, 冒号,然后其他一些字。 如果你有多个,或者只是 在这里,你可以结束它与 分号,只是为了清晰。 但是,这也将在这里工作。 现在这是什么该怎么办? 你可能已经猜到了。 让我继续前进,然后刷新页面。 而现在,它真的来了一起。 因此,我的网页的顶部是红色的。 但这里的关键是,我提到 早些时候,该div给你 一个分工的页面。 而这确实是它做什么。 它实质上是将页面分为 一个矩形,然后你可以 操纵。 而这个概念是怎么样的矩形 引人注目的是,如果你认为 几乎所有的网站,有可能是 它的一些结构。 你们中的大多数可能已经很少见到 如果你登录Facebook的主页 在所有的时间。 但在Facebook的主页上,有 某种格的顶部。 它可能不是那么简单 作为一个div,但有一个 矩形区域。 页面的其余部分是什么样的 一个巨大的div,就像一个多 更大的矩形区域。 所以长话短说,刚才有 这些小积木, 能力模型的东西如矩形, 无论是宽的还是窄的,你也可以 潜在列,让你 页面布局,真的,但是你 想。 我们真的只是皮毛 这里的表面。 事实上,如果我做一个另一个, 让我继续前进,做款式, 背景颜色,我们会做一些事情 喜欢蓝色,特写报价。 重装。 所以现在它变得更加丑陋。 但现在我可以种炫耀 我P设置5个技能,对不对? 红色。 这让我想起RGB,红 绿色蓝三倍。 哦,原来在网络编程, 或网页设计,它是这样的,我们已经 尚未任何编程 本身,实际上,你可以 有十六进制代码。 因此,一些东西,一些 一些东西,一些东西。 所以,你可以有六个十六进制 字符,或者在某些情况下,三, 和那些问号 是一个十六进制数字, 0到f。 如果我想有很多的红色, 没有绿色,没有蓝色的,有什么 相反为零时使用十六进制? 这是F。 所以我可以做FF,零,零, 保存这个,现在来这里。 我没有真正看到了变化。 所以报价引文结束的“红色”显然是 所有红色的代名词, 没有绿色,没有蓝色。 同时,让我们刻意改变 这样一来的东西 随机的,像ABCDF。 让我们来看看这是什么。 这是一个非常漂亮的蓝色, 实际上,粉蓝。 所有的权利,所以这些都是刚才 有些随机组合 字符。 因此,我们不会陷入在了这里。 但是,这讲的精度 你就可以开始 适用 - 即使你很不堪重负 美学。 事实上,如果你真的想成为 留下深刻的印象,让我继续前进,改变 的字体大小,例如。 注意分号, 存在是必要的。 字体大小,我们可以只是可笑 在这里,96点。 保存。 哇,这是一个大的字体大小。 所有的权利,所以它是很容易的。 而实际上,你基本上看到 我的第一个网页 几年前,当我第一次 学到这个东西。 这很容易做出非常 可怕的事情很快。 如果你熟悉回程 机archive.org 可以找到我所有的狰狞 本科生的网页。 一个青蛙柯密特的前面。 我经历了一个阶段,我想 凉爽的背景 一个红色的窗帘,当我得知你如何 再次可以平铺图像,并再次, 再次,以填补页 一个俗气的大红色幕布。 然后,在此之上,是一个图标 你不得不点击进入我的家 因为这是页 非常流行。 然后我的第一个程序,我曾经写过 在PHP中,但在一种语言不是 称为明珠,写了一个留言簿, 是一个非常酷的事情,一个 很多人期待你 有一个主页上。 当你得到的页面,他们希望你 签署,并说,你是谁, 为什么你在那里。 这是非常20世纪90年代风格的网页设计。 但这些天,当然,我们已经 来了很多更远。 你会看到,在第,甚至 在问题设置七, 充分利用图书馆,这些天, 它是如此容易使 漂亮的东西很快。 真的在这里,我们只是刮伤 表面你可以做什么 文体。 而事实上,已经让我强调 这已经越来越丑,未 只是美观,但在 我的代码风格,或者 我的代码设计。 我目前已comingled的HTML, 绿色开放的标签, CSS属性, 是完全合法的。 这是真的,其中的语言 有它的起源。 但在干净设计的兴趣, 就像我们开始保的东西 从C文件到h文件,让 实际上,我的那种练习 原则,并开始做 这个代替。 让我把风格标签, 也存在于HTML,让我 指定以下。 让我删除。 背景颜色将是红色的。 我要完全删除。 我要摆脱的风格 属性,我要去唯一 识别这个div用一个字 - 随意,但合理报价 引文结束“顶”。和ID是一种特殊的 唯一定义的属性 某些HTML元素 作为具有该ID。 如果我现在要程式化,在这里 我的网页,里面的头 风格标签,请注意 我可以做的哈希顶部。 然后我可以把一对夫妇的卷发 牙套,让人想起了C,然后让 我贴在那个程式化。 让我在这里继续和预期 我要去的地方这一点。 让我还可以创建一个 底部的div。 让我抓住这个丑陋的代码从下 把它放在这里,在这里,我会 多一点现在肛门和程式化 只是把自己的事情 线,用分号结束。 让我摆脱的风格标签。 但我还没有完成。 我需要做的另一件事情。 是啊,ID等于报价引文结束,“自下而上” 或任何ID,我想 给该元素。 现在,在这里让我回去。 这是残暴的。 我对付不了96点。 让我们做24点。 或者你可以更精确。 实际上,你可以使用像素,像素,所以 你真的得到更细的颗粒 控制在你的网页上。 顺便说一句,这是不一定 最好的东西,如果用户, 辅助功能的原因,要 可以增加体积。 因此,意识到有办法做 不一定的事情, 硬编码的一切。 所有权利,所以它比较大,24点, 比任何默认为。 但现在它的少许清洁剂。 让我走这一步。 就像头文件的想法, 请注意,我们一步步接近那个。 我有分解出来,但还是留下, 我的网页,这些CSS规则内。 我为什么要采取这一步 进一步,删除,这完全 把它放在一个单独的文件? 所以,我可以重复使用它,对不对? 这仅仅是一种直觉 现在。 在此之前,我声称这只是 越来越难看的风格 里面的属性 自己的div。 但只是认为通过。 当你的页面变长,如果 你把在这里,并在这里, 这里,在这里,所有这些不同的 颜色和字体大小,以及其他类似 属性,你的网页是非常快 将变得不可收拾您。 如果有人来向你及 说,哦,你知道是什么吗? 我真的很想改变字体大小 另外两个点, 可能去查找和替换 数量庞大的代码行。 它更引人注目集中的 这里所有这样的美学。 但是,如果你想重用那些 美学的多个网页, 更引人注目的, 例如,创建一个文件 调用这些内容。 让我这样做。 保存这个文件。 我说styles.css的,任意的, 但传统。 我将把它在约翰·哈佛的家 目录现在简单。 在我的网页,我能做些什么是 摆脱完全的风格标签, 和有点unintuitively,使用链接 标签,它不会给你一个链接 超链接,点击感,但 我说链接,HREF等于 styles.css的。 的关系,这些元素 网页已经是作为 它的样式表。 那么我怎么会知道呢? 一,你刚才读手册, 或者你谷歌身边,和你 看看各种资源。 我的意思是,那才是真正的你挑 像这样的技术,一致 这个想法自己新的教学 再次,语言,你会发现, 只有数量有限的东西 任何语言,一旦你得到 他们,你会发现,它得到 越来越快写。 事实上,学习一种新的编程 语言是如此的速度远远超过了新的 口语,因为这些东西 更小的和更 精确的定义。 不过,我已经强调了一点 这里的异常。 我为什么要强调这 向前斜线这里? 因为我不得不闭上标签。 我应该关闭标签。 你会发现无数的资源 不在线 一定关闭标签。 抓实,它不是严格 必要的技术,并且有 现实的原因,浏览器只是 在web相当宽容失误 页,或好或坏, 但大多是雪上加霜。 因此,这仅仅是一个更清洁的方式 说这样愚蠢的东西, 其中,如果你要打开的链接标签 但关闭它,真的没有概念 内容的链接标签。 它只是意味着加载此 文件,并把它放在这里。 C.您可以像尖锐包括 一次全部打开和关闭标签 标签相同的范围内。 和其他这样的例子。 这是没有办法做到这一点,但 br标签,换行,如果我 真正想要对我是什么 试图按下回车键之前,如果 我明确地说线断裂,线断裂, 断行,断行, 然后重新加载这个页面,你会发现 页面的底部的是, 事实上,很多越走越远 页的底部。 但即使这样,可以做得更多 干净,CSS和利润, 与其它类似的审美 技术。 因此,就目前而言,外卖店。 在HTML中,我们有这些 东西叫做标签。 在CSS中,我们有这些事 称为属性。 我们,可以comingle这两种语言, 通过使用样式属性, 或者样式的标签,或最好的还没有,保 它完全,因为我们做的 问题7。 问题,那么,约 这里的概念基本? 观众:我有一个问题。 扬声器1:哦,对不起。 观众:为什么没有彩色 - 扬声器1:哦,在“其他”选项卡? 在这里? 观众:不,这是这样的 - 扬声器1:哦,那是因为 我被马虎。 我把文件放错了地方。 所以,如果我把它放在这里,和我 chmod将其所有+ R styles.css的, 现在刷新页面,现在我们 得到程式化回。 因为字体大小 不同,我们没有看到相当多 白色的空间。 我们不是看到什么 而不是默认。 这个问题问得好。 是吗? 观众:为什么是链接 标签里面的头? 扬声器1:为什么链接 标签里面的头 - 简短的答案,只是因为。 那是什么决定。 这就是去当链接标签 您有什么所谓的一个 外部的样式表。 其他问题吗? 好吧,让我们做到这一点。 我们有这么多的乐趣,今天摆在我们面前。 这只是刮​​伤 CSS的表面。 让我们做到这一点。 让我们这里休息5分钟 因为按我的电子邮件,让我们挂在 那里,直到今天2:30 ISH。 但如果你有 离开,这很好。 但是,我们将锐意进取 休息5分钟。 我们将学习一点东西 关于PHP,MySQL和。 好吧,让我们来试试,现在,将比分扳成一 几个在一起,使这些想法, 说,我们自己的搜索引擎。 我注意到,相当好奇, 以下。 当你在Google.com,你 通常在这里像这样的一个URL 没有后点COM。 但是像一些愚蠢的事,如果我搜索 猫,并按下回车,我们会得到 - 笨,但你知道的。 OK,所以注意到,在页面顶部, 现在,URL,当然改变。 这是没有什么 我们任何新的。 您点击链接和东西 发生在网络上。 但是,什么是有趣的 是以下内容。 有一大堆杂乱的,但让 我扔掉的东西,我不 不太明白或不 看看有关。 让我摆脱这种。 让我摆脱这种。 让我摆脱 所有这一切。 现在发现,猫是在URL中, 其次具有Q,那么等于 签署在它的前面。 因此,原来这是怎样的 它的工作方式,当谈到 输入和输出。 我们早就谈过 黑盒子,对不对? 因此,如果这是实现的功能 这里是一个黑盒子,它需要输入 并产生输出,以及,意味着 您提供的输入到 网站方式,很多时候,它的网址。 您只需打上问号 然后一键等于价值。 然后也许一个符号,然后 另一个关键等于价值,那么也许 另一个符号,关键等于价值。 这是你如何通过键和 值,对输入。 所以,如果我现在敲回车,什么是 有趣的谷歌,是所有 我删除,杂波不会出现 是绝对必要的。 我需要发送到谷歌的问题 标记Q等于猫得到 备份一些猫。 那么,寓意,然后, 如果我拉gedit中,我已经开始 在这里我自己的搜索引擎 在一个名为seach0.html。 让我去和删除 多行 不应该看到的。 现在,让我进入我自己的浏览器, 所以没有给谷歌,去 http://localhost的。 ,这就是将要得到的方式。 因此,我们将不得不说再见 现在,移动在这里, 哦,现在我们将不得不 该文件说再见。 每当你有一个文件名为 在index.html或编辑 目录,如果Web服务器 以这种方式配置,你会 ,默认情况下,看到的内容 文件而不是上市 目录,因为我想在这里。 在这个问题上的规范。 你没有看到这一点。 所以这是我其实是想什么。 不过片刻前,有一个 在此文件夹中的文件名为 index.html和index.php文件。 所以Web服务器 我的那些文件。 相反,我想这个目录 在这里列出。 所以我要进入 CSS和去搜索0。 我要求,这是将是 开始我自己的竞争 搜索引擎。 而要做到这一点,我要去 在这里,到CSS,并打开了 gedit中,搜索。 但不幸的是,有 没有太多打算就在这里。 我所做的只是使用标题标签, 会发生被称为H1, 基本上是指大 勇敢的,就是这样。 但以何种方式,我们可以 通过这些提供投入 东西叫做形式。 因此,让我继续前进,打开和关闭, 先发制人,有形式标记。 让我继续做 这样的事情。 文本输入,键入等于。 然后让内关闭标签 括号本身。 我并不需要启动一个文本字段 并停止文本字段。 它只是将是有还是没有。 然后,让我们做如下 输入类型等于提交。 保存。 现在让我们只是做了 快速完整性检查。 让我们重新加载。 OK,所以它不坏。 这不是谷歌的风格, 但它是相当接近的。 有一个文本字段。 我可以键入一些东西,敲回车, 但什么也没有发生。 那是因为我还没有指定 这种形式的行动,可以这么说。 所以,如果我回去的表单元素, 事实证明,我知道这是唯一的 从阅读的文档, 标签的形式以一个属性 调用的动作是URL 在网站中,您 要发送的形式。 我真的不认为我们有时间 为实现整个后端 今天的搜索引擎。 所以,我们只是会说,哎, 去google.com /搜索。 现在让我关闭我的报价。 让我进一步明确 使用的方法是怎么回事 被称为。 长话短说,有两种方式, 至少,你可以提交信息 从浏览器到服务器。 一个,而且,对于今天的目的, 这仅仅意味着在URL中。 你清楚地看到问号,则 等号,和&符号, 我们在前面看到的。 或者有另一种称为后。 现在,知道后经常被用来 当你要上传的文件,如 图像等等,或当你想 提交信用卡信息,或 密码,任何事情,它不 真正意义,概念,或 安全明智的,最终的URL 您的浏览器,窥探父母, 或室友,或任何访问 到您的计算机可能会看到。 所以,让我们保存在这里。 我需要做的另一件事情。 它不足够 说给我一个文本字段。 我已经给该字段的 珍惜一个名称。 因此,让我借用谷歌的选择 名,q和指定该第二 属性我真的不关心 “提交”按钮的名称。 我只在乎提交 什么类型的用户英寸 现在这是一种丑陋的。 它只是说提交。 事实证明,我知道这从 文档,我其实可以说 值等于报价引文结束“CS50 SEACH“密切的报价。 然后,让我们再次重装。 所以我一直打命令-R,或 控制-R我的键盘上重新加载。 现在我们有一个更有趣 搜索引擎。 它不完全的样子 谷歌,目前还。 所以,让我们继续在这里 做一个小小的断行。 好了,现在我们有谷歌。 实际上,我们几乎看谷歌。 所以,现在什么事情发生呢? 我要输入的东西 像猫。 和浏览器解析 这种形式,我定义。 它会发送 该网址的用户。 所以这个时候,一些奇怪的原因, 我得到了更多有关股票信息 比实际的猫。 但是,这很好,因为我们仍然注意到 在这里结束了,Q等于猫。 所以长话短说,它似乎相当 微不足道的来自用户的输入。 而且是公平的,有串 其他类型的表单字段。 有复选框,有点相互 独家单选按钮, 下拉菜单等。 但所有这些都是相对 轻松实现 这个文本字段。 最终,我们只需要做出 肯定有人听其他 为了得到该行结束 信息处理,不知何故, 让我们回到我们的猫。 让我们来看看一个稍微 更多参与的例子。 让我去到我的虚拟主机的目录, 到本地主机,公共场所,并在那里我 把今天的源代码。 所有这一切都将在球场上的 网站为你鼓捣。 我若去成froshims,让我开 现在了这个文件,froshim0.php。 这是一个有点冗长,所以 我们不会写这篇文章从头开始。 但是,仅仅注意到现在几点几分 熟悉的特点。 一,形式标记,不同的动作。 这不是一个完整的URL。 现在,它显然文件名为 的register0.php,因为在某一时刻, 我要教自己一点点 一些关于PHP,编程 语言,因为PHP可以用来 实施什么谷歌实施 搜索引擎的后端。 谷歌,在现实中,可能使用 一些Python,一些C + +, 其他语言的串。 不过,我们当然可以实现搜索 使用PHP,如果我们想要的结果。 但是现在,我们将保持它的简单。 这实际上是让人想起一个 我第一网站 年前作出。 早在我的日子,你注册 作为一个新生的校内体育活动 填写一张纸,走 穿过院子,并将其放置在 一个宝洁的邮箱 威格尔斯沃,那就是你如何 登记手续。 所以我的项目后不久,CS50, 是把,这使得完美 某种意义上说,在网络上,这是不 作为时尚,因为它是现在。 但是,所有我们必须做的是创造, 从本质上讲,一个HTML表单。 而这种形式看起来 大致是这样的。 我有一个输入 大一的名字。 我有另外的复选框是否 他们想成为队长, 他们的性别, 他们的宿舍是什么。 然后,我硬编码的事情 像Apley法院,卡纳迪, 灰色,等等。 如此反复,新的标签。 还没有看到这些之前,新 属性,但还算访问。 一旦你看到一个例子,你可以 借这个想法,使下降 下拉菜单对于大多数什么。 但最关键的是,每个 这些东西的名字。 在这种形式的底部,有 一个提交按钮的标签, 或价值,是寄存器。 所以,让我们去到这个网页。 让我回去 目录列表。 让我进入froshims, 去froshim0.php。 因此,它是可怕的,是公平的。 所以,我可以肯定样式 一些CSS,我可以做一些 图形,也许添加一些颜色, 使这个漂亮。 但是,在功能,我认为这 实际上是相当完整。 不幸的是,当我填写了这一点, 船长大卫,男,我们会选择, 让我们说马修斯,注册, 所发生的一切是这样的。 但是请注意,一对夫妇的外卖店。 一,什么文件返回那些 结果,显然? 因此,它的确是register0.php。 因此,事实上,我们看到的行动 刚才值寄存器,这 证实我们确实结束 在该特定文件的最多。 目前这还只是丑陋的文字。 但是请注意,这个文本是 来自本地主机, 这是从该设备。 现在想想器具 可能在一个Web服务器 科学中心。 这可能是对实际的网络。 因此,它的公开访问。 所以很明显,有一些方式传递 表单字段输入到服务器 因此,它可以做与他们的东西。 不幸的是,寄存器 是非常愚蠢的。 它是打印出一个数组 看起来像这样。 它不是一个数组 我们知道它的意义。 原来,PHP,和大量的 语言,不仅数值 索引数组的第一个索引 零,那么一个,两个,然后点 点,点,N减1。 这就是所谓的一个 关联数组。 关联数组是其中之一 你可以存储键值对 关键是不一定的数字。 事实上,它可以是一个字符串,一个字。 所以这可以实现, 引擎盖下,事实证明, 使用一个数据结构被称为? 思想戏剧性的东西 即将发生 - 哈希表。 所以一个哈希表,回忆,那些你 是谁做的P组6,甚至召回 它,至少,即使你做了一个尝试, 哈希表中,在我们的使用情况,使用 只是存储的话。 不过说真的,你是存储 键和值。 如果您实现了一个哈希表为P 设置6词典,钥匙 词本身,其值 有效真或假。 是的,在这里,或含蓄, 不,不是在这里。 好吧,我们可以概括地说,想法。 我们可以使用一个非常类似的数据 结构来存储而不是字符串 独自一人在你的哈希表,但 假设在每一个你的哈希 表的节点。 你甚至可以做到这一点在一个try 而不是仅仅有一个bool。 你可以有别的东西。 关键是如果没有麦克斯韦, 实例,但报价引文结束“的名字,”或 引用引文结束“的队长。”里面 C数据结构,你把一个 价值,而不仅仅是一个布尔值,但值 如报价引文结束“大卫”,或 “M”或“马修斯”和等等。 因此,我们使用那些相同的数据结构 在其他语言中显然存在。 我认为它们实际上是多少, 简单得多,在这里访问。 让我们看一看其实 现在在一些这样的语法。 我要进入​​一个PHP目录。 我要去开拓一个更好的 从之前版本的Hello-0。 请注意,我所做的就是 补充一些意见。 因此,我们可以摆脱那分心。 这个程序的确会打印 你好,因为我之间指定 标签,我想执行该代码。 现在,我们将看到在某一时刻 为什么,这是非常有用的。 但是让我们在这里打开一个其他的例子。 让我去进取,不断开拓说, gedit的条件之一。 这是现在回来的路上时间。 但半个月前,我想,在每周一, 本周二,我们有一个例子叫做 conditions1.c。 我决定重新实现在PHP中, 只是一种强调 PHP语法,几乎是相​​同的 C.这是不是一个巨大的飞跃 从上周到这一点。 请注意,在上面这个程序, 开始时,和以前一样,具有一定的 意见,我将摆脱 作为分心。 请注意,我在PHP 在这个文件中的模式。 所以这段代码中,我们将看到的, 将得到执行。 请注意,有readline的, 这大概是 PHP的getString模拟。 请注意,这是一个有点不同。 实际上,你指定提示 函数调用读线,而这 用户看到。 所以,你不必手动printf的。 但是,这并不是什么大不了的。 我要储存,里面的$ n, 这个返回值,所以无论 用户类型是自己的诠释。 这里是另一种好奇心。 事实证明,在PHP中,任何变量 只是前缀 一个美元符号。 这是一个有点恼人。 但是请注意,我没有做什么在PHP。 从左边缺少了什么 一边的等号? 没有提到的类型。 因此,这是为了更好地从C不同 或者更糟的是,PHP是一种松散 类型语言。 它确实有数字。 它有字符串。 它有布尔值。 它有几个 其他数据类型。 但是,你的程序员,通常 不必关心他们。 这样做的好处,是它使得 这一点更容易编程。 你可以少想一点。 不足之处是它也打开你到 潜在的错误,如果你不小心 对待一个数字作为一个字符串,一个字符串 数,有可能,但即使 然后,PHP和很多语言, 是相当宽容的。 他们将使用什么叫做 隐式转换。 如果您尝试在上下文中使用n 的一个数字的情况下,它会 这里将是一个转换 字符串,因为如果用户键入 的东西,你得到的结果, readline的,或者得到的字符串, 要返回一个字符串。 但是请注意,几行后,我 检查,如果n是大于零的。 所以,PHP会隐式转换 “串”123,或无论用户 ,进入一个int类型。 因此,在短期,东西只是工作 很多更直观。 所以我们现在开始放松的几个 在过去的事情,我们已经做了。 这个东西有很多是 同样的,虽然。 还有等于等于。 作为一个备用PHP也等于等于 等于,但更多的,或许,在 未来。 这是一个。 错字,但两个等号意味着同样的 之前,进行比较的东西。 printf的意味着同样的事情之前。 反斜杠n表示相同 和以前一样的东西。 所以我怎么运行这个程序吗? 好了,和以前一样,如果我做PHP, conditions1.php,然后键入 这样的数字123。 这是一个正数。 如果我键入0,我去接0。 如果我输入负123,我得到 备份一个负数,这是唯一 也就是说,语法,PHP 是超级,超级相似。 那么,为什么是现在这个有用 在web环境? 好吧,让我们回到本froshims 例如,看起来, 再次,像这里。 让拉起网页 再次,这个样子。 我们可以做什么用 数据提交? 好吧,让我打开了一个新的 版本的此。 你会看到这个问题 套规范引导您 通过几个。 而不是从零开始, 让我们看看froshims3, 这确实有点多。 首先要注意,其实,让我们打开 了0,所以你看 寄存器0是什么。 注意寄存器0做什么。 一,我在上面发表意见。 删除那些只集中在此。 大多数的内容register0.php ,很明显,什么样的语言? 只是原料PHP。 所以通知,这个文件不启动 ,此刻,打开支架, 问号,PHP。 PHP让你交融 PHP与HTML标记代码。 但我已经做了,在这里里面 的页面在这里。 再次,现在,你只知道这 看着手册。的print_r 事实证明,是print_recursive。 _recursive而这仅仅是一个方便的 效用函数,只是打印出来, 递归的,无论你把它。 如果你的手是一个数组, 它会打印一个数组。 如果你把它的数字, 它会打印一个数字。 把钱交出来一个字符串,它会 打印一个字符串。 如果你把它一个哈希表, 会打印出一个哈希表。 您不必编写所有 的自己该代码。 现在可以看到我进入 PHP模式在这里。 在这里,我退出PHP模式。 所以当Web服务器读取这个文件 从上到下,从左到右,因为 它结束在一个名为。php的文件名, 里面没有任何PHP标签 只是要吐 出来,像原始的HTML。 没有什么大不了的。 但是,一旦Web服务器注意事项 这一点,它会说,我不应该 吐了出来,从字面上看,后的print_r。 我应该执行以下 一行代码。 那么最后一个问题,那么,这个文件 ,好了,你到底是这样吗? 采取一种猜测。 $ _POST是什么,可能吗? 观众:[听不清] 扬声器1:是啊,发布的数据。 回想一下,我们的向后滚动 时间只是一瞬间。 froshim0再次,这个样子。 这是一个超级多数只是HTML。 同样,一些你没有标签 见过的,或与 你已经很熟悉。 但有趣的事情是这样的。 这一行是真正的链接 它来我们的register0.php文件。 我通过POST方法提交。 这意味着,参数 用户类型 将要结束的地方。 他们不会 显示在URL中。 他们仍然要发送的 客户端,从浏览器中,向 服务器,但只是通过其他 机制,我们将放弃我们手中 在今天,但它不是在URL中。 但是请注意,现在的关系 后,按照惯例, 小写这里。 但如果我打开register0.php 我显然印刷本。 因此,这是一种怪异 命名约定。 但是在PHP不错的是,当 使用PHP在Web环境中,而不是在一个 刚才像我一样的命令行, 当你真正使用它在Web 页面,因为我们是在一个虚拟主机的目录, PHP会自动填补这一 的事情,这是一个关联数组, 可以这么说,一个哈希表, 所有用户输入。 总之,$ _POST全部大写是一个 全局变量,PHP只是 奇迹般地创造你的时候 使用PHP在Web上下文。 它把它里面的所有的 的表单中的参数名称 提交本文件及其所有 用户输入的值 因此,它的手给你什么用户 这种形式输入。 之前,我们得到了非常愚蠢的输出 只看到这一点,因为我所做的 递归打印这个数组。 最关键的是名称,值是大卫。 最关键的是船长。 该值上。 和双箭头和角度 有支架,这仅仅是任意的。 这是不是代码。 这仅仅是PHP的方式向您展示 一些关键的价值是什么。 但现在让我建议,在 froshIMs3,它几乎相同 除了提交该文件。 再次,我们要种只是 看了一眼,正好看到一些 语法,但注意什么 这个文件。 以此来猜测只是基于线 代码,这可能看起来象 希腊,在一定程度上 显然这样做。 此主题相关文件 邮件,电子邮件。 那么,什么是这个程序在做什么? 在这个版本中,如果我是真正 填写此表 - 让我去 froshIMs3,不是froshIMs0 - 形式看起来是一样的。 队长大卫,男,宿舍,马修斯。 但是,如果我提出这个,这个文件是 要去register3.php。 我要求看在它的 源代码,这将 以某种方式涉及到电子邮件。 让我继续前进,打开此 在一个更大的窗口,因此我们 可以看到它更干净。 我们在虚拟主机,本地主机, 公众froshims。 我要开辟一个不同 程序,所以我们 一次可以看到更多的。 所以,现在在这里,发现了一些事情。 在该文件的顶部是开放的 括号,问号,PHP。 然后有一堆意见, 我们可以忽略, 现在无趣的。 现在有这个。 PHP有很多 代码调用需要。 它非常类似于在精神上C的 包括哈希包括 基本上抓住了一些内容 其他文件,只是他们在这里,扑通一声 这样你就可以使用它们。 在这种情况下,该装置安装有 预装,一个图书馆,自由和 称为PHP的开源库 邮件程序,任何人都可以 从互联网上下载。 我们只是做给你。 这意味着我现在有电子邮件 在我手上的功能。 现在,请注意几件事。 我要验证 表单的提交。 打开了PHP,一个惊叹号 不是运营商,就像点 但是PHP也有一个功能 被称为空。 空,则返回true值 你的东西拿去 括号内是空的,像 用户没有输入任何内容英寸 因此,这是说,并注意 语法,非常类似于C,如果 名称键,这样的name字段的形式, 这是提交通过后, 用户来说是不空的,并且它们的 性别是不是空的形式 很好,他们的宿舍是不是空的 - 但是请注意,我不关心队长, 那么我们该怎么办? 我要执行 这行代码。 你能想到这种 像malloc的,但它是一个小 票友比。 但现在,这给了我一个特别的 结构类型的PHP邮件。 但是,忽视今天的新的关键字。 现在,我要调用一个函数叫做 IsSMTP,它说,使用SMTP。 这是25端口,就像视频 上周,被扔的东西 到防火墙的电子邮件。 是SMTP端口25。 SMTP是指使用的邮件服务器。 哪一个,我们可以使用哈佛 SMTP.fas.harvard.edu。 我们可以设置从地址 是哈佛大学约翰的。 如果我继续向下滚动,我可以设置 收件人地址,只是 任意约翰 哈佛。 于是,他将要寄给自己。 现在,我可以设置主题 要注册。 我可以定身 电子邮件如下。 这条线看上去多了几分神秘, 但是这只是因为有很多 在它的信息。 其中,有一个点运算符。 必须有人已经知道了什么 点运算。 它的串联。 所以,如果你想利用PHP中的字符串, 追加或它前面加, 另一个字符串在PHP中,感谢上帝,你 不必,使用strcopy和malloc, 所有这一切了。 如果你想连接两个字符串, 谁在乎内存。 让PHP的身影,为你。 PHP会做什么用点操作符 这里只是做一个大句子出来 这条线,这条线, 这条线,这条线。 现在通知,它会 插入值。 所以电子邮件,约翰·哈佛是怎么回事 接收从字面上去说 名称,结肠癌的东西,而不是,那么我们 关闭字符串串联 无论用户输入 ,然后在新的一行。 然后,在约翰·哈佛的下一行 电子邮件,它会说 船长,开或没有。 这是怎么回事说性别, 男性或女性。 宿舍将是马修斯 在我的情况下。 然后注意到熟悉的分号 结束。 然后,这里通知,有点 神秘,但同样,继 图案将变得更加熟悉 P后设置7,如果发送邮件 返回false,然后继续前进,死了。 因此,PHP有一个功能称为模, 其中,从字面上看,只是杀死 网站仅仅打印出任何 你告诉它 - 它正在死去 也就是说,可以这么说。 而这,的情况下,它会打印 出什么错误信息 不管发生什么事要出问题。 所以长话短说,在这里,我们有什么 是一个例子,其中,当用户 提交形式,froshim0, froshims3.php,它去 register3.php。 但register3.php然后继续 执行所有这些线路。 所以这是一个很少人采取跳投。 一,它显然是相当容易的, 编程,发送电子邮件, 这是很好的。 当用户注册,在为您的网站 这种情况下,在注册时为您的 运动,你可以通过电子邮件大一 普罗克特或约翰 哈佛,在这种情况下。 但是,这也意味着你可以做什么? 任何人到任何发送电子邮件。 这是非常真实的。 这是不容易做,如果 你已经习惯了使用Gmail。 但是,如果你曾经使用Eudora或 Outlook中,你几乎可以告诉 你的邮件服务器 任何你想要的。 而这正是我需要把 那顶帽子,并说,不这样做。 但是,这是多么容易证明 它是执行网络钓鱼攻击, 发送匿名电子邮件, 垃圾邮件,更普遍。 它真的可以归结为 事实上,所有你需要的是一些 编程方式访问。 顺便说一句,我最亲密的邂逅 广告板,我自己的大一, 当我发现这个很酷 欺骗,哇,你可以 任何人发送电子邮件。 因此,我们有一些愚蠢的 的说法,从字面上看,马修斯, 之间我的普罗克特组。 我什至不记得 问题是什么。 但我想尝试把一个 这个愚蠢的辩论结束。 所以,我决定,我将只发送一封电子邮件 我的宝洁组,故作 其他的家伙,我的意见 不同意,他默许 无论在我看来 这个特殊的辩论。 所以我使用伪造电子邮件 类似的技术精神。 但它实际上是更容易 的时间。 命中。 他很不高兴,也不会 广告板。 我感到非常内迅速引起 因为,你知道,我签署秒 我的电子邮件以某种方式。 虽然我做手工,在大 部分,15年后,因为我是 由创伤。 我没有签名 现在我的电子邮件。 但在1995年,我刚做了一个信号, 在我的电子邮件签名。 因此就出现了这样一个字条说,亲爱的 普罗克特组,我默许我看来, 并同意大卫签署 如此,新生产线,新生产线,DJM。 所以,不要做,或在一般情况下,采取 这种技术的优点。 但是,当一个网站,喜欢 您的最后一个项目,当进行 网站创业的东西, 这是怎么回事,务实的态度,你可以 利用在互联网上的其他服务 如邮件,然后实际 送东西使用代码。 那么我们如何才能改善? 嗯,首先让我们来快速浏览 一些事情,你会看到, 然后看一看 一对夫妇的例子。 所以,放心,因为 我们正在通过PHP飞行。 我知道,在某些时候,你就会有 如果你真正开始写这 已经没有。 ,一个实现,主要是一种 ,用PHP窗外。 如果你想编写代码获取 执行时,你刚开始写 一个名为。PHP只要 你有开放的支架 问号PHP标签。 但是请注意,这些都是 PHP中的条件。 请注意,这是确切的同一张幻灯片 我们在第一个星期,当我们有 C.条件的条件 PHP是结构和 语法相同。 唯一的区别是,如果你已经有了 涉及的变量,你有那些 美元的迹象。 同时,布尔表达式 看起来就像这为 或或和的在一起。 开关长得一模一样。 在PHP中什么是好的,而在C语言中, 开关必须是个案 整数或字符等,在PHP中的原语 你的case语句实际上可以 一个整体的字符串上,这是 其实挺有意思。 为您节省一些时间。 不能这样做,在C 下面是一个PHP for循环。 这是相同的。 可能有一些美元的迹象 为变量。 您不必提 东西是一个int。 你刚刚宣布它与一个美元符号 和的变量的名称。 但是,一个for循环是相同的。 while循环是一样的。 一个do while循环是一样的。 这是一个有点不同。 因此,PHP中,一个数组,你可以 静态声明一个数组,在C, 但是你用方括号内。 在C语言中,你可以使用大括号, 如果你知道这一点。 但其实这是很常见的PHP 声明一个数组,在这种情况下, 数字,并调用 变量的数字。 变量本身这个样子。 这里是一个字符串,报价引文结束“你好 世界,“你可以有一个反斜杠Ń。 在这种情况下,我根本就没有。 现在,这是一个有趣的结构。 C没有。 但是,这是超级有用。 你会看到在P组7 规范 - 每个构造。 如果你想重申所有 元素的数组,你不必 对付我,而且$ n $, + +,和所有。 你可以从字面上说,在PHP中,这 - 号,所以每个号码 我假定数字 是一个数字数组。 而当我说每个号码 作为数量,这将 自动执行我的循环, 更新,在每次迭代时,该值 里面的美元符号的数 - 一遍,又一遍,并再次行走 对我来说,数组。 因此,它只是为我们节省了代码。 没有分号,没有+ +的,没有我的, 没有n的,这是刚刚好。 但是PHP也有这个。 这是超级强大。 你会使用这个,手 在P 7。 关联数组也宣布 方括号。 但是请注意,现在的语法。 这让人想起我们看到了什么 刚才的print_r。 多少个键,作为一个小的完整性检查, 似乎有这个数组。 因此,它有两个。 我称这是一个阵列。 但是,如果它的帮助,你可以认为 此如哈希表中,或者作为 关联数组。 但它仅仅是一个不同的 类型的数组。 再次,不同的语言 有这些。 我们会看到类似的东西 在JavaScript中也是如此。 有两个键。 其一是报价引文结束,“符号”,一个是 引用引文结束“的价格。”和那些键 每个人都有一个值。 在这种情况下,符号的值是FB, Facebook和价格的值是49,26, 这是Facebook的股票 今天上午的价格。 那么,什么是有用之 关联数组。 我能有一个数字 只是索引数组 简单的方括号。 我能有美元符号 报价等于这一点。 让我真正做到这一点。 假设我不是刚刚宣布 像这个数组。 这是完全有效的, 语法。 它不丢失任何信息, 本身。 我仍然看到这个符号是FB, 而价格是49,26。 那么,为什么联想 阵列引人注目吗? 观众:你不必记得 你把东西。 扬声器1:没错,你没有 要记住,你放东西的地方。 您不必任意记得 ,股票代码支架为零, 股票价格在支架一, 这是特别危险的,如果你 改变的事情,最终。 它要好得多关联的 我们就这么叫元数据 实际的数据。 我认为,我们真正关心 这里是FB,49,26。 是元数据的符号和价格 它描述的数据,我们 真正关心。 但是,这仅仅是这么多 更容易访问。 现在,一边是什么 我们付出的代价吗? 我们一直在做这 在CS50周。 此功能必须拿出一些成本。 内存。 所以你不只是存储一个32位 整数,例如。 你存储符号/ 0,大概。 所以你使用更多的内存。 ,什么是性能 在寻找的东西 关联数组,可能吗? 这也可能是更慢。 随机访问是不错的,特别是 当你可以做二进制搜索。 但是,如果你现在实际上是在寻找不 数字,但对于字符串,这 真正下面实现 油烟机,可能作为一个哈希表, 你使用一个哈希表 单独的链接。 或者你尝试实际使用 存储的值。 因此,也许你能做到恒定的时间,但 你还是得看S-Y-M-B-ó-L, 潜在的,而不是仅仅32 看起来位。 如此反复,这些同样的想法 在此背景下备份复发。 但同样,PHP现在有一些超级 全局,事实证明, 关联数组。 我们看到刚才,$ _POST。 ,超级全局 有钥匙和值。 具体而言,键 排队什么? 钥匙在哪里在$ _POST从何而来? 只要回顾一下? 观众:姓名。 扬声器1:姓名,在哪里? 观众:[听不清] 扬声器1:名称的属性。 那么哪里,哪里他们 最初是从哪里来的? 该表格​​。 因此,如果一个HTML页面有一个表单标签, 里面是一些投入,如 检查框,文本框,下拉 菜单,其中每一个都有一个名称,那些 名称最终在$ _POST键, 坦率地说,对于这个问题,$ _GET。 如果该方法是GET,同样的想法。 它只是在不同的超级全局。 和的值,当然,来自 无论用户在他或输入 她的浏览器。 但是,还有一些其他的。 有饼干,我们将 最终回来。 但那些知道的事情,你 网页使用一些善或恶。 但是,我们会回来的。 服务器和会话,这两个 有一些特殊的实用程序。 但是,让我们来看看这个。 让我去进取,不断开拓的例子 所以MVC称为mvc0.php 代表以下。 我们介绍这个比前面 典型的,真的,让你设计 习题集7,也最终项目 行业排序 标准的方式,干净的方式。 这是很好的设计。 所以你看到了,你会 经验,在P组7,范式,排序 编程的心态,看起来 有点这样的事情。 M为控制器的型号,C, V查看。 长话短说,MVC是正中下怀 一种方法,一种使 网站,特别是,由此 把所有你的,愚蠢的短语 - 业务逻辑 - 所有您的知识产权 什么叫做一个控制器,一个文件 喜欢的index.php,否则我们将看到的, quote.php或buy.php的。 的背景下,习题集7, 模型通常包含您的数据, 任何涉及到数据库,我们会 最终看到的,和你的意见 包含你的美学 网站的HTML,CSS。 因此,我们已经看到了这一点在C 位使用。h文件。 我们真的看到了刚才用CSS, 通过分解的CSS风格化 出来的东西我们的HTML。 因此,MVC是真的只是绘制 线在沙说, 有趣的编程代码为您 网站属于什么我们称之为 控制器。 东西通常涉及到数据库 结束了在一个模型。 但是你会看到,在习题集7,我们 C和M合并,以保持它的简单。 但是,鉴于你的HTML 和美学通常会去。 所以,这是什么意思,实质呢? 好吧,让我进入我们的MVC 目录,如下所示。 你会看到更多的这些 通过参观在规范。 所以,在编码对象,我声称,这是一样, 版本CS50网站。 我们有一些HTML,像 一个大h1标签,显然。 然后,项目符号列表。 我从来没有见过一个项目符号列表 过,但没什么大不了的。 让我们快速看的源代码。 原来无序列表子弹 是开括号微升与一个或 多个列表项,李。 因此,这里是通知一个锚标记。 我们看到前那一刻。 所以这是我是如何实现 这一页。 我有两个环节,两个列表项, 无序列表,UL和结束 结果,美观,这是非常 漂亮的网站,这里的版本0。 但现在有什么有趣的是如何 是引擎盖下实现的。 让我进入gedit和打开这个 第一个例子来画一幅画。 我们来看看什么是有缺陷的, 可能在这里。 现在,如果我去到本地主机,公共, MVC中,发现了一些文件。 我要调用这些, 此刻,所有的控制器。 但是,这是一个有点滥用,因为 你会看到一切都混合 它们内部。 让我走里面的index.php。 我们看到,从字面上看,相同的HTML。 因此,即使这个文件结束 PHP,并不意味着它有 有任何PHP代码。 它可以是原始的HTML,虽然 这是一种愚蠢。 但是请注意有没有打开支架PHP 标记,除了这一点,其中,坦率地说, 只是作为评论。 但是,这是功能上并没有 甚至是有趣的。 但是,注意到这一点。 现在有趣的是什么 此页面上的变化。 让我单击讲课。 注意到的网址即将改变。 现在我在lectures.php。 让我单击为零。 现在我在week0.php现在让 在gedit,我打开这些文件。 不只是指数,但让 我开了讲座。 让我摆脱的意见 只专注于这部分。 现在我只是一个更开放, week0.php,扔掉的意见, 只是清理它。 现通知如下。 还真有几分思考,仔细思考 设计,让我们使它线 起来一样,有什么可以做 更好地在这里,你觉得呢? 我怎么做第一个星期吗? 这个怎么样。 所以这是我做了第一个星期。 我去的文件,新建,粘贴,保存, 的week1.php,然后我就在这里。 我改变 - 事情经过是这样,一到周五。 我改变了零一。 我改变之一。 好了,现在看我的文件。 可以做什么不同? 的机会在哪里,也许? 所以有机会开始 保理这个东西。 让我打开了,作为一个搅局者, 你会看到在P组7。 如果我打开了,现在版本的index.php 五本,它看起来方式 更神秘的,无可否认。 但是,现在,是什么,我会叫 控制器的控制 我的页面逻辑。 而且,您可以样的重构, 直观的,也许,发生了什么事情。 在第一行上,它的 有点神秘。 但是请注意,我需要的,喜欢与 尖锐包括一个名为 helpers.php。 然后我打电话,显然, 功能,被称为渲染,通过 两个参数。 其一是报价引文结束,头。 另一种是,什么样的 数据类型是这样的,基于 我们的语法同期? 这是一个关联数组。 具体来说,它通过在标题中 一些元数据提醒 我它是什么和它的价值。 然后,我看到一个硬编码 UL,所以一些原始的HTML。 但后来我回到了PHP模式 调用一个函数渲染。 所以,即使你从来没有使用HTML或PHP 之前,尽管这看起来 可怕的,这是为什么可能 更好的设计吗? 什么是更好地了解它, 根据推断? 观众:[听不清] 扬声器1:减多余的 有没有更多的HTML标签,没有更多的 头标签,没有更多的身体标记 在每一个该死的文件。 相反,我已经考虑了 共性和大概把它们 主题相关到一个文件中 一个头。 同样的事情近身 标签,密切HTML标签。 这可能是在这里里面 的页脚某处。 你会看到,在习题集7, 通过一个小的旅游。 那么,是什么样的吧? 有一件事,我们还没有能力 但对于实际存储数据。 还等什么,我们就可以看到 星期三,例如,​​是 老朋友Excel或数字, 允许你存储大量的 以行和列的数据。 原来你可以做什么 称为数据库编程。 狂躁而事实证明,在这之后, 我们将能够存储诸如 这一点,你会再次看到在P组 7,一大堆的用户名和 密码,其中后者是 实际上是加密的,就像他们 p设定为2的黑客版。 最终,你会实现这一点, ETRADE自己的网站 实现统称CS50金融。 最后,因为你在这里住这么晚 今天,如果你回来的这部分 校园,今天下午4:00,我们将 不仅给你的意见,在SCES 咨询洽谈会,在下午4:00 麦克斯韦 - 德沃金,我们会给你一些 Americone梦,樱桃加西亚, 巧克力布朗尼巧克力 片饼干面团,而且,当你谷歌 矮胖猴,你得到这个。 因此,所有等待4:00 PM在麦克斯韦 - 德沃金。 周三见。 扬声器2:在接下来的 CS50,RJ的睡眠。 RJ:我的部分! 哈! 哦,