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"後,虛擬機器將不能啟動!
轉義:是指把字面上的字元,如n,改變它原來的意思:如\n
轉義字元:只能是小寫字母,轉義字元仍然只是乙個字元
有三種形式: \a, \ddd(8進製),\xhh(十六進製制)
escape:就是「轉義」的意思[計算機]. escape string 就是轉義字元(串)的意思
使用mysql_real_escape_string將會把 使用者輸入的字串內容 中的特殊字元(包括:\n,\r ,, ',",\x00,\x41之類表示的字元常量a)轉義,php-mysql程式設計中常用的主要是4個:',", \, null=\x00
在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時,
資料夾命名規則: 通常用單數,對於一些常見的,如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。
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
""和 public "-//w3c//dtd xhmtl 1.0 transtional//en"
""中的tr可以認為是: type reformulation型別重生成...
在上面的宣告中,宣告了文件的根元素是 html,它在公共識別符號被定義為 「-//w3c//dtd xhtml 1.0 strict//en」(注意,中間的內容是兩個斜線// 的 dtd 中進行了定義。瀏覽器將明白如何尋找匹配此公共識別符號的 dtd。如果找不到,瀏覽器將使用公共識別符號後面的 url 作為尋找 dtd 的位置。
安全模式的目的,是為了限制:php操作外部系統命令,如system(...),和限制一些對關鍵檔案/目錄的操作。
安全模式啟用時,命令字串會被 escapeshellcmd() 轉換。因此, echo y | echo x 會變成 echo y | echo x
php是不允許用var來定義變數的,只要有$, 就表示乙個變數的定義。 unexpected t_var ...(t_表示型別?t_object...)
雖然不能用var來定義變數,但是變數應該在使用前初始化。
print out errors(as a part of output),會「搞糟」瀏覽器輸出。you are strongly encouraged to turn this feature off.
生產性website建議用logs日誌代替display_errors=on
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
專案入門經驗雜記
前段時間參與專案除錯,現將出現的一些問題及解決方法記錄下來。好記性不如爛筆頭!某次執行乙個指令碼時,出現如下錯誤 bin bash bad interpreter no such file or directory 後來分析發現是檔案格式的問題,用vim開啟檔案,在底行模式下輸入以下命令檢視檔案格式...
裝置接入專案雜記
乙個幾年前的裝置接入平台專案,本人參與不多,因為要準備乙個類似專案,抽了兩個小時重新走讀了下核心 記錄一些知識點備忘 1 通訊基礎採用mina框架 mina服務端主要流程 a.ioaccept 監聽來自網路的請求 b.當新的連線建立時,建立session,該session對應某個ip加埠 c.資料報...
Webpack 專案優化雜記
本專案原始碼均可在 這裡 找到。之前公司的官網專案靜態檔案都是放在靜態伺服器中,這其中的弊端就不贅述了。簡單說一下 cdn 的好處 cdn 可以解決因分布 頻寬 伺服器效能帶來的訪問延遲問題,適用於站點加速 點播 直播等場景。使使用者可就近取得所需內容,解決 internet 網路擁擠的狀況,提高使...