sql 语句 数据库 本身 有数据类型的区分,对于mysql的字符串默认的用单引号''来表示,因此,整个sql 语句就要用双引号来括。

如:

 $sql = "SELECT * FROM user_verify
WHERE username='". $_POST['user'].
"' AND passwd='".$_POST['pw']."' limit 1";

为了防止sql注入攻击,如畸形密码,foo用户名,密码 ' or '1'='1 'or ''='等等 这样就会形成sql注入攻击

或者说,在尽可能的情况下,用单引号,实在不行,就用双引号

虚拟机使用的设备都是虚拟设备,所以不存在给“设备”装驱动的问题

虚拟机的显卡是虚拟的svga 2, 其显示性能肯定是达不到物理显卡的效果的,这是正常的

最好不要因为显示原因,去修改*.vmx配置文件,例如,添加svga.enable3d="TRUE"后,虚拟机将不能启动!

mysql_real_escape_string包装器?

转义:是指把字面上的字符,如n,改变它原来的意思:如\n

转义字符:只能是小写字母,转义字符仍然只是一个字符

有三种形式: \a, \ddd(8进制),\xhh(十六进制)

escape:就是“转义”的意思[计算机]. escape string 就是转义字符(串)的意思

**使用mysql_real_escape_string将会把 用户输入的字符串内容 中的特殊字符(包括:\n,\r ,, ',",\x00,\x41之类表示的字符常量a)转义,php-mysql编程中常用的主要是4个:',", \, null=\x00 **

magic_quotes魔术引号

在php5.4.0+去除了魔术引号

get_magic_quotes_gpc() 获取/(不能在运行时用set去设置)http请求数据:GET/POST/COOKIE的魔术引号的设置情况

如果magic_quotes_gpc设为on,则返回1,设为off(关闭),则返回0

PHP 5.4 之前 PHP 指令 magic_quotes_gpc 默认是 on, 实际上所有的 GET、POST 和 COOKIE 数据都用被 addslashes() 了。 不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。 遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。

对外部输入的数据/变量进行转义

有三个都可以进行转义:addslashes, htmlspecialchars, htmlentities

在magic_quotes_gpc为off时,

  • 要写入数据库的数据,一般对' " \ 进行转义,避免sql语句出错,用addslashes
  • 对从留言板等提交的数据,在php程序内处理,不写入数据库,一般用 htmlspecialchars(用在:显示源代码使标签失效;防止sql注入攻击)
  • 对所有的html标记进行转义,用htmlentities.

文件夹命名规则: 通常用单数,对于一些常见的,如images,scripts,logs等,以及明显的多个确切事物的,用复数

魔术引号magic_quotes主要是针对写入数据库的sql语句,虽然名字是针对引号,但是也针对\n,\r,,等。

写文档/写程序 应多使用英文,除非确实不能避免。 而且写文档的人称通常不用人,多使用分词短语,动名词,不定式(短语)等。

关于风格/样式; Allow ASP-style <% %> tags.

asp_tags = Off

bypass:n. 旁路,旁道,绕城公路; vt.绕过,绕行;忽略

itook the bypass. i bypassed the manager and went straight to the owner.

语言结构

即(语言构造器),并不是函数,/加括号的并不一定是函数!

有: echo print, include require, isset() unset(), empty(). 所以这些都不能用于可变函数。

empty()太笼统了,要尽量避免,要用 == 或 != 或 === !== 尽可能准确地、细致地判断变量的类型

isset(): 变量在内存中根本就没有, 没有定义; 或者显式地设置为null。

不再纠结xhtml

xhtml1.0 is A Reformulation of HTML 4 in XML 1.0

dtd就是关于元素定义的规则文件。通过查看dtd文件,可以看到dtd对 每个html元素和元素属性的规定,那么写xhtml的时候,

就要按这个规定来写...

如:

表示style样式和script脚本中的代码将会被解析器解析parsed character data.
表示img的类型为空元素:

不再纠结:用xhtml transitional

"http://www.w3.org/1991/xhtml1"和 PUBLIC "-//W3C//DTD XHMTL 1.0 Transtional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"

中的TR可以认为是: type reformulation类型重生成...

在上面的声明中,声明了文档的根元素是 html,它在公共标识符被定义为 “-//W3C//DTD XHTML 1.0 Strict//EN”(注意,中间的内容是两个斜线// 的 DTD 中进行了定义。浏览器将明白如何寻找匹配此公共标识符的 DTD。如果找不到,浏览器将使用公共标识符后面的 URL 作为寻找 DTD 的位置。

php ini_set('safe_mode',on):

安全模式的目的,是为了限制:php操作外部系统命令,如system(...),和限制一些对关键文件/目录的操作。

安全模式启用时,命令字符串会被 escapeshellcmd() 转换。因此, echo y | echo x 会变成 echo y | echo x

php是不允许用var来定义变量的,只要有$, 就表示一个变量的定义。 unexpected T_VAR ...(T_表示类型?T_OBJECT...)

虽然不能用var来定义变量,但是变量应该在使用前初始化。

使用utf-8来写页面,需要做到几个一致:

  • 为什么会产生中文乱码? 是因为中文在存储和解析时,gbk/gb2312和utf-8解析字节的个数不同。

  • 页面内要规定文件的字符集 header(".... ;charset=utf-8");<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 这个是告诉浏览器显示这个页面应该使用的字符集

  • 页面文件本身要保存为utf-8:DW中,在“修改”-> “页面属性”中查看修改或CTRl+J,然后保存/另存为

  • unicode(utf-8):utf-8是unicode的一种形式,两者不是一样的:utf-8是变长的,英文是1个字节,汉字是3个字节。bom是unicode的签名...

  • (注意服务引擎的干扰)apache服务器引擎的charset也要设为utf-8,或者不设,这样apache就只输出text/html,而不会设定字符集,而浏览器根据header或meta的说明来选择字符集

  • 但是,外部来的数据,如浏览器用户输入,或system("执行客户端系统命令"),添加到html/php页面的内容的编码,将取决于客户端操作系统自身的字符集,如xp的默认字符集是gb2312,win7的默认字符集是,这样在浏览器中即使用utf-8也会是乱码。

  • 破除误解:utf-8并不”兼容”gb2312! 用utf-8编码来显示gb2312编码的中文内容时,仍然会是乱码!

print out errors(as a part of output),会“搞糟”浏览器输出。you are strongly encouraged to turn this feature off.

生产性website建议用logs日志代替display_errors=on

iconv和mb_convert_encoding

a). 两个都是字符集编码转换,都要对应的dll实体文件和php扩展配置;extension=php_iconv.dll php_mbstring.dll

