小编Ada*_*iss的帖子

PHP中的白痴证明,跨浏览器强制下载

我正在使用强制下载主要下载网站上的拉链和mp3(http://pr1pad.kissyour.net) - 跟踪谷歌分析,数据库中的下载并隐藏真正的下载路径:

就是这样:

extending CI model

... - bunch of code

function _fullread ($sd, $len) {
 $ret = '';
 $read = 0;
 while ($read < $len && ($buf = fread($sd, $len - $read))) {
  $read += strlen($buf);
  $ret .= $buf;
 }
 return $ret;
}

function download(){    
    /* DOWNLOAD ITSELF */

    ini_set('memory_limit', '160M');
    apache_setenv('no-gzip', '1');
    ob_end_flush();

    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Cache-Control: public",FALSE);
    header("Content-Description: File Transfer");
    header("Content-type: application/octet-stream");
     if (isset($_SERVER['HTTP_USER_AGENT']) && 
      (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false)) …
Run Code Online (Sandbox Code Playgroud)

php header force-download

6
推荐指数
1
解决办法
8679
查看次数

在 html 和 css 中加载图像的顺序

我可以编程(或如我们在谈论htmlcss,语义)决定以何种顺序应该图像负荷?

我想先加载背景图像,然后调用 som javascript $(window).load,将它留在浏览器上是否足够(例如,body-background 在线40,其他图像稍后在 css 文件中)或者我是否必须使用 javascript(如果是的,有什么简单的解决方案吗?)

谢谢你。

编辑:原因是我可以在加载图像时显示通知“正在加载...”,但是如果不至少看到背景,首先加载的部分将没有意义,因此必须先加载背景。

html javascript css image

5
推荐指数
1
解决办法
9799
查看次数

过滤数组以获取以自定义选定字符开头的值

我有一个快速:)

我有一个由字符串值组成的基于null的数组:

array
  0 => string 'Message 1' (length=9)
  1 => string '%company' (length=8)
  2 => string 'Message 2' (length=9)
  3 => string '%name' (length=5)
Run Code Online (Sandbox Code Playgroud)

我需要选择所有值,%并将它们理想地放入另一个数组中.

array
  0 => string 'Message 1' (length=9)
  1 => string 'Message 2' (length=9)

array
  0 => string '%company' (length=8)
  1 => string '%name' (length=5)
Run Code Online (Sandbox Code Playgroud)

谢谢!

对于任何感兴趣的人,第一个数组是验证函数的结果,因为我讨厌,当验证器返回有关百万行所需输入的信息时(例如:这<br><br>是必需的......),而不是输出实际消息,我输出必填和未填充输入的名称,将被放入一条好消息中"填写此字段,即使是必填项":)

Miniedit:即使是有关stackoverflow上的答案的问题链接,也会感激不尽:)

php arrays

4
推荐指数
3
解决办法
4615
查看次数

本地/开发/实时部署 - 最佳工作流程

情况

我们的小公司有3个人,每个人都有一个localhost网络服务器,大多数项目(以前和当前)都在一个PC网络共享磁盘上.我们有虚拟服务器,我们的一些客户的网站和我们的网站.

我们的标准工作流程是

Coder PC ? Programmer localhost ? dev domain (client.company.com) 
                                        ?
                                  live version (client.com)
Run Code Online (Sandbox Code Playgroud)

通常情况下,有两三个人同时在同一个项目上工作 - 一个是开发版本,两个是本地主机.

完成后,我们尝试同步dev版本上的文件,理想情况下不要弄乱(感谢ILMV:])任何文件,**敲敲**不经常发生.

然后我们中的一个人在实时网络服务器上部署开发版.

我们正在寻找一种方法来简化这个工作流程,同时更新网站 - 理想情况下可能是某种差异上传器或VCS(Git/SVN/VCS/...),但我们并不完全确定从哪里开始或哪种方式理想因此,我问你,stackoverflowers,你的网站/应用程序部署和推荐的工作流程的经验.

我们可能还需要在进程中使用Mac,所以如果它不会成为问题,那就更好了.

谢谢

编辑:其中一个关键部分是在任何工作更新后将网站从开发移动到实时.编辑:如果没有其他人会出现,我会检查MaxVt的答案:)

php mysql deployment live

3
推荐指数
1
解决办法
434
查看次数

localhost/live - 通过HTTP_HOST检测

假设我在本地开发并在实时服务器上调试小东西.

在我的代码中有这样的东西是个好主意吗?:

$is_local = (strpos($_SERVER['HTTP_HOST'], 'localhost') !== false);
define ('DEBUG',$is_local);
Run Code Online (Sandbox Code Playgroud)

然后在设置内容时通过我的代码使用它?

$mysql_settings = (DEBUG) ? 
  array(/*localhost settings*/) : 
  array(/*live settings*/);
