小编Dan*_*Dan的帖子

你能点击'jQuery中加载的内容吗?

我正在尝试创建一个页面,其中示例div是可点击的,因为它将在下面.

但是我试图这样做,如果用户点击徽标,它将使用加载重新加载原始内容.

发生此负载后,是否可以"点击"加载<div id="example">?我正在尝试此操作,并且在单击<div id="example">file.php中的已加载时无法发出警报

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Example</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {

    $("#example").click(function(){
        alert("You clicked me!");
    });

    $("#logo").click(function(){
        $("#main").load("file.php");
    });
});
</script>
    </head>

<body>
    <img id="logo" src="404.gif" />

    <div id="main">
        <div id="example">This is content.</div>
    </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

file.php包含

<div id="example">This is loaded content that can't be clicked?</div>
Run Code Online (Sandbox Code Playgroud)

jquery load jquery-click-event

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

这是一种在PHP mvc中缓存查询和构建页面的可接受方式吗?

以下代码是否显示了缓存完全构建的页面和数据库查询的可接受方式?

构建页面的缓存是__construct在控制器中启动的,然后完成__destruct,在此示例中,所有页面都缓存为文件的默认值15分钟.

查询缓存完成,apc并且它们在每个查询的指定时间内存储在内存中.在实际站点中,将有另一个apc缓存类,以便在需要时可以更改它.

我的目标是建立最简单的mvc,我失败了还是我在正确的轨道上?

调节器

//config
//autoloader
//initialiser - 

class controller {

    var $cacheUrl;

    function __construct(){

        $cacheBuiltPage = new cache();
        $this->cacheUrl = $cacheBuiltPage->startFullCache();
    }

    function __destruct(){

        $cacheBuiltPage = new cache();
        $cacheBuiltPage->endFullCache($this->cacheUrl);
    }
}

class forumcontroller extends controller{

    function buildForumThread(){

        $threadOb = new thread();
        $threadTitle = $threadOb->getTitle($data['id']);

        require 'thread.php';
    }
}
Run Code Online (Sandbox Code Playgroud)

模型

class thread extends model{

