Archive for the ‘东东博客’ Category

《父母不该说的一句话》目录

星期三, 3 2 月, 2010

作这父母,也许这些话我们不该对孩子说:

01 你怎么这么笨
02 连我的话都不听
03 为什么别人行,你就不行
04 怎么不说话了,哑巴了
05 你聋了?听不见我说的话
06 我没有你这样的儿子
07 是我没本事,不能……
08 妈妈求你了
09 滚吧.想去哪里就去哪里
10 再哭,让狼把你叼走
11 看我不打死你
12 这么大了还尿床
13 算了吧,你不是那块料
14 这个玩具应该这样玩
15 不要逞能,你还小着呢
16 别缠着我
17 都怪椅子,我们打它
18 等你爸爸回来,看他怎么收拾你
19 雪糕吃多了,肚子里要生虫子的
20 我像你这么大的时候……
21 磨蹭什么呀,急死人了
22 不要给我丢脸
23 要是没有你该多好
24 哟,真是太阳从西边出来了
25 为什么,为什么,哪有那么多为什么
26 不准失败
27 我让你赢一次
28 你这个懒虫,从来都不帮我做点事
29 还敢顶嘴
30 你这个忘恩负义的东西!
31 大人说话,小孩不许插嘴
32 不准哭
33 住嘴
34 你学习去吧,其他事不用你管
35 像你这个样子,长大了只有捡垃圾
36 光音乐学得好,有什么用?
37 如果考100分,我就奖励10块钱
38 不错不错,很好很好!
39 这个老师的水平太差了
40 老毛病又犯了?
41 不要难过,明天就会好了
42 你是全世界最美的女孩
43 你胖得像头猪
44 你怎么这么不懂事……
45 你以前很乖,现在越大越不听话了。
46 你竟敢用这种态度跟妈妈讲话
47 如果你下次再这样做……
48 你做这种事真让我伤透了心
49 你脸皮真厚,要是我,早找个地缝钻进去了
50 你总是丢三落四,怎么没把人给弄丢了
51 是爸爸好,还是妈妈好
52 胆小鬼,怕什么
53 来,让算命先生给你算一卦
54 你早该知道这样做不对
55 你早知道那样做才对
56 算了!下带你去了
57 你真是成事不足败事有余
58 他打你,你怎么不打他

信息来源:http://product.dangdang.com/product.aspx?product_id=20411016

禁止PHP空间列出目录的方法

星期五, 29 1 月, 2010

Options -Indexes

将以上代码直接写进 .htaccess 文件里面。
当你网站上的某个目录没有index索引时,此代码可以禁止列出目录内文件名。
提高网站安全性。

本小博昨日下午被暂停

星期三, 13 1 月, 2010

原因是2007年8月28日转的一篇文章引起的,说是涉及到政治所以被要求删除,见图:

截图留贴以示怀念。

顺便转一个链接:《CNNIC公布:规定所有CN域名须在公司名下》 http://is.gd/5ZCK8

不知这个cn域名能否活过这个月,反正不会为了存活而找公司挂靠的,死了就死了。已预先在www.GoDaddy.com注册了lordong.net域名,决定放弃国内域名了。

“Cannot modify header information”的解决方法

星期一, 11 1 月, 2010

在PHP空间部署wordpress时遇到这条警告:"Warning: Cannot modify header information – headers already sent by ….",网上搜索解决办法,有不少解决方案,这里说说我用到的方法。

PHP代码里经常用到include或者requir来包含文件,注意检查这些被包含文件<?php … ?> 后面没有空白行。不少问题是这些空白行导致的。

有些情况空白不会引起这个问题,我发现php文件如果存成UTF-8也会因为第一行头两个字节不是以“<?”开头的,所以导致这个问题,解决办法是用记事本打开,然后另存成ANSI文件即可。

