我正在编写一个Windows服务,需要在重新启动/重新启动服务时保留一些数据.目前我正在将文件写入返回的目录中Application.UserAppDataPath,但这似乎没有给我一致的答案.我该如何确定写入数据的正确位置?
长时间阅读和测试,但我想知道.这是正确的PHP OOP代码,或不
Class User {
function Add($Name, $Password){
$sql_str = "INSERT INTO User SET Name = '$Name', Password = '$Password'";
$sql->do_sql($sql_str);
}
function Del($UserID) {
$sql_str = "DELETE FROM User WHERE UserID = '$UserID'";
$sql->do_sql($sql_str);
}
function Show ($Limit)
if ($limit > 0){
$sql_str = "SELECT * FROM User ORDER BY Name LIMIT $Limit";
}else{
$sql_str = "SELECT * FROM User ORDER BY Name";
}
$result = $sql->do_sql($sql_str);
for ($i = 0; $i < COUNT($result); $i++){
$data[$i]['UserID'] = ....
$data[$i]['Name'] …Run Code Online (Sandbox Code Playgroud) 除了Ask,Google,Microsoft和Yahoo!之外,我一直在考虑禁止每一个爬虫.来自我的网站.
这背后的原因是我从来没有看到任何其他网络爬虫生成任何流量.
我的问题是:
更新:
到目前为止,我使用黑名单方法:如果我不喜欢爬虫,我将它们添加到禁用列表中.
我不是黑名单的粉丝,因为这是一个永无止境的故事:那里总有更多的爬虫.
我并不担心真正丑陋的行为不端的爬虫,它们会被自动检测和阻止.(无论如何,他们通常不会要求robots.txt :)
但是,许多爬虫在任何方面都没有真正行为不端,它们似乎对我/我的客户没有任何价值.
例如,有几个抓取工具为网站提供支持,声称他们将成为下一个Google; 只有更好.我从未见过来自他们的任何流量,我对他们变得比上面提到的四个搜索引擎中的任何一个都更好持怀疑态度.
更新2:
我一直在分析几个站点的流量一段时间,似乎对于合理的小站点,每天有100个独特的访问者(=我无法识别为不是人类的访问者).大约52%的生成流量来自自动化流程.
60%的自动访问者没有阅读robots.txt,40%(占总流量的21%)确实请求robots.txt.(包括Ask,Google,Microsoft和Yahoo!)
所以我的想法是,如果我阻止所有似乎没有为我生成任何价值的表现良好的爬虫,我可以将带宽使用和服务器负载减少大约12%-17%.
我经常要绑定?一些需要参数的函数.我使用的解决方案是将函数包装在匿名函数内部.
function foo( arg_0 ) {
// do stuff with: arg_0
}
function bar() {
var abc;
// stuff happens
abc = 'some value';
attachEventHandler(elementId, 'click', function(){foo( abc );});
}
bar();
Run Code Online (Sandbox Code Playgroud)
有更优雅的方式吗?
我们有一个数据库模式,以简化(略作作)的形式看起来像:
在列(domainId,groupId)上设置从用户到域的外键的位置,以确保引用完整性。此结构可以很好地用于预期目的。
但是,对于与同一个数据库通信的新应用程序,我现在需要为Doctrine创建一个映射,以映射上述结构,包括两列上的外键关系。
我尝试了以下方法:
<entity name="User" table="users">
<!-- other fields -->
<many-to-one field="domain" target-entity="Domain" fetch="LAZY">
<join-columns>
<join-column name="domainId" referenced-column-name="domainId"/>
<join-column name="groupId" referenced-column-name="groupId"/>
</join-columns>
</many-to-one>
</entity>
Run Code Online (Sandbox Code Playgroud)
但这给我一个错误:
UnitOfWork.php line 2649: Undefined index: groupId
所以,我的问题是:
在主义中描述多列多对一外键关系的正确方法是什么?
为了完整起见,数据库为上述ERD中所述的架构创建代码:
CREATE TABLE `users` (
`userId` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`groupId` INT(10) UNSIGNED NOT NULL,
`domainId` INT(10) UNSIGNED NOT NULL,
`someData` VARCHAR(32),
PRIMARY KEY (`userId`),
KEY `key_users_groupId_domainId` (`groupId`, `domainId`)
) ENGINE=InnoDB;
CREATE TABLE `domains` (
`domainId` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`groupId` …Run Code Online (Sandbox Code Playgroud) php mysql doctrine foreign-key-relationship doctrine-mapping
我运行一个允许用户写博客文章的网站,我真的想总结一下书面内容并用它填充<meta name="description".../>-tag例如.
我可以使用哪些方法来自动汇总/描述用户生成内容的内容?
有没有(最好是免费的)方法解决了这个问题?
(我看过其他网站只是复制了前100个左右的单词,但这让我觉得它不是一个次优解决方案.)
我一直在想像http://example.com/filename.php?dosomething和http://somesite.net?logoff这样的链接.
由于我对PHP知之甚少,而英语不是我的母语,我一直无法找到这样的好信息.
我知道http://mysite.com/edit.php?editpassword和http://mysite.com/edit.php?editname可以提供完全不同的内容,但我该如何实现呢?
假设我想将这些代码行实现为`editpassword
Password
<input type="password" name="password">
<input type="submit">
Run Code Online (Sandbox Code Playgroud)
这些行到?editname
Type your name
<input type="text" name="name">
<input type="submit">
Run Code Online (Sandbox Code Playgroud)
我怎么能在一个可能包含的文件中执行此操作
<?php
require "includes/head.php";
require "includes/nav.php";
if(!isset($_SESSION['login'])){
header("Location: index.php");
}
?>
<div class="row-fluid">
<div class="span3">
<div class="well sidebar-nav">
<ul class="nav nav-list">
<li class="nav-header">New</li>
<li><a href="#">sss</a></li>
</ul>
</div><!--/.well -->
</div><!--/span-->
<div class="span9">
<div class="row-fluid">
<div class="span9">
<h2>Some header</h2>
<p>Some text</p>
</div><!--/span-->
</div><!--/row-->
<div class="row-fluid">
?editname & ?editpassword should appear here.
</div><!--/row-->
<?php require "includes/footer.php"; …Run Code Online (Sandbox Code Playgroud) 我加入了两张桌子
例如
table_A +---------+-----------+-----------+ | user_id | ticket_id | user_name | +---------+-----------+-----------+ table_B +-----------+-------------+ | ticket_id | ticket_name | +-----------+-------------+
如果我运行以下查询:
SELECT table_A.user_id , table_A.user_name , table_B.ticket_name FROM table_A LEFT JOIN table_B ON table_B.ticket_id = table_A.ticket_id WHERE ticket_id = '1';
在实时服务器上,我们收到错误:" Column 'ticket_id' in where clause is ambiguous"
在测试服务器上接受查询.
我知道如何解决错误,这不是问题.
但是,如果我们的测试服务器不接受此查询并且(就像生产服务器那样)抛出错误,我会很高兴.
有没有人知道是否存在某种设置会使测试服务器像实时服务器一样抛出错误?
测试服务器
上的PS MySQL版本:Live服务器
上的MySQL版本:5.0.32-Debian_7etch5-log5.0.41-community-log
关于SRP协议:http: //en.wikipedia.org/wiki/Secure_remote_password_protocol
我可以看到会话密钥(K)的生成是完全安全的,但在最后一步中,用户发送K(M)证明.如果网络不安全且midlle中的攻击者捕获了M,他就可以在没有K的情况下进行身份验证.
我有一个查询,LEFT JOIN在子选择上执行.此查询在高负载环境中运行,并在设置要求内执行.查询(高度简化)看起来像:
SELECT
table_A.pKey
, table_A.uKey
, table_A.aaa
, table_B.bbb
, alias_C.ccc
, alias_C.ddd
FROM table_A
INNER JOIN table_B ON table_A.pKey = table_B.pKey
LEFT JOIN (
SELECT
table_X.pKey
, table_X.ccc
, table_Y.ddd
FROM table_X
INNER JOIN table_Y ON table_X.pKey = table_Y.pKey
) AS alias_C ON table_A.uKey = alias_C.pKey;
Run Code Online (Sandbox Code Playgroud)
(由于各种原因,不可能将子选择重写为(直接)LEFT JOIN).
现在,我无法LEFT JOIN on subselect与之合作Zend_Db_Select.我已经尝试了我能想到的一切,但它不起作用.
所以我的问题是:
Zend_Db_Select? 我很惊讶通过PHPMyAdmin向mysql数据库上传超过几兆字节的数据似乎是不可能的,而我可以轻松上传一个msaccess表,最多可达2千兆字节.
所以有没有php或任何可以允许这样做的脚本不像phpmyadmin?
我很擅长这个.当我认为一个好的教程会做得更好时,试图理解PHP.net上mcrypt的手册页.所以我没有任何实质性的搜索.
我还尝试了使用mcrypt使用2个函数执行加密和解密的一个示例,但它给出了"密钥大小对于此算法来说太大"的警告.
任何人都可以请我写一个双向类来使用mcrypt进行加密/解密,这样我就可以理解库了吗?谢谢!
php ×4
mysql ×3
algorithm ×1
apache2 ×1
binding ×1
c ×1
doctrine ×1
encryption ×1
javascript ×1
left-join ×1
mcrypt ×1
nlp ×1
oop ×1
robots.txt ×1
security ×1
seo ×1
srp-protocol ×1
subquery ×1
url ×1
web-crawler ×1
zend-db ×1