2012年11月3日 星期六

[php]setcookie()

一. print and echo 皆是用來顯示字串在螢幕
<?php
   $variable=3;
   print("使用print 輸出 $variable<br/>");
   echo "使用print 輸出 $variable";
?>


二. 8進位16進位
<?php
  
  $nl ="<br/>";
  $a =1234;
  echo $a.$nl;
  $a =-123;
  echo $a.$nl;
  $a=0123;
  echo $a.$nl;
  $a=0x12;
  echo $a;
?>


三. 指定字串 (單引號,雙引號,heredoc)
heredoc(<<<)
<?php
  $name="test";
  echo<<<EOD
  MY NAME IS $test<br/>
  hello test
EOD;
  
?>

四. 瀏覽器上的暫存器Http Cookies
php中的setcookie()

1)setcookie()函數可以將我們的上網資訊存在Browser(client端)上,
帳號密碼的網頁正是利用這個功能.

2)cookie
  是一個變數由server送給client.
  通常是一個小的文字檔存在client端的電腦.


3)如果我們只要讓瀏覽器記錄的資料暫時記憶,則只要在setcookie()
函數後面加上時間函數.

4)This function returns TRUE on success or FALSE on failure.

ex: cookie.php
<?php
   //將"chaiyen"這個字串存入browser並以login這個變數來指定,而login這個變數存在3600秒(=1hr).
   setcookie("login","chaiyen",time()+3600);
        if(isset($_COOKIE['login']))
          echo $_COOKIE['login'];

?>








2012年11月2日 星期五

[Mysql]新增資表欄位

若有一table其table name為 book
新增欄位 : alter table 資料表名稱 add 欄位名稱 資料型態;
alter table book add bookid char(10);

2012年10月10日 星期三

[PHP]$_POST[] and $_SERVER[PHP_SELF] 使用

<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
       <title>Title here!</title>
</head>
<body>

<?php
   function display_welcome()
   {
      print("Welcome, ");
      print($_POST['user_name']);

   }
  
   function display_empty_form()
   {
        print <<<_HTML_
        <FORM method="post" action="$_SERVER[PHP_SELF]">
        Eneter your name:<input type="text" name="user_name">
        <br/>
        <input type="submit" value="submit name">
        </FORM>
_HTML_;

       
   }
  
   if($_POST['user_name'])
   {
        display_welcome();
   }
   else
   {
       display_empty_form();
   }

?>
</body>
</html>

2012年10月4日 星期四

[Java] 讀取輸入類別使用&輸出入例外IOException

InputStreamReader     ir = new InputStreamReder(System.in);
BufferedReader          br = new BufferedReader(ir);

String fileName;
try{
    
      fileName = br.readLine();
}catch(IOException e)   //輸出入處理錯誤例外
{
    System.out.println(e);
}

2012年10月3日 星期三

[Java]RuntimeException vs. Checked Exception vs. Error

例外類別架構圖

1. Runtime Exception
 程式設計師不小心或忘記產生.
 例如:
 
例外原因 例外名稱
陣列存取範圍例外ArrayIndexOutOfBoundsException
除0ArithmeticException
忘記將物件參考指定到一個物件實體NullPointerException 
指定陣列實體錯誤ArrayStoreExceptioin
類別型別轉換錯誤ClassCastException
方法參數傳遞錯誤IllegalArgumentException
宣告陣列大小為負值NativeArraySizeException
違反安全性限制SecurityException

2. Checked Exception
 外在因素所造成的,像是檔案存取錯誤,網路斷線等...
ps: 實際上並沒有Checked Exception 類別,凡不是RuntimeException 的例外,統稱Checked Exception.

常見的Checked Exception


例外原因 例外名稱
程式執行時,找不到所需的類別檔案ClassNotFoundException
找不到指定的檔案FileNotFoundException
執行緒中斷InterruptedException
輸出入處理錯誤IOException
資料庫處理錯誤SQLException

3. Error(例外處理能做的有限)
 屬於系統等級且非常嚴重的錯誤如 記憶體不足,執行緒死結
OutOfMemoryError
StackOverflowError
UnknowError
AWTError
ThreadDeadth


[101高考程式語言第四題]ExceptionQuestion




class FooException extends Exception{}
class ExceptionQuestion{
    public void aMethod()throws FooException{
       try{
          System.out.println("In aMethod");
          throw new FooException();   //產生例外
       }
       catch(FooException error)
       {
         System.out.println("in first catch");
         throw new FooException();     //例外產生不直接處理丟出
       }
       finally{
         System.out.println("Finally");    //finally 一定會執行
       }

    }
   
