2017年4月14日 星期五

忘記root的密碼怎麼辦?

直接記錄步驟

環境:windows + MySQL 5.7


  1. 開啟CMD(命令提示字元),進到MySQL資料夾(ex.C:\Program Files\MySQL\MySQL Server 5.1\bin)
  2. 如果MySQL是開啟的,請先關閉!
  3. 輸入:mysqld --skip-grant-tables  (這個指令用以啟動mysql,但會跳過權限檢查。)
  4. 重新開一個CMD(命令提示字元)
  5. 輸入mysql (進入mysql)
  6. 在mysql>模式內輸入:use mysql;   (進入mysql資料庫)
  7. UPDATE user SET authentication_string=PASSWORD("新密码") WHERE User='root';
  8. FLUSH PRIVILEGES;
  9. 離開CMD
  10. 重啟MySQL

Continue reading

詭異了!

為對面的資料庫版本比我用的舊(他是2008R2,我是2012),
所以我降成2008R2,但是在MVC使用分頁的時候,一直出現錯誤說「接近 'OFFSET' 之處的語法不正確。<br>FETCH 陳述式中的選項 NEXT 使用方式無效。

到底是哪裡出問題呢?.........


因為在MVC,程式撰寫的順序通常是Model先,所以一開始Model與資料庫連線的部分就會先完成。

所以,就是要修改這部分!
通常是在Model資料夾下的(資料庫名稱).edmx.diagram的設定

<<補圖

Continue reading

[CKeditor]圖片上傳問題

好吧,其實這篇跟CKeditor根本無關,

只是剛好搭配CKeditor時,硬是要自己寫上傳圖片的Code...

ps.如果遇到IE或火狐無法使用圖片上傳的問題(下圖↓)


記得換成新版的CKeditor........



正題來了,換好之後就天真的以為可以上傳圖片了,

然後開心的測試(下圖)



結果卻是卡在這畫面!(下圖)


原來是因為程式再判斷檔案格式的時候,沒有對應的格式。
我原本限制上傳的格式有:image/png、image/jpeg、image/gif、image/bmp、image/jpeg。

可是在IE跟火狐上傳時,PNG圖檔的檔案格式轉成image/x-png,

以至於認為不是可以上傳的格式,所以就停住了。

不過有個疑問,我本機測試IE可以,但是遠端主機是2008R2環境用IE就不能

(Chrome大師卻都吃!!!!! 但總不能規定人家只能用Chrome吧)

所以乖乖調整就是,也學到一招,下次注意囉!

網站參考:https://msdn.microsoft.com/en-us/library/ms775147(v=vs.85).aspx

Continue reading

[IIS]設定http網址轉https

客戶提說想要把Http網站自動轉向Https網站
(IIS主機上已經安裝好SSL憑證,這部分沒摸到 >_<)

設定如下:
1.先到要設定的站台 ((好像廢話@____@))



2.先將SSL設定中的<需要SSL>功能打開 (↓↓↓)















