我试图弄清楚我如何使用一个在函数外部设置的变量.有没有办法做到这一点?我试图将变量设置为"全局"但它似乎没有按预期的那样运行.
我的代码的一个简单示例
$var = '1';
function() {
$var + 1;
return $var;
}
Run Code Online (Sandbox Code Playgroud)
我想要这个,返回值2.
可能重复:
PHP双向加密:我需要存储可以检索的密码
我知道存储用户密码的最佳做法是仅存储密码的不可逆哈希值.
但是,我正在开发一个应用程序,我需要为另一个Web服务存储用户的登录信息 - 我需要定期登录并执行一些维护任务.不幸的是,该服务不提供授权令牌,所以我(非常担心)必须以我可以访问其纯文本值的方式存储密码.我不拥有或控制我正在验证的服务,唯一的方法是"借用"用户的用户名和密码并进行身份验证.
我打算在数据库中AES_ENCRYPT密码,这意味着如果有人能以某种方式访问数据库,他们将无法获得明文.但是,我的代码需要访问密钥才能解密它们,因此如果整个服务器遭到破坏,这将无法保护,密码将被泄露.
除了上述加密之外,我是否可以尽可能安全地采取最佳做法或步骤来做到这一点?
编辑
我知道无论我做什么,最终密码必须以明文形式访问,因此受损服务器意味着密码将被泄露,但我想知道我可以采取哪些措施来降低风险.EG加密数据库可以保护我在数据库受损但不是整个服务器的情况下.其他类似的缓解措施将非常受欢迎.
我有一个很大的刮擦工作要做 - 由于大量的网络延迟,大部分脚本的时间都花在阻塞上.我正在尝试多线程化脚本,以便我可以同时发出多个请求,但是大约10%的线程死于以下错误
URLError: <urlopen error [Errno -2] Name or service not known>
Run Code Online (Sandbox Code Playgroud)
其他90%成功完成.我正在请求来自同一域的多个页面,因此似乎可能存在一些DNS问题.我一次发出25个请求(25个线程).如果我一次将自己限制为5个请求,一切正常,但是一旦我得到大约10个请求,我有时会开始看到这个错误.
我已经读过在urllib2 中失败的重复主机查找,它描述了我所遇到的相同问题,并遵循其中的建议,但无济于事.
我也尝试使用多处理模块而不是多线程,我得到了相同的行为 - 大约10%的进程死于同样的错误 - 这让我相信这不是urllib2的问题,而是其他问题.
有人可以解释发生了什么,并建议如何解决?
UPDATE
如果我手动将网站的IP地址编码到我的脚本中,一切都运行正常,因此在DNS查找过程中会发生此错误.
我是新手,并且似乎无法弄清楚如果发生错误时cherrypy会向浏览器发出堆栈跟踪或错误消息.
我正在使用mod_wsgi在apache上运行,因此在开发过程中挖掘apache错误日志特别烦人.
我习惯使用PHP,当脚本崩溃时,错误很好地输出到浏览器.调试时这是一个有用的功能.如何在CherryPy中做到这一点?
关于登录CherryPy的这一部分似乎并没有涵盖这一点,除非我遗漏了一些明显的东西.
这是我正在尝试做的事情,我不确定要寻找什么或者设计它的正确方法是:
我正在为应用程序开发一个异常层次结构.作为其中的一部分,有一些例外有时是致命的,而其他时间是可恢复的 - 特定实例是致命的还是可恢复的是在运行时在异常本身中确定的.出于组织的目的,我希望能够做类似的事情(我在python中工作):
try:
mightThrowAnException()
except RecoverableException:
handleThisException()
Run Code Online (Sandbox Code Playgroud)
然后我会有类似的东西:
class MyException(...):
...
Run Code Online (Sandbox Code Playgroud)
其中MyException可以将FatalException或RecoverableException作为基类,具体取决于构造函数中发生的情况.
我知道我可以有两个单独的例外MyFatalException
和MyRecoverableException
再提高一个或有其他的代码,但有将是一个很大的不同类型的错误,这可能从代码的多个地方被提出不同的异常,异常必须做一些事情,比如检查错误日志以确定这个实例是否应该是致命的,所以我认为将所有这些代码放入异常处理程序本身是有意义的.
所以有几个问题:
__new__()
方法而且我不确定是什么这三种方法各有利弊.这些都是正确的方法还是我还需要别的东西?