PHP&Oracle 学习笔记之:PHP 连接 Oracle也许不需要tnsnames.ora

发布于: 2008年03月27日

一直用PHP+MySQL 的黄金组合,由于开发需要,转到Oracle数据库中去。

大家只到,连接Oracle服务端需要相应版本Oracle客户端 Oracle Instant Client程序,并需要在tnsnames.ora指定连接信息,格式如下:

ora1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ora1)
)
)

但是实际上考虑PHP寻找tnsnames.ora文件也许并不会那么顺利,google了一圈之后,发现还可以这么写connect:
$username='oracleuser';
$passwd='oraclepass';
$protocol='TCP';
$SERVICE_NAME='ora1';
$ORACLE_SERVER_IP_ADDRESS='192.168.1.1';
$Port='1521';
if(!$conn = @oci_connect($username, $passwd, "(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = $protocol)(HOST = $ORACLE_SERVER_IP_ADDRESS)(PORT = $Port)) ) (CONNECT_DATA = (SERVICE_NAME = $SERVICE_NAME) ) )")) echo("Error in Connecting to DataBase");

这样,就不需要知道tnsnames.ora文件在哪里,也可以连接oracle了。

当然前提是php成功启用oci8模块

本文为寻找人生的起点(http://blog.cn-ic.org)原创,如需转载,请注明出处,并保留原文链接 http://blog.cn-ic.org//?p=76。

windows下PHP 部分扩展无法加载问题的解决

发布于: 2008年03月27日

有的时候解决问题的办法很简单,但是我们总是往复杂的方向考虑解决问题的方法。

今天在windows2003 底下配置windows2003+Apache2.2.8+php5.2.5+mysql4.1.22, 并用oracle instant client 10.2配置连接Oracle 数据库时,怎么都没有办法加载mysql,mysqli, oci8等模块。而且重启apache,没有错误提示。

虽然oracle 有官方的指导性文件,链接在这里:

http://www.oracle.com/technology/global/cn/pub/notes/technote_php_instant.html

但是也许是人品不咋滴,在phpinfo()输出页面怎么都不出现mysql,oci8相关模块的信息。让我处于极度郁闷的状态。

解决办法:

1. mysql/mysqli无法加载的解决,其实在php安装根目录下就已经有提示了:

php >5.0.0 的php_mysql.dll模块 依赖libmysql.dll 文件。该文件已经打包在php安装文件内(在php安装根目录下)。而我需要做的是能让系统找到它,最好的方法是扔到c:/windows/system32目录下,当然取消php.ini里面的

;extension=php_mysql.dll

前面的分号注释也是必要步骤。

通过以上步骤问题成功解决。

2.oci8模块的问题:

虽然oci8模块加载的问题要比mysql稍微复杂一点,通过以上问题解决,给了我一些提示。

官方文件其实是告诉我们,要让系统找到下面三个文件,

  • oraociei10.dll
  • orannzsbb10.dll
  • oci.dll

才能让oci8模块工作,也许是人品欠佳,怎么设系统环境变量都找不到。于是我就干脆把上面三个文件扔到c:/windows/system32,问题就这么神奇得解决了。

费了我一天的脑细胞,oracle instant client 卸了装,装了卸,真是好可怜。

本文为寻找人生的起点(http://blog.cn-ic.org)原创,如需转载,请注明出处,并保留原文链接 http://blog.cn-ic.org//?p=74。

男人,女人,婚姻--我的随想

发布于: 2008年03月15日

男人

一个男人,也许不需要有多么魁梧,多么强壮,但是必须要能负担起责任。女人,孩子,父母,女人的父母。这是男人的使命。男人可以不为自己活着,但是为了这些人,他必须坚强而勇敢得活下去。也许男人能逃避这些责任,并躲开大部分的眼睛,但是他逃不开自己的灵魂的责难。

男人也并不是不要求任何东西,他只要求一个温馨的家。有房子并不表示有家。家是一个其成员喜欢迈进的空间,是一个能洗去疲惫,充满欢笑的地方。家地另一个总要成员是他的女人。

拥有一个能带来温馨家庭的女人的男人,是幸福的。

女人

现代的女人也许已经叱诧职场,风光无限。但是终究,女人会想要一个家。

也许女人知道,家需要车房票和锅瓢盆;也许女人不知道,家还需要女人理解男人的责任和付出。可能那个被男人付出的人并不是自己关心的,总比只关心自己的男人好。

碰到这样的男人,女人也许可以考虑组建幸福的家庭。

婚姻

不要被这世上的表面现象所迷惑,美好的婚姻是很稀有的东西,包括我的父母。物质的东西很重要,但不是必要。千万别给“容忍”任何机会,“容忍”是毁灭的种子。

本文为寻找人生的起点(http://blog.cn-ic.org)原创,如需转载,请注明出处,并保留原文链接 http://blog.cn-ic.org//?p=73。

史玉柱才是真正了解游戏玩家的人

发布于: 2008年03月08日

本文为寻找人生的起点(http://blog.cn-ic.org)原创,如需转载,请注明出处,并保留原文链接

《征途》刚出来的时候,被网友谩骂那是没钱即不能生存的游戏。最近《巨人》即将公测,史玉柱又报料说将给美女玩家发工资,相信有会引起游戏界的一阵骚动。

我个人讨厌网络游戏,但是从外行角度来看,抛却社会责任、道德议论什么的,单纯从商业角度考虑,我觉得还是史玉柱才是最了解中国游戏玩家的人。他善于抓住游戏玩家的那根敏感神经,大作文章。

网游为了让玩家花费大量的时间在上面,砍怪练级的模式短期内是不会改变的。游戏玩家花大量的时间在无聊的重复的砍怪上面疯狂练级,为的是在游戏里面惟我独尊的成就感。即便如此,如果没有高等级的诱惑,相信没有谁会享受于无聊的砍怪练级。于是史玉柱的花钱练级的模式成就了他和有米玩家之间的双赢局面。多年前,我一个开私服的朋友告诉我,开私服的一个经济来源管理员是卖装备给玩家。当时我将信将疑,但是现在我服了。

再来说说发工资给美女玩家的事情。不得不说从商业角度来说是一个很好的创意。容我卑鄙的揣测一下,也许这个创意来自于劲舞团。不可否认沉迷游戏的人群中,20岁以下的男性居多。对于他们来说,如果还有什么诱惑比游戏更大,那么应该就是美女了。通过发工资吸引美女,通过美女吸引广大可怜的男性玩家,这笔帐怎么算怎么划算了。

但靠一个网游即可进入中国富人俱乐部,即可股票上市。你能说史玉柱不了解中国游戏玩家吗?当然这只是单纯从商业角度来讲的。一个商人从商业角度考虑问题也没有什么好说的。

xfce4 如何锁屏

发布于: 2008年01月22日

本文为寻找人生的起点(http://blog.cn-ic.org)原创,如需转载,请注明出处,并保留原文链接

自从解决了Mount Windows域用户限制的共享文件夹问题后,我就彻底转入了xfce4桌面环境。所以事实上我成了xubuntu使用者。

这两天发现了一个很不爽的地方,就是找不到锁屏按钮的所在。本来Gnome下可以在退出界面找到锁屏按钮,或者直接使用Ctrl+Alt+L的快捷键,但是xfce4下都没有用。

仔细研究后发现找到了我想要的的结果。

xfce4屏幕锁定呼叫一个叫xflock4命令,该命令包含在一个名为xfce4-utils的软件包里。

xflock4命令呼叫两个程序。首先执行screensaver程序(包含于xscreensaver软件包),就是屏幕保护;然后执行xlock程序(包含于xlockmore和xlockmore-gl),就是锁屏和密码验证。

所以,要成功执行锁屏,必须确定安装以上软件包。如果没有安装,请执行如下命令安装(Ubuntu有效):

#apt-get install xfce4-utils xscreensaver xlockmore

其中xlockmore和xlockmore-gl任选其一,但是不能两个一起安装,否则安装时就会提示冲突。

以上条件满足后,可以有两种方式执行锁屏:

1.执行命令:xflock4

2.快捷键:ctrl + alt + del

这个是xfce4默认快捷键,可以鼠标点击:applications->Settings->Settings Manager->按钮标签|键盘->快捷键 查看默认快捷键。

“Free Rainbow Tables”分布式计算破解密码

发布于: 2008年01月20日

本文为寻找人生的起点(http://blog.cn-ic.org)原创,如需转载,请注明出处,并保留原文链接。

在上一篇文章使用Rainbow tables和Ophcrack的组合工具破解Windows密码中,我们了解到可以通过Rainbow Table与Ophcrack的组合以更加快速的方式暴力破解Windows密码。但是对于个人,下载或者自己制作几G,甚至几十G的Rainbow Table,结果只破解一、两个密码,仍然有点得不尝失。

于是一个叫做free rainbow tables 的网站应运而生,它免费提供LM,NTLM,MD5等的hash密码破解,只要你上去注册一个帐户,提交你的密码hash(从SAM,system文件dump hash可以参考John/bkhive/samdump, 在Linux下破解SAM密码)。

计算过程不是网站的服务器完成的,而是分布于世界各地的上千台网友的PC分布计算而成。所以你也可以参与计算过程:

1.下载客户端计算程序:http://www.freerainbowtables.com/en/download/

目前上面只提供windows下的程序(DistrRTgen v3.0),但是实际上在它的论坛里面,我还找到了Linux版本的源程序,我把它放到这里来了distrrtgen3 Linux版本,纯CL程序,无GUI

2.安装:

windows版本:安装软件需要.net framework 2.0版本,可以到微软主页免费下载,其他就略过了。

Linux版本:必须安装libssl-dev, libcurl-dev两个包

解压缩下载的软件包,运行

#make configure
#make

运行成功的话会在文件夹下生成一个名为distrrtgen的可执行文件,

3.运行并填入注册的帐户密码

Windows版本再次略过

Linux版本,

运行一次:./distrrtgen,

然后关闭,修改~/.distrrtgen/目录下的distrrtgen.conf文件,填入用户名,密码

再次运行: distrrtgen源码目录的distrrtgen文件即可

4.运行过程,服务器以8M文件为一个计算单位,计算完成后上传8M计算过的文件,然后在下载下个8M文件,如此反复。

5.提交hash. Windows版本可以在软件界面提交hash,Linux版本没有这个功能,只能到网站登录后在网页上提交

人多力量大,很多人一起干活总比一个人强。但是受很多因素限制,如:

1.他们的Rainbow Table还是不够全面,NTLM的Rainbow table只到字母+数字的9位(虽然已经是123G之巨了),大于9位的NTLM密码就成了无接

2.有些东西他本来就是无解的,比如你要是提交一个文件的MD5 hash,你看它是还能解得出?

所以目前网站公布的成功比例是44%左右,其中包括我提交的一个NTLM hash就没有结果。但是对于个人来说基本上可以满足要求了。如果提交到他们网站上破解不了的hash,相信一个人的力量也搞不定了,况且几百个人一起计算,相信速度也会比一个人快很多。

浙ICP备18056264号-1