我在安装perl的时候安装好了我运行命令perldoc perl的时候报错了,说和oracle自带的perl冲突,问下如何解决?
问题如下:
C:\Documents and Settings\Administrator>perldoc perl
Can't load 'G:\oracle\product\10.2.0\db_1\perl\5.8.3\lib/MSWin32-x86-multi-thread/auto/File/Glob/Glob.dll' for module File::Glob:load_file:
The specified module could not be found at G:\oracle\product\10.2.0\db_1\perl\5.8.3\lib/MSWin32-x86-multi-thread/XSLoader.pm line 68.
我的perl安装在C:\Perl下,
解决方法:
骗骗oracle 10g把它的环境变量中的5.8.3
set PER5LIB=f:\oracle\product\10.1.0\Db_1\perl\5.6.1\lib
You seem to be defanged by the same issue as well.
>How can I get the system to access ActivePerl first from the command
>prompt not the version of perl installed with Oracle 10G
* Go to "My Computer"
* Right click and select "Properties"
* Go to "Advanced" tab
* Click on "Environmental Variables"
* Go to "System Variables"
* Set PERL5LIB to blank.
* Go to "User Variables"
* Create a PATH variable that points to your Activestate Perl
Now close and reopen your MS-DOS prompt and try executing the script. You will not see the problem
如果是放在任务计划里面使用,每隔一段时间跳出一个窗口也是很悲剧的事情。
所以设置成不显示窗口的方式来运行才是王道。
方法如下:
新建个vbs的文件
内容为:
Set shell = Wscript.createobject("wscript.shell")
a = shell.run ("D:\1.bat",0)
其中D:\1.bat为批处理的路径
解决方法:
在PHP.INI里的 SOAP
[soap]
; Enables or disables WSDL caching feature.
; http://php.net/soap.wsdl-cache-enabled
soap.wsdl_cache_enabled=1
; Sets the directory name where SOAP extension will put cache files.
; http://php.net/soap.wsdl-cache-dir
soap.wsdl_cache_dir="d:\xampp\tmp"
; (time to live) Sets the number of second while cached file will be used
; instead of original one.
; http://php.net/soap.wsdl-cache-ttl
soap.wsdl_cache_ttl=86400
; Sets the size of the cache limit. (Max. number of WSDL files to cache)
soap.wsdl_cache_limit = 5
这里面配置Soap WSDL 缓存,这样就不会每次查询都要重新获取WSDL
站长交易平台是一个基于友情链接交换、网站链接买卖与网建等相关的网站任务交易平台,通过这个交易平台,每一个站长都可以快 速地查找并交换、交易网站链接,平台采用的是点对面的交易模式,用户通过站长交易平台发布的链接可以更加直观的展示在买家面前。
交易便捷:站长交易依托站长之家八年的服务品 牌,在交易过程中更加注重透明化,买家与卖家在交易过程,不需要第三者介入交易,整个交易过程都在网站上直观体现,卖家网站链接的出售价格、Alexa排名、PageRank值、百度收录数等交易参数全部得到显 示,同时卖家的交易信誉与网站的百度快照、Google收录数都成为交易过程中的关键参考值,这使得买家可以清楚的了解购买网站链接的质量,再也不用费时费力去检查网站链接的每一项参 数。只需要选中链接商品,支付费用到站长交易网的交易平台,卖家得到交易通知,增加买家网站链接,即宣告交易正式开始,当卖家完整履行了交易义务后,则可 获得买家确认付款。
安全保障:在链接交易与交换的过程中,最常见的莫过于虚假链接、中途撤销付费链接,极大地影响了站长的交易积极性,而在站长交易平台上,通过 站长工具与站长保姆服务,买家可以随时获得交易提醒,例如,卖家中途撤销买家的网站链接,站长交易将以短信的方式通知买家,使得买家不用担心链接的不稳定性,同时卖家也不用担心加了链接收不到款,站长 交易平台采取的资金冻结方式可以保证卖家放一天链接就可以收一天链接的费用, 程序全自动拨款,交易中心有详细的财务状况供用户查询。
免费交易:与现行的交易服务相比,站长之家旗下的站长交易平台完全免费,不管是买家还是卖家,通过站长交易这一中介平台达成的链接买卖与任务 交易都不用支付任何的中介费用, 最大限度低保障了买卖双方的交易利益。
测试地址:http://jy.chinaz.com
由于开发周期比较紧张,所以难免出现考虑不周的地 方,现在是内测暂时以邀请开通的方式来进行,只有获得邀请资格的用户才能发布信息,没有激活的用户只有购买的权限,在测试结束后我们会尽快开放所有权限给 广大站长。
目前还在紧张的内测中,欢迎大家围观。
在GBK字符集中,0xbf27不作为多字节字符,而0xbf5c是多字节字符。当0xbf和0x27组合后就变成0xbf27,0xbf 和0x5c 组合后就变成了0xbf5c 。
当注入字符比如0xbf27时,因为0x27为',所以addslashes()在27前加上5c(即\),把0xbf27修改为 0xbf5c27。而0xbf5c27的0xbf5c被认为时一个多字节字符,所以后面的27(')就被注入了sql语句中了。
代码如 下:
[client]
default-character-set=GBK
Create a table called users:
CREATE TABLE users
(
username VARCHAR(32) CHARACTER SET GBK,
password VARCHAR(32) CHARACTER SET GBK,
PRIMARY KEY (username)
);
<?php
$mysql = array();
$db = mysqli_init();
$db->real_connect('localhost', 'myuser', 'mypass', 'mydb');
$_POST['username'] = chr(0xbf) .
chr(0x27) .
' OR username = username /*';
$_POST['password'] = 'guess';
$mysql['username'] = addslashes($_POST['username']);
$mysql['password'] = addslashes($_POST['password']);
$sql = "SELECT *
FROM users
WHERE username = '{$mysql['username']}'
AND password = '{$mysql['password']}'";
$result = $db->query($sql);
if ($result->num_rows)
{
echo '<p>Success</p>';
}
else
{
echo '<p>Failure</p>';
}
?>
本文介绍的是用 mysql_real_escape_string对用户提交数据进行整理处理和通过addslashes以及mysql_escape_string这 3个类似的功能函数的区别。经过转义的数据可以直接插入到数据库中。
很好的说明了addslashes和 mysql_real_escape_string的区别,虽然国内很多PHP coder仍在依靠addslashes防止SQL注入(包括我在内),我还是建议大家加强中文防止SQL注入的检查。addslashes的问题在于黑 客可以用0xbf27来代替单引号,而addslashes只是将0xbf27修改为0xbf5c27,成为一个有效的多字节字符,其中的0xbf5c仍 会被看作是单引号,所以addslashes无法成功拦截。
当然addslashes也不是毫无用处,它是用于单字节字符串的处理,多字节字 符还是用mysql_real_escape_string吧。
另外对于php手册中get_magic_quotes_gpc的举例:
if (!get_magic_quotes_gpc()) {
$lastname = addslashes($_POST[‘lastname’]);
}
else {
$lastname = $_POST[‘lastname’];
}
最好对magic_quotes_gpc已经开放的情况下,还是 对$_POST[’lastname’]进行检查一下。
再说下mysql_real_escape_string和 mysql_escape_string这2个函数的区别:
mysql_real_escape_string 必须在(PHP 4 >= 4.3.0, PHP 5)的情况下才能使用。否则只能用 mysql_escape_string ,两者的区别是:
mysql_real_escape_string 考虑到连接的当前字符集,而mysql_escape_string 不考虑。
总结一 下:
addslashes() 是强行加;
mysql_real_escape_string() 会判断字符集,但是对PHP版本有要求;
mysql_escape_string不考虑连接的当前字符集