3.這時候如果輸入網址就會出現403.4的錯誤畫面 ((忘記截圖)),快去IIS內的站台內的<錯誤網頁>內新增錯誤狀態碼 ((看到編輯是因為我剛剛新增過拉 XDDD ↓↓↓↓)

















有人在這一步選擇第一個回應動作,我是選擇第三個,回應方式為302

現在還不知道差別,但會去測試看看~


狀態碼說明
403.4 :需要SSL

302:物件已移動,並告知移動過去的網址。針對表單架構驗證,這通常表示為「物件已移動」。 要求的資源暫時存於不同的 URI 底下。 由於重新導向可能偶而改變,用戶端應繼續使用要求 URI 來執行未來的要求。 除非以 Cache-Control 或 Expires 標頭欄位表示,此回應才能夠快取


以上來源
設定教學:http://blog.yam.com/yzl1218/article/103792769
狀態碼說明:http://blog.miniasp.com/post/2009/01/16/Web-developer-should-know-about-HTTP-Status-Code.aspx


以上~!

Continue reading

[IIS]設定Session的存活時間

應客戶要求,調整Session的存活時間 (她們覺得預設時間太短了,會時常進進出出)

這時候可以設定web.config內的<system.web>內容



<configuration>
     <system.web>
          <sessionState mode="InProc" timeout="60" />
     </system.web>
</configuration>

timeout="60" => 表示設定時間為60分鐘

IIS除了修改web.config還要設定<應用程式集區>

Step 1. 點入[應用程式集區] ,選擇該[應用程式集區]後,選擇[進階設定]

Step 2. 捲至最下面的「處理序模型」,展開後設定「閒置逾時(分)」為 要連線的分鐘數。設定完成後,按下「確定」即可。



其中sessionState 有三種mode,可以參考網址:https://dotblogs.com.tw/boei/2010/07/06/16414 以及 https://msdn.microsoft.com/zh-tw/library/h6bb9cz9(v=vs.85).aspx


以上資料參考 http://fanli7.net/a/bianchengyuyan/JS-HTML-WEB/20121115/254427.html 以及 http://dev.brucelulu.com/topics/173

ps.我沒有特地測試Session存活時間就是 :P

Continue reading

用IE執行上傳檔案後,回傳JSON格式來回報上傳狀況,結果卻是下載JSON ?!

日前上傳檔案後用JSON來回報上傳狀況,

在chrome瀏覽器測試,一切正常。

後來在IE上測試,卻一直變成下載JSON檔案,導致後面的js碼都不會執行 ((當時臉都囧了))



原因是因為我再回傳JSON格式的時候,回傳的 content-type 是 application/json

chrome認識他,知道這是json

但是IE還不認識,就轉成檔案下載

當時參考黑暗執行緒大大的做法 (http://blog.darkthread.net/post-2013-09-06-show-json-directly-in-ie.aspx)

修改 Registry 來讓他將application/json認識為text/html

完成後,我自己的IE可以了~

但是,同事們的IE還是不認識 ((平平都是IE 11.0.9XX阿,臉更囧了))

只能修改程式碼了,

原先的寫法:Return Content( json回傳值, application/json); //設定回傳的content-type為 application/json

修改為:Return Content( json回傳值); //預設回傳content-type 為 text/html

因為我們已經將回傳值轉成json格式,這樣js就接的到,也能處理後續的js了。

小小提醒~:P

Continue reading

[javascript]我想要修改回上一頁的紀錄 之 新增瀏覽歷史紀錄

嗶嗶嗶~

今天又收到新的指令。

當我們登出後,如果按一下「回上一頁」的按鈕 ((比如說瀏覽器上的回上頁按鈕,或是快速鍵ALT + ←))

怎麼還是會顯示已經登入的畫面?! 我不要我不要~ ((好吧,我是誇張了點))



這次做法是Logout.php   完成登出   >> 暫存頁 >> 首頁

當我們回到首頁時,按回上一頁時,會判定已經登出然後提示使用者。

其中,我們很習慣的會在Logout.php把session刪除之後,利用< location.href >轉到暫存頁,然後再利用< location.href > 轉到首頁。

其實這時候按回上頁的按鈕還是會跑回沒登出時候的畫面。 ((好像沒圖沒真相)) 

這時候其實可以在暫存頁面上利用以下語法新增歷史紀錄,讓他在按回上頁時,回到暫存頁,然後我們在那裏做手腳 ((咳咳))

<script type="text/javascript">
    var stateObj = { test: "123" };

    history.pushState(stateObj, "new Page", "" + 暫存頁網址 + "");

    window.location.href = 首頁網址;
</script>


如此一來就可以動手腳!

如果有新的解法,歡迎加入討論~ (Y)




參考網站:https://developer.mozilla.org/zh-TW/docs/Web/Guide/API/DOM/Manipulating_the_browser_history/Manipulating_the_browser_history

Continue reading

[紀錄][IIS]VS 執行F5偵錯時,出現「無法啟動IIS Express web」

剛使用完本機的阿帕契 (是Apache Server)

想回到VS2015來執行專案時,突然來這樣的訊息「無法啟動IIS Express web」

真的讓人非常挫!!!!!



後來發現是因為~~~~~~~~~~~~~~~~~~~~~

原先我都是使用VS2015來測試網站,

所以再用Wamp時,發現80 port被系統佔用,

所以我就用CMD(命令提示字元)輸入以下命令


  • net stop http
  • Sc config http start= disabled
後來阿帕契就正常運作了。

但是後來我又要回到VS繼續跑專案時,卻怎樣都不能啟動!!!!!!

方法應該有二個:

  1. 下載真的IIS Express吧 (沒試過)
  2. 開啟CMD,輸入以下命令- Sc config http start= demand & net start http
就可以了。

繼續測試,希望下次能找到更好的處理方式



參考網站:

Continue reading

[?]在網站裡面嵌入多個影片 By Youtube Iframe API

這次做的網站,是一頁橫幅網站。

裡面嵌入很多個youtube影片,然而要在影片上有一個圖片來擋著它們。

除了擋住之外,還要在影片播完之後能夠自動往下一個影片的位置移動。
(ps.但是移動這個,我就不說 XD)

這次用的是youtube的iframeAPI來產生影片,

參考網站寫法
<!DOCTYPE html>
<html>
  <body>
    <!-- 1. The <iframe> (and video player) will replace this <div> tag. -->
    <div id="player"></div>

    <script>
      // 2. This code loads the IFrame Player API code asynchronously.
      var tag = document.createElement('script');

      tag.src = "https://www.youtube.com/iframe_api";
      var firstScriptTag = document.getElementsByTagName('script')[0];
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

      // 3. This function creates an <iframe> (and YouTube player)
      //    after the API code downloads.
      var player;
      function onYouTubeIframeAPIReady() {
        player = new YT.Player('player', {
          height: '390',
          width: '640',
          videoId: 'M7lc1UVf-VE',
          events: {
            'onReady': onPlayerReady,
            'onStateChange': onPlayerStateChange
          }
        });
      }

      // 4. The API will call this function when the video player is ready.
      function onPlayerReady(event) {
        event.target.playVideo();
      }

      // 5. The API calls this function when the player's state changes.
      //    The function indicates that when playing a video (state=1),
      //    the player should play for six seconds and then stop.
      var done = false;
      function onPlayerStateChange(event) {
        if (event.data == YT.PlayerState.PLAYING && !done) {
          setTimeout(stopVideo, 6000);
          done = true;
        }
      }
      function stopVideo() {
        player.stopVideo();
      }
    </script>
  </body>
</html>
<script>的語法是在頁面上先產生 <script src="https://www.youtube.com/iframe_api"></script>
然後透過這api,它會自動呼叫 onYouTubeIframeAPIReady 這個function,然後就會產生一個影片....(對,只會產生一個)

但是我們要的是產生多個影片啊!
所以我多寫幾次就可以了....NO!((因為我試過 T^T))

其實可以用以下方式修改,
就是在寫一隻function,放在onYouTubeIframeAPIReady讓它去執行,就可以了。至於這隻fuction就看設計者的想法囉~=)




ps.感覺真隨興阿

Continue reading

[javascript] preventDefault() 方法

preventDefault() 方法阻止元素發生默認的行為

例如說我們對<a>用js方式加入click事件,

可是我們不希望他執行href

就可以在事件內加入

 preventDefault();

這樣就不會執行了。

有時候很方便使用哦~

舉例:


<script type="text/javascript">
$(document).ready(function(){
  $("a").click(function(event){
    event.preventDefault();
  });
});
</script>

<a href="http://w3school.com.cn/">W3School</a>
<p>preventDefault() 方法防止打開URL。</p>










以上資料出處:jQuery 事件 - preventDefault() 方法

Continue reading

[PHP套件]Composer的使用小說明

Composer 套件相依性管理工具應該是目前最流行之一的工具

詳細介紹部分可以看這個作者寫的:COMPOSER設計原理與基本用法

也是這篇看完才解開我的疑惑 (網海資源在太多,但是要找到看得懂的真的要花時間)

安裝教學也很多,就先不提了。直接跳到使用!

Win系統使用說明如下:
  1. 在專案資料夾下建立檔案:composer.json


    composer.json範例
    {
    "require": {
    "phpmailer/phpmailer": "~5.2.7"
    }
    }
  2. 開啟命令提示字元(CMD),切換到專案資料夾
  3. 輸入composer install執行


  4. 資料夾內多了一個composer.lock檔案以及vendor目錄。只要載入"vendor/autoload.php"就可以開始使用phpmailer了

    require 'vendor/autoload.php';
    $phpmailer = new PHPMailer;
其實不難阿~(知道原理跟由來比較重要^___^)

Continue reading