    public function getTitle($threadId){

        $core = Connect::getInstance();
        $data = $core->dbh->selectQuery("SELECT title FROM table WHERE id = 1");

        return $data;
    } …
Run Code Online (Sandbox Code Playgroud)

php oop model-view-controller caching

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

超时后APC用户缓存条目未被删除

我正在运行APC主要用于缓存对象和查询数据作为用户缓存条目,它设置的每个项目具有与缓存中所需的时间量相关的特定时间,一些项目是48小时但更多是2-5分钟.

我的理解是,当达到超时并且当前时间超过created at时间时,该项目应该自动从user cache entries

这似乎没有发生,而物品却留在记忆中?我想也许垃圾收集器会删除这些物品,但它似乎没有完成,即使它现在每小时运行一次.

我能想到的唯一另一件事是默认apc.user_ttl = 0会覆盖各个超时值并将它们设置为即使在单独超时后也不会被删除?

应该删除这些?

caching apc

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

在PHP中更新旧的存储的md5密码以提高安全性

目前我有一个存储了md5密码的数据库,几年前这被认为比现在更加安全,并且它已经达到了密码需要更加安全的程度.

我读了很多关于这里的职位crypt,md5,hash,bcrypt,等,并已经开始考虑使用的东西大致如下,以"安全"的密码比他们现在的线路.

我将使用hash("sha512"两种盐的组合,第一种盐将是存储在诸如.htaccess的文件中的全站点盐,并且将为每个用户创建第二种盐.

这里有一个例子大意就是我此刻的测试:

的.htaccess

SetEnv SITEWIDE_SALT NeZa5Edabex?26Y#j5pr7VASpu$8UheVaREj$yA*59t*A$EdRUqer_prazepreTr
Run Code Online (Sandbox Code Playgroud)

使用example.php

$currentpassword = //get password

$pepper = getenv('SITEWIDE_SALT');
$salt = microtime().ip2long($_SERVER['REMOTE_ADDR']);

$saltpepper = $salt.$pepper;

$password = hash("sha512", md5($currentpassword).$saltpepper);
Run Code Online (Sandbox Code Playgroud)

显然,盐需要存储在一个单独的表中,以便检查将来插入的登录密码,但用户永远无法看到.你认为这是一个充分的方法吗?

php security encryption passwords hash

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

MySQL的触发器会比php更快地检查20多行吗?

目前,我们会记录用户最近20个媒体观看次数,以便他们可以拥有他们最近看到的内容的简短历史记录页面.

为此,我们将媒体ID插入表中.

为了保持表的小尺寸,目前每个用户只有20个项目,所以在插入行之前我们检查它们当前有多少历史ID,如果它小于20,那么我们只是插入新行,如果它超过20然后我们必须选择最后一行并删除它,然后才能插入新行.

$historyResult = mysql_query("SELECT id FROM mediatable WHERE userId = $userId ORDER BY id ASC");

if(mysql_num_rows($historyResult) >= 20)
{
    $historyResult = mysql_query("SELECT id FROM mediatable WHERE userId = $userId ORDER BY id ASC LIMIT 1");
    $historyRow = mysql_fetch_row($historyResult);
    mysql_query("DELETE FROM mediatable WHERE id = '$historyRow[0]'");
}

mysql_query("INSERT INTO mediatable (userId, mediaId) VALUES ($userId, $mediaId))");
Run Code Online (Sandbox Code Playgroud)

我现在将网站转换为更现代的代码,并将使用pdo查询,我的问题是:

上面是一个很好的方法来解决这个问题,还是应该在插入时使用其他方法,例如MySQL触发器?

php mysql

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

没有第一条记录复制php数组最简单的方法是什么?

如果要创建数组,请说:

$url = explode("/", $_SERVER['QUERY_STRING']);
Run Code Online (Sandbox Code Playgroud)

将所有数组值与第一个数据值区分开来的最简单方法是什么?

$controller = $url[0];

//Pseudo Code
$data       = $url[!0];
Run Code Online (Sandbox Code Playgroud)

php arrays

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

使用preg_match时忽略空格

我正在preg_match尝试捕获这个html结构中的'Data',但是目前它还没有返回任何内容,我认为这可能是空白的?

只是想知道什么是错的preg_match

HTML

  <td><strong>Title</strong></td>

                    <td>Data</td>
Run Code Online (Sandbox Code Playgroud)

PHP

preg_match("~<td><strong>Title</strong></td>

                    <td>([a-zA-Z0-9 -_]+)</td>~", $html, $match);
Run Code Online (Sandbox Code Playgroud)

php

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

将PHP Cookie设置为在午夜过期

我知道如何设置一个PHP Cookie,以及如何让它在设定的时间内过期,比如24小时,但是如何让cookie在服务器每天午夜前一分钟到期,所以23:59?

我尝试了以下但是它似乎没有为我设置?

setcookie("cons", 1, mktime(24, 0, 0) - time(), "/");
Run Code Online (Sandbox Code Playgroud)

php cookies

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

Twitter亚伯拉罕twitteroauth不断要求许可

我正在使用abraham/twitteroauth允许用户通过他们的Twitter帐户登录.目前我可以创建链接,让他们转到链接,授权应用程序使用他们的详细信息,返回到网站并按user_id预期保存他们和访问令牌.

这很好并且效果很好,但是当用户注销(清除会话,cookie等)然后单击"使用Twitter登录"按钮时,它会再次请求他们获得他们的许可,即使该应用已经注册了他们的应用程序并拥有该权限.它不应该只是再签名吗?

使用Code Igniter 生成登录链接,因此忽略语法

$connection = new TwitterOAuth(TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET);

$request_token = $connection->oauth('oauth/request_token', array('oauth_callback' => RETURN_WEBSITE_URL));

$twitterOauth = array(
    "oauth_token" => $request_token['oauth_token'],
    "oauth_token_secret" => $request_token['oauth_token_secret'],
);

$this->session->set_userdata($twitterOauth);
$this->twitterLoginUrl = $connection->url('oauth/authorize', array('oauth_token' => $request_token['oauth_token']));
Run Code Online (Sandbox Code Playgroud)

返回功能

$request_token = [];
$request_token['oauth_token'] = $this->session->userdata('oauth_token');;
$request_token['oauth_token_secret'] = $this->session->userdata('oauth_token_secret');;

if (isset($_REQUEST['oauth_token']) && $request_token['oauth_token'] !== $_REQUEST['oauth_token']) {
    die("This isn't right.");
}

$connection = new TwitterOAuth(TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET, $request_token['oauth_token'], $request_token['oauth_token_secret']);
$access_token = $connection->oauth("oauth/access_token", array("oauth_verifier" => $_REQUEST['oauth_verifier']));
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

php twitter twitter-oauth

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

用字符串中的值替换数组键

我有一串文字:

$string = "This is a comment :) :D";
Run Code Online (Sandbox Code Playgroud)

和一组带有值的键:

$smileys = Array(':)' => 'smile.gif', ':D' => 'happy.gif');  
Run Code Online (Sandbox Code Playgroud)

我想用它们的相关值替换字符串中出现的任何数组键,因此输出字符串将是:

$string = "This is a comment smile.gif happy.gif";
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?我试过循环如下,但没有运气?

foreach($smileys as $smiley){

    $string = preg_replace("~\b$smileys\b~", $smileys[$smiley], $string);

}
Run Code Online (Sandbox Code Playgroud)

编辑

我还希望在数组之间添加一些html并替换为:

:D
Run Code Online (Sandbox Code Playgroud)

变成

<img src="/happy.gif" />
Run Code Online (Sandbox Code Playgroud)

但如果使用相同的html需要在每个数组值strtr

php

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

PHP Amazon Ses作为抽象类会产生使用致命错误

我正在使用亚马逊简单电子邮件服务,并尝试将其作为抽象类实现,以便我可以根据需要简单地使用它.

问题

使用时出现问题,我无法弄清楚如何要求使用Ses作为抽象类所需的文件和类而不会产生错误.

require 'lib/aws/aws-autoloader.php';

use Aws\Common\Enum\Region;
use Aws\Ses\SesClient;

abstract class simpleemail {

    function sendSesEmail($to, $subject, $body, $bodyHtml){

        try {   
            $client = SesClient::factory(array(
                'key' => "",
                'secret' => "",
                'region' => Region::US_EAST_1
            ));

            $send = $client->sendEmail(array(
                'Source' => 'Name <no-reply@contact.com>',
                'Destination' => array('ToAddresses' => array($to)),
                'Message' => array('Subject' => array('Data' => $subject), 'Body' => array('Html' => array('Data' => $bodyHtml)))));

            return true;
        }
        catch(Exception $e){
            echo $e->getMessage();
            return false;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

错误消息

Fatal error: Class 'Aes\Ses\SesClient' not found …

php amazon-web-services amazon-ses

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