Ajax && encodeURIComponent

http://fayland.org/journal/JS_encode.html
在linux上的crontab文件中我已有一行,如10 * * * * root /var/www/html/test.php
现在我要通过编写php程序来修改10 * * * * root /var/www/html/test.php
变成22 10 * * * root /var/www/html/aa.php
问题解决了,不过有点傻瓜,不知谁还有什么更好的方法吗?若有,希贴上来,互相学习
问题解决了,不过有点傻瓜,不知谁还有什么更好的方法吗?若有,希贴上来,互相学习
$fp=fopen("/etc/crontab","rb");
$save=fopen("/home/mysql/crontab","wb");
$i=0;
/*foreach ($f as $v)
{
  $t = preg_replace('13 15 * * * root /usr/bin/php /var/www/html/mysqlbackup/testClient.php', '* * *', $v);
  $result[] = $t;
}*/
while (!feof($fp)) {
  $buffer = fgets($fp);
  fwrite($save,$buffer);
  $i=$i+1;
  if ($i==10){
  fwrite($save,"success");
  break;
  }
  }
fclose($fp);
fclose($save);
$fp=fopen("/etc/crontab","wb");
$save=fopen("/home/mysql/crontab","rb");
$i=0;
while (!feof($save)) {
  $buffer = fgets($save);
  fwrite($fp,$buffer);  
  }
fclose($fp);
fclose($save);


Shell修改Crontab的方法:
脚本一:
#!/bin/bash
#cron_file='/home/zary/b';
cron_tmp='/home/zary/d';
cronpath="/home/zary/b";
cronbak='/home/zary/f';
parameter=;
if [ "$parameter" = "change" ]
then
cp $cronpath $cronbak;
sed -e '/c_check_mysqlstatus\.sh/s/^#//' -e '/c_check_webstatus\.sh/s/^#//' \
-e '/c_syscheck\.sh/s/#//' -e '/c_syscheck\.sh/s/^11/#11/' $cronpath >$cron_tmp;
cp $cron_tmp $cronpath;
crontab $cronpath;
elif [ "$parameter" = "resume" ]
then
sed -e '/c_check_webstatus\.sh/s/^/#/' -e '/c_check_mysqlstatus\.sh/s/^/#/' \
-e '/c_syscheck\.sh/s/^#//' -e '/c_syscheck\.sh/s/^\*\/20/#\*\/20/' $cronpath >$cron_tmp;
cp $cron_tmp $cronpath;
crontab $cronpath;
else
echo "Usage: c_startcron.sh [change/resume]";
fi


脚本二:

#!/bin/bash
cronpath="/var/spool/cron/root";
if [ = 'tw' ]
then
kick="tw_mail.php";
elif [ = "nw" ]
then
kick="nw_mail.php";
elif [ = "pw" ]
then
kick="pw_mail.php";
fi
crontab -l|egrep -v "$kick">/tmp/crontab;
case "" in
daily)
date=" * * *";
;
weekly)
date=" * * 1";
;
monthly)
date=" * 1 *";
;
esac
cat /tmp/crontab > $cronpath;
if [ = "on" ]
then
echo "$date /usr/local/php5/bin/php /home/htdocs/pukicn/new/OM/Cron/$kick">>$cronpath;
fi

来源:
http://topic.csdn.net/u/20090918/14/29cb3abf-6de6-4cc6-a28b-26f234b2a87b.html
http://www.linuxdiyf.com/viewarticle.php?id=14751

Fenng:所谓一种理想:某某公司的数据中心位于甘肃玉门,数据中心的电力全部来自于风力发电,用祁连山融化的雪水冷却数据中心产生的热量,它是中国第一个绿色环保的数据中心。这是公司的一位来自Cxxxx的牛人给我们传达的理念,据说他来公司并不是为了钱,而是为了实现他的人生理想:建立绿色环保的数据中心。


某个牛人,想把阿里的机房搞成那样。。。。听说走了现在