如果文件内部有双字节的字符,比如汉字等,直接用记事本把UTF-8编码的文件转存成ANSI会导致浏览器里打开的汉字是乱码,解决办法是还是保存成UTF-8格式,不过需要用第三方工具把文件前的UTF-8编码特征字符去掉,比如用DreamWeaver打开,点Modify菜单里的Page Properties子菜单,选中“Title/Encoding”,然后把Encoding改成“Unicode(UTF-8)”,把"Include Unicode Signature(BOM)"前的钩去掉,最后保存即可。也可以用UltraEdit打开文件,然后切换到十六进制模式,把前三个字节“EF BB BF”剪切掉,最后保存即可。

我之所以碰到这种情况,是因为我图方便,改用记事本打开源码进行编辑,保存后文件就会自动加上“EF BB BF”前缀,看来以后在慎用记事本来修改页面文件了。

Windows 桌面万年历

星期三, 23 12 月, 2009

在网上可以找到各式各样的万年历,可没找到用于Windows桌面的独立的而面文件,于是就在一些页面的基础上做了修改,生成了一个相对较小的“万年历.htm”文件,然后可以直接放到Windows的桌面上。

添加方法:右击桌面,选择“属性”,在弹出的“显示属性”窗体里切换到“桌面”标签,点最下面的“自定义桌面”会弹出另一个“桌面项目”窗体,切换到“Web”标签,点“新建”按钮,然后浏览找到下载到本地的“万年历.htm”文件,把“锁定桌面项”前的钩去掉,然后一路确认。

修改桌面上万年历的大小或位置方法:将鼠标指针移到在桌面显示的图片上侧,会显示出一个窗口边框,此时把鼠标指针指向边框,当光标变成双箭头时拖动即可直接调整显示图片的大小。把鼠标指向其标题栏,按住左键拖动可以调整图片在屏幕中的位置。

效果见图:

“万年历.htm”文件下载:万年历.htm.txt (保存到本地时后把.txt后缀去掉)

CuteFTP设置的一点小技巧

星期二, 15 12 月, 2009

CuteFTP是比较常用的FTP上传下载工具,合理设置好传输选项可以提高上传下载的速度。

启用CuteFTP的智能覆盖可以跳过一些不变化的内容,从而减少上传下载的理,也就提高了速度。

下图是我的设置:

(更多…)

PHP空间远程下载后的配套删除代码

星期二, 15 12 月, 2009

上篇《PHP空间远程下载代码》解决了在远程PHP空间下载软件的问题,一般来说下载完并通过http方式把已下载到服务器的文件下载到本地后就要把远程服务器上的文件删除,通常情况是通过ftp连接到服务器上去删除对应的文件,可是有时没有使用FTP的条件怎么办?

我这里写了一个删除已经下载文件的PHP代码,跟上篇的downfile.php放在服务上同一个目录下即可,临时目录还是temp。

实现代码:
<?php
// folder to save downloaded files to. must end with slash
$destination_folder = ‘temp/’;

if (isset($_POST[‘submit’]))
(更多…)

PHP空间远程下载代码

星期五, 11 12 月, 2009

源码:

<form method=”post”>
<input name=”url” size=”50″ />
<input name=”submit” type=”submit”  value=”Download”/>
</form>

<?php
// maximum execution time in seconds
set_time_limit (24 * 60 * 60);
if (!isset($_POST[‘submit’])) die();

// folder to save downloaded files to. must end with slash
$destination_folder = ‘temp/’;

$url = $_POST[‘url’];
$newfname = $destination_folder . basename($url);
$file = fopen ($url, “rb”);
(更多…)

InstallShield更新系统路径脚本

星期四, 19 11 月, 2009

prototype LONG User32.SendMessageTimeout(HWND,LONG,LONG,LONG,LONG,LONG,LONG); 

//The SetEnvironmentVariable function sets the contents of the specified environment variable for the current process.
//This function has no effect on the system environment variables or the environment variables of other processes.
prototype BOOL KERNEL32.SetEnvironmentVariable(BYVAL STRING,BYVAL STRING);

#define WM_SETTINGCHANGE 0x1A
#define SMTO_ABORTIFHUNG 0x2   

