Articles of PHP

通过AJAX请求POST失败?

我不知道为什么会发生这种事。 这是一种转发(提交给stackoverflow,但也许是一个服务器问题?)。 我正在运行一个名为logOut()的JavaScript注销函数,它已经对jQuery ajax调用了一个php脚本。 function logOut(){ var data = new Object; data.log_out = true; $.ajax({ type: 'POST', url: 'http://www.mydomain.com/functions.php', data: data, success: function() { alert('done'); } }); } 它所调用的php函数在这里: if(isset($_POST['log_out'])){ $query = "INSERT INTO `token_manager` (`ip_address`) VALUES('logOutSuccess')"; $connection->runQuery($query); // <– my own database class… // omitted code that clears session etc… die(); } 现在,这一天工作18小时,但由于某种原因,每隔一段时间,POST数据将不会触发我的查询。 (这将持续大约一个小时左右)。 […]

Sendmail转发出亚马逊EC2?

我有一个通过Amazon EC2在CentOS 5.4上运行的站点。 不幸的是,亚马逊在整个IP范围内定期收到垃圾邮件追踪服务的黑名单时,却遇到了麻烦。 我需要一个邮件服务器,所以我在其他地方设置了一个我想发送到的smtp服务器,但是我不能直接通过PHP发送,因为直接的smtp请求太慢了。 我想做的是通过sendmail进行中继,但是我从来没有使用sendmail,所以我不知道如何configuration它。 我想要的只是从本地主机发送的所有电子邮件被中继到一个特定的外部服务器,但我不知道该怎么做。 我试图在网上find一个教程,但找不到任何特别清楚的事情,我如何去做。 谁能帮我吗?

上传大文件时的Apache2内存使用情况

我运行PHP 5.2.10一起运行apache2.2.12。 PHP被configuration为通过fcgid作为单独的进程运行。 问题是当用户上传一个文件时,apache进程的大小几乎增加了相同的数量。 所以,如果有人试图上传一个200 MB的文件,其中一个subprocess膨胀到当前大小+ 200 MB。 如果两个用户同时开始上传,我的服务器崩溃。 现在是虚拟内存的规模在不断增加,但是由于我在基于OpenVZ的VPS上,这才是重中之重。 我的问题是: 这是正常的Apache行为还是我可以做一些事情来解决这个问题? 如果没有,是否有更有效的内存处理方式来处理大file upload。 按照目前的行为,每个接受上传的apache孩子都需要1GB的可用RAM。 谢谢! Abhaya –

Apache服务不正确的页面

前言:这是我见过的最奇怪的错误之一,特别是它来了又去。 有一个名为view.php的页面,另一个页面叫做save.php 。 当我请求save.php时,该错误就会显示出来 – 我反而得到了view.php 。 请求标题说save.php ,并且发生在Firefox,IE,Chrome,Opera,Safari。 它会一直发生,除非 – 这里是奇怪的部分 – 我打开文件并保存。 我不做任何改变,只是保存。 保存后,我可以做出同样的确切要求,它提供了save.php像没有错。 我目前正在从一个SVN仓库出口(只是一个简单的svn export http://server/repository target命令)。 如果我没有做任何更改后导出,错误就会重新显现。 如果更改(完全不相关的页面),并将其提交到存储库,然后导出,该错误通常会消失。 但是,同样的事情可能发生在两个不同的页面(也与修改后的页面无关),或者可能不会。 我没有使用任何types的caching(没有PHPcaching,浏览器caching,或Apachecaching)。 SVN版本:Windows机器(开发机器)上的1.6.9 w / AnkhSVN,版本库机器和testing机器(我运行导出命令的地方)都是1.4.2。 除了怀疑svn是哪里出了问题,我不知道。

所有者和权限在黑客文件与“合法”文件

这涉及到我们必须处理的一个黑客事件。 黑客将一个php文件插入到我们的系统中。 有问题的目录确实从我们的cmsadmin接收上传(图片)。 但是,通过我们的cmsadmin上传的所有文件具有相同的所有者和权限( owner: theadminsname, permissions: 777 )。 另一方面,非法插入的文件拥有owner: apache, permissions: 644 我的问题:所有者和权限的这种差异是否提供了有关如何插入文件的任何线索? 如果他们已经通过我们的cmsadmin上传了文件,是不是和其他上传的文件拥有相同的所有者和权限? 所有者是apache的事实是否表明了一个不同的路线,或者他们是否只是将它改变为这个,因为这是一个常见的apache所有者的名字? 另一件事。 插入的文件被放置在我们的自定义cms的一部分。 然后,它为黑客提供了一个表格,用于更改第三方广告程序中的文件(等等)。 看起来很奇怪,他们会上传一个文件到我们自定义的cmsadmin(位于与广告系统完全不同的目录结构中,并且两者之间没有互操作性),然后用它来操作这个第三方广告程序。 cmsadmin和广告程序pipe理员处于不同的目录中,并且不以任何方式以编程方式连接。 这一切都让我怀疑,攻击不是通过我们的cmsadmin或广告系统的弱点进行的,而是通过虚拟主机的弱点进行的。 你们都在想什么?

在2008 R2上使用PHP运行PHP

我无法在运行2008 R2的Web服务器上运行php ldap扩展。 安装Notes Apache:httpd-2.2.16-win32-x86-no_ssl.msi PHP:VC6 x86线程安全(2010年7月21日20:06:17)(ZIP) adLDAP.php 我已经采取的步骤 确保php_ldap.dll在C:\PHP\ext (我必须从http://bugs.php.net/bug.php?id=46971获得这个) 确保libeay32.dll和ssleay32.dll在C:\PHP C:\PHP已经添加到PATH extension=php_ldap.dll在php.ini取消注释 extension_dir在php.ini设置为C:\PHP\ext 跑了一个phpinfo(); 正在加载正确的php.ini ,但ldap未初始化 我真的不知道会发生什么,当我尝试和使用扩展我得到以下错误(预计,因为它没有加载): exception 'adLDAPException' with message 'No LDAP support for PHP. See: http://www.php.net/ldap' in C:\Website\hmis\adLDAP.php:338 Stack trace: #0 C:\Website\hmis\login.php(10): adLDAP->__construct() #1 C:\Website\hmis\index.php(2): require_once('C:\Website\hmis…') #2 {main} 有没有人有什么可能会出错的build议? 谢谢。 编辑:所以看起来像5.3.3 VC6构build中缺lessphp_ldap.dll,我从5.3.1 VC6构build我的副本。 这可能会导致问题? 我使用的是Apache,所以我不能使用官方的VC9 PHP构build,我应该尝试使用ApacheLounge构build? 我不认为这是必要的,因为我的LDAP使用5.3.1的官方版本 编辑2:所以我试过的另一件事是从C:\PHP\ext彻底删除php_ldap.dll 。 我得到了和以前完全一样的错误,并且apache不会像我预期的那样崩溃。 难道它不应该能够开始缺less扩展?

即使设置正确,XDEBUG / PHP也不会转储configuration文件?

我从源代码安装了xdebug,但是也尝试了我的软件包pipe理器(单独),它们都被正确加载(通过重新启动Apache并在phpinfo()中查看xdebug版权信息进行validation),但是不会转储分析信息。 在configuration的40个不同的尝试中,它logging了一次或两次,但我失去了我所做的,我试着第一次只加载模块在php.ini没有设置,但它没有login到/ tmp /。 我尝试了很多不同的设置,但是我目前的状态是: xdebug.profiler_enable = Off xdebug.profiler_enable_trigger = 1 xdebug.profiler_output_dir = "/tmp/" xdebug.profiler_output_name = "profiler.%t" 当然,我通过127.0.0.1/test.php?XDEBUG_PROFILE调用我的脚本,这是为enable_trigger。 你知道为什么它不会抛出分析器信息? nobody (Arch Linux)可以写入到/ tmp /,因为我确信它不是权限错误。 Apache的error_log没有告诉我关于xdebug的任何信息,因为它已经正确加载。 它只是不“工作”! 编辑:我做了一个子文件夹“xdebug_profiles”在/ tmp /和chown '编辑给nobody ,现在它的工作完美无瑕。 我不知道为什么以前不写,我想这只是一个nobody在拱门的警告。 我回答了我自己的问题,没有足够的回答或评论意见,所以考虑这个答案。

如何在CentOS 5.5上使用Nginx的PHP 5.3.3?

我已经将Source X和PHP 5.3.3从源代码安装到CentOS 5.5服务器上。 我认为从安装一切进展顺利,引擎X确实提供静态文件。 当试图访问一个基本的PHP文件,但它作为纯文本服务的PHP代码。 引擎X错误日志显示: 2010/09/23 20:49:35 [error] 3331#0:* 6 connect()失败(111:Connection refused)while 连接到上游,客户端:my.local.ip,服务器:the_server, 请求:“GET / HTTP / 1.1”,上行:“fastcgi://127.0.0.1:9000”, 主持人:“the.servers.ip” 我的configuration文件如下: 服务器{ 听*:80; 位置〜\ .php $ { fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME / var / www / default $ fastcgi_script_name; fastcgi_param PATH_INFO $ fastcgi_script_name; include / usr / local / nginx / conf / fastcgi_params; […]

我试图build立一个LAMP服务器,所以这是完全匿名的,有什么build议吗?

我要build立一个使用LAMP堆栈的Web服务。 该网站最重要的function之一是它应该是匿名的。 我们认为,如果服务器没有做任何可能识别用户的日志,那么一件很酷的事就是。 我正在为新闻组织开发一个networking应用程序。 他们希望有一个网站允许人们向新闻工作者汇报新闻线索和提示(文本/文件)。 我们认为,如果我们能够提供好的匿名,人们会更倾向于提供信息。 我们也会教导如何使用TOR之类的东西作为举报者的额外防范措施 这甚至有可能吗? 任何暗示我们应该研究的build议?

PHP magic_quotes_gpc =closures,但斜杠仍然被添加

magic_quotes_gpc已被设置为closures并通过phpinfo()进行确认,但内容仍然以斜线插入数据库 注意:我正在使用mysql_real_escape_string()插入每个值,我testing了这个函数,看它是否引起任何问题,但是没有改变插入数据库的值 PHP版本5.2.12 MySQL客户端API版本5.0.91