從資料庫刪除垃圾ip comments

需多人都有困擾,就是wp comments一段時間會增多,留下許多垃圾留言,當然有外掛方式解決,但如果是幾萬筆資訊,那要一一刪除可不是件容易事情,幸好phpmyadmin是可以快速解決,當然就是登入後在sql頁籤中,直接打入語法(就是打該資料表標籤不符合的ip區段,全部清除)

DELETE FROM dm_comments WHERE comment_author_IP <> '106.104.1.110'

wp後台登入網址修改

只要兩個步驟,免外掛輕鬆解決問題

一,修改代碼:

一個。修改網站根目錄下的wp-login.php文件,將其重命名為wp-atomhat.php(改成你自己定義的名稱),該文件中所有出現wp-login.php的地方全部替換為為wp-atomhat.php ;

接下來打開網站根目錄下的wp-includes/general-template.php文件,其中的wp-login.php替換為wp-atomhat.php

注意$login_url=site_url(’wp-login.php’,’login’);<<這一句不要改

角至此你就可以用包含http://網站名/wp-atomhat.php登錄了。

 

二、限制wp-admin登入ip

可以先查詢自己的外部ip,並在wp-admin資料夾下新增一個.htaccess檔案,將以下語法加入,並上傳到「wp-admin」目錄下。若FTP查看不到.htaccess,可以參考這篇文章解決問題。

其中的藍色部分請換成你的IP,這段語法的判斷流程簡言之就是先封鎖有所IP,然後開放允許的IP,所以藍色部分請改成你的IP,建議可以申請一個固定IP,會必較好。如果是一個網段,可以輸入「 xx.xx.xx. 」

MySQL指令工具對照表

MySQL 語法匯整

MySQL 一直是長久以來常用的資料庫工具,也是工作上時常用到的夥伴,但常用的不外乎就是select,int,insert,update,destinct等等,往往要用的時候就得去網路查詢教學,且想要背出所有指令還有距離,所以這裡提供一則快速MySQL指令工具,提供正與mysql奮戰的夥伴朋友們,一個快速方便的使用對照表。

1. 基礎語法

操作功能 SQL 語法
說明
建立資料庫 create database 資料庫名稱;
列出所有資料庫 show databases;
刪除資料庫 drop database 資料庫名稱;
使用資料庫 use 資料庫名稱;
建立資料表 create table 資料表名稱(
sn integer auto_increment primary key,
name char(20),
mail char(50),
home char(50),
messages char(50)
);
常用資料庫資料型態
1. INT (整數)
2. CHAR (1~255字元字串)
3. VARCHAR (不超過255字元不定長度字串)
4. TEXT (不定長度字串最多65535字元)
列出資料表欄位資訊 describe 資料表名稱;
修改資料表欄位 alter table 資料表名稱
change column 原來欄位名稱
新欄位名稱資料型態;
新增資料表欄位 alter table 資料表名稱 add column 欄位名稱 資料型態;
刪除資料表欄位 alter table 資料表名稱 drop column 欄位名稱;
刪除資料表 drop table 資料表名稱;
清空資料表 truncate table 資料表名稱; 只清除資料並保留結構、欄位、索引 …
插入欄位資料 insert into 資料表名稱(欄位1,欄位2,欄位3,欄位4, …… 欄位N)
values(‘值1′,’值2′,’值3′,’值4’, …… ‘值N’);
更新修改欄位資料 update 資料表名稱 set 欄位1=’值1′,欄位2=’值2′,欄位3=’值3′,… 欄位N=’值N’
where 條件式 (例如 sn=’5′ 或 name=’塔司尼’ );
查詢單一欄位資料 select 欄位名 from 資料表名稱;
查詢多個欄位資料 select 欄位名, 欄位名, 欄位名 from 資料表名稱;
查詢欄位資料的唯一值 select distinct 欄位名 from 資料表名稱; 重複值只列一次
查詢所有欄位資料 select * from 資料表名稱;
條件式查詢 select * from 資料表名稱 where 條件式 (例如 sn=’5′); (=, <, >, !=)
條件式查詢 and select * from 資料表名稱 where 條件式1 and 條件式2;
條件式查詢 or select * from 資料表名稱 where 條件式1 or 條件式2;
查詢某一範圍 between select * from 資料表名稱 where 欄位名 between 值1 and 值2; 值為數字
查詢空值欄位的資料 select * from 資料表名稱 where 欄位名 is null not null;
查詢特定筆數資料 select * from 資料表名稱 limit 8, 10; 第9筆開始選取10筆
查詢結果遞增排序 select * from 資料表名稱 order by 欄位名;
查詢結果遞減排序 select * from 資料表名稱 order by 欄位名 desc ;
查詢比對字串列出單一欄位 select 欄位名 from 資料表名稱 where 欄位名 like ‘%字串%’;
查詢比對字串列出所有欄位 select * from 資料表名稱 where 欄位名 like ‘%字串%’;
刪除條件值資料 delete from 資料表名稱 where 條件式 (例如 sn=’5′ 或 id=’91001′ );
刪除條件值資料 delete from 資料表名稱 where 條件式1
and 條件式2;
刪除條件值資料 delete from 資料表名稱 where 條件式1 or 條件式2;
比對刪除條件值資料 delete from 資料表名稱 where 欄位名 like ‘%字串%’;

 

2. 進階語法

操作功能 SQL 語法
說明
查看正在執行的行程。 show processlist;
查看 Master 的狀態。 show master status;
查看 Slave 的狀態。 show slave status\G;

當substr遇上中文字產生亂碼問題

