愿你出走半生,归来仍是少年

将MySQL数据库中的时间戳字段内容批量转换为日期格式

王亚新阅读(250)

需求:将数据库中某个表里的某个原本存储为时间戳的字段内容转换为时间格式的内容
例如:数据表user中有4个字段,分别为:id, user_id, name,pay_time,当前显示形式为:

pay_time字段为int类型,存储的为11位时间戳信息,需要改为如:2020-11-12 14:00:00 的形式,如果直接修改字段类型,该字段内所有信息都将变为0000-00-00 00:00:00:00,如图:

因此必须通过合理转换才能够保持原来的数据正常使用,所用函数为:

FROM_UNIXTIME('你的时间戳字段','%Y-%m-%d %H:%i:%s')

其中后面的日期为可选项,如果不设置转换后的时间格式形如:2020-11-12 12:08:25
使用方法如下(即将需要替换的字段通过函数转换一下):

SELECT id,  user_id, name, FROM_UNIXTIME(pay_time) from user;

这样就生成了新的内容,复制为SQL语句,备用;
然后将数据表user中的pay_time字段类型由原来的int类型更改为timestamp类型,清空或截断数据库内容;
再将执行后生成的SQL语句重新导入回去即可!

宝塔安装禾匠商城V4小程序无法添加商品BUG的处理

王亚新阅读(201)

错误描述:
禾匠商城V4小程序无法添加商品的问题,只提示商品本地保存成功,但是提交按钮一直转圈,刷新商品列表显示未添加成功。

验证:通过测试,本地没问题,安装到宝塔系统里面的环境中就出现问题,因此可以排除程序本身的问题,怀疑是服务器的配置问题

解决方法:
经过检测,是因为宝塔系统安装了“Nginx免费防火墙”这个插件,防火墙将部分操作进行了屏蔽

方法一:关闭服务器的防火墙;

方法二:把对应站点下的防火墙规则调整一下,把屏蔽操作部分关掉即可
1、找到“Nginx免费防火墙”—“设置”—“站点配置”—找到对应站点—设置;
2、找到“POST过滤”项,打开右侧的“规则”;

3、选择select.+(from|limit)规则,取消右侧的勾选,完成!

阿里云免费DV SSL证书申请并在AMH5.3+LAMP/Nginx环境下配置SSL证书的方法详解

王亚新阅读(10420)

微信小程序、苹果的appstore相继强制https协议才可以使用,同时谷歌搜索引擎即将把所有未使用https协议的页面视为不安全页面,因此安装SSL证书已经成为互联网发展的一种趋势了。下面就详细说明一下如何申请免费的阿里云DV SSL证书并将证书安装在AMH5.3控制面板下的LAMP或Nginx环境下:

1、首先当然要申请一个证书,这里我用的是阿里云的免费型DV SSL证书,考虑到两个因素:一是阿里云毕竟是大品牌,产品相对来讲稳定性比较高;二是通用性更强,遇到文件容易找到解决方法。

购买地址:https://common-buy.aliyun.com/?commodityCode=cas#/buy 选择免费型DV SSL,如图:

阿里云免费DV SSL证书

每个帐号可以最多申请20个,建议用一个申请一个,这个便于管理。

2、选择好后点击购买,当然是免费的不用花钱。购买成功后进入控制台,点击左侧的“证书服务”进入如图:

点击右侧的“补全”,填入绑定的域名(域名一旦确定无法更改),然后点击下一步填写个人信息,通常几分钟就可以通过。需要注意的是域名验证类型里面,如果你是用的非windows系统,并且没有使用阿里云的OSS服务的话,建议使用文件验证方式,比较快。

3、然后继续下一步,选择“系统生成CSR”即可,然后点击右侧的创建,如图:

然后提交审核即可,通常几分钟就可以通过了。

4、通过后的证书如下图的第二项,点击右侧的下载,下载证书文件备用。

注意:Apache和Nginx环境都是下载Nginx的证书文件,阿里云中的帮助中有说明,实际上内容都是一样的,Apache文件包中多出来的两个文件没有用处。

5、登录AMH,安装amssl-1.5插件,如果没安装在软件商店中下载并安装。进入证书管理如图:

创建证书如下图,证书名称建议使用域名,便于管理:

7、创建完成后如下图,首先要配置,然后再应用:

8、划重点:配置SSL证书,这里就用到了刚才阿里云下载的那个证书文件包,里面有两个文件,一个是.key格式的文件,是私钥文件;另外一个是.pem格式的文件,是CRT证书文件,其中包含了CSR签名,将那个压缩包解压。

首先创建Key私钥,我们选择“直接输入数据”方式,将压缩包中的.key文件用记事本打开并复制到文本框中,点击“创建私钥”完成创建,如下图:

接下来直接跳过第二步,进行第三步,创建 CRT 证书,方法同上,将.pem文件内容复制到下方文本框内,点击“完成创建证书”,如图:

 

9、启用证书:上一步提交后会返回到证书列表页面,然后找到你刚刚添加的那条证书,点击右边的“应用”链接,如图:

这时下边就会列出你刚才创建的主机域名,点击右侧的“应用”链接启用,如图:

OK,这样整个创建过程就结束了,打开网站看一下,是不是很完美了?如下图,绿色小锁已经出来啦!

需要强调一点:如果全部配置完成后还没有出现绿色的小锁,而是灰色或者未出现,但是https协议的地址已经可以正常访问了,通常原因是页面内还有素材或链接未全部使用https,调整一下你的代码即可。

附:将http://地址全部自动跳转到https://地址的方法(仅限AMH控制面板的情况,其他情况本例仅供参考):

首先需要安装url重写模块 amrewrite,当前版本是amrewrite-1.5,然后添加规则。
nginx规则:

if ($server_port = 80) {
return 301 https://$host$request_uri;
}

apache规则 :

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1

 

直接在css中引用fontawesome图标及对应图标编码表

王亚新阅读(12608)


近期在做一个cms,其中用到了部分fontawesome图标,看了一下使用方法,原理是在css中加载一个字体文件,再给那些矢量字体(即fontawesome字体图标)编码赋予值。简单说一下方法:

首先在css中加载字体文件,然后直接填写对应编码,在用到的文件中调用该样式就可以实现了。如:

.fa-glass:before {  
    content:'\f000';  
}
.fa-server:before{
    content:"\f233"
}

官方站点:http://www.bootcss.com/p/font-awesome/

图标对应编码如下(官方随时升级新增中)