b). 从转换效率来看,iconv比mb_convert_encoding更快一些,为什么,因为后者会自动检测侦查字符串的编码。

c). 从兼容性来说,iconv没有后者好,iconv要把字符串先转换编码后,再icon_substr截取中文字符,而mb_substr直接截取安全

d). iconv有一个bug,就是中文"一"从utf8转换成gb2312会失败,所以这时可以用mb来转换,后者没有这个bug

e). iconv可以添加后缀//translit,//ignore,这会处理不能被转换的字符,否则,默认的是如果不能转换当前字符,则其后面所有的内容都会被截断。

e). 从函数来说,iconv(string in_charset, string *out_charset*, string *$str*), 三个参数都是必须的,而 mb_convert_encoding(string *$str*, string *out_charset* [, string *in_charset*]) .两者的参数顺序刚好相反,为什么呢?因为mb...的参数in_charset可以缺省,而缺省只能放在最后

f). 所以, (两者都开启的情况下),一般情况下用iconv, 当"转换出错,或者不知道原字符编码”时,用mb_convert_encoding

webexam项目杂记的更多相关文章

  1. webexam项目杂记2

    strstr,stristr是返回匹配到的字符串,常规的字符串操作尽量避免使用正则, strstr是返回从匹配字符(串)开始(包括该匹配字符串)到结束的(或开头的)字符串 而如果仅仅只是判断是否包含匹 ...

  2. vue项目杂记

    vue项目杂记 文件目录结构 src main.js app.vue package.json webpack_config_dev.js 需要安装的包 1. vue cnpm i vue --sav ...

  3. [ vue ] xxxProject项目杂记

    2020.4.9 加入eCharts 2020.4.8 完成article的显示,其间碰到全局路由守卫写的有错误,导致跳转报错.已修复. 加入keep-alive功能,缓存视图数据 疑问:如果在全局组 ...

  4. Web 项目杂记(一)

    1.Tomcat 多实例部署 在Tomcat下多实例部署后,发现如下问题,采用etc/init.d/tomcat start方式无法启动,而需要采用startup.sh.查找原因发现,是因为多实例部署 ...

  5. 项目杂记(MONTHS_BETWEEN,Having ,Spool)

    1,oracle中计算年龄: select FLOOR(MONTHS_BETWEEN(SYSDATE, to_date('20130728', 'yyyymmdd')) / 12), trunc(mo ...

  6. pytorch从入门到放弃(目录)

    目录 前置基础 Pytorch从入门到放弃 推荐阅读 前置基础 Python从入门到放弃(目录) 人工智能(目录) Pytorch从入门到放弃 01_pytorch和tensorflow的区别 02_ ...

  7. 数据结构与算法-江西师范大学865(针对考研or面试)

    可以加我微信chenyoudea免费要江西师范大学865资料全套pdf 目录 第一篇 数据结构与算法(针对考研or面试) 第二篇 真题演练 第三篇 复试 第四篇 推荐阅读 第一篇 数据结构与算法(针对 ...

  8. MySQL数据库从入门到放弃(目录)

    目录 MySQL数据库从入门到放弃 推荐阅读 MySQL数据库从入门到放弃 193 数据库基础 194 初识MySQL 195 Windows安装MySQL 196 Linux安装MySQL 197 ...

  9. 从Python到水一篇AI论文(核心 or Sci三区+)

    博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https:// ...

随机推荐

  1. [CareerCup] 10.6 Find Duplicate URLs 找重复的URL链接

    10.6 You have 10 billion URLs. How do you detect the duplicate documents? In this case, assume that ...

  2. Hash中的一些概率计算

    Hash是把锋利的刀子,处理海量数据时经常用到,大家可能经常用hash,但hash的有些特点你是否想过.理解过.我们可以利用我们掌握的概率和期望的知识,来分析Hash中一些有趣的问题,比如: 平均每个 ...

  3. C#中无边框窗体移动

    拖动无边框窗体Form至桌面任何位置 首先建一个Windows应用程序将Form1的 FormBorderStyle属性设置为Noe Point mouseOff;//鼠标移动位置变量 bool le ...

  4. scrollview中套listView的问题,记录一下。

    开发一个订单详情界面,详情界面上面要显示收货地址.订单总金额等,中间部分要一个listView,下面还有一些东西 但是一个界面显示不全,肯定要scrollview,然后发现listView竟然只显示第 ...

  5. 通过爬虫代理IP快速增加博客阅读量——亲测CSDN有效!

    写在前面 题目所说的并不是目的,主要是为了更详细的了解网站的反爬机制,如果真的想要提高博客的阅读量,优质的内容必不可少. 了解网站的反爬机制 一般网站从以下几个方面反爬虫: 1. 通过Headers反 ...

  6. 父div高度和宽度的应用

    这是我自己在仿腾讯首页时遇到的布局问题,在此记录,如果有错,欢迎指正. 首先是对齐问题,可以把父div的高度设置为0,然后调整padding值,这样可以批量调整子div们和其他父div的相对高度. 这 ...

  7. 一句话概括下spring框架及spring cloud框架主要组件

    作为java的屌丝,基本上跟上spring屌丝的步伐,也就跟上了主流技术.spring 顶级项目:Spring IO platform:用于系统部署,是可集成的,构建现代化应用的版本平台,具体来说当你 ...

  8. “耐撕”团队 2016.03.24 站立会议

    时间: 2016.03.22  17:00-17:30     18:30-19:00 成员: Z 郑蕊 * 组长 (博客:http://www.cnblogs.com/zhengrui0452/), ...

  9. 在Eclipse 中下载 开源中国码云上的项目

    功能:使用开源中国代码托管(码云)来托管代码,本地的使用Eclipse,该如何配置? 步骤: 1/  在码云 上建一个工程,(为了访问托管工程的权限) 2/  在eclipse中打开名字叫做“Git ...

  10. linux 通过哪个命令可以查看某个服务及其端口、进程号

    netstat/lsof netstat命令用于显示与IP.TCP.UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况 -a 显示一个所有的有效连接信息列表(包括已建立的连接,也 ...