我們在使用substr的時候常常會有個問題,中文字串往往被截斷出現亂碼,這時候就得用個function來解決中文字問題,首先再執行序列前,先放上下面這段於php中:
function utf8_substr($StrInput,$strStart,$strLen)
{
//對字串做URL Eecode
$StrInput = mb_substr($StrInput,$strStart,mb_strlen($StrInput));
$iString = urlencode($StrInput);
$lstrResult="";
$istrLen = 0;
$k = 0;
do{
$lstrChar = substr($iString, $k, 1);
if($lstrChar == "%"){
$ThisChr = hexdec(substr($iString, $k+1, 2));
if($ThisChr >= 128){
if($istrLen+3 < $strLen){
$lstrResult .= urldecode(substr($iString, $k, 9));
$k = $k + 9;
$istrLen+=3;
}else{
$k = $k + 9;
$istrLen+=3;
}
}else{
$lstrResult .= urldecode(substr($iString, $k, 3));
$k = $k + 3;
$istrLen+=2;
}
}else{
$lstrResult .= urldecode(substr($iString, $k, 1));
$k = $k + 1;
$istrLen++;
}
}while ($k < strlen($iString) && $istrLen < $strLen);
return $lstrResult;
}

接下來你就可以快樂的用這段function,如下:

utf8_substr($你的字串, 0, -1);

如何手動更新WordPress

很多朋友在升級過程中出現很多問題,比如無法自動更新WordPress,下面就介紹下如何手動更新WordPress。

第一:備份舊版wordpress資料,包括數據庫和服務器內的文件。要有及時備份的習慣哦。

第二:從WP中文官網下載最新版WordPress,下載完畢解壓到你電腦上。

第三:刪除博客主機上的wp-includes和wp-admin目錄。

第四:將解壓在本地電腦的wordpress文件夾中除了wp-content目錄外的所有文件都上傳並覆蓋到你博客主機相對應的位置。

第五:執行升級數據庫操作,運行http://你的博客地址/wp-admin/upgrade.php,將你的博客地址填入路徑中執行升級程序。
有些版本不用升級數據庫,會提示數據庫已是最新版們無需升級。
至此升級完畢!

wordpress 連結資料庫WPDB

當我們在連結wpdb這個全域函數時,wordpress官網似乎教我們要這樣連結:

$myrows = $wpdb->get_results( "SELECT id, name FROM mytable" );

但是我似乎不能領會其中奧祕,於是改成下列方式就可以了

$mydb = new wpdb('username','password','database','localhost'); 
$rows = $mydb->get_results("select Name from my_table"); 
echo "<ul>"; 
foreach ($rows as $obj) : echo "<li>".$obj->Name."</li>"; endforeach; 
echo "</ul>";

搜尋回上一頁空白或錯誤

瀏覽很多網站後都會發生一個小問題,那就是瀏覽搜尋結果,當我點近物件後,再使用瀏覽器的回上一頁功能,就會出現空白頁面,並出現錯誤,以chrome為例,如下:

這個網頁需要使用您先前輸入的資料才能正確顯示。您可以重新傳送這些資料,不過這麼做會重複執行這個網頁先前執行過的任何動作。
重新載入這個網頁。
按下重新載入按鈕,重新提交載入網頁所需的資料。
錯誤代碼:ERR_CACHE_MISS
這通常是搜尋頁面為a.php把搜尋的結果置入b.php,當我們把搜尋結果點進去看物件的時候,就是c.php畫面,所以一般來說瀏覽器回上一頁就是進入b.php,但是問題是b.php並沒有任何值的載入,所以就會發生空白頁面與錯誤代碼:ERR_CACHE_MISS的問題,解決的方式很簡單,就是在a.php放入下一段

<?php
header(“Cache-control: private”);
?>

如此,輕鬆解決問題,當然還有人會把傳輸的值把它存成cookie/session,這也都是解決辦法喔!

判斷瀏覽器語系並指向該網址

我們要怎樣判斷瀏覽器語系並指向該網址呢?這邊的作法是透過伺服器的判斷並且擷取字串方式,如下:

<?php
error_reporting(E_ALL ^ E_NOTICE);

preg_match(‘/^([a-z\-]+)/i’, $_SERVER[‘HTTP_ACCEPT_LANGUAGE’], $matches);// 分析 HTTP_ACCEPT_LANGUAGE 的屬性
$lang = $matches[1];// 這裏只取第一語言設置 (其他可根據需要增強功能,這裏只做簡單的方法演示)

switch ($lang) {
case ‘zh-cn’ :
echo “简体”;
//header(“Location: http://host.domain.tld/path/to/”);
break;
case ‘zh-CN’ :
echo “简体”;
//header(“Location: http://host.domain.tld/path/to/”);
break;
case ‘ja-jp’ :
echo “日語!”;
//header(“Location: http://host.domain.tld/path/to/”);
break;
case ‘ja-JP’ :
echo “日語!”;
//header(“Location: http://host.domain.tld/path/to/”);
break;
case ‘zh-tw’ :
echo “繁中”;
//header(“Location: http://host.domain.tld/path/to/”);
break;
case ‘zh-TW’ :
echo “繁中”;
//header(“Location: http://host.domain.tld/path/to/”);
break;
case ‘en-us’ :
echo “英文”;
//header(“Location: http://host.domain.tld/path/to/”);
break;
default:
echo “無法判斷”;
break;
}

?>

wp權限判斷2

<?php if (current_user_can(‘level_10’)) : ?>

放你想呈現的最高權限管理者東西

<?php elseif (current_user_can(‘level_4’)) : ?>

放你想呈現的編輯者東西

<?php elseif (current_user_can(‘level_2’)) : ?>

放你想呈現的瀏覽者東西

<?php endif; ?>

第 1 頁 / 共 2 頁12