CSS类 编码 CSS类 编码
.fa-glass \f000 .fa-github-alt \f113
.fa-music \f001 .fa-folder-o \f114
.fa-search \f002 .fa-folder-open-o \f115
.fa-envelope-o \f003 .fa-smile-o \f118
.fa-heart \f004 .fa-frown-o \f119
.fa-star \f005 .fa-meh-o \f11a
.fa-star-o \f006 .fa-gamepad \f11b
.fa-user \f007 .fa-keyboard-o \f11c
.fa-film \f008 .fa-flag-o \f11d
.fa-th-large \f009 .fa-flag-checkered \f11e
.fa-th \f00a .fa-terminal \f120
.fa-th-list \f00b .fa-code \f121
.fa-check \f00c .fa-mail-reply-all \f122
.fa-remove \f00d .fa-reply-all \f122
.fa-close \f00d .fa-star-half-empty \f123
.fa-times \f00d .fa-star-half-full \f123
.fa-search-plus \f00e .fa-star-half-o \f123
.fa-search-minus \f010 .fa-location-arrow \f124
.fa-power-off \f011 .fa-crop \f125
.fa-signal \f012 .fa-code-fork \f126
.fa-gear \f013 .fa-unlink \f127
.fa-cog \f013 .fa-chain-broken \f127
.fa-trash-o \f014 .fa-question \f128
.fa-home \f015 .fa-info \f129
.fa-file-o \f016 .fa-exclamation \f12a
.fa-clock-o \f017 .fa-superscript \f12b
.fa-road \f018 .fa-subscript \f12c
.fa-download \f019 .fa-eraser \f12d
.fa-arrow-circle-o-down \f01a .fa-puzzle-piece \f12e
.fa-arrow-circle-o-up \f01b .fa-microphone \f130
.fa-inbox \f01c .fa-microphone-slash \f131
.fa-play-circle-o \f01d .fa-shield \f132
.fa-rotate-right \f01e .fa-calendar-o \f133
.fa-repeat \f01e .fa-fire-extinguisher \f134
.fa-refresh \f021 .fa-rocket \f135
.fa-list-alt \f022 .fa-maxcdn \f136
.fa-lock \f023 .fa-chevron-circle-left \f137
.fa-flag \f024 .fa-chevron-circle-right \f138
.fa-headphones \f025 .fa-chevron-circle-up \f139
.fa-volume-off \f026 .fa-chevron-circle-down \f13a
.fa-volume-down \f027 .fa-html5 \f13b
.fa-volume-up \f028 .fa-css3 \f13c
.fa-qrcode \f029 .fa-anchor \f13d
.fa-barcode \f02a .fa-unlock-alt \f13e
.fa-tag \f02b .fa-bullseye \f140
.fa-tags \f02c .fa-ellipsis-h \f141
.fa-book \f02d .fa-ellipsis-v \f142
.fa-bookmark \f02e .fa-rss-square \f143
.fa-print \f02f .fa-play-circle \f144
.fa-camera \f030 .fa-ticket \f145
.fa-font \f031 .fa-minus-square \f146
.fa-bold \f032 .fa-minus-square-o \f147
.fa-italic \f033 .fa-level-up \f148
.fa-text-height \f034 .fa-level-down \f149
.fa-text-width \f035 .fa-check-square \f14a
.fa-align-left \f036 .fa-pencil-square \f14b
.fa-align-center \f037 .fa-external-link-square \f14c
.fa-align-right \f038 .fa-share-square \f14d
.fa-align-justify \f039 .fa-compass \f14e
.fa-list \f03a .fa-toggle-down \f150
.fa-dedent \f03b .fa-caret-square-o-down \f150
.fa-outdent \f03b .fa-toggle-up \f151
.fa-indent \f03c .fa-caret-square-o-up \f151
.fa-video-camera \f03d .fa-toggle-right \f152
.fa-photo \f03e .fa-caret-square-o-right \f152
.fa-image \f03e .fa-euro \f153
.fa-picture-o \f03e .fa-eur \f153
.fa-pencil \f040 .fa-gbp \f154
.fa-map-marker \f041 .fa-dollar \f155
.fa-adjust \f042 .fa-usd \f155
.fa-tint \f043 .fa-rupee \f156
.fa-edit \f044 .fa-inr \f156
.fa-pencil-square-o \f044 .fa-cny \f157
.fa-share-square-o \f045 .fa-rmb \f157
.fa-check-square-o \f046 .fa-yen \f157
.fa-arrows \f047 .fa-jpy \f157
.fa-step-backward \f048 .fa-ruble \f158
.fa-fast-backward \f049 .fa-rouble \f158
.fa-backward \f04a .fa-rub \f158
.fa-play \f04b .fa-won \f159
.fa-pause \f04c .fa-krw \f159
.fa-stop \f04d .fa-bitcoin \f15a
.fa-forward \f04e .fa-btc \f15a
.fa-fast-forward \f050 .fa-file \f15b
.fa-step-forward \f051 .fa-file-text \f15c
.fa-eject \f052 .fa-sort-alpha-asc \f15d
.fa-chevron-left \f053 .fa-sort-alpha-desc \f15e
.fa-chevron-right \f054 .fa-sort-amount-asc \f160
.fa-plus-circle \f055 .fa-sort-amount-desc \f161
.fa-minus-circle \f056 .fa-sort-numeric-asc \f162
.fa-times-circle \f057 .fa-sort-numeric-desc \f163
.fa-check-circle \f058 .fa-thumbs-up \f164
.fa-question-circle \f059 .fa-thumbs-down \f165
.fa-info-circle \f05a .fa-youtube-square \f166
.fa-crosshairs \f05b .fa-youtube \f167
.fa-times-circle-o \f05c .fa-xing \f168
.fa-check-circle-o \f05d .fa-xing-square \f169
.fa-ban \f05e .fa-youtube-play \f16a
.fa-arrow-left \f060 .fa-dropbox \f16b
.fa-arrow-right \f061 .fa-stack-overflow \f16c
.fa-arrow-up \f062 .fa-instagram \f16d
.fa-arrow-down \f063 .fa-flickr \f16e
.fa-mail-forward \f064 .fa-adn \f170
.fa-share \f064 .fa-bitbucket \f171
.fa-expand \f065 .fa-bitbucket-square \f172
.fa-compress \f066 .fa-tumblr \f173
.fa-plus \f067 .fa-tumblr-square \f174
.fa-minus \f068 .fa-long-arrow-down \f175
.fa-asterisk \f069 .fa-long-arrow-up \f176
.fa-exclamation-circle \f06a .fa-long-arrow-left \f177
.fa-gift \f06b .fa-long-arrow-right \f178
.fa-leaf \f06c .fa-apple \f179
.fa-fire \f06d .fa-windows \f17a
.fa-eye \f06e .fa-android \f17b
.fa-eye-slash \f070 .fa-linux \f17c
.fa-warning \f071 .fa-dribbble \f17d
.fa-exclamation-triangle \f071 .fa-skype \f17e
.fa-plane \f072 .fa-foursquare \f180
.fa-calendar \f073 .fa-trello \f181
.fa-random \f074 .fa-female \f182
.fa-comment \f075 .fa-male \f183
.fa-magnet \f076 .fa-gittip \f184
.fa-chevron-up \f077 .fa-sun-o \f185
.fa-chevron-down \f078 .fa-moon-o \f186
.fa-retweet \f079 .fa-archive \f187
.fa-shopping-cart \f07a .fa-bug \f188
.fa-folder \f07b .fa-vk \f189
.fa-folder-open \f07c .fa-weibo \f18a
.fa-arrows-v \f07d .fa-renren \f18b
.fa-arrows-h \f07e .fa-pagelines \f18c
.fa-bar-chart-o \f080 .fa-stack-exchange \f18d
.fa-bar-chart \f080 .fa-arrow-circle-o-right \f18e
.fa-twitter-square \f081 .fa-arrow-circle-o-left \f190
.fa-facebook-square \f082 .fa-toggle-left \f191
.fa-camera-retro \f083 .fa-caret-square-o-left \f191
.fa-key \f084 .fa-dot-circle-o \f192
.fa-gears \f085 .fa-wheelchair \f193
.fa-cogs \f085 .fa-vimeo-square \f194
.fa-comments \f086 .fa-turkish-lira \f195
.fa-thumbs-o-up \f087 .fa-try \f195
.fa-thumbs-o-down \f088 .fa-plus-square-o \f196
.fa-star-half \f089 .fa-space-shuttle \f197
.fa-heart-o \f08a .fa-slack \f198
.fa-sign-out \f08b .fa-envelope-square \f199
.fa-linkedin-square \f08c .fa-wordpress \f19a
.fa-thumb-tack \f08d .fa-openid \f19b
.fa-external-link \f08e .fa-institution \f19c
.fa-sign-in \f090 .fa-bank \f19c
.fa-trophy \f091 .fa-university \f19c
.fa-github-square \f092 .fa-mortar-board \f19d
.fa-upload \f093 .fa-graduation-cap \f19d
.fa-lemon-o \f094 .fa-yahoo \f19e
.fa-phone \f095 .fa-google \f1a0
.fa-square-o \f096 .fa-reddit \f1a1
.fa-bookmark-o \f097 .fa-reddit-square \f1a2
.fa-phone-square \f098 .fa-stumbleupon-circle \f1a3
.fa-twitter \f099 .fa-stumbleupon \f1a4
.fa-facebook \f09a .fa-delicious \f1a5
.fa-github \f09b .fa-digg \f1a6
.fa-unlock \f09c .fa-pied-piper \f1a7
.fa-credit-card \f09d .fa-pied-piper-alt \f1a8
.fa-rss \f09e .fa-drupal \f1a9
.fa-hdd-o \f0a0 .fa-joomla \f1aa
.fa-bullhorn \f0a1 .fa-language \f1ab
.fa-bell \f0f3 .fa-fax \f1ac
.fa-certificate \f0a3 .fa-building \f1ad
.fa-hand-o-right \f0a4 .fa-child \f1ae
.fa-hand-o-left \f0a5 .fa-paw \f1b0
.fa-hand-o-up \f0a6 .fa-spoon \f1b1
.fa-hand-o-down \f0a7 .fa-cube \f1b2
.fa-arrow-circle-left \f0a8 .fa-cubes \f1b3
.fa-arrow-circle-right \f0a9 .fa-behance \f1b4
.fa-arrow-circle-up \f0aa .fa-behance-square \f1b5
.fa-arrow-circle-down \f0ab .fa-steam \f1b6
.fa-globe \f0ac .fa-steam-square \f1b7
.fa-wrench \f0ad .fa-recycle \f1b8
.fa-tasks \f0ae .fa-automobile \f1b9
.fa-filter \f0b0 .fa-car \f1b9
.fa-briefcase \f0b1 .fa-cab \f1ba
.fa-arrows-alt \f0b2 .fa-taxi \f1ba
.fa-group \f0c0 .fa-tree \f1bb
.fa-users \f0c0 .fa-spotify \f1bc
.fa-chain \f0c1 .fa-deviantart \f1bd
.fa-link \f0c1 .fa-soundcloud \f1be
.fa-cloud \f0c2 .fa-database \f1c0
.fa-flask \f0c3 .fa-file-pdf-o \f1c1
.fa-cut \f0c4 .fa-file-word-o \f1c2
.fa-scissors \f0c4 .fa-file-excel-o \f1c3
.fa-copy \f0c5 .fa-file-powerpoint-o \f1c4
.fa-files-o \f0c5 .fa-file-photo-o \f1c5
.fa-paperclip \f0c6 .fa-file-picture-o \f1c5
.fa-save \f0c7 .fa-file-image-o \f1c5
.fa-floppy-o \f0c7 .fa-file-zip-o \f1c6
.fa-square \f0c8 .fa-file-archive-o \f1c6
.fa-navicon \f0c9 .fa-file-sound-o \f1c7
.fa-reorder \f0c9 .fa-file-audio-o \f1c7
.fa-bars \f0c9 .fa-file-movie-o \f1c8
.fa-list-ul \f0ca .fa-file-video-o \f1c8
.fa-list-ol \f0cb .fa-file-code-o \f1c9
.fa-strikethrough \f0cc .fa-vine \f1ca
.fa-underline \f0cd .fa-codepen \f1cb
.fa-table \f0ce .fa-jsfiddle \f1cc
.fa-magic \f0d0 .fa-life-bouy \f1cd
.fa-truck \f0d1 .fa-life-buoy \f1cd
.fa-pinterest \f0d2 .fa-life-saver \f1cd
.fa-pinterest-square \f0d3 .fa-support \f1cd
.fa-google-plus-square \f0d4 .fa-life-ring \f1cd
.fa-google-plus \f0d5 .fa-circle-o-notch \f1ce
.fa-money \f0d6 .fa-ra \f1d0
.fa-caret-down \f0d7 .fa-rebel \f1d0
.fa-caret-up \f0d8 .fa-ge \f1d1
.fa-caret-left \f0d9 .fa-empire \f1d1
.fa-caret-right \f0da .fa-git-square \f1d2
.fa-columns \f0db .fa-git \f1d3
.fa-unsorted \f0dc .fa-hacker-news \f1d4
.fa-sort \f0dc .fa-tencent-weibo \f1d5
.fa-sort-down \f0dd .fa-qq \f1d6
.fa-sort-desc \f0dd .fa-wechat \f1d7
.fa-sort-up \f0de .fa-weixin \f1d7
.fa-sort-asc \f0de .fa-send \f1d8
.fa-envelope \f0e0 .fa-paper-plane \f1d8
.fa-linkedin \f0e1 .fa-send-o \f1d9
.fa-rotate-left \f0e2 .fa-paper-plane-o \f1d9
.fa-undo \f0e2 .fa-history \f1da
.fa-legal \f0e3 .fa-circle-thin \f1db
.fa-gavel \f0e3 .fa-header \f1dc
.fa-dashboard \f0e4 .fa-paragraph \f1dd
.fa-tachometer \f0e4 .fa-sliders \f1de
.fa-comment-o \f0e5 .fa-share-alt \f1e0
.fa-comments-o \f0e6 .fa-share-alt-square \f1e1
.fa-flash \f0e7 .fa-bomb \f1e2
.fa-bolt \f0e7 .fa-soccer-ball-o \f1e3
.fa-sitemap \f0e8 .fa-futbol-o \f1e3
.fa-umbrella \f0e9 .fa-tty \f1e4
.fa-paste \f0ea .fa-binoculars \f1e5
.fa-clipboard \f0ea .fa-plug \f1e6
.fa-lightbulb-o \f0eb .fa-slideshare \f1e7
.fa-exchange \f0ec .fa-twitch \f1e8
.fa-cloud-download \f0ed .fa-yelp \f1e9
.fa-cloud-upload \f0ee .fa-newspaper-o \f1ea
.fa-user-md \f0f0 .fa-wifi \f1eb
.fa-stethoscope \f0f1 .fa-calculator \f1ec
.fa-suitcase \f0f2 .fa-paypal \f1ed
.fa-bell-o \f0a2 .fa-google-wallet \f1ee
.fa-coffee \f0f4 .fa-cc-visa \f1f0
.fa-cutlery \f0f5 .fa-cc-mastercard \f1f1
.fa-file-text-o \f0f6 .fa-cc-discover \f1f2
.fa-building-o \f0f7 .fa-cc-amex \f1f3
.fa-hospital-o \f0f8 .fa-cc-paypal \f1f4
.fa-ambulance \f0f9 .fa-cc-stripe \f1f5
.fa-medkit \f0fa .fa-bell-slash \f1f6
.fa-fighter-jet \f0fb .fa-bell-slash-o \f1f7
.fa-beer \f0fc .fa-trash \f1f8
.fa-h-square \f0fd .fa-copyright \f1f9
.fa-plus-square \f0fe .fa-at \f1fa
.fa-angle-double-left \f100 .fa-eyedropper \f1fb
.fa-angle-double-right \f101 .fa-paint-brush \f1fc
.fa-angle-double-up \f102 .fa-birthday-cake \f1fd
.fa-angle-double-down \f103 .fa-area-chart \f1fe
.fa-angle-left \f104 .fa-pie-chart \f200
.fa-angle-right \f105 .fa-line-chart \f201
.fa-angle-up \f106 .fa-lastfm \f202
.fa-angle-down \f107 .fa-lastfm-square \f203
.fa-desktop \f108 .fa-toggle-off \f204
.fa-laptop \f109 .fa-toggle-on \f205
.fa-tablet \f10a .fa-bicycle \f206
.fa-mobile-phone \f10b .fa-bus \f207
.fa-mobile \f10b .fa-ioxhost \f208
.fa-circle-o \f10c .fa-angellist \f209
.fa-quote-left \f10d .fa-cc \f20a
.fa-quote-right \f10e .fa-shekel \f20b
.fa-spinner \f110 .fa-sheqel \f20b
.fa-circle \f111 .fa-ils \f20b
.fa-mail-reply \f112 .fa-meanpath \f20c
.fa-reply \f112

