小编Ale*_*ian的帖子

Windows上的PHP mail():没有错误,电子邮件没有发送

我目前正在尝试调试基于Elgg的网站(我没有开发它),我想直接从本地开发机器(WinXP)发送电子邮件.我正在使用Apache 2.2.11和PHP 5.3.0运行WAMP

经过一些搜索,我遇到的最简单的解决方案是使用假的sendmail通过SMTP将其转发到我的GMail/Google应用程序帐户并让它进行发送.问题是我没有任何错误,但电子邮件没有被发送.

这是我做的:

  • 将sendmail.exe和sendmail.ini复制到WAMP中的子文件夹
  • 通过sendmail.ini配置(配置设置正常)
  • 编辑php.ini添加sendmail.exe的路径
    sendmail_path = "C:\Program Files\wamp\bin\sendmail\sendmail.exe -t"
  • 注释掉了php.ini中的windows SMTP设置
    ; SMTP = localhost
    ; smtp_port = 25
    ; sendmail_from = xxx@domain.com
    ; mail.force_extra_parameters =

mail.log文件显示以下内容:

mail() on [C:\Program Files\wamp\www\mail.php:9]: To: xxx -- 
Headers: From: xxx  Reply-To: xxx  X-Mailer: PHP/5.3.0
Run Code Online (Sandbox Code Playgroud)

我的猜测是问题是默认的Windows选项(指定服务器而不是sendmail实用程序)不会被覆盖.在phpinfo()我仍然得到SMTP -> localhostsmtp_port -> 25选项,即使我评论他们.

如果有人设法让这个工作,我真的很感激一些帮助.在我看来,使用假的sendmail比在您的机器上安装邮件服务器要简单得多.

谢谢!

PS请不要建议PHPMailer之类的,因为我必须使用mail()函数.这就是Elgg的工作方式.

php windows wamp configuration-files sendmail.exe

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

实施AWS竞价型实例请求的幂等性

我正在使用Java AWS SDK来制作EC2现场实例请求.与on demand实例相反,spot请求API没有任何类似的东西ClientToken,因此不支持开箱即用的幂等性.

我能想到的最直接的方法是将LaunchGroup属性设置为唯一的UUID; 当我检查我打电话DescribeSpotInstanceRequests,看看我是否已经有同一个发起组的请求.

令我惊讶的是,似乎在描述调用返回之前发送的现场请求之前有一段延迟.我为此编写了一个JUnit测试,似乎为了使它保持一致,我必须在两次调用之间设置至少60s的超时(请求点实例和描述点实例请求).我需要具有10s的粒度,因为我的请求可以在此间隔由应用程序重复,以防出现任何故障 - 即在我发送请求之后但在我能够读取从亚马逊返回的结果之前中断了.在这种情况下,我不想重复请求,我只是想看到它已经注册并继续前进.

@Test
public void testRunSpotInstances() throws Exception {

    activity.execute(execution);

    timeout(TIMEOUT);

    // shouldn't do anything
    activity.execute(execution);

    timeout(TIMEOUT);

    DescribeSpotInstanceRequestsResult result = client.describeSpotInstanceRequests(
            new DescribeSpotInstanceRequestsRequest().withFilters(new Filter()
                .withName("launch-group").withValues(BUSINESS_KEY)));

    assertThat(result.getSpotInstanceRequests()).hasSize(1);

    timeout(TIMEOUT);
}
Run Code Online (Sandbox Code Playgroud)

如果TIMEOUT设置为60s,则每次测试都有效; 40-50秒它间歇性地工作.每次低于此值的任何事情都会失败.

有没有人设法解决这个延迟?是否仅使用AWS API实现了对点请求的幂等性并且没有在客户端应用程序中保存状态?

java amazon-ec2 amazon-web-services

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

CakePHP Auth组件重定向问题

我无法让Auth组件在CakePHP 1.2.6应用程序中执行我想要的重定向.

我有一个登录表单出现在所有页面上,我想让用户保持他登录的页面.例如,如果他正在查看其他用户的个人资料,我希望在登录后将他留在那里,而不是将他重定向到该$this->Auth->loginRedirect操作.此外,关于我的应用程序的另一件事是我没有"仅经过身份验证的访问"页面,每个页面都可供所有人访问,但如果您已登录,则会获得其他功能.

我从阅读文档中了解到,我需要设置autoRedirect为false以获取要执行的login()函数中的代码:

class UsersController extends AppController {    
    var $name = 'Users';
    var $helpers = array('Html', 'Form','Text');

    function beforeFilter() {
        $this->Auth->autoRedirect = false;
    }

    function login() {
        $this->redirect($this->referer());
    }

    function logout() {
        $this->redirect($this->Auth->logout());
    }

    /* [...] */
}
Run Code Online (Sandbox Code Playgroud)

这目前打破我的身份验证.我注意到(从日志中)如果我将重定向保留在login函数中并设置autoRedirect为false,$this->datalogin()函数中的密码字段显示为空.

下面,我发布了与Auth组件相关的AppController的内容:

public function beforeFilter() {

    $this->Auth->fields = array(
        'username' => 'email',             
        'password' => 'password'            
    );

    $this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');     
    $this->Auth->loginRedirect = array('controller' => 'usercars', …
Run Code Online (Sandbox Code Playgroud)

php authentication model-view-controller redirect cakephp-1.2

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

确保始终从Spring应用程序中的缓存中检索数据

在使用Spring Framework构建的Java EE应用程序中,我需要在DAO中执行一些非常昂贵的操作,这可能需要几分钟的时间.使用Spring MVC,当用户的请求映射到控制器方法时,我通过我的Controller命中DAO:

@RequestMapping(value = "/categories.do")
public ModelAndView categories(
        @PathVariable("cc") String cc,
        @PathVariable("ll") String ll) {
    Locale locale = new Locale(ll, cc);
    ModelAndView result = getView("categories", locale);
    Map<Category, List<Product>> allProducts = supplyDao.getAllProducts(locale);
    result.addObject("products", allProducts);
    return result;
}
Run Code Online (Sandbox Code Playgroud)

getAllProducts方法向外部Web服务发出大量请求以绘制产品所需的所有数据.该方法通过Spring的@Cacheable注释缓存在底层Ehcache实现上:

@Cacheable(value = CACHE_NAME, key = CACHE_KEY_PREFIX + "'(' + #p0 + ')'")
public Map<Category, List<Product>> getAllProducts(Locale locale) {
        // a lot of HTTP requests firing from here
}
Run Code Online (Sandbox Code Playgroud)

这种方法的问题在于,当缓存为空时,页面基本上是不可访问的.此外,如果在缓存为空时多个请求命中页面,则DAO方法将再次触发,并且所有请求将并行重复.据我所知,第二个问题的解决方案是使用a BlockingCache,但我还没有机会实现它.

我想要的是让控制器方法始终从缓存中提取结果.我想实现一个@PostConstruct触发所有语言环境的缓存填充的方法.就像是:

@PostConstruct …
Run Code Online (Sandbox Code Playgroud)

java spring ehcache

4
推荐指数
1
解决办法
2157
查看次数

CakePHP中的动态布局

抱歉问题标题,但我找不到更恰当的方式来表达这个.

我目前正在构建一个CakePHP驱动的网站,我不太确定如何解决以下问题.该网站看起来像下面的样式:

网站样机http://i49.tinypic.com/157mn7.jpg.

灰色区域是布局的一部分,因为它们的内容在视图之间不会更改.在侧边栏中,我有一组链接到多个模型的广告.我需要控制器逻辑来确定与广告相关联的图片.此外,广告列表必须是动态的.我应该把构建侧边栏的逻辑放在哪里?

我想过:

  • 将逻辑放入AppController(beforeFilter/ afterFilter) - 问题是我不能使用我需要的控制器逻辑(其他控制器继承AppController,我不知道如何在那里使用它们).
  • 制作组件 - 是否可以构建依赖控制器的组件?
  • 在所有呈现视图的控制器中复制侧边栏代码 - 这对我来说似乎有些愚蠢.

什么是蛋糕的方式进行呢?


更新

经过一些阅读和实验,我已经完成了大部分的重构.

我通过在模型中移动用于构建广告的逻辑(消除了检索图片的组件)而不是使用来获得最佳性能requestAction.它几乎快三倍,代码看起来好多了.

model-view-controller layout cakephp

3
推荐指数
2
解决办法
3180
查看次数

通过jQuery中的数组索引与each()函数检索元素

当我注意到以下行为时,我正在编写一个"可插入"函数(在FF 3.5.9中使用Firebug 1.5.3进行测试).

$.fn.computerMove = function () {
    var board = $(this);
    var emptySquares = board.find('div.clickable');
    var randPosition = Math.floor(Math.random() * emptySquares.length);


    emptySquares.each(function (index) {
        if (index === randPosition) {
            // logs a jQuery object
            console.log($(this));
        }
    });

    target = emptySquares[randPosition];
    // logs a non-jQuery object
    console.log(target);
    // throws error: attr() not a function for target
    board.placeMark({'position' : target.attr('id')});
}
Run Code Online (Sandbox Code Playgroud)

当脚本在target.attr('id')(attr不是函数)抛出错误时,我注意到了这个问题.当我检查日志时,我注意到目标的输出(在Firebug中)是:

<div style="width: 97px; height: 97px;" class="square clickable" id="8"></div>
Run Code Online (Sandbox Code Playgroud)

如果我输出$(target),或$(this)each()函数,我得到一个不错的jQuery对象: …

javascript jquery

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

HttpClient响应处理程序始终返回闭合流

我是Java开发的新手,所以请耐心等待.另外,我希望我不是tl的博士;博士 :).

我正在使用HttpClient通过Http(duh!)发出请求,并且我已经让它为一个接收URL作为查询字符串参数的简单servlet工作.我意识到我的代码可以使用一些重构,所以我决定自己做HttpResponseHandler,清理代码,使其可重用并改进异常处理.

我目前有这样的事情:

public class HttpResponseHandler implements ResponseHandler<InputStream>{

    public InputStream handleResponse(HttpResponse response)
            throws ClientProtocolException, IOException {

        int statusCode = response.getStatusLine().getStatusCode();
        InputStream in = null;

        if (statusCode != HttpStatus.SC_OK) {
            throw new HttpResponseException(statusCode, null);
        } else {
            HttpEntity entity = response.getEntity();
            if (entity != null) {
                in = entity.getContent();
                // This works
                // for (int i;(i = in.read()) >= 0;) System.out.print((char)i); 
            }
        }
        return in;
    }
}
Run Code Online (Sandbox Code Playgroud)

在我提出实际请求的方法中:

HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget …
Run Code Online (Sandbox Code Playgroud)

java inputstream httpclient handler

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