我在想 - 比如说,你需要花费数千个工时,想出最先进的CMS或其他东西.你如何确保从你那里得到它的人不会盗版它?我可以坚持要求买方给我他们的URL并将其哈希并将其用作软件中各处的校验和,但这听起来像是一种较弱的安全形式.
还有其他方法吗?一个可能是让客户在提供任何页面之前向我的服务器发送POST进行身份验证,但这听起来不公平.
(当然,我可以坚持自己托管软件..)
我正在考虑使用CodeIgniter作为我下一个Web应用程序的框架.但是,我已经定义了大量的辅助类和数据结构.我可以将它们添加到应用程序的库中,但我必须重命名大量文件和类的名称以匹配标准
我是否可以直接包含文件,就像在正常的Web应用程序上工作一样,绕过load-> library()?或者是为常用的类保留了库?
我正在制作一款轻型RPG游戏,其中角色可以装备武器,装甲和2个配件插槽.这是一个可能的解决方案:
equipped_equipment(<characterid>, <equipmentid>, <slotid>)
slot(<slotid>, slotname)
equipment(<equipmentid>, equipment_name, equipment_script_name)
Run Code Online (Sandbox Code Playgroud)
所以,要找出角色装备的武器,我能做到
SELECT equipmentid, equipment_name FROM equipment e, equipped_equipment eq
WHERE e.equipmentid = eq.equipmentid AND eq.slotid = 'weapon' AND
eq.characterid = 1
Run Code Online (Sandbox Code Playgroud)
但是这与这样的架构相比如何呢?
equipment (<characterid>, weapon_slot, armor_slot, accessory1_sot, accessory2_slot)
Run Code Online (Sandbox Code Playgroud)
当然,使用上面的三个表(有些规范化 - 我可能将设备名称分开并放入equipment_details表或某种类型)它允许我
但是第二个非标准化解决方案允许我通过一个查询获取所有设备的ID,而添加新插槽只是添加一个新列.从长远来看哪一个更好?欢迎提出建议和改进!
所以我有这个2d动态数组,当我完成它时,我想要释放内容.但是我在析构函数后继续遇到堆损坏.如果我注释掉析构函数,代码工作正常(当然有内存泄漏).(Visual Studio 2005)
FrameData::FrameData(int width, int height)
{
width_ = width;
height_ = height;
linesize[0] = linesize[1] = linesize[2] = linesize[3] = 0;
// Initialise the 2d array
// Note: uint8_t is used by FFMPEG (typedef unsigned char uint8_t)
red = new uint8_t* [height];
green = new uint8_t* [height];
blue = new uint8_t* [height];
for (int i=0; i < height; i++)
{
red[i] = new uint8_t [width];
green[i] = new uint8_t [width];
blue[i] = new uint8_t [width];
}
}
FrameData::~FrameData() …Run Code Online (Sandbox Code Playgroud) 我有这段代码,我正在考虑简化:
if (numberOfResults > 1)
{
trackResult_ = new TrackResult[numberOfResults];
for (int i=0; i < numberOfResults; i++)
{
// Make a deep copy
TrackResult tempResult = result[i];
TrackResult * clone = new TrackResult(tempResult);
trackResult_[i] = *clone;
}
storeJointResults(trackResult_, numberOfResults);
}
else
{
trackResult_ = new TrackResult(*result);
}
Run Code Online (Sandbox Code Playgroud)
(我没有选择,只能在这里使用一个简单的动态数组.在我的工作场所,向量被认为'过于复杂')
我想知道我是否可以逃脱
// even if we just have one result, we init an array size of one
trackResult_ = new TrackResult[numberOfResults];
Run Code Online (Sandbox Code Playgroud)
但是,我已经在几个点检查结果的数量并采取相应的行动
if (numberOfResults_ == 1)
{
velocity = trackResult_.velocity;
}
Run Code Online (Sandbox Code Playgroud)
这些代码仍然有效吗?如果没有,为什么?
假设我有一个产品清单,每个都有价格.我希望展示最贵的产品,如果2个产品或更多的领带,那么我希望按他们的名字订购.这样做似乎没有产生我想要的结果:
ORDER BY cost DESC, product_name
Run Code Online (Sandbox Code Playgroud)
我正在寻找的语法是什么?
通常,我尝试将我的文件夹设置为拥有权限775,但是某些web主机拒绝让PHP写入或将文件移动到任何文件夹,除非它具有权限777(可能是open_dir或安全模式).
有没有办法防止从这些文件夹中运行任何PHP文件,以防恶意PHP脚本上传到那里?
我有一个名为 的基类,NodeUpgrade它有几个子类型。特定子类的示例是FactoryUpgrade.
我有一个 NodeUpgrades 列表,它可以是不同子类型的混合。如何编写 linq 查询来检索类型NodeUpgrade并转换为该特定类型?
我的工作查询如下所示:
var allFactories = (from Node n in assets.Nodes
from FactoryUpgrade u in n.NodeUpgrades
where u.ClassID == NodeUpgradeTypes.Factory
select u)
Run Code Online (Sandbox Code Playgroud)
这当然行不通。我可以指定输出的最终类型吗?
我似乎无法为此找到超级全局.基本上,如果在某个PHP文件上执行,比方说http://www.example.com/services/page.php,我想检索http://example.com/services.我该如何实现这一目标?
假设我设计了这样的架构 - 应用程序由模块组成,模块使用特定于域的实用程序来执行对模型或数据库的更改.
例如,注册模块显示表单,接受输入,然后使用注册实用程序执行调用以插入用户信息.谁负责执行数据验证?
1)模块,因为它是'优越'将数据传递给实用程序2)实用程序,这样没有可疑数据将通过3)两者都应该有彻底的数据验证4)其他一些安排
思考?意见?
我正在编写一个与现有PHP应用程序集成的附加模块; 因为我使用的是MVC模式,并且可能需要大量包含类(根据用户的操作可能根本不使用),所以我决定使用类的自动加载.
但是,我必须确保自动加载功能不会干扰现有应用程序的正常操作.
如果没有定义类名,autoload是否只会启动?
假设我必须编写另一个使用自己的自动加载功能的模块(比方说,我有一个模块的自动加载,因为它们都位于自己的文件夹中),我如何区分它的模块?
对于#2,我想到了2个选项.使用模块名称(例如'MyNewModule_View_Default'和'AnotherModule_View_Default')为类名添加前缀,或使用file_exists检查包含文件是否存在.
其他建议也受到欢迎!