apache环境下禁止某文件夹内运行PHP脚本、禁止访问文件或目录执行权限的设置方法

王亚新阅读(7679)

首先我们来看两段对上传目录设置无权限的列子,配置如下:

<Directory "要去掉PHP执行权限的目录路径,如/upload">
ErrorDocument 404 /404/404.html
ErrorDocument 403 /404/403.html
<FilesMatch "\.(?i:php|php3|php4)$"> // ?是尽可能多的匹配.php的字符串,i是不区分大小写,然后冒号后面跟上正则表达式,也可以写成:<FilesMatch "\.(php|php3)$">
Order allow,deny
Deny from all
</FilesMatch>
</Directory>

上面的意思就是说,<Directory “要去掉PHP执行权限的目录路径,例如:/upload”> 内目录路径下所有php文件不区分大小写,通过order,allow,deny原则判断拒绝执行php文件,对nginx同样也是可应用。

另外一种方法,是设置在.htaccess里面的,这个方法比较灵活一点,针对那些没有apapche安全操作权限的网站管理员,推荐使用!
Apache环境规则内容如下:Apache限制uploads目录执行php脚本,把规则添加到.htaccess文件中,代码如下:

RewriteEngine on RewriteCond % !^$
RewriteRule uploads/(.*).(php)$ – [F]

