文章加密

;

2018年12月9日 星期日

1.How to change your FTP Password? / 2.在遠端直接複製資料夾。 putty

https://www.youtube.com/watch?v=8uIHqfM8va4


  1. filezilla poni開給我們的是filezilla ftp client端,filezilla server則再poni那邊
  2. 從server可以設定群組,client端要共享資料夾可以設定寫入/讀取/執行的權限為本人或群組或所有,但是不能設定全組中的成員是誰。每個client可以通過遠端位置去到擁有權限的資料夾。
  3. 要從client端改client端的密碼,要用putty.exe這另外一個執行程式。
  4. 如果想進入本機的filezilla server可以從xampp裡第三個FileZilla的admin點一下進入,server address:127.0.0.1(本機),最初的port:14147,最初的password:空白






進入putty.exe後,cd進想要的資料夾,ls列出資料夾中的檔案,cp -r 欲複製的資料夾名 欲名命的資料夾名,就可以快速複製檔案!!!^^


鳥哥是linux大師,http://linux.vbird.org/,putty.exe是linux的東西

2018年12月7日 星期五

接json (即API)

Using data from JSON with JavaScript

https://www.taniarascia.com/how-to-use-json-data-with-php-or-javascript/


※with JavaScript
var request = new XMLHttpRequest();

request.open('GET', 'data.json', true);

request.onload = function () {
// begin accessing JSON data here
var data = JSON.parse(this.response); //這裡this.response是json

for (var i = 0; i < data.length; i++) {
console.log(data[i].name + ' is a ' + data[i].race + '.');
}
}

request.send();



Using jQuery
$(document).ready(function () {
$.getJSON('data.json', function (data) {
// begin accessing JSON data here
console.log(data[0].name);
});
});


via an AJAX request
$(document).ready(function () {
var data;
$.ajax({
dataType: "json",
url: 'data.json',
data: data,
success: function (data) {
// begin accessing JSON data here
console.log(data[0].name);
}
});
});


※php用json_encode回傳json陣列給ajax,當data只有一個陣列時,ajax再用data = JSON.parse(data);將字串轉乘object,之後選取其中的某個key時,可以用data.key取得。

※php用json_encode回傳json陣列給ajax,當data不只一個陣列時,用data[0].key取得第一個陣列的某key值。

如果要include php的話,幹嘛還要轉json,所以用到json就是有json檔案,php寫好要給前端的資料寫成json檔,前端再去解析json檔取得資料

https://jsnwork.kiiuo.com/archives/891/jquery-%E5%88%A9%E7%94%A8getjson%E6%88%96ajax%E7%9A%84%E6%96%B9%E6%B3%95%EF%BC%8C%E8%B7%A8%E7%B6%B2%E5%9F%9F%E5%8F%96%E5%BE%97php%E8%B3%87%E6%96%99%E7%9A%84%E5%AF%AB%E6%B3%95/

javascript 基礎與進階

《JavaScript 语言入门教程》https://wangdoc.com/javascript/

《ECMAScript 6 入门》  http://es6.ruanyifeng.com/


P.S.不要小看入門,久了沒用還會忘呢!



2018年12月6日 星期四

vue裡面用到了 stylus, css用的不多,所以編譯可以先算了

$ npm install stylus -g
Stylus,2010年产生,来自Node.js社区,主要用来给Node项目进行CSS预处理支持,在此社区之内有一定支持者,在广泛的意义上人气还完全不如SASS和LESS。


然後在vscode安裝stylus
再寫一個.styl文件
接著按照下面寫法,在cmd輸入,compile出css檔案
 $ stylus --compress < some.styl > some.css
成功~



http://eddychang.me/blog/others/91-scss-15-mins.html    SCSS 15分鐘入門

2018年12月5日 星期三

vue的Single-file components不能直接使用,必須透過 vue-loader 來解析文件,組成一個 CommonJS 模組,最後透過 module.exports 輸出一個 Vue.js 元件

https://www.zhihu.com/question/56820346   require,import区别?


也就是說需要打包 webpack 解析→組成 CommonJS 模組,module.exports 輸出成一個 Vue.js 元件。





  1. vue官網安裝 cli
    npm install -g @vue/cli 
  2. 檢查vue的版本
    vue --version
  3. npm install -g @vue/cli-init
  4. vue init webpack hello
  5. enter, enter, enter,....(大致如下)














安裝vue-cli
https://cythilya.github.io/2017/04/02/vue-cli/


你可以在 vuejs-templates 查看專案樣板:
  • webpack-simple:只包含 vue-loader 的簡單樣板。
  • webpack:在 webpack-simple 上再包含熱重載、測試、linting、CSS抽取等工具,是最完整的樣板。
  • browserify-simple:只包含 vueify 的簡單樣板。
  • browserify:在 browserify-simple 上再包含熱重載、測試、linting、CSS抽取等工具,是最完整的樣板。
  • simple:只包含一個 html 檔。
註:webpack 和 browserify 都是打包工具,用途一樣擇一使用即可。

安裝指令會透過問問題的方式讓你選擇是否安裝它提供的套件,你可以一路按 Enter 使用預設值。完成後,它會提示你如何開始:
  1. 進入專案目錄:cd hello
  2. 安裝套件:npm install 或 yarn
  3. 執行:npm run dev 或 yarn run dev
如果一切順利,會啟動一個開發用的伺服器,並且自動開啟瀏覽器顯示執行的頁面。按 Ctrl + C可以停止伺服器。