    public static void main(String[] args)
    {
       try{
          System.out.println("Start");   
          ExceptionQuestion x = new ExceptionQuestion();
          x.aMethod();     //發生例外了
          System.out.println("After method");
         
       }catch(FooException e1){
          System.out.println("In handler 1");
         
       }catch(Exception e2){
      
          System.out.println("In handler 2");
       }
       System.out.println("End");
   
   
   
   
    }

}

觀念
1. throws  關鍵字的使用(宣告一個方法可以丟出例外用 -> throws)
當例外產生時,不一定要立刻去處理它,可以再把例外丟給別人處理.

2. 當 try 區域的某一行程式碼產生例外之後,程式就會跳到catch區域中去執行例外處理的程式碼.

3. 有的程式碼不論有無發生例外都必需要執行的話,就放在finally區域
 




ans:

Start
In aMethod
in first catch
Finally
In handler 1
End

2012年9月25日 星期二

[Java]protected member can access by the smae package

//First.java

package abc;

public class First
{
   protected int value;
    public First()
    {
         value =10;
    }

}





//Second.java
package abc;

public class Second
{
  
    public Second(){}
    public void print()
    {
      First app = new First();
      System.out.println(app.value);
    }
   
}



//TestFS.java

import abc.First;
import abc.Second;

public class TestFS
{
   public TestFS()
   {
  
   }
  
   public static void main(String args[])
   {
      Second s = new Second();
      s.print();
   }



}

---------------------------------------------------------------
javac -d . First.java
javac -d . Second.java
javac TestFS.java
java  TestFS

2012年9月24日 星期一

[Java]產生的例外

Java  產生的例外都是一個物件(屬於Throwable類別或其子類別的副本)
Throwable 類別擁有兩個直接的子類別
1. Error  類別 : 屬於JVM 的嚴重錯誤,這種錯誤會導致程式終止執行,所以並無法使用例外處理處理這種錯誤.

2. Exception 類別:
 
  Excepton class 擁有一個子類別RuntimeException,這個類別的子類別是一些常見的例外.
 如
  ArithmeticException                          數學運算時產生的例外                        
  ArrayIndexOutOfBoundsException  陣列索引值小於0或超過陣列邊界
  ArrayStoreException                         陣列元數的型態不符
  IllegalArgumentException                 方法呼叫時參數型態不符
  NullPointerException                         物件值為null產生的例外


try{



}
catch(ExceptionType e)
{

}
finally{



}


//example 
public class DealMultiException
{
  
    public static void main(String args[])
    {
        try{
            int i;
            String args1 = args[0];  //產生超過陣列的例外
            for(i=2;i>-1;i--)
               System.out.println("計算結果:"+6/i); //Divide by zero exception
       

        }
        catch(ArithmeticException e)
        {
           //show exception info
           System.out.println("例外說明: "+e.getMessage());
           System.out.print("例外原因");
           e.printStackTrace();
        }
        catch(ArrayIndexOutOfBoundsException  e)
        {
           System.out.println("例外說明: "+e.getMessage());
           System.out.print("例外原因");
           e.printStackTrace();
        }
        finally
        {
            System.out.println("錯誤處理結束");
        }
        System.out.println("Programe end.");
   
   
    }



}


//丟出例外
public class MythrowException
{
   public static void main(String args[])
   {
           try
           {
             //取得參數字串
             int value = Integer.parseInt(args[0]);
           
             if(value==0)
               //丟出ArithmeticException 例外
               throw new ArithmeticException("值為0");

              
           }
           catch(ArithmeticException e)
           {
               //處理ArithmeticException例外
               System.out.println("例外說明:"+e.getMessage());
               System.out.print("例外原因 : ");
               e.printStackTrace();
           }
           finally
           {
              System.out.println("錯誤處理結束");
           }
   
   }



}

[MySQL]取得目前時間用法

select now();
'2012-09-24 18:14:11'


select current_date;
'2012-09-24' 

select CURRENT_TIME;
18:15:22 

select CURRENT_TIMESTAMP; 
'2012-09-24 18:16:28'

 

讓ASP.NET網站在開發除錯時期擁有WEB.CONFIG文件轉換功能

ref: https://blog.kkbruce.net/2016/09/enabling-xml-document-transforms-for-all-asp-net-web-by-develop-time.html#.XoP1KGMzbRY