此方法仅限于apache服务器环境,windows环境无效。

apache禁止访问某些文件/目录
增加Files选项来控制,比如要不允许访问 .inc 扩展名的文件,保护php类库:

<Files ~ "\.inc$">
Order allow,deny
Deny from all
</Files>

禁止访问某些指定的目录:(可以用 <DirectoryMatch> 来进行正则匹配)

<Directory ~ "^/var/www/(.+/)*[0-9]{3}">
Order allow,deny
Deny from all
</Directory>

通过文件匹配来进行禁止,比如禁止所有针对图片的访问:

<FilesMatch \.(?i:gif|jpe?g|png)$>
Order allow,deny
Deny from all
</FilesMatch>

针对URL相对路径的禁止访问:

<Location /dir/>
Order allow,deny
Deny from all
</Location>

 

php实现数据库备份导出成sql文件的方法

王亚新阅读(1785)

用php代码实现数据库备份可以使网站的管理变得非常便捷,我们可以直接进后台操作就能完成数据库的备份。

关键技术:
1. 首先要得到该数据库中有哪些表,所用函数 mysql_list_tables(),然后可以将获取的所有表名存到一个数组。
2. show create table 表名 可以获取表结构。
3. select * from 表名 取出所有记录,用循环拼接成 insert into… 语句。

