這篇是申請類型的最後一篇,所以挑上泡菜篇!!  NT的強大功能在此篇將會發揮的淋漓盡緻喔~

因為有點難度,所以教學會帶入部份空間特性的解說,讓大家可更加了解為何要這樣下指令~


首先給大家建立一個觀念,泡菜空間都是那個樣,只要一個弄懂,其它的就全通了!! 

啃泡菜要把握三個大原則: 先弄基本帳號、再搞資料庫、接著等開通ftp …

雖然過程中會遇到看不懂的泡菜字,但網頁語言卻是世界通用的!! 欄位名稱透漏出的訊息、翻譯網頁(軟體)的輔助,都是讓我們可以練成神功的神兵利器喔~!

  

屁了一段話後,接著就開始了。前面還是一樣,先確保可以正確進到申請頁面~ (這裏判斷字串要取NT能辨視的,即中英數!! 其它啥阿米巴字的都不行喔!! )

Label:mireene
go:http://mireene.com/member.php?mode=join
FindWebText:E-mail
IfNo:mireene

 

 

如上圖,雖然字看不懂,但不影響我們判斷的方式!! 除了 SELECT 外,就是 INPUT 裏的 TEXT 、RADIO 、CHECKBOX 而已~ ( 看不懂的人回到實戰教學第一篇重修)

那一樣二話不說就切換到【瀏覽器】,KEY入申請頁連結後,接著切換至【DEBUG】,工作區選 瀏覽區,顯示類別選 INPUT ,再按自動產生填入欄位命令~

好,同以前的作法,所有的欄位資訊已全到手囉~  

現在難看的泡菜字已轉成英文字了!! 這就是我前面提到的【網頁語言是世界通用的】。底下的圖 便是我對照英文單字大概猜一下的欄位意義~

 

由上面,我們發現了自動生成的裏面,竟有重覆出現的欄名,分別是 user_id 與 password ~ ( 直接翻就是帳號與密碼)

但這沒意義呀,同一頁面裏不可能要我們連續輸入兩次帳號呀!!  所以我們再回頭去看申請頁面來找原因~

原來是申請頁面那,還有另一個表單是用來登入用的。所以也會有帳號、密碼的欄位,而同一空間的設計,自然名稱都會一致~

而自動生成是取頁面裏所有的INPUT,所以才會抓到兩個不同表單裏的同樣欄位~

另外也注意到了還有個CHECKBOX 在那,這應該就是指令 ClickCheckBox:auto_id,1  吧!! 所以這欄位也不是我們需要的~

也就是說,自動生成的前三行指令都用不到!! 

好,了解重覆的原由後,那就可以開始來寫了!!

 

首先是姓名與英文姓名~

先挑軟的看,英文姓名粉容易,直接調用資料性指令就好~

麻煩的是姓名的地方! 因為這是泡菜空間,我們必需輸入韓文姓名才行~!

而NT只支援中英數字,所以我們無法直接將韓文姓名建立在GDL檔上~

只能換個方式,改用Unicode 跳脫序列的格式來儲存!!要輸出時再轉換回來~ 

 

上面這個網頁可讓你建立Unicode 跳脫序列的格式,有需要的人自已玩玩~

韓文的隨機姓名我已建好,讓大家可以直接以函數的方式來調用~

附件:mireene.fun

使用方式粉容易,只要開啟NT後,在切換至【函數】標籤,然後載入此教學最後附上的mireene.fun 即可~

再來指令的下法為   call:KR_Name(rad)   ,程式便會將產生的隨機韓國姓名存於 ***ScriptOut*** 中~

所以姓名的寫法就是

call:KR_Name(rad)
SetFieldValue:name=***ScriptOut***

 

接下來要看的是註冊ID與密碼

前面已交待過,因為註冊、密碼的欄位名有重覆的,所以我們就不能再用 SetFieldValue 來填,不然會填到別的格子去~

此時要改用 IndexInput 指令~     【03-網頁控制類 】

不過 re_password 這格就沒差,一樣用   SetFieldValue   【03-網頁控制類 】

