你什么时候考虑使用一个而不是另一个?为什么?
我有一个页面,允许用户下载动态生成的文件.生成需要很长时间,所以我想显示一个"等待"指标.问题是,我无法弄清楚如何检测浏览器何时收到文件,所以我可以隐藏指标.
我正在以隐藏的形式发出请求,该请求POST到服务器,并针对其结果定位隐藏的iframe.这样我就不会用结果替换整个浏览器窗口.我在iframe上监听"加载"事件,希望在下载完成后它会触发.
我在文件中返回"Content-Disposition:attachment"标题,这会导致浏览器显示"保存"对话框.但浏览器不会在iframe中触发"加载"事件.
我尝试过的一种方法是使用多部分响应.因此它会发送一个空的HTML文件,以及附加的可下载文件.例如:
Content-type: multipart/x-mixed-replace;boundary="abcde"
--abcde
Content-type: text/html
--abcde
Content-type: application/vnd.fdf
Content-Disposition: attachment; filename=foo.fdf
file-content
--abcde
Run Code Online (Sandbox Code Playgroud)
这适用于Firefox; 它接收空的HTML文件,触发"load"事件,然后显示可下载文件的"Save"对话框.但它在IE和Safari上失败了; IE触发"加载"事件但不下载文件,Safari下载文件(名称和内容类型错误),并且不会触发"加载"事件.
一种不同的方法可能是调用启动文件创建,然后轮询服务器直到它准备就绪,然后下载已经创建的文件.但我宁愿避免在服务器上创建临时文件.
有没有人有更好的主意?
考虑这两个例子......
$key = 'jim';
// example 1
if (isset($array[$key])) {
// ...
}
// example 2
if (array_key_exists($key, $array)) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
我很想知道其中任何一个是否更好.我一直使用第一个,但看到很多人在这个网站上使用第二个例子.
那么哪个更好?快点?更明确的意图?
我将WordPress安装移动到Windows/IIS服务器上的新文件夹.我在PHP中设置301重定向,但它似乎没有工作.我的帖子网址格式如下:
http:://www.example.com/OLD_FOLDER/index.php/post-title/
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何抓取/post-title/URL 的一部分.
$_SERVER["REQUEST_URI"] - 每个人似乎都建议 - 返回一个空字符串.$_SERVER["PHP_SELF"]刚刚回来index.php.为什么会这样,我该如何解决?
我的服务器上有我的网站
http://www.myserver.uk.com
Run Code Online (Sandbox Code Playgroud)
为此,我有两个域:
http://one.com
Run Code Online (Sandbox Code Playgroud)
和
http://two.com
Run Code Online (Sandbox Code Playgroud)
我想用PHP当前域,但如果我使用$_SERVER['HTTP_HOST']然后这给我看
myserver.uk.com
Run Code Online (Sandbox Code Playgroud)
代替:
one.com or two.com
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得域名,而不是服务器名称?我有PHP版本5.2
用户可以控制的任何变量,攻击者也可以控制,因此是攻击的来源.这被称为"污染"变量,并且不安全.
使用时$_SERVER,可以控制许多变量.PHP_SELF,HTTP_USER_AGENT,HTTP_X_FORWARDED_FOR,HTTP_ACCEPT_LANGUAGE和许多其它的是由客户端发送的HTTP请求报头的一部分.
有没有人知道"安全列表"或无污染的$_SERVER变量列表?
可能重复:
HTTP_HOST与SERVER_NAME
你好,
我想获取运行脚本的域名.如何用PHP完成?我看到它$_SERVER['HTTP_HOST']以及$_SERVER['SERVER_NAME']包含这些信息.该变量是否始终有效,我应该使用另一个吗?
谢谢.
当我的网站在开发环境中时 - 它是url:testurl.com
现在在生产服务器上我的codeigniter应用程序的地址必须是someurl.com/mysite/
我把它移到那里,每次我试图运行一些功能,例如/ home/test - 它让我进入someurl.com/home/test - 这是错误的.
它必须是someurl.com/mysite/home/test - 如何解决?我确实设定了
$config['base_url'] = someurl.com/mysite/
Run Code Online (Sandbox Code Playgroud) 可能重复:
HTTP_HOST与SERVER_NAME
$_SERVER['HTTP_HOST']和$_SERVER['SERVER_NAME']?? 之间有什么区别?
使用HTTP_REFERER.
条件获取域名时遇到问题,如下所示:
http://www.example.com向我的服务器发送 curl 帖子。问题是,example.com 不会在curl_setopt(CURLOPT_REFERER). 那么我的服务器端有可能获得他们的域名吗?
非常感谢你帮助我
到目前为止我的代码:
在 abc.com 方面
$data = array('username' => $username ,
'email' => $email,
'phone' => $phone );
$string = http_build_query($data);
// For debugging purpose
// echo $string;
$ch = curl_init("http://localhost/test/str_pos.php");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
curl_close($ch);
header("Location: str_pos.php");
Run Code Online (Sandbox Code Playgroud)
在我的服务器端:
$domain = parse_url($_SERVER['HTTP_REFERER']);
if (isset($domain['host'])) {
echo $domain['host'];
}
else{
echo "No host found";
}
Run Code Online (Sandbox Code Playgroud) php ×9
apache ×1
codeigniter ×1
curl ×1
domain-name ×1
http ×1
iis ×1
javascript ×1
mime ×1
performance ×1
security ×1
url ×1