导出sql文件如图:
sql

php代码如下:

<?php
	header("Content-type:text/html;charset=utf-8");

	//配置信息
	$cfg_dbhost = 'localhost';
	$cfg_dbname = 'dbname';
	$cfg_dbuser = 'root';
	$cfg_dbpwd = 'root';
	$cfg_db_language = 'utf8';
	$to_file_name = "data.sql"; //导出的sql路径及文件名
	// END 配置

	//链接数据库
	$link = mysql_connect($cfg_dbhost,$cfg_dbuser,$cfg_dbpwd);
	mysql_select_db($cfg_dbname);
	//选择编码
	mysql_query("set names ".$cfg_db_language);
	//数据库中有哪些表
	$tables = mysql_list_tables($cfg_dbname);
	//将这些表记录到一个数组
	$tabList = array();
	while($row = mysql_fetch_row($tables)){
		$tabList[] = $row[0];
	}

	echo "运行中,请耐心等待...<br/>";
	$info = "-- ----------------------------\r\n";
	$info .= "-- 日期:".date("Y-m-d H:i:s",time())."\r\n";
	$info .= "-- Power by 王亚新(http://www.wangyaxin.cn)\r\n";
	$info .= "-- 仅用于测试和学习,本程序不适合处理超大量数据\r\n";
	$info .= "-- ----------------------------\r\n\r\n";
	file_put_contents($to_file_name,$info,FILE_APPEND);

	//将每个表的表结构导出到文件
	foreach($tabList as $val){
		$sql = "show create table ".$val;
		$res = mysql_query($sql,$link);
		$row = mysql_fetch_array($res);
		$info = "-- ----------------------------\r\n";
		$info .= "-- Table structure for `".$val."`\r\n";
		$info .= "-- ----------------------------\r\n";
		$info .= "DROP TABLE IF EXISTS `".$val."`;\r\n";
		$sqlStr = $info.$row[1].";\r\n\r\n";
		//追加到文件
		file_put_contents($to_file_name,$sqlStr,FILE_APPEND);
		//释放资源
		mysql_free_result($res);
	}

	//将每个表的数据导出到文件
	foreach($tabList as $val){
		$sql = "select * from ".$val;
		$res = mysql_query($sql,$link);
		//如果表中没有数据,则继续下一张表
		if(mysql_num_rows($res)<1) continue;
		//
		$info = "-- ----------------------------\r\n";
		$info .= "-- Records for `".$val."`\r\n";
		$info .= "-- ----------------------------\r\n";
		file_put_contents($to_file_name,$info,FILE_APPEND);
		//读取数据
		while($row = mysql_fetch_row($res)){
			$sqlStr = "INSERT INTO `".$val."` VALUES (";
			foreach($row as $zd){
				$sqlStr .= "'".$zd."', ";
			}
			//去掉最后一个逗号和空格
			$sqlStr = substr($sqlStr,0,strlen($sqlStr)-2);
			$sqlStr .= ");\r\n";
			file_put_contents($to_file_name,$sqlStr,FILE_APPEND);
		}
		//释放资源
		mysql_free_result($res);
		file_put_contents($to_file_name,"\r\n",FILE_APPEND);
	}

	echo "OK!";

