week 8A & 8B

freyasnow 2016-08-30 11:52

8A

1.PHP

  1. C语言是勺子,PHP就是铁锹。(high lever language)因为PHP有很多funtionality build in。
  2. 一开始将C语言,是因为C最适合解释计算机科学,程序基础;而且它的语法和内容也和其他程序语言相通。
  3. php hello.php将php文件传给PHP interpreter,理解和执行。不用compile会让编程阶段加速,但计算机因为不能直接读取code,所以要慢一些。(interpreter告诉计算机如何做)
  4. php文件
  5. shebang line:
    • #!/usr/bin/env php放在<?php的上面
    • sharp# bang!.告诉计算机用什么程序来跑下面的file,给了一个程序的path。 /usr/bin/env告诉计算机找到PHP interpreter来运行。
    • 这样直接./hello.php就可以了,甚至./hello就可以
    • web背景中不需要shebang line。web服务器知道将php文件传给php interpreter。(仅在command line中用)
  6. chmod
    • (change mode)让file executable
    • a+x:all users permission to execute

  • require:类似c中的include.这里的php文件factor out some functionality
  • error:exit(1);
  • print("1 share of {$stock["name"]} costs {$stock["price"]}.\n");
    variable interpolation: 变量插入在大括号中。仅在双引号中可用。单引号中大括号会显示。

2.MVC

  1. framework 或者 程序范式(paradigm)。如何建立一个PHP-based 网站。
  2. code split up into: Model,View,Controller。
    • controller:site的大脑。逻辑:loops,conditions等
    • view:外观。用户看到的
    • model:数据相关。
  3. M例:index

    index.php:通过render来加入header和footer部分(因为是重复的)
  4. 函数例:render函数
    • 参数1:要加入的php名称
    • 参数2:要传入的变量组成的array;默认为空,extract函数将这个array取出,转换成变量可以在require的php(这里是header.php)中使用。“title" => "CS50" 将变成 $title = “CS50”
    • require,插入其他php部分(比如header.php,footer.php,都是views)这些php已经被传入array中的变量。
  5. view例:header.php(通过render函数,传给了index)
    • $title已通过render传入
    • is just syntactic sugar for , where echo is merely a variant of print.
    • Function htmlspecialchars to make sure it doesn’t contain any characters or syntax that will break our site.


8B

1.SQL

  1. 四个基本命令:SELECT,INSERT,UPDATE,DELETE
  2. 存储name:长度255,最大长度 ;或者VARCHAR,但速度会慢,lose random access
  3. 变量UNIQUE,这样INSERT的时候保证没有重复的变量
  4. 每个表格最好有一个id,PRIMARY KEY。单一的。AI,编号自动增加。
  5. 两个表格的数据联合:SELECT * FROM users JOIN zips ON users.zip = zips.zip

2.SQL injection(小心)

  1. query是CS50编写的PHP代码,可以用SQL语句访问SQL
    $_是superglobal变量,表示通过request比如(GET,POST)传入的参数
  2. 如果有不好的人在密码区域键入12345' or '1' = '1,query中的语句的单引号和用户的单引号一起,就混用了。1=1永远是对的,所以这个用户总可以进入。
  3. 所以最好用?syntax,在双引号SQL语句后面,逐个键入变量。因为PHP会escape 潜在的危险字符。(通过\ backslash)

3.关于SQL的命令

  1. INSERT INTO users (username,name) VALUES(‘malan’,’David Malan’)
  2. SELECT * FROM users WHERE username = ‘Lily’

所有评论(0)

你的评论

课程全部笔记
Introduction to Computer Science

Introduction to Computer Science计算机科学导论

评分:
9 (25人评价)
时间:
时间自主
难度:
一般

京ICP证100430号    京网文[2015] 0609-239号    新出发京零字东150005号     京公网安备11010502007133号 ©2016果壳网

关于我们 新手指南