你有焦油旅行到某个直接然后相对于该目录的tar文件吗?一直使用一个命令(tar)?
例如,而不是做
cd /home/test/backups; tar zvPcf backup.tar.gz ../data/
Run Code Online (Sandbox Code Playgroud)
我可以做点什么
tar -g '/home/test/backups/' zvPcf backup.tar.gz ../data/
Run Code Online (Sandbox Code Playgroud) 我想设置它,如果有人发送请求"注销"它会自动将他们带到一个页面说"成功注销".如果客户试图按后退按钮或转到限制区域,它将再次请求HTTP身份验证.
到目前为止我所拥有的是:
example.com/restricted/index.php:
<?php
session_start();
if(isset($_GET['logout']))
{
unset($_SESSION["login"]);
header("location: ../logout.php");
exit;
}
if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) || !isset($_SESSION["login"]))
{
header("HTTP/1.0 401 Unauthorized");
header("WWW-authenticate: Basic realm=\"Tets\"");
header("Content-type: text/html");
$_SESSION["login"] = true;
// Print HTML that a password is required
exit;
}
?>
// The rest of the page is then displayed like normal
Run Code Online (Sandbox Code Playgroud)
用户成功访问example.com/logout.php 如果example.com/restricted/index.php?logout被访问.当用户尝试返回时,随机事情会发生,有时它会要求两次HTTP身份验证(???),有时它会继续要求在循环中进行身份验证(?),有时它会让我回去,好像我从未退出.
我不熟悉会话是如何工作的,但我的理解是这样的:如果/当这个人被验证时,它会在一个名为login的会话中存储一个变量为true的变量......如果每个人都获得一个带注销的GET请求,它将会然后删除该会话变量并返回logout.php ...为什么当我点击返回索引时它会让我回来而不要求进行身份验证,因为会话[登录]应该没有设置.
对此PHP代码的任何改进都表示赞赏.我知道我不应该使用HTTP Basic并且应该包含SQL,但是meh.这是一个临时解决方案.
编辑:如果包含带有说明的示例,我将接受MySQL的解决方案.我还没有MySQL或PHP数据库知识(还)
网站位于此处:点击查看网站
这是问题的图像: 
正如您所看到的,使用CSS3 border-radius,background: transparent我能够从div中制作看起来像"剪切"的东西.问题应该很明显,角落也是透明的.
我知道我可以使用图像并且问题会解决,但我想使用CSS3.我认为可能有一些巧妙的方法来解决这个问题,但我没有想到它.我想要注意,我正在使用css3pie.com来允许IE6通过IE8 CSS3功能.
我正在尝试使用 JQuery 解析 sitemap.xml 使其看起来像这样的 HTML: http: //astuteo.com/slickmap/demo/
经过几个小时的研究后,我决定我确实需要一些正确方向的帮助。
它的主要模板是这样的,其中每个缩进都是不同的目录级别:
<ul id="primaryNav" class="col4">
<li id="home"><a href="http://sitetitle.com">Home</a></li>
<li><a href="/services">Services</a>
<ul>
<li><a href="/services/design">Graphic Design</a></li>
<li><a href="/services/development">Web Development</a></li>
<li><a href="/services/marketing">Internet Marketing</a>
<ul>
<li><a href="/social-media">Social Media</a></li>
<li><a href="/optimization">Search Optimization</a></li>
<li><a href="/adwords">Google AdWords</a></li>
</ul>
</li>
<li><a href="/services/copywriting">Copywriting</a></li>
<li><a href="/services/photography">Photography</a></li>
</ul>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我正在使用 google sitemap.xml,如下所示:
http://meyers.ipalaces.org/sitemap_000.xml
<url>
<loc>http://meyers.ipalaces.org/</loc>
<lastmod>2011-02-26T09:32:18Z</lastmod>
<changefreq>hourly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>http://meyers.ipalaces.org/meyers/photos/Explorer</loc>
<lastmod>2011-02-26T09:31:33Z</lastmod>
<changefreq>hourly</changefreq>
<priority>0.2</priority>
</url>
Run Code Online (Sandbox Code Playgroud)
我想出的方法避免了将所有内容都精确地设置为 css 模板上的样子,而是我只是专注于让它具有正确的级别:
它的作用是获取 URL 的级别,遍历每个级别,尝试根据前一个级别创建列表。举个例子www.example.com/brand/model/product/:
它获取第一个 [0] 元素,www.example.com这是级别 1,因此它检查是否存在ul[id=1],如果不存在则运行create_ul …
这是跟进:
我正在做这样的视图(我相信这可以优化):
db.php 包括在内:
$conn = mysql_connect("localhost","directory","dghgffhghf") or die(mysql_error());
mysql_select_db("directory", $conn) or die(mysql_error());
mysql_query("CREATE or REPLACE VIEW {$user}_rooms AS SELECT * FROM rooms WHERE palace = '$user'") or die(mysql_error());
mysql_query("CREATE or REPLACE VIEW {$user}_users AS SELECT * FROM users WHERE palace = '$user'") or die(mysql_error());
mysql_query("CREATE or REPLACE VIEW {$user}_servers AS SELECT * FROM servers WHERE palace = '$user'") or die(mysql_error());
mysql_query("CREATE or REPLACE VIEW {$user}_online_servers AS SELECT * FROM online_servers WHERE palace = '$user'") or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)
用户“目录”必须具有SELECT …
我正在使用此代码并考虑到为 32 位“修复”它的注释,但它似乎仍然不起作用。我很确定它与TGA 描述符有关。这将有 0-3 位作为 alpha 通道深度,对于 32 位,它始终为 8,并且代码没有考虑到这一点。
我试图了解如何使用此 C 代码作为指南将其拼凑在一起,但没有运气。
似乎一旦您考虑到像素长度为 4(根据评论中的补丁),他dwordize只占 4 个字节中的 3 个,我认为第 4 个字节是 alpha 位。
我尝试将功能从
function dwordize($str)
{
$a = ord($str[0]);
$b = ord($str[1]);
$c = ord($str[2]);
return $c*256*256 + $b*256 + $a;
}
Run Code Online (Sandbox Code Playgroud)
到
function dwordize($str)
{
$a = ord($str[0]);
$b = ord($str[1]);
$c = ord($str[2]);
$d = ord($str[3]);
return $d*256*256*256 + $c*256*256 + $b*256 + $a;
}
Run Code Online (Sandbox Code Playgroud)
这不起作用,然后尝试
function dwordize($str) …Run Code Online (Sandbox Code Playgroud) 我按照http://bitoftech.net/2014/12/15/secure-asp-net-web-api-using-api-key-authentication-hmac-authentication/进行自定义身份验证过滤器.
一切正常,但我不能让服务器在401上说什么.它正确地给出了www-authenicate标题和状态代码401但没有内容/正文.
我尝试使用AuthenticationFailureResult了从http://www.asp.net/web-api/overview/security/authentication-filters但没有帮助.我把我转换AuthenticateAsync成async并忽略了await警告.
这是我目前的工作,评论中的代码是我 - 我希望 - 我可以做的,这主要是它使用任何格式化程序
//request.CreateResponse(HttpStatusCode.Unauthorized, new { Error = true, Message = "Token is invalid" });
HttpContext.Current.Response.ContentType = "application/json";
HttpContext.Current.Response.Write("{ \"Error\" = true, \"Message\" = \"Token is invalid\" }");
context.ErrorResult = new UnauthorizedResult(new AuthenticationHeaderValue[0], request);
Run Code Online (Sandbox Code Playgroud) 我将SQL结果存储到动态List中,该List具有基础DapperRow类型.我正在尝试序列化/反序列化哪个XMLserializer抱怨的List:
There was an error generating the XML document. ---> System.InvalidOperationException: To be XML serializable, types which inherit from IEnumerable must have an implementation of Add(System.Object) at all levels of their inheritance hierarchy. Dapper.SqlMapper+DapperRow does not implement Add(System.Object).
有没有办法解决这个问题(除了明显将结果转换为我自己的具体对象),还是可以以某种方式使DapperRow对象符合System.Xml.XMLserializer约束?
它声明我的结果数组是System.Collections.Generic.List<dynamic> {System.Collections.Generic.List<object>}
打开数组,它说每个对象都是类型object {Dapper.SqlMapper.DapperRow}
我想是因为DapperRows现在基本上IDictionary<string, object>XML是有问题(我不能使用任何东西,但System.Xml.XmlSerializer这样不建议替代).
我只是希望能够把一个List<dynamic>我从小巧玲珑的获得和序列化和反序列化使用正确System.Xml.XmlSerializer
我有一台服务器,我想将其设置为负载平衡器/反向代理。
在 debian 10 上运行的 nginx/1.14.2
我根本不想缓存,我只是希望当人们访问负载平衡 nginx 服务器时,它将 TCP 直接发送到后端服务器(基于 nginx 的 ip 哈希算法),就像他们最初连接到它一样。
我还想在这个负载均衡器之上使用 cloudflare 作为它的 CDN 和缓存。
这是我目前的设置:
upstream backend {
ip_hash;
server node1.example.com;
server node2.example.com;
keepalive 100;
}
server {
listen 80;
listen [::]:80;
access_log off;
location / {
proxy_http_version 1.1;
proxy_set_header Host $http_host;
real_ip_header X-Forwarded-For;
proxy_pass http://backend;
proxy_redirect off;
proxy_request_buffering off;
proxy_buffering off;
}
}
Run Code Online (Sandbox Code Playgroud)
所有节点和负载均衡器在他们的 conf.d/ 中都有这个(来自 cloudflare 对 nginx 的推荐)
set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 104.16.0.0/12;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 131.0.72.0/22;
set_real_ip_from …Run Code Online (Sandbox Code Playgroud) 我正在写一些东西,允许用户搜索他们的日志.目前我有这个,其中$'{SEARCH'}是他们正在搜索的字符串.
open(COMMAND, "grep \"$in{'SEARCH'}\" /home/$palace/palace/logs/$logfile | tail -n $NumLines |");
$f = <COMMAND>;
if ($f) {
print $Title;
print "<div id=log>\n";
do { print $f."<br>";} while ($f = <COMMAND>);
print "</div>\n";
} else {print $Error; }
close(COMMAND);
Run Code Online (Sandbox Code Playgroud)
但是我注意到他们可以通过使用双引号(")或反斜杠来轻易地欺骗脚本和grep命令错误.因此我添加了这段代码:
$in{'SEARCH'} =~ s|\\|\\\\|g;
$in{'SEARCH'} =~ s|"|\Q\"\E|g;
open(COMMAND, "grep \"$in{'SEARCH'}\" /home/$palace/palace/logs/$logfile | tail -n $NumLines |");
$f = <COMMAND>;
if ($f) {
print $Title;
print "<div id=log>\n";
do { print $f."<br>";} while ($f = <COMMAND>);
print "</div>\n";
} else {print $Error; }
close(COMMAND); …Run Code Online (Sandbox Code Playgroud)