?>

在很多时候,你也许会用到此方法,祝你好运!

如何限制网页只能在微信中打开的方法

王亚新阅读(3632)

<script type="text/javascript">
    // 对浏览器的UserAgent进行正则匹配,不含有微信独有标识的则为其他浏览器
    var useragent = navigator.userAgent;
    if (useragent.match(/MicroMessenger/i) != 'MicroMessenger') {
        // 这里警告框会阻塞当前页面继续加载
        alert('已禁止本次访问:您必须使用微信内置浏览器访问本页面!');
        // 以下代码是用javascript强行关闭当前页面
        var opened = window.open('about:blank', '_self');
        opened.opener = null;
        opened.close();
    }
</script>

简单说明:
MicroMessenger为微信内置浏览器特有标识,所以直接判断浏览器是否包含这个即可,不包含则非微信内置浏览器,直接退出。

收工!

一个很有用的功能-隐藏微信中网页右上角按钮

王亚新阅读(1091)

公众号在有需要时(如不需要用户分享某个页面,或者希望刻意隐藏,嘿嘿~),可在网页中通过JavaScript代码隐藏网页右上角按钮。

778c55f5d82220122de558ac09848e21

接口调用代码(JavaScript)

function onBridgeReady(){
 WeixinJSBridge.call('hideOptionMenu');
}