RandomizeText:***Variable1***,anxanxanxxax
IndexInput:10,***Variable1***
RandomizeText:***Variable2***,anxanxan
IndexInput:11,***Variable2***
SetFieldValue:re_password=***Variable2***

好,順利把註冊ID 填上後,它旁邊還有個按鈕蠻礙眼的  ------> 

根據我啃泡菜空間多年的經驗,這個鈕叫作查核鈕!! 專門用來檢驗你輸入的帳號名稱是否已經有人使用過了~

那我們就來試著手動按看看~  果然,跳出一個小的視窗來了~! 

因為我們是用手動按,所以NT並沒有將這個小窗給抓進執行窗中~ (用逐步執行也不會抓,一定要是在連續執行的狀況下才行,所以若改用 Start Run in Point 是會抓的 )

若在執行的狀態中以指令來按下這個鈕後,那NT就會自動把焦點轉到子窗中,在下面的訊息列則會顯示為 Active Web:2,此時所有的指令都將針對子窗來動作~

好,了解這鈕的用途後,那我們再來看看這個鈕要如何按~

當然還是看一下自動生成裏有沒有,不過一定沒這好康的,這種鈕一看就不像是INPUT 的鈕~

那我們再把游標移到這個鈕上看看,說不定它會有連結可點~   賓果!!

那就直接用   clicklink:member.php?mode=join#c     【03-網頁控制類 】

好,再來就是看看這個子窗是長成怎樣子的~   如下圖,一種是此ID 可用,另一種是此ID 已被註冊過了~

所以這裏我們要設計一個偵錯來判斷是否需重新產生註冊ID~

那一樣用老招,讓DEBUG 來自動產生指令吧~

因為自動生成只取 TYPE=submit 的鈕而已,所以上圖中的第一個鈕不會列出!! 所以我們 自已改用 DEBUG 選INPUT 來看,就會看到 type=button 的第一個鈕了!!

不過麻煩事來了,這兩個鈕都是沒Name ,且value 是泡菜字…  所以想用 ClickButton 來按是不可能了!

不過第二個鈕倒是容易,因為它的type 是submit ,所以它百分百是位於某個FORM內!  我們只要取得那個表單名,就可以改用PostForm 來送出即可~  【03-網頁控制類 】

所以我們改切換到FORM來看,FORM 名馬上就到手囉!!

接下來,就是要來解決第一個鈕了~

原始檔如下:

<TD align=middle height=30><INPUT onclick="javascript:replace_id('adfiew3')" type=button value="이 아이디로 신청하기">

所以解決方式除了自已下Script 外,要用指令是沒法度了!

這裏有兩種方式可以搞定它~ (原理請看教學的附錄一)

runscriptnext:document.getElementsByTagName('INPUT')[0].click()
runscriptnext:onclick=replace_id('***Variable1***')

好,這個小視窗要用的指令都會了後,接下來就可以開始來設計了!!

//---按下註冊ID查核鈕
clicklink:member.php?mode=join#c
Label:check-id
sleep()
FindHtmlText:javascript:replace_id
IFYes:id-ok
RandomizeText:***Variable1***,anxanxanxxax
SetFieldValue:user_id=***Variable1***
postform:write_add
golabel:check-id
Label:id-ok
runscriptnext:document.getElementsByTagName('INPUT')[0].click() 

上面的流程應該粉容易懂的 !! 先用網頁原碼來判斷此帳號是否可用,若可用就按下第一個鈕,不能的話則再重新產生一個註冊ID ,再來判斷~

 

接下來就是信箱與信箱域名了!

因為前面有寫過Xuite 的申請,所以這裏就用Xuite 來當申請信箱~