Run Code Online (Sandbox Code Playgroud)

通过这种方式,我可以在livehost上使用相同的文件,因此我可以同步而不用担心在实时服务器上出现错误的连接设置.

是好还是坏?

php deployment localhost

3
推荐指数
1
解决办法
3631
查看次数

jQuery - 返回$(this)DOM元素

我正在使用DD_Belated.png来保存所有IE6用户免于看到不支持的png的疯狂.

然而,这个伟大的脚本需要选择器或DOM元素作为参数,它的唯一功能是做它的魔术并将工作PNG返回到IE6.

我是一个懒惰的程序员,做过这样的事情:

$("img[src$=png], #search").each (
  function() { 
    DD_belatedPNG.fix( *what-here* ); 
});
Run Code Online (Sandbox Code Playgroud)

所以,基本上我需要一些jQuery函数来返回DOM元素$(this).

顺便说一句,既不是$(this).get(),$(this).get(0)也不$(this)[0]适用于IE6

谢谢.

编辑:再一次,问题是显示器和座位之间 - 在我身上.有两种方法 - 一种用于选择器字符串,另一种用于DOM元素.我使用了第一个 - 我认为我没有通过好的论证this,所以我开始研究不同 - 好吧,我没有给出正确的论点 - 它期待字符串......

javascript jquery dom

2
推荐指数
1
解决办法
1225
查看次数

在MySQL DB中存储关联数组

我想存储主要包含字符串和整数的关联数组作为db中的值.

我刚在想:

  • implode/explode - 需要找到不在值中的分隔符 - 因为它几乎是用户生成的,不安全
  • XML - 感觉工作繁重(创建/读取值)
  • json - 如果我只需要与json_decode/合作json_encode,似乎很完美

你怎么看?

拜托,不要转发我这样的其他问题,我已经阅读了大部分内容,我仍然不确定:)

php xml mysql json implode

2
推荐指数
1
解决办法
5956
查看次数

用一个`-`替换多个`-`而不用正则表达式

我见过很多RegExp的误用,我真的不喜欢它:)

我有字符串(由于两个str_replaces)可能看起来像这样:

.?This iš my ".stRiNg."!
          |
          V
--this-is-my---string---
Run Code Online (Sandbox Code Playgroud)

有没有比这更好的方法

$string = trim(preg_replace('/[-]+/u','-', $string),'-');
Run Code Online (Sandbox Code Playgroud)

要得到:

this-is-my-string
Run Code Online (Sandbox Code Playgroud)

php regex

1
推荐指数
2
解决办法
224
查看次数

选择,其中id =来自其他选择的倍数

我累了,我无法绕过这个.我有两张桌子:

table menu
@id = id, @nr = id of parent
|======|======|  
|  id  |  nr  |
|======|======|
|  10  |   9  |
|  11  |  10  |
|  12  |  10  |
|  13  |  10  |
|======|======|

table content
@id = id, @mf = menu - first in tree, @mi = menu item linked to content
|======|======|======|
|  id  |  mf  |  mi  |
|======|======|======|
|  85  |   9  |  11  |
|  89  |   9  |  12 …
Run Code Online (Sandbox Code Playgroud)

mysql select multiple-tables

0
推荐指数
1
解决办法
830
查看次数

PHP中的安全密码列表

我正在考虑在目录中的PHP文件中存储小规模(最多20个用户)应用程序的用户密码列表(最终有关它们的更多信息) public_html_root/system/config/

<?php if($calledByApp !== true) die();
  $pwds['username1'] = 'hispassword';
  $pwds['username2'] = 'herpassword';
  $pwds['username3'] = 'anotheroned';
?>
Run Code Online (Sandbox Code Playgroud)

现在.hispassword实际上是哈希版本

$hashedpasword = sha1($password.sha1($salt));
Run Code Online (Sandbox Code Playgroud)

这样,如果包含文件,它会检查$calledByApp,从入口点开始设置 - 即index.php在root中,所以我们可以说这样安全.如果直接从浏览器调用它 - 它将不会作为文本文件提供,而是作为PHP文件提供 - 它也将死亡,因为$calledByApp它将返回nullfalse.

此外,如果存储/删除了其他用户,则会重建该文件,因此它会反映所有用户.包含此文件后,我们将所有用户都设置为pretty array,所以如果我们调用的话

if (is_string($pwds[$sanitized_username]) 
&& ($pwds[$sanitized_username] === $sanitized_sha1_userpassword))
Run Code Online (Sandbox Code Playgroud)

我们会登录.

我的问题是:这是安全的足够

澄清:用户的数据库似乎有点矫枉过正 - 最多 20个用户的另一个表.此外,虽然这不会检查用户是否真实,但它不会对数据库执行任何操作 - 看起来也增加了安全性.

php security login

0
推荐指数
1
解决办法
167
查看次数