prototype UpdateSystemPath(BOOL);
function UpdateSystemPath(bAdd)
    NUMBER nRootKey, nResult, nvSize, nvType;
    POINTER pParam, pResult;
    LONG lResult;
    STRING szParam, szPath, szWinDir; 
begin
    Disable(LOGGING);
   
    nRootKey = HKEY_LOCAL_MACHINE;
    if RegDBSetDefaultRoot(nRootKey) = 0 then   
        nvSize = 1; 
        nvType =  REGDB_STRING;
        nResult =  RegDBGetKeyValueEx("SYSTEM\\ControlSet001\\Control\\Session Manager\\Environment", "Path", nvType, szPath, nvSize); 
       
        szWinDir = WINDIR;
        StrRemoveLastSlash(szWinDir);
        StrReplace(szPath, "%SystemRoot%", szWinDir, 0);
       
        PathSet(szPath);
        if bAdd then
            PathAdd(TARGETDIR ^ "Bin", "", FULL, AFTER); 
        else
            PathDelete(TARGETDIR ^ "Bin", FULL);
        endif;
        PathGet(szPath);         
        RegDBSetKeyValueEx("SYSTEM\\ControlSet001\\Control\\Session Manager\\Environment", "Path", REGDB_STRING, szPath, -1);
       
        szParam     = "Environment";
        pParam      = &szParam;
        pResult     = &lResult;
        SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, pParam, SMTO_ABORTIFHUNG, 100, pResult);
       
        //set environment variable for current process
        SetEnvironmentVariable("PATH",szPath);
    endif;  
    Enable(LOGGING);
end;

InstallShield判断DotNetFramework指定版本是否安装的脚本代码

星期四, 19 11 月, 2009

// @param szVersion Version to check, e.g. "v2.0", "v3.5" and so on.

function DetectDotNet(szVersion)
    NUMBER nRootKey, nResult;
    LIST lstVersions;
    BOOL bRet;
    STRING szString;
begin
    bRet = FALSE;
    nRootKey = HKEY_LOCAL_MACHINE;
    lstVersions = ListCreate(STRINGLIST);
    if (lstVersions = LIST_NULL) then
        MessageBox ("Unable to create necessary lists.", SEVERE);
        abort;
    endif;
   
    if (RegDBSetDefaultRoot(nRootKey) = 0) then
        nResult = RegDBQueryKey("SOFTWARE\\Microsoft\\NET Framework Setup\\NDP",
            REGDB_KEYS, lstVersions);
        if (nResult = 0) then
            // Get the first string in the list.
            nResult = ListGetFirstString(lstVersions, szString);
   
            // Loop while list items continue to be retrieved.
            while (nResult != END_OF_LIST)
                // Detect the current element.
                if (StrFind(szString, szVersion) = 0) then
                    bRet = TRUE;
                    nResult = END_OF_LIST;  // Force to exit
                else
                    // Get the next string in the list.
                    nResult = ListGetNextString(lstVersions, szString);
                endif;
            endwhile;
        endif;
    endif;
   
    ListDestroy(lstVersions);  

    return bRet;
end;

无人值守安装.Net Framework 3.5的批处理脚本(传入参数是dotnetfx35.exe所在的绝对目录,解决自动连网下载的问题):

@echo off
setlocal

set INSTALLER31="%~1WindowsInstaller-KB893803-v2-x86.exe"
set DOTNETFX35="%~1dotnetfx35.exe"
set NDP35SP1="%~1NDP35SP1-KB958484-x86.exe"

echo Installing %INSTALLER31%
%INSTALLER31% /quiet /norestart /nobackup

echo Extracting %DOTNETFX35%
%DOTNETFX35% /x:%TEMP% /passive

cd /d "%TEMP%\wcu\dotNetFramework"

echo Installing dotNetFx35setup.exe
dotNetFx35setup.exe /lang:ENU /norestart /passive

echo Removing extracted files
cd /d "%TEMP%"
rd /s /q wcu

echo Installing %NDP35SP1%
%NDP35SP1% /norestart /passive

endlocal