所以我們就把申請到的Xuite 帳號放入郵件清單裏~ (格式可以是 ftp://ID:PW@xuite.net  或是 ID:PW@xuite.net )

再利用 GetMail() 來取出~  【00-清單處理類】

不過因為 ***MailUrl*** 會含有郵件域名,所以我們再利用 ReplaceVariable  來把域名的部份,用空白取代掉~  【07-變數與其應用類 】

GetMail()
IFNo:end
ReplaceVariable:***MailUrl***,@xuite.net,,***Variable50***
SetFieldValue:email1=***Variable50***
SetFieldValue:email_domain=xuite.net

填好後,又看到一個像剛才查驗註冊ID 的鈕了~ 

照剛才的模式來判斷,沒錯!! 這次該是在查驗郵件帳號是否有被使用在申請帳號上了~

好吧!就只好再來按它了~

不過這次沒這好康了,它不在INPUT中,又不是個連結鈕… 看來是兇多吉少了,肯定要再用Script 的… 不管如何,還是先開原始檔來看看這個鈕是如何寫的~

說到這,原始檔落落長又盡是些蝌蚪文的,要如何才能快速找到關於這個鈕的部份呢?

粉容易的,只要將游標移到這個鈕上,然後用右鍵看內容,就會得到相關訊息,再來就可以用這些訊息來當關鍵字搜尋就好!

 

<img src="/data/templates/newmir0605/images/member/id_check_btn.gif" align="absmiddle" border="0" onclick="javascript:check_overlap('popck.php', 'email_check', 300, 200);" class="pointer">

所以我們會找以上到這段…

這裏用指令也是無解了,只能下Script ~

runscript:check_overlap('popck.php', 'email_check', 300, 200)

接著再來看它跳出的小窗會是怎樣的情況!

這裏的判斷方式與剛才註冊ID 是完全一模一樣,所以我就不再重覆講了~

GetMail()
IFNo:end
ReplaceVariable:***MailUrl***,@xuite.net,,***Variable50***
SetFieldValue:email1=***Variable50***
SetFieldValue:email_domain=xuite.net
//---按下Mail查核鈕
runscript:check_overlap('popck.php', 'email_check', 300, 200)
Label:check-mail
sleep()
FindHtmlText:javascript:replace_id
IFYes:mail-ok
GetMail()
SetFieldValue:email=***Mail***
postform:write_add
golabel:check-mail
Label:mail-ok
runscriptnext:document.getElementsByTagName('INPUT')[0].click()

 

再來就是區碼與地址的部份!

這部份算是韓國空間的一大特色!!

它會先讓你輸入地區,然後自動幫你把相關地址列出,再自動幫你把韓國地址轉成英文地址… 神奇吧~

因為這兩個欄位是韓空固定的模式,所以不用再多試,直接就來解決它~

首先,要先按那個鈕~ 

與上面一樣的方式,就會找到此段原始碼~

<img src="/data/templates/newmir0605/images/member/upyun_search_btn.gif" onclick="javascript:zip_search('zip_search.php','home');" class="pointer" border="0">

解法一樣,就是下Script ~

runscript:zip_search('zip_search.php','home')

接下來它會跳出一個小窗,讓你可以填上地區~

一樣用老招,DEBUG來分析一下~

那個按鈕是個圖片鈕,所以可以用 clickimage:address_img02.gif  來搞定它!   【03-網頁控制類 】

再來看要輸入地區的那格~  這個與姓名是一樣的,要填上韓文是不可能的,所以我又幫大家把地區建入之前的那個函數中了~

所以我們一樣可以直接用  call:KR_area(rad)   的方式來產生! (函數檔粉方便的,可以同時壓入多個自定函數)

runscript:zip_search('zip_search.php','home')
call:KR_area(rad)
SetFieldValue:address=***ScriptOut***
clickimage:address_img02.gif

再來,它就會列出所有符合的地址了~

接著我們就是要隨機來按其中一個~

這裏只有利用Script 才能處理隨機~ 看不懂請參考附錄一

runscript:var rad=parseInt(Math.random()*(document.links.length-1));document.links[rad].click();

然後就會轉到下面這個頁面,它的意思是問你要不要再給其它條件~

我們當然不要找自已麻煩,直接按下第一個連結就好~

我用粉紅色標記的是個連結,原始碼如下~

<A href="javascript:zipsearch.submit()"><FONT color=black>다음으로</A>

所以我們直接用按的就好~   【03-網頁控制類 】

clicklink:zipsearch.submit()

再來頁面就會跳到最後的確認頁了~ ( 真是煩死人了 ~_~ )

這個看游標就知只是個純連結~ (因為底線都跑出來了 )

原始碼如下:

<A href="javascript:go_submit();"><B>위와같은 주소로 우편번호를 입력합니다</B></A>

所以我們一樣直接用按的就好~    【03-網頁控制類 】

clicklinknext:go_submit()

至此,你會發現頁面裏已自動填上了區碼、韓文地址、英文地址了~ 

//--自動產生區碼、韓國地址、英文地址
runscript:zip_search('zip_search.php','home',400,300)
call:KR_area(rad)
SetFieldValue:address=***ScriptOut***
clickimage:address_img02.gif
runscript:var rad=parseInt(Math.random()*(document.links.length-1));document.links[rad].click();
clicklink:zipsearch.submit()
clicklinknext:go_submit()

 

好! 最麻煩的地方已搞定了,再來這個頁面就剩下  家用電話與手機 了~

這部份的格式是固定的,我已把區碼與系統碼都整理出來了~~

家用電話就是   區碼-四位亂數-四位亂數   

手機號碼就是   系統碼-四位亂數-四位亂數

SpotStrToVariable:02|031|032|033|041|042|051|052|053|054|055|061|062|063|064,***Variable10***
RandomizeNumber:***Variable11***,3000,5000
RandomizeNumber:***Variable12***,3000,5000
SetFieldValue:home_phone=***Variable10***-***Variable11***-***Variable12***
SpotStrToVariable:010|011|013|016|017|018|019,***Variable13***
RandomizeNumber:***Variable14***,3000,5000
RandomizeNumber:***Variable15***,3000,5000
SetFieldValue:mobile_phone=***Variable13***-***Variable14***-***Variable15***

 

至此,所有打* 的項目就全都搞定了!!

接來下就是要來按送出鈕了!!      

而我們在自動生成裏沒看到關於clickbutton的訊息,所以它可能是 type=button  !! 但又不像,因為這個鈕長的太花俏了…  XD

那還有第二種可能,也就是type=image 的!  若是這種的就可以用  clickimage 來按,不用另外寫script~ 【03-網頁控制類 】

一樣將游標移到這個鈕上,然後用右鍵看內容,就會得到這個圖片名為  member_join_btn.gif  !

嘿嘿,這個就有囉~  在最後一行~

clickimage:mber/member_join_btn.gif

不過這裏要請大家注意一下,泡菜空間最喜歡在送出後,跳出一個對話框來讓你按!!

所以不管它會不會跳,我們還是先用 AutoCloseMessage:1  來預備一下的好~     【04-訊息與子視窗處理類】

AutoCloseMessage:1
clickimage:mber/member_join_btn.gif
AutoCloseMessage:0

此頁面的所有指令如下:

Label:mireene
go:http://mireene.com/member.php?mode=join
FindWebText:E-mail
IfNo:mireene
ClickCheckBox:agree_stip,1
//---從泡菜函數中隨機生成韓國名字
call:KR_Name(rad)
SetFieldValue:name=***ScriptOut***
SetFieldValue:ename=Williams Brandon
RandomizeText:***Variable1***,anxanxanxxax
IndexInput:10,***Variable1***
//---密碼
RandomizeText:***Variable2***,anxanxan
IndexInput:11,***Variable2***
SetFieldValue:re_password=***Variable2***
//---按下註冊ID查核鈕
clicklink:member.php?mode=join#c
Label:check-id
sleep()
FindHtmlText:javascript:replace_id
IFYes:id-ok
RandomizeText:***Variable1***,anxanxanxxax
SetFieldValue:user_id=***Variable1***
postform:write_add
golabel:check-id
Label:id-ok
runscriptnext:document.getElementsByTagName('INPUT')[0].click() 
//--- 郵件名與郵件域名
GetMail()
IFNo:end
ReplaceVariable:***MailUrl***,@xuite.net,,***Variable50***
SetFieldValue:email1=***Variable50***
SetFieldValue:email_domain=xuite.net
//---按下Mail查核鈕
runscript:check_overlap('popck.php', 'email_check', 300, 200)
Label:check-mail
sleep()
FindHtmlText:javascript:replace_id
IFYes:mail-ok
GetMail()
SetFieldValue:email=***Mail***
postform:write_add
golabel:check-mail
Label:mail-ok
runscriptnext:document.getElementsByTagName('INPUT')[0].click()
//---自動產生區碼、韓國地址、英文地址
runscript:zip_search('zip_search.php','home',400,300)
call:KR_area(rad)
SetFieldValue:address=***ScriptOut***
clickimage:address_img02.gif
runscript:var rad=parseInt(Math.random()*(document.links.length-1));document.links[rad].click();
clicklink:zipsearch.submit()
clicklinknext:go_submit()
//---家用電話與手機號碼
SpotStrToVariable:02|031|032|033|041|042|051|052|053|054|055|061|062|063|064,***Variable10***
RandomizeNumber:***Variable11***,3000,5000
RandomizeNumber:***Variable12***,3000,5000
SetFieldValue:home_phone=***Variable10***-***Variable11***-***Variable12***
SpotStrToVariable:010|011|013|016|017|018|019,***Variable13***
RandomizeNumber:***Variable14***,3000,5000
RandomizeNumber:***Variable15***,3000,5000
SetFieldValue:mobile_phone=***Variable13***-***Variable14***-***Variable15***
//---送出
AutoCloseMessage:1
clickimage:mber/member_join_btn.gif
AutoCloseMessage:0

 

搞定送出後,再來就是要判斷是否申請成功了~

如果正確的話,就會看到如下圖所示,但全是泡菜字,所以我們要下的判斷就變成要用源始碼~

剛才若申請成功的話,應該會有已登入的連結存在。所以我們改用 FindHtmlText  來處理偵錯   【03-網頁控制類 】

FindHtmlText:?mode=doLogout
IFNo:begin

至此,完成了泡菜空間的第一步,搞到了基本帳號囉!!

那就快來把它輸出記錄一下~

output:ftp://***Variable1***:***Variable2***@mireene(基本帳號)

此時我們可以去剛放的信箱收信看看,應該會收到第一封信~

 

接下來,就是要利用這個基本帳號,來申請資料庫了!!

一樣的問題!! 泡菜字我看不懂@@

所以我會把游標亂指,每個都找看看有沒類似 free host  、join 的字眼,那就應該是囉~

如上圖,我指的地方,雖然我看不懂泡菜字,但以英文來看,應該是八九不離十了!!

clicklink:free_hosting/join_check

接著我們便會到達如下的畫面~

那個 checkbox 一看就粉軟,不用鳥它。重點是那個橘色的鈕…

一樣用老招,DEBUG來分析一下~

果然只有一個  ClickCheckBox:stipOk,1   【03-網頁控制類 】

所以又要用script 了~

一樣將游標移到這個鈕上,然後用右鍵看內容,就會得到這個圖片名為 noch_call_btn_02.gif  

所以搜一下原始檔後會找到下面的部份~

<IMG class=pointer onclick=javascript:yakgwan_check(); src="/data/templates/newmir0605/page/images/freehost/noch_hosting/noch_call_btn_02.gif" border=0>

所以要寫成

runscript:yakgwan_check()

送出後,正常會是如下圖中的畫面! 粉紅色標記的地方是你的基本帳號資料!

若你沒看到的是跳出一個對話框(裏面是泡菜字)的畫面,然後你按下確定後,還是回到原來的畫面。

那就是IP 的問題!! 因為泡菜空間常會限制IP,所以我們在送出此頁的部份得重新設計才行!!

Label:get-dbaccount
AutoCloseMessage:1
runscript:yakgwan_check()
AutoCloseMessage:0
FindWebText:HDD - 50MB
IFYes:dbaccount-page
SetWebProxy:125.244.73.194:8080
golabel:get-dbaccount
Label:dbaccount-page

流程是判斷是否正確到達頁面,若無則加掛proxy再來跑看看~  (這裏我列的proxy 是3/15日掃到的,你別用這組呀,肯定掛的喔)

從上面來看,這個頁面應該粉好處理。就只有 INPUT 裏的 RADIO 與 TEXT 而已~

那我們還是用老招,開DEBUG 來分析,自動成生指令!!

如下所示:

粉紅色標記的那三行不用鳥它,因為那是我們的基本帳號資料~

再來就是RADIO ,取一行來用就好~

接著是 account_addr ,這個我是猜要申請的次網域名稱,但還是實際跑一下會比較準~

不過,我們發現在那格的旁邊又有個鈕了!! 

唉… 泡菜真是粉麻煩,一天到晚都在搞這種查驗的…

這裏要找按下這鈕的方式,與前面都一樣,我就不再多講,直接列答案!

runscript:acc_check('popck.php','free_acc',500,300)

再來就是判斷這個小窗會有哪些情況!

如上圖所示,方法一樣~

//---DB帳號的申請查驗
runscript:acc_check('popck.php','free_acc',500,300)
Label:ckeck-account
SetFieldValue:account_id=***Variable1***
postform:write_add
FindHtmlText:javascript:replace_id
IFYes:account-ok
RandomizeText:***Variable1***,anxanxanxxax
golabel:ckeck-account
Label:account-ok
clicklinknext:replace_id('

接著,你會發現,當我們填上的  account_addr 通過查驗後,空間會自動幫我們把  accountId、dbuser、dbname、mysql、ftp、traffic 都填上與 account_addr 相同的值!

這下子爽了! 泡菜空間真是太上道了啦! 

好,這樣一下子就只剩下三格了!

其中那兩格分別是 accountpass  與 dbpass , 這裏需注意兩者不能設一樣! (可從原始碼裏看到這兩格的限制)

而 accountpass 會是ftp的密碼,所以我們還是用基本帳號的密碼來代,比較好記錄!

至於  dbpass 的話,就隨便再補一個固定的字串給它就好~ 比如這裏我是用 ***Variable2***再加一個a

SetFieldValue:accountpass=***Variable2***
SetFieldValue:dbpass=***Variable2***a

好,終於就剩最後一格了!   

這格一看就是叫你輸入泡菜字…

那首先你得先去控制台裏新增加入韓文輸入法 !!  ( XP是系統中的[文字服務和輸入語言] 、 win2k 則是在[文字服務]  )

再來,打泡菜字有個原則,拆字是由上而下、由左而右 !! 然後對照下面的表下去拆就行囉~

 

例如教學頁的那個認証圖~ 

클    <--- ZMF 

리    <--- FL

닉    <--- SLR 

好,這個頁面終於也全搞定了!

 

下面是此頁面的所有語法:

//---DB帳號的申請查驗
runscript:acc_check('popck.php','free_acc',500,300)
Label:ckeck-account
SetFieldValue:account_id=***Variable1***
postform:write_add
FindHtmlText:javascript:replace_id
IFYes:account-ok
RandomizeText:***Variable1***,anxanxanxxax
golabel:ckeck-account
Label:account-ok
clicklinknext:replace_id('
SetFieldValue:accountpass=***Variable2***
SetFieldValue:dbpass=***Variable2***a
SetTextFocus:phpMyAdmin,+100
runscriptnext:alert('請輸入上圖中泡菜文字,然後再按"往下執行"')
stop()
AutoCloseMessage:1
clickimage:noch_hosting_buy_btn.gif
AutoCloseMessage:0

接著,你就會看到如下圖的畫面!

教學至此,就算完成囉~!

接下來就是再去剛才的信箱收第二封信,而信裏會有申請相關的內容,與一個粉重要的啟用連結!! (我郵件是用MD 架的,信馬上收到,但有的空間就要幾個小時不等)

手動按下那個連結後,就會看到如下的畫面~

到這裏,才算完成整個申請的程序!!

不過…  還要有第三封信才會開通FTP 、DB  ~

這裏就不屬於教學的範圍了,請USER 自已研究~

第三封信會長成下面這個樣子!

Free Web Hosting