我正在使用MySQL和PHP进行我正在工作的项目.我创建了单独的用户来执行不同的功能(一个用于运行选择查询,一个用于运行更新查询等)以提供额外的安全层.这样,我认为如果某人确实设法执行注入攻击(这不太可能,因为我使用的是准备好的语句),无论他们能够做什么都将限于原本打算运行的查询类型.这是一个好习惯还是不值得麻烦?
我有一个有趣的问题,我想轻松解决.我有一个"库"程序集,在Visual Studio的解决方案中的"客户端"项目和"测试"项目中都被引用.问题是测试项目还引用了客户端项目,我们必须使用ILMerge将库程序集与客户端程序集合并以进行部署.由于库程序集与客户端程序集合并,因此当测试项目尝试构建时,我在最初引用的库程序集和合并程序集中存在的库程序集中的类型都会收到错误.
真正的问题是我们在客户端项目的后期构建步骤中运行ILMerge; 最好的解决方案是将其转移到实际的部署过程中.但是,我们目前的工具将难以实施.
有没有办法告诉.NET该类型可能在多个程序集中并且没关系(考虑到它们实际上是相同的程序集,但只是在一种情况下与另一个程序集合并)?
这是确切的问题.我有一个自动加载功能设置了一段代码,如下所示:
if(file_exists($class_file))
{
include($class_file);
return true;
}
Run Code Online (Sandbox Code Playgroud)
但是,当$class_file
设置为某个值时,我得到一个包含错误:
Error String: include(includes/php/utilities/calendar_event_html.utility.php)
[function.include]: failed to open stream: No such file or directory
Run Code Online (Sandbox Code Playgroud)
它适用于其他文件,当我使用调试器逐步执行此代码时,很明显PHP认为该文件存在,但似乎include
没有.有没有人知道发生了什么?
我尝试了两种不同的实现来模拟POST表单.一个使用fsockopen
(例如:http://www.faqts.com/knowledge_base/view.phtml/aid/7962)和其他用途fopen
(例如:http://netevil.org/blog/2006/nov/http- post-from-php-without-curl).
我遇到了一些严重的性能问题fsockopen
- 当我使用调试器逐步完成它时,一切似乎都运行得很好,但是当我没有附加调试器时,页面需要花费很长的时间来加载(可能超过10秒). fopen
完美的工作(加上我不必解析响应头).有谁知道为什么fsockopen
会出现这些性能问题?是否与超时设置有关?
我在下面提供了我的代码.
//fsockopen implementation
/**
* The class that posts form data to a specified URL.
* @package Core
* @subpackage Classes
*/
class SU_form_poster_class
{
/**
* The file handle which is created when a form is posted.
* @var resource
*/
protected $file_handle;
protected $port;
protected $timeout;
/**
* Creates a new instance of this class.
* …
Run Code Online (Sandbox Code Playgroud) 我正在使用mysqli类和预处理语句在PHP中编写数据库处理程序类.我试图打印出结果.它不起作用,所以我决定做一些调试.我尝试使用该类中的num_rows()
方法mysqli_statement
,但它一直返回0.我决定编写一小部分测试代码以使其更简单,以便我可以看到出了什么问题.然后我能够返回我想要的数据,但num_rows()
即使实际选择和检索某些数据,该方法仍然返回0.这是代码:
$mysqli = new mysqli('localhost', 'username', 'password', 'database');
if(mysqli_connect_errno())
{
die('connection failed');
}
$statement = $mysqli->stmt_init();
$query = "SELECT name FROM table WHERE id = '2000'";
if($statement->prepare($query))
{
$statement->execute();
$statement->bind_result($name);
$statement->fetch();
$statement->store_result();
echo $statement->num_rows();
echo $name;
}
else
{
echo 'prepare statement failed';
exit();
}
Run Code Online (Sandbox Code Playgroud)
所以是的,预期的结果是:
1name
Run Code Online (Sandbox Code Playgroud)
实际结果是:
0name
Run Code Online (Sandbox Code Playgroud)
谁能告诉我为什么会这样?
纵观Project Server 2010的SDK(发现这里在.net反射,我发现一些有趣的事情是让我困惑.
显然,SvcProject.ProjectClient
该类ProjectServerServices.dll
继承自System.ServiceModel.ClientBase<Project>
,这是一个实现System.IDisposable
接口的抽象类.但是,当我检查SvcProject.ProjectClient
类(不是抽象的)时,没有Dispose
方法.是什么赋予了?我认为从接口继承的每个方法都必须在具体的实现中实现(否则接口的用途是什么)..NET Reflector对我说谎吗?微软出于某种原因绕过了这个要求吗?这是怎么回事?