文章列表

firefox 提交表单时不能获取到js动态添加的表单元素

2011-04-02 10:53:20

例如这段代码:

<div id="tdfiles">
    <p><input name="attach[]" type="file" /> <a href="javascript:;">移除</a></p>
</div>
<p><a href="javascript:;" id="jqaddfile">增加上传</a></p>

js编写好点击‘‘增加上传’’会自动在上面的div中增加里面的attach,最好提交表单时,在ie浏览器下都可以正常获取。但firefox确不能获取到动态添加的表单。

此种问题的常见原因是很多人习惯性把form表单放在非标准的html结构中,例如:

<table>
<form>
<tr>

一般在ie下会正常解析,但forefox下不会识别这个表单。所以要把form放在标准的位置上,即可解决这个问题。

win下php环境 上传缓存目录已经给了所有权限但还无法上传文件

2011-03-15 10:49:11

此时要注意的是,一般服务器的安全设置会优先把磁盘的部分权限去掉,这时如果缓存目录在磁盘根目录即使给了所有权限也无法写入,必须保证缓存目录的上级目录要具体everyone或网站用户的读取权限。

服务器正常访问但下载某些文件时提示输入用户名密码

2011-03-15 10:08:06

总到服务器上进行操作,有的时候需要把服务器上的一些文件压缩下载,不想用ftp 的话就只能把压缩包放在可以对外访问的网站目录下,然后通过http进行下载。这时,如果从服务器其他盘符剪切过来文件的话,就会出现标题所述情况了。原因就是win下,剪切的文件会把文件的原来权限附带过来。。

解决办法就是修改权限与当前目录其他文件相同,就可以下载了。

修改mysql默认root用户密码

2011-03-12 13:13:58

这东西其实很简单,只是不太常用。要在命令行进行修改用到的是mysql的password命令:

进入mysql命令行,use mysql;后

update user set password=password('新密码') where user='root'

最后

FLUSH PRIVILEGES;

即可。

===========

对于忘记mysql密码的情况(windows下),可采用如下方法:

先在系统服务中将mysql服务关闭,再利用命令行方式进入mysql bin目录,输入命令:

mysqld-nt --skip-grant-tables

此为跳过密码验证启动mysql 的方式,然后保持窗口不动再新打开一个窗口,按正常步骤进入mysql,例如:

mysql -uroot -p

弹出输入密码时直接回车即可。

这时就进入mysql 命令行了。此时可依照上面的方法修改root 的密码。

关于win下php5.3环境phpinfo能运行但网站显示服务器内部错误的问题

2011-03-11 10:25:20

解决后才发现其实这是个很简单的问题,主要是由于权限配置引起的。

将IE的高级设置里‘以友好方式显示http错误信息’去掉,这样能显示出详细的服务器错误信息了。

很多时候都是由于require或include文件时./ 这样的标志造成的。

此时可尝试在上级目录加上everyone的读取权限来解决。

 

广州跳楼股民的遗书《老婆别哭》

2011-01-21 16:55:00

广州跳楼股民的遗书《老婆别哭》

老婆别哭,我去了天堂,

因为股指已跌落在地狱的下方,

一辈子的财产被我亏光, 我再也无颜见你和我的爹娘。

老婆别哭,我去了天堂,

漫天的星星可都是你的泪光,

黑夜里我不是孤独的流浪, 我听见散户们绝望的歌唱。

老婆别哭,我去了天堂,

天堂里再也没有鸟语花香, 所以我恋恋不舍回头张望,

绿水青山还是一片下跌苍凉。

老婆别哭,我去了天堂,

只是我舍不下曾经有的梦想, 帮我把炒股的笔记本收好,

我奢望在天堂里看到股票上涨。

老婆别哭,我去了天堂,

可惜我等不及看到红色的大盘, 我还想为你买一套新房, 留恋着我们家温暖的厨房.....

对于eval方式加密的文件解密方式

2011-01-20 16:40:56

一:在那段加密代码中搜索“return p”替换成“code.value=p”;
二:新建一个html文件,utf-8格式。将替换后的代码放到下面的代码中;

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<textarea id="code" name="" rows="10" cols="50"></textarea>
<script type="text/javascript">
//<![data[
//替换后的加密代码
//]]-->
</script>