阅读全文
每次安装office的时候,我就都会很小心的把微软拼音输入法去掉,但每次安装完以后它还是顽固的跳出来,叽叽歪歪跟在别的输入法旁边……长的丑不是你的错,出来吓人就是你的不对了。
点击在新窗口中浏览此图片
正在寻找彻底删除微软拼音输入法的方法:
更新日志
2009-04-20
1、运行:
Regsvr32 /U Msimtf.dll
Regsvr32 /U Msctf.dll
2、用regedit,在注册表中,删除键值:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\MSSCIPY
3、在“文字服务和输入语言”中,删除“微软拼音输入法2003”这个输入法。
重启计算机并启动Office 2007后,输入法再次跳出,失败!
20090514
开始->运行->输入“MsiExec.exe /X{90120000-0028-0804-0000-0000000FF1CE}”,然后点击确定卸载。卸载完毕后再进入输入法设置,删除微软输入法即可。
观察中!  
哗!
点击在新窗口中浏览此图片
我使用下面的方法,结果还是OK的,如下:

MsiExec.exe /X{90120000-0028-0804-0000-0000000FF1CE}

C:\WINNT\SYSTEM32\IME\PINTLGNT\PINTSETP.EXE

學習!支持!


找到PINTSETP.EXE
win2000下位于C:\WINDOWS\SYSTEM32\IME\PINTLGNT,其他系统可以搜索一下,然后双击执行,选择卸载
第一:如果你没有安装office xp。很简单,就像大家说的到控制面板直接删 除,或通过超级兔仔里的输入发设置删除。

  第二:如果你安装了office xp 英文版加中文包。光靠上面的方法是无法删除微软拼音输入法3.0的。因为它是office xp中文包的一个可选性插件。你可以用添加删除程序(在控制面板里)选择office xp的中文包,点击更改删除选项。进入后,选择add/remove。在里面有个可选项是添加或删除微软拼音输入法3.0的。把它“X”就可以了。

  good luck!!!

  A suprise!

  HKEY_USERS\.DEFAULT\Keyboard Layout\Preload
来源:http://sheepshell.blog.163.com/blog/static/89033820093203356296/


输入法我一般使用搜狗,并且就这一个输入法就够了,我喜欢简单、整洁、适用,呵呵!(仅个人习惯,^_^)

最近安装0FFICE2003,居然里面自带的“微软输入法”怎么也删除不掉,利用设置来更改,更是连微软输入法的也找不到,呵呵,这也太强制性了点吧!

现在我想说说我是怎么删除这强制性的字体的吧:

1.  在“开始/运行”框中输入“regedit.exe”,打开注册表编辑器。

2.  运行以下命令:
     Regsvr32 /U Msctf.dll
3.  把注册表中

     HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\MSSCIPY

    这一主键删除, 完成 !

button {cursor:pointer;}
fieldset,form{ background:none; border:none; padding:0; margin:0;}



form
{
     margin:0px;display: inline
}
margin: 上下左右间隔都设为 0px
display: inline 之后显示的秀在同一行。
其他情况想不换行也是一样的做法:
<h1> Head Line</h1>


<h1 style="display: inline;">
扣一个js代码:

onfocus="if(this.value=='按QQ号搜索作品') this.value='';" onblur="if(this.value=='') this.value='按QQ号搜索作品';"


整体就是这样:

<input type="text" onfocus="if(this.value=='按QQ号搜索作品') this.value='';" onblur="if(this.value=='') this.value='按QQ号搜索作品';" />
我觉得很简单。你直接强制把那个数给整为整数后再和原始的数对比,一致说明不是,不一致就是!
你的意思把那个数强制转成整型,要是一致说明这个数不是64位整型数?
floatval 可以用来装这个整数。
PS:如果用的是64位操作系统就好了。或者php编译的时候加上某个参数其整数范围可能就大与常规32位整数。

64位整型数的长度,2的N次方,还有正数负数等的问题。长整型啥的全是正数等都是需要注意的点,php比较弱这块,区分不严格。

vps

WEB2.0 jackxiang 2011-3-3 23:30
http://item.taobao.com/item.htm?id=6240509546
西海岸 184.82.225.34 这个感觉不错,呵呵。
后面那个IP好像慢一点!
http://item.taobao.com/item.htm?id=4158438070
http://item.taobao.com/item.htm?id=9170964773
This:
http://item.taobao.com/item.htm?id=4158438070
http://item.taobao.com/item.htm?id=9174547211
See:
http://item.taobao.com/item.htm?id=7873039697


Burstnet VPS试用总结:

前段时间开始使用Burstnet的VPS服务以来,一直是不错的,速度蛮可观,但也多次出现了服务器不能连接、内存莫名100%占用等现象,稳定性堪忧,实在是经不起折腾了,考虑再三,现在博客已转战到了富有盛誉的Linode Xen VPS,为Linode 512方案,虽然贵些,但总归稳定压倒一切。

这是我的Linode推荐码:ebff47bacacf026f6dd8eac79f6779d3ff6da058,有需要可以使用下作为支持,详细了解或注册Linode请点击这里。
一、永久修改 ulimit 限制,需要修改系统配置文件:

编辑 /etc/security/limits.conf 文件
打开 /etc/security/limits.conf 文件并添加以下行:
* soft nofile 20480
* hard nofile 20480
* soft nproc  20480
* hard nproc  20480
hive -nofile  20480
hive -nproc   20480

二、打开 /etc/sysctl.conf 文件并添加或修改以下内容:
fs.file-max = 2097152

文章尾部有更详细的说明。

=================================================
一)/etc/profile里有一行,  ulimit -S -c 0 > /dev/null,非Root登录还提示一个:
Last login: Thu Nov  8 10:54:22 2018 from 10.4.12.52
-bash: ulimit: open files: cannot modify limit: Operation not permitted


vi /etc/profile
ulimit -n 204800
# No core files by default
ulimit -S -c 0 > /dev/null 2>&1

解释:



系统值65535,用户值65536,内核的值1048576不要动:
一)vi /etc/sysctl.conf
       fs.file-max = 65535

二)大数据ELK的需要65536:
    vi /etc/security/limits.conf
*        soft    nofile  65536
*        hard    nofile  65536  
三)这个不用修改:找到问题了,centos系统设置每个进程的最大打开文件句柄数不能超过1048576。可以通过修改/proc/sys/fs/nr_open加大进程数。
    cat /proc/sys/fs/nr_open
    1048576

四)/etc/security/limits.d/90-nproc.conf文件尾添加
* soft nproc 204800  
* hard nproc 204800  

五)/etc/security/limits.d/def.conf文件尾添加
* soft nofile 204800  
* hard nofile 204800  

ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 62224
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 204800
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 204800
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

来自:https://blog.csdn.net/yu757371316/article/details/77863173
=========================================================================================
ulimit -a 用来显示当前的各种用户进程限制。
    Linux对于每个用户,系统限制其最大进程数。为提高性能,可以根据设备资源情况,
    设置各linux 用户的最大进程数,下面我把某linux用户的最大进程数设为10000个:
     ulimit -u 10000
     对于需要做许多 socket 连接并使它们处于打开状态的 Java 应用程序而言,
     最好通过使用 ulimit -n xx 修改每个进程可打开的文件数,缺省值是 1024。
     ulimit -n 4096 将每个进程可以打开的文件数目加大到4096,缺省为1024
     其他建议设置成无限制(unlimited)的一些重要设置是:
     数据段长度:ulimit -d unlimited
     最大内存大小:ulimit -m unlimited
     堆栈大小:ulimit -s unlimited
     CPU 时间:ulimit -t unlimited
     虚拟内存:ulimit -v unlimited

我们公司服务器需要调整ulimit的stack size 参数调整为unlimited 无限,使用ulimit -s unlimited时只能在当时的shell见效,重开一个shell就失效了。。于是得在/etc/profile 的最后面添加ulimit -s unlimited 就可以了,source /etc/profile使修改文件生效。

PS:如果你碰到类似的错误提示
ulimit: max user processes: cannot modify limit: 不允许的操作
ulimit: open files: cannot modify limit: 不允许的操作

为啥root用户是可以的?普通用户又会遇到这样的问题?
看一下/etc/security/limits.conf大概就会明白。
linux对用户有默认的ulimit限制,而这个文件可以配置用户的硬配置和软配置,硬配置是个上限。
超出上限的修改就会出“不允许的操作”这样的错误。

在limits.conf加上
*        soft    noproc  10240
*        hard    noproc  10240
*        soft    nofile  10240
*        hard    nofile  10240
就是限制了任意用户的最大线程数和文件数为10240。

来源:http://antsw.blog.51cto.com/936097/214997


来自人工智能:
在 CentOS 中,可以通过查看系统的文件句柄数量以及调整 `ulimit` 的软硬限制来管理系统资源。以下是相关步骤:

### 1. **查看当前系统的文件句柄数**

可以使用以下方法查看系统当前打开的文件句柄数量。

