跳到主要內容

特殊字元處理


在開發PHP專案中,總是會遇到表單輸入中文字或是特殊字元的情況。
為使用該表單的內容正確的存放到資料庫,必需經過一些處理才可能達成。
1. 首先將特殊字元加上『\』。
   EX: 'abc'是一個代號,請相關部門\人員注意。
   此段字串存在兩個特殊字元,『'』及『\』。
   使用PHP 字串函數:addslashes("'abc'是一個代號,請相關部門\人員注意。"); 將會變成
   『\'abc\'是一個代號,請相關部門\\人員注意。』
2. 一昧的使用的addslashes()函數,將會造成『\』的累加。存放此資料多次將會出現這個結果...
   『\\\\'abc\\\\'是一個代號,請相關部門\\\\\\\\人員注意。』
   為了避免此情況發生。我們可以使用get_magic_quotes_gpc()來判斷處理不必要的『\』。
   EX:
   echo get_magic_quotes_gpc();         // 1
   echo $_POST['lastname'];             // O\'reilly
   echo addslashes($_POST['lastname']); // O\\\'reilly
   if (!get_magic_quotes_gpc()) {
     $lastname = addslashes($_POST['lastname']);
   } else {
     $lastname = $_POST['lastname'];
   }
   echo $lastname; // O\'reilly
   $sql = "INSERT INTO lastnames (lastname) VALUES ('$lastname')";
   來源-php手冊

留言

這個網誌中的熱門文章

Colorbox 使用筆記

Colorbox 詳細使用說明請參考 a jQuery lightbox 情境一: 當開發RWD網頁時,我想將 lightbox 的寬度依顯示螢幕的寬度來決定。 想讓 lightbox 的內容不會太擁擠或太空洞。 <script> var deviceWidth = 0; $(function() { deviceWidth = $(window).width(); $(window).resize(function(){ deviceWidth = $(window).width(); }); }); function showMessage() { var colorboxWidth = "100%"; if (deviceWidth > 767) { colorboxWidth = "70%"; } $.colorbox({innerWidth: colorbox}); } </script> 情境二: 為了讓使用者確實閱讀完 lightbox 內的訊息,想將關閉 lightbox 的熱鍵移除。 <script> function showMessage() { $.colorbox({ escKey: false,  // 按下esc鍵關閉 Colorbox 視窗 arrowKey: false,  // 按下方向鍵關閉 Colorbox 視窗 overlayClose: false  // 在背景遮罩點一下滑鼠左鍵,關閉 Colorbox 視窗 }); } </script> 情境三: 當 Lightbox 內的訊息太長,或需要互動性質的內容,開啓 iframe 功能,互動換頁才不會讓整個網頁換掉。 <script> function showMessage() { $.colorbox({ escKey: false, arrowKey: false, o

CentOS 7 + PHP 7 無法上傳檔案

下以動作請使用root權限控制,確保指令可以正確運作。 查看 vi /etc/php.ini ;;;;;;;;;;;;;;;;;;;;;; ; File Uploads ; ;;;;;;;;;;;;;;;;;;;;;; ; Whether to allow HTTP file uploads. ; http://php.net/file-uploads file_uploads = On ; Temporary directory for HTTP uploaded files (will use system default if not ; specified). ; http://php.net/upload-tmp-dir ; upload_tmp_dir = ; Maximum allowed size for uploaded files. ; http://php.net/upload-max-filesize upload_max_filesize = 2M 此設定說明,上傳檔案時,會先將檔案存放在預設/tmp 資料夾。 查看 /tmp 的權限應該為 drwxrwxrwt. 10 root root tmp 再往下檢查 /tmp下的檔案權限 ls /tmp -all drwx------. 3 root root systemd-private-xxxxx-httpd.service-xxxxxx 將其擁有者修改為apache chown -R apache /tmp/systemd-private-xxxxx-httpd.service-xxxxxx 再將其權限設定為755 chmod -R 755 /tmp/systemd-private-xxxxx-httpd.service-xxxxxx -------------------------------------------------------------------------------- 再來我們也需檢查PHP程式指定上傳的路徑 假設上傳路徑為 /var/www/html/upload ls /var/www/html/upload drwxr-xr-x. 2 myname web upload 將其擁有者修改

CentOS 6.3 設定Samba加入AD SERVER

AD SERVER 環境     OS: windows 2003     IP: 192.168.0.10     網域名稱: Myads     網域全名:adserver.Myads.local File Server for Samba      OS: linux CentOS 6.3      主機名稱: MyFS 1. 安裝Samba及配合模組     $ yum install -y samba samba-common samba-winbind krb5-server krb5-workstation ntp     samba-winbind: 幫Samba認證AD SERVER所傳來的登入資訊。     kerberos: AD Server所使用的認識機製。 2. 維護Samba的設定檔     $ vi /etc/samba/smb.conf     [global]         workgroup = Myads  #網域名稱         realm = adserver.Myads.local  # 或是直接輸入ip位址:192.168.0.10         server string = file server    #主機說明         netbios name = MyFS    #主機名稱         security = ads    #設定安全等級,由AD Server執行帳號認證         password server = adserver.Myads.local  # 或是直接輸入ip位址:192.168.0.10 ,指定比對密碼的地點。         encrypt passwords = yes    #密碼傳輸是否先編碼過         idmap uid = 16777000-33550000    #指定AD 網域帳號的uid使用範圍         idmap gid = 16777000-33550000    #指定AD 網域帳號的gid使用範圍         winbind enum users = yes     #是否允許winbind在系統上建立網域使用者         winbind enum grou