最后将代码复制到http://jsbeautifier.org/网站格式化就可以了。

附加密解密文件

eval加密解密.rar(988 B )

铁道部

2011-01-19 10:31:18

 

妈了个B的,对这帮狗屁官员没任何信任可言,努力赚钱,将来让儿子开车或开飞机回家!

mysql查询更新时的锁表机制分析 转

2011-01-14 11:18:03

http://www.cnblogs.com/donknap/archive/2010/01/27/1657373.html

为了给高并发情况下的mysql进行更好的优化,有必要了解一下mysql查询更新时的锁表机制。

一、概述

MySQL有三种锁的级别:页级、表级、行级。
MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁。

MySQL这3种锁的特性可大致归纳如下:

表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。
行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。
页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。

二、MyISAM表锁

MyISAM存储引擎只支持表锁,是现在用得最多的存储引擎。

1、查询表级锁争用情况

可以通过检查table_locks_waited和table_locks_immediate状态变量来分析系统上的表锁定争夺:

    mysql> show status like ‘table%’;
    +-----------------------+----------+
    | Variable_name | Value |
    +-----------------------+----------+
    | Table_locks_immediate | 76939364 |
    | Table_locks_waited | 305089 |
    +-----------------------+----------+
    2 rows in set (0.00 sec)

Table_locks_waited的值比较高,说明存在着较严重的表级锁争用情况。

2、MySQL表级锁的锁模式

MySQL的表级锁有两种模式:表共享读锁(Table Read Lock)和表独占写锁(Table Write Lock)。MyISAM在执行查询语句(SELECT)前,会自动给涉及的所有表加读锁,在执行更新操作(UPDATE、DELETE、INSERT等)前,会自动给涉及的表加写锁。

所以对MyISAM表进行操作,会有以下情况:
a、对MyISAM表的读操作(加读锁),不会阻塞其他进程对同一表的读请求,但会阻塞对同一表的写请求。只有当读锁释放后,才会执行其它进程的写操作。
b、对MyISAM表的写操作(加写锁),会阻塞其他进程对同一表的读和写操作,只有当写锁释放后,才会执行其它进程的读写操作。

下面通过例子来进行验证以上观点。数据表gz_phone里有二百多万数据,字段id,phone,ua,day。现在同时用多个客户端同时对该表进行操作分析。
a、当我用客户端1进行一个比较长时间的读操作时,分别用客户端2进行读和写操作:
client1:

    mysql>select count(*) from gz_phone group by ua;
    75508 rows in set (3 min 15.87 sec)

client2:

    select id,phone from gz_phone limit 1000,10;
    +------+-------+
    | id | phone |
    +------+-------+
    | 1001 | 2222 |
    | 1002 | 2222 |
    | 1003 | 2222 |
    | 1004 | 2222 |
    | 1005 | 2222 |
    | 1006 | 2222 |
    | 1007 | 2222 |
    | 1008 | 2222 |
    | 1009 | 2222 |
    | 1010 | 2222 |
    +------+-------+
    10 rows in set (0.01 sec)

    mysql> update gz_phone set phone=’11111111111′ where id=1001;
    Query OK, 0 rows affected (2 min 57.88 sec)
    Rows matched: 1 Changed: 0 Warnings: 0

说明当数据表有一个读锁时,其它进程的查询操作可以马上执行,但更新操作需等待读锁释放后才会执行。

b、当用客户端1进行一个较长时间的更新操作时,用客户端2,3分别进行读写操作:
client1:

    mysql> update gz_phone set phone=’11111111111′;
    Query OK, 1671823 rows affected (3 min 4.03 sec)
    Rows matched: 2212070 Changed: 1671823 Warnings: 0

client2:

    mysql> select id,phone,ua,day from gz_phone limit 10;
    +----+-------+-------------------+------------+
    | id | phone | ua | day |
    +----+-------+-------------------+------------+
    | 1 | 2222 | SonyEricssonK310c | 2007-12-19 |
    | 2 | 2222 | SonyEricssonK750c | 2007-12-19 |
    | 3 | 2222 | MAUI WAP Browser | 2007-12-19 |
    | 4 | 2222 | Nokia3108 | 2007-12-19 |
    | 5 | 2222 | LENOVO-I750 | 2007-12-19 |
    | 6 | 2222 | BIRD_D636 | 2007-12-19 |
    | 7 | 2222 | SonyEricssonS500c | 2007-12-19 |
    | 8 | 2222 | SAMSUNG-SGH-E258 | 2007-12-19 |
    | 9 | 2222 | NokiaN73-1 | 2007-12-19 |
    | 10 | 2222 | Nokia2610 | 2007-12-19 |
    +----+-------+-------------------+------------+
    10 rows in set (2 min 58.56 sec)

client3:

    mysql> update gz_phone set phone=’55555′ where id=1;
    Query OK, 1 row affected (3 min 50.16 sec)
    Rows matched: 1 Changed: 1 Warnings: 0

说明当数据表有一个写锁时,其它进程的读写操作都需等待读锁释放后才会执行。

3、并发插入

原则上数据表有一个读锁时,其它进程无法对此表进行更新操作,但在一定条件下,MyISAM表也支持查询和插入操作的并发进行。

MyISAM存储引擎有一个系统变量concurrent_insert,专门用以控制其并发插入的行为,其值分别可以为0、1或2。
a、当concurrent_insert设置为0时,不允许并发插入。
b、当concurrent_insert设置为1时,如果MyISAM表中没有空洞(即表的中间没有被删除的行),MyISAM允许在一个进程读表的同时,另一个进程从表尾插入记录。这也是MySQL的默认设置。
c、当concurrent_insert设置为2时,无论MyISAM表中有没有空洞,都允许在表尾并发插入记录。

4、MyISAM的锁调度

由于MySQL认为写请求一般比读请求要重要,所以如果有读写请求同时进行的话,MYSQL将会优先执行写操作。这样MyISAM表在进行大量的更新操作时(特别是更新的字段中存在索引的情况下),会造成查询操作很难获得读锁,从而导致查询阻塞。

我们可以通过一些设置来调节MyISAM的调度行为:

a、通过指定启动参数low-priority-updates,使MyISAM引擎默认给予读请求以优先的权利。
b、通过执行命令SET LOW_PRIORITY_UPDATES=1,使该连接发出的更新请求优先级降低。
c、通过指定INSERT、UPDATE、DELETE语句的LOW_PRIORITY属性,降低该语句的优先级。

上面3种方法都是要么更新优先,要么查询优先的方法。这里要说明的就是,不要盲目的给mysql设置为读优先,因为一些需要长时间运行的查询操作,也会使写进程“饿死”。只有根据你的实际情况,来决定设置哪种操作优先。这些方法还是没有从根本上同时解决查询和更新的问题。

在一个有大数据量高并发表的mysql里,我们还可采用另一种策略来进行优化,那就是通过mysql主从(读写)分离来实现负载均衡,这样可避免优先哪一种操作从而可能导致另一种操作的堵塞。下面将用一个篇幅来说明mysql的读写分离技术。

更新 mysql时使用 LOW_PRIORITY 降低写操作的优先级

2011-01-14 11:14:12

由于mysql 默认写操作会优先于读操作,这会造成某些更新非常频繁的字段影响了查询的速度,所以对于类似于点击次数这样的字段,可以用

LOW_PRIORITY

来降低此更新的优先级,让查询操作优先,这样会增加网站读取的速度。在dz和phpwind中有很多这样的用法。例如:

$db->query("UPDATE LOW_PRIORITY {$tablepre}threads SET views=views+1 WHERE tid='$tid'", 'UNBUFFERED');

这就是discuz中记录贴子点击次数的语句。

mysql 临时表数据批量转移到其他类型表锁表技术

2011-01-14 09:39:16

mysql> LOCK TABLES real_table WRITE, insert_table WRITE;

mysql> INSERT INTO real_table SELECT * FROM insert_table;

mysql> TRUNCATE TABLE insert_table;

mysql> UNLOCK TABLES;

关于浙江乐清村主任死亡案

2010-12-28 09:05:55

正如大家所想,此事最终是会被河蟹的,因为这里是天朝!转载文章我的小站也就没了,所以只记录几条新闻链接,也许未来用不了几天,这些新闻都会被删除。

浙江乐清定性“上访村主任死亡”为交通肇事案

浙江乐清:村主任被碾死事件系交通肇事

1 | 2 | 3 | ... 18  >>
关于
海岸线
栏目
链接