#### 1.1 使用 `lsof` 查看所有进程的文件句柄数量

```bash
lsof | wc -l
```

`lsof` 命令列出所有打开的文件,`wc -l` 统计文件句柄数量。这个命令输出的是系统当前所有打开的文件句柄的总数。

#### 1.2 查看单个进程的文件句柄数

如果你只想查看某个进程的文件句柄数,例如 PID 为 1234,可以使用:

```bash
ls /proc/1234/fd | wc -l
```

`/proc/[PID]/fd` 目录包含该进程打开的文件描述符,通过统计这个目录中的文件数量可以得到文件句柄数。

### 2. **查看和修改 `ulimit` 限制**

`ulimit` 用于控制用户或进程的资源使用,包括打开的文件句柄数量(文件描述符)。你可以查看和修改 `ulimit` 的软硬限制。

#### 2.1 查看当前的文件句柄限制

使用 `ulimit` 命令可以查看当前的文件句柄限制:

- 查看软限制(当前会话的限制):
  ```bash
  ulimit -n
  ```

- 查看硬限制(系统最大允许的限制):
  ```bash
  ulimit -Hn
  ```

#### 2.2 临时修改文件句柄限制

你可以临时修改当前会话的软硬限制。注意,临时修改只对当前会话有效,重启后会恢复默认值。

- 修改软限制:
  ```bash
  ulimit -Sn [新的软限制值]
  ```

- 修改硬限制:
  ```bash
  ulimit -Hn [新的硬限制值]
  ```

例如,设置软限制为 10240,硬限制为 20480:

```bash
ulimit -Sn 10240
ulimit -Hn 20480
```

#### 2.3 永久修改文件句柄限制

为了永久修改 `ulimit` 限制,需要修改系统配置文件:

##### 编辑 `/etc/security/limits.conf` 文件

打开 `/etc/security/limits.conf` 文件并添加以下行:

```bash
*       soft    nofile  10240
*       hard    nofile  20480
```

这将把所有用户的软限制设置为 10240,硬限制设置为 20480。你也可以为特定用户或组设置不同的限制。

##### 编辑 `/etc/sysctl.conf` 文件

为了确保系统内核支持更高的文件句柄数,还需要修改内核参数。打开 `/etc/sysctl.conf` 文件并添加或修改以下内容:

```bash
fs.file-max = 2097152
```

然后执行以下命令应用更改:

```bash
sudo sysctl -p
```

##### 编辑 `/etc/pam.d/common-session` 文件

确保 PAM 模块支持读取 `limits.conf`,在 `/etc/pam.d/common-session` 文件中添加以下行:

```bash
session required pam_limits.so
```

### 3. **重启服务或系统**

如果你修改了文件句柄的永久设置,需要重启系统或相关服务以使其生效:

```bash
sudo reboot
```

或针对特定服务:

```bash
sudo systemctl restart [服务名]
```

### 总结

- 使用 `lsof | wc -l` 可以查看当前系统的句柄数。
- `ulimit -n` 查看软限制,`ulimit -Hn` 查看硬限制。
- 临时修改限制使用 `ulimit -Sn` 和 `ulimit -Hn`。
- 永久修改限制需要编辑 `/etc/security/limits.conf`、`/etc/sysctl.conf`,并确保 PAM 模块配置正确。

这样可以有效管理 CentOS 系统中的文件句柄资源。

<script type="text/javascript" src="./jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("span").click(function(){
alert($(this).html()); //把DOM的this对象包装成jq对象
});
});
</script>
<span>aaa</span>
<span>bbb</span>
<span>ccc</span>
<span>ddd</span>


来源:http://zhidao.baidu.com/question/151134452.html



起初以为this和$(this)就是一模子刻出来。但是我在阅读时,和coding时发现,总不是一回事。



http://neatstudio.com/show-833-1.shtml



javascript中onclick(this) 中的this指当前什么东西?
this就是当前标签本身
onclick=xxx(this)表示一个单击事件,来进行调用xxx(this)这个JavaScript函数。而xxx(this)函数中的this表示你要进行单击对象的本身。

把this当做参数传到函数中去,实践Ok:




于是最上面那个可以用onclick事件来传入到函数中,并用juqury来进行操作,如下实践Ok:


点击后,结果如下:

结果:
<option value="1">日志标题</option>
<option value="2">日志全文</option>
<option value="3">评论引用</option>
<option value="4">所有留言</option>
<option value="5">页面搜索</option>

结果:1

而两种this获取Id值是这样的,实践也OK,如下:




对于多个id的按钮下进行click时,查找是哪个id值被点了,如下,但是有发ajax后,就不能在ajax里去写this了,那就是ajax那个this了,只能传入,如下所示:




通过this传入变量:
在<a 中实现Js函数的this调用:

jQuery操作元素的属性与样式:
//替换css 的class类

$("#button"+answerid).removeClass('submitbutton');                              
$("#button"+answerid).addClass('submitbuttondisabled');  
1.jquery添加
2.json eval,输出json二级用点来:var info=anObjectEval.info.info;
3.循环输出
对json用点,可以通过json树转为树形后,在根据显示的树形节点图层级关系通过点来实现!!!
阅读全文
javascript实现:

top.location.href   顶级窗口的地址
this.location.href  当前窗口的地址





来自:http://www.cnblogs.com/A-Song/archive/2011/12/14/2288215.html
一、描述
intval函数有个特性:”直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时()结束转换”,在某些应用程序里由于对intval函数这个特性认识不够,错误的使用导致绕过一些安全判断导致安全漏洞.
二、分析
PHP_FUNCTION(intval)
{
zval **num, **arg_base;
int base;
switch (ZEND_NUM_ARGS()) {
case 1:
if (zend_get_parameters_ex(1, &num) == FAILURE) {
WRONG_PARAM_COUNT;
}
base = 10;
break;
case 2:
if (zend_get_parameters_ex(2, &num, &arg_base) == FAILURE) {
WRONG_PARAM_COUNT;
}
convert_to_long_ex(arg_base);
base = Z_LVAL_PP(arg_base);
break;
default:
WRONG_PARAM_COUNT;
}
RETVAL_ZVAL(*num, 1, 0);
convert_to_long_base(return_value, base);
}
Zend/zend_operators.c->>convert_to_long_base()
……
case IS_STRING:
strval = Z_STRVAL_P(op);
Z_LVAL_P(op) = strtol(strval, NULL, base);
STR_FREE(strval);
break;
当intval函数接受到字符串型参数是调用convert_to_long_base()处理,接下来调用Z_LVAL_P(op) = strtol(strval, NULL, base);通过strtol函数来处理参数。
函数原型如下:
long int strtol(const char *nptr,char **endptr,int base);
这个函数会将参数nptr字符串根据参数base来转换成长整型数,参数base范围从2至36,或0.参数base代表采用的进制方式,如base值为10则采用10进制,若base值为16则采用16进制等。
流程为:
strtol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时()结束转换,并将结果返回。
那么当intval用在if等的判断里面,将会导致这个判断实去意义,从而导致安全漏洞.
三、测试代码
<?php
$o = 0.1;
for($a = 1; $a < 100; $a++){
$o += 0.1;
echo "<br>intval($o) = ".intval($o);
if(intval($o)){
print("&nbsp;true");
}else{
print("&nbsp;false");
}
}?>

输出结果:
intval(0.2) = 0 false
intval(0.3) = 0 false
intval(0.4) = 0 false
intval(0.5) = 0 false
intval(0.6) = 0 false
intval(0.7) = 0 false
intval(0.8) = 0 false
intval(0.9) = 0 false
intval(1) = 0 false
intval(1.1) = 1 true
intval(1.2) = 1 true
intval(1.3) = 1 true
intval(1.4) = 1 true
intval(1.5) = 1 true
intval(1.6) = 1 true
intval(1.7) = 1 true
intval(1.8) = 1 true
intval(1.9) = 1 true
intval(2) = 2 true
…..


必须从0.7开始加,从0.8开始加都是正确的,下面正常:
$o = 0.7;
$o += 0.1;
$o += 0.1;
$o +=0.1;
echo $o;
echo "<hr>";
echo "<br>intval($o) = ".intval($o);
if(intval($o)){
print("&nbsp;true");
}else{
print("&nbsp;false");
}

来源:http://www.cndong.cn/php-built-in-function-intval-the-use-of-inappropriate-analysis-of-security-vulnerabilities.html
分页: 127/272 第一页 上页 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 下页 最后页 [ 显示模式: 摘要 | 列表 ]