if (typeof WeixinJSBridge == "undefined"){
    if( document.addEventListener ){
        document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
    }else if (document.attachEvent){
        document.attachEvent('WeixinJSBridgeReady', onBridgeReady); 
        document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
    }
}else{
    onBridgeReady();
}

返回说明

隐藏底部导航栏没有返回值。(需要显示请把hideOptionMenu换成showOptionMenu)

iframe自适应高度经验总结(兼容多种浏览器)

王亚新阅读(880)

最近在写一个系统,遇到后台需要使用iframe的情况,因为 iframe的大小不像层那样可以自由伸缩,而在多个页面切换情况下又不能一刀切的设置一个固定高度,因此必须让iframe动态调整高度。对于自适应高度的代码有很多,但是兼容性并不是很好,以下是我总结多种方法后筛选出来的兼容性相对最好的一种(其他方法可自行去尝试,不过本人认为选出一个最好用的就足够了,其他的不再列出):

 
<script language="javascript" type="text/javascript"> 
function dyniframesize(down) { 
var pTar = null; 
if (document.getElementById){ 
pTar = document.getElementById(down); 
} 
else{ 
eval('pTar = ' + down + ';'); 
} 
if (pTar && !window.opera){ 
//begin resizing iframe 
pTar.style.display="block" 
if (pTar.contentDocument && pTar.contentDocument.body.offsetHeight){ 
//ns6 syntax 
pTar.height = pTar.contentDocument.body.offsetHeight +20; 
pTar.width = pTar.contentDocument.body.scrollWidth+20; 
} 
else if (pTar.Document && pTar.Document.body.scrollHeight){ 
//ie5+ syntax 
pTar.height = pTar.Document.body.scrollHeight; 
pTar.width = pTar.Document.body.scrollWidth; 
} 
} 
} 
</script>

当然接下来还要加入iframe代码,id名与js调用要对应好哦~

<iframe src ="main.php" frameborder="0" marginheight="0" marginwidth="0" frameborder="0" scrolling="auto" id="mainframe" name="mainframe" onload="javascript:dyniframesize('mainframe');" width="100%"> 
</iframe>

注意:上边的js代码中height和width都进行了设置,通常情况下如果只需要设置高度或宽度可将另外一个注释或删除掉。

linux下/etc/fstab只读无法修改的解决办法

王亚新阅读(1270)

linux系统出错时有时无法进入系统,按提示 输入 root的密码,进入以Repair filesystem 为提示符的界面。

vi /etc/fstab后提示只读,也就是没权限修改。

于是, 我们输入 mount -o remount,rw /    (逗号前无空格,一定要有/

重新挂载为 读写模式。

再 vi /etc/fstab 发现已经可以修改了,修改完毕,按esc键退出,输入wq保存修改,重启后即可。