你可以查看 README.md,裡面有提到建置相關的指令,例如:
  • npm install:安裝相依套件。
  • npm run dev:運行開發用伺服器,並且在檔案變動時自動重新整理。
  • npm run build:建立最終可執行的檔案,輸出到 dist 目錄。
  • npm run unit:執行單元測試。


先切換到你想建立專案的目錄,然後執行:
vue init webpack hello
init 會建立新專案;webpack 是選擇要建立的專案樣板;hello 是專案目錄的名稱。



撰寫第一個 .vue 文件   ....看到"二:加在 MyApp.vue 中"
http://blog.tonycube.com/2017/05/vuejs-10-single-file-components.html   這個寫得很棒!

在 HTML 中,任何元素都是不分大小寫的,所以元件名稱在轉成 HTML 元素時會轉成小寫並加上分隔線,以下舉例:
  • 檔案名稱 App.vue:轉換成 <app></app>,即使用你寫成 <App></App> 或<App/>是可以,但瀏覽器看到的是仍是小寫的元素。
  • 檔案名稱 MyApp.vue:轉換成 <my-app></my-app>,這就是要注意的情況,如果元素名稱用錯,Vue.js 會出現未註冊元件的警告。注意,如果寫<MyApp></MyApp>或<MyApp/>也是可以的

結構structure說明,指令command說明
https://vuejs-templates.github.io/webpack/structure.html



eslint算是一个代码语法规范检查的工具,不同意就不会把检查语法规范的功能加进webpack编译的流程里
https://flaviocopes.com/eslint/

針對vue安裝工具https://dotblogs.com.tw/kinanson/2017/09/11/221519


查看npm某安装檔的板号
项目下局部作用域下安装的包:
Bash
npm list 包名
npm ls 包名
全局范围内安装的包:
Bash

npm list 包名 -g
npm ls 包名 -g
https://newsn.net/say/npm-version.html


小補充
1.
如果要查看某个模块的版本号,可以使用命令如下:

$ npm list grunt

projectName@projectVersion /path/to/project/folder
└── grunt@0.4.1

2.
<style> 的內容預設是全域的,如果你想讓它只在這個元件中有效(區域),可以加上 scoped 屬性,例如:
<style scoped>...</style>

2018年12月3日 星期一

php 背景執行

明明 PHP 就是常常搭配 Apache HTTP Server 透過瀏覽器直接執行的程式語言,那為什麼又需要用到背景執行呢?

這個理由是因為我把 PHP 當作像 Perl 、bash、csh 等 script 語言來使用,然而,當這個 script 需要花費大量的時間處理時,背景執行就是個不錯的選擇。




背景執行的意思,有種解釋是不用appache,利用command-line (command-line interface) 輸入php self.php 執行self.php這個檔案,讓自己的主機取代appache,這就不需要被appache的設定限制
想要背景執行,php寫法是用exce(self.php);



2018年11月29日 星期四

$_SERVER['REMOTE_ADDR'], 抓使用者IP

$_SERVER['REMOTE_ADDR'] 會抓到 真實該本人位置 或 代理伺服器Proxy 的IP。

所謂代理伺服器Proxy是A,B,C三人都從台灣各地要去瀏覽美國某網站,因為距離很遠,網路連接時會通過海纜,但海纜寬頻有限,這時中華電信就會用代理伺服器Proxy(也就是某主機)紀錄A去看完留下的網路內容,當B又要連結該內容,B不需要再通過海纜去到外國,只要從Proxy抓取該網路內容,即可。
中華電信並不一定要用代理伺服器Proxy,只是通常會這樣做。

如果距離很近/不需要用到Proxy,則就能抓到他的真實IP,或殭屍主機(駭客才會用的)。




代理快取伺服器的技術中大致分類為"正向代理(Proxy)快取"與"反向代理(Reverse Proxy)快取"兩種快取技術。

現行較為主流的反向代理技術逐漸取代了正向代理技術,主要原因就是反向代理技術由網站方加設,便能提供大眾使用者的便利,而其所主要應用的技術為 "內容傳遞網路-CDN(Content delivery network)"。




  • $_SERVER['HTTP_CLIENT_IP']这个头是有的,但是很少,不一定服务器都实现了。客户端可以伪造。
  • $_SERVER['HTTP_X_FORWARDED_FOR'] 當今多數快取伺服器的使用者為大型ISP,為了通過快取的方式來降低他們的外部頻寬,他們常常通過鼓勵或強制用戶使用代理伺服器來接入網際網路。有些情況下,這些代理伺服器是透明代理,用戶甚至不知道自己正在使用代理上網。
    它是有标准定义,用来识别经过HTTP代理后的客户端IP地址,格式:
    clientip,proxy1,proxy2。详细解释见 http://zh.wikipedia.org/wiki/X-Forwarded-For。 客户端可以伪造。算是個約定成俗的會添加在header裡的meta標籤中,雖然沒有硬性規定必須。
  • $_SERVER['REMOTE_ADDR'] 是可靠的, 它是最后一个跟你的服务器握手的IP,可能是用户的代理服务器,也可能是自己的反向代理。客户端不能伪造。
    客户端可以伪造的参数必须过滤和验证!很多人以为$_SERVER变量里的东西都是可信的,其实并不不然,$_SERVER['HTTP_CLIENT_IP']$_SERVER['HTTP_X_FORWARDED_FOR']都来自客户端请求的header里面。