小编Ari*_*ona的帖子

"大约一小时前"PHP/SQL中的逻辑以及它如何影响性能?

最近我一直在面对"X小时前","X天前"功能的网站.(包括stackoverflow)

就像,Anil在一个小时前玩了一场比赛.两天前Anil平了.Anil刚才发表了这条评论.

我知道可以通过一个小函数轻松完成,该函数计算到当前时间的旧时间,以秒(或毫秒)获得差异并相应地返回字符串值.

我想问的是;

  1. 如何以最专业的方式完成?使用PHP计算时间差或在查询时根据我们的SQL计算它?
  2. 它不会降低性能吗?想象一个包含100条注释的页面,该功能将工作100次,因此页面加载速度会变慢.

PS.我不是在寻找脚本.

php mysql sql security benchmarking

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

如何使用Eloquent加入和求和?

我需要在我的网站上选择大多数投票文章.现在,我有这个功能处理小错误但我把它写成原始SQL查询.错误就像,我得到了大多数带有原始SQL查询的投票文章,然后使用whereIn带有id的Eloquent的方法,但似乎它以随机顺序返回响应.此外,它会破坏->isEmpty()我在视图中大量使用的Eloquent 方法.

长话短说,我厌倦了编写原始查询并解决这个小脚本上的大量错误(或副作用).我想把它带到Eloquent(有关系)并完成它.

我当前的数据库架构:

articles
--id

votes
--id
--user
--article_id
--vote
Run Code Online (Sandbox Code Playgroud)
  1. Articles.id并且votes.article_idhasMany(一篇文章可能有很多票)相关
  2. vote列可能只包含1-1值.
  3. 我需要运行一个查询,选择前10个最正面的投票文章.在原始的sql中,它是group by votes.article_id order by sum(votes.vote)(我们不选择正投票,而是选择投票的SUM.vote列.)

例如:

articles.id
1
2

votes.id      votes.user       votes.article_id      votes_vote
1             User1            1                     1
2             User2            1                     1
3             User3            1                     -1 (this is negative vote)
4             User1            2                     1
5             User2            2                     1
Run Code Online (Sandbox Code Playgroud)

输出应该是:

Article 2 has (2) vote rating. // 1 + 1
Article 1 …
Run Code Online (Sandbox Code Playgroud)

laravel eloquent

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

一个基本的sql-query示例

我有两张桌子:

NEWS (id, news_content)
NEWS_VOTES (vote, news_id)
Run Code Online (Sandbox Code Playgroud)

我应该在NEWS上选择(*)所有值,并在NEWS_VOTES表上计算投票,其中news.id和news_votes.new_id是相同的.

更清楚的解释是:

  1. 我在NEWS表上选择所有值.
  2. 根据"id"值,我还选择:

负面投票:

SELECT count(*) FROM NEWS_VOTES WHERE news_id = (same ID) AND vote = 0
Run Code Online (Sandbox Code Playgroud)

正面投票:

SELECT count(*) FROM NEWS_VOTES WHERE news_id = (same ID) AND vote = 1
Run Code Online (Sandbox Code Playgroud)

我需要在一个查询中执行此操作.

网站上的输出将是"这条新闻得到57张正面投票和67张反对票".

谢谢.

PS.我用MYSQL.

mysql sql select

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

PHP:使用CURL时的安全性?

我有这样一个页面.用户将URL写入表单并提交.提交URL后,我将该页面与CURL连接,搜索字符串.如果找到该字符串,则会将URL添加到我们的数据库中.如果不是,则给用户带来错误.

我用htmlspecialchars()清理URL也是一个正则表达式,允许AZ,1-9,:/ - .符号.我还使用htmlspecialchars()清理从其他网站检索到的内容.

我的问题是,他们可以输入像这样的网址; www.evilwebsite.com/shell.exe或shell.txt

PHP会运行它,还是只是寻找HTML输出?它是否安全,如果没有,我该怎么办?

谢谢.

PS.allow_url_fopen已禁用.这就是我使用curl的原因.

php security

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

链式PHP控件

我正在制作一个表单验证类,它目前的工作方式与此类似.

$validator->setVar($_POST['Username'])
          ->standardFilter(array('XSS', 'SQL_INJECTION'))
          ->customRegex()
          ->replace('This', 'With this')
          ->getResult();
Run Code Online (Sandbox Code Playgroud)

虽然它在链接时效果很好,但我无法达到以下结果.

$validator->setVar($_POST['Username'])
          ->isValidEmail()
          ->isValidPhoneNumber()
          ->isSet()
          ->isNull()
          ->getResult()
Run Code Online (Sandbox Code Playgroud)

例如,脚本返回以下值

->isValidEmail() (true)
->isValidPhoneNumber() (true)
->isSet() (false)
Run Code Online (Sandbox Code Playgroud)

基本上,我将创建一个数组,根据每个函数的结果用true/false填充它,我将在数组中查找特定值(false).如果存在,则无论其他链如何,该类都将返回false.(或者我可以覆盖变量,这里不重要.)

但是,我希望$ validator一旦从函数中获取错误就停止链接.假设它从isSet()收到错误.它不应该执行isNull()和getResult(),因为我们已经有一个失败的检查.

我怎样才能在PHP中实现这一目标?

TL; DR:

var_dump($validator->setVar('Test message')->isInteger()->setTrue());
                                             //false     //true

Output: false, because once isInteger() failed, rest of the chain isn't executed.
Run Code Online (Sandbox Code Playgroud)

我怎样才能在PHP中实现这一目标?

php

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

我怎么能拿伪:在{content:"Value"之后; 在此代码段中动态值?

我这里有一个小css片段:http://jsfiddle.net/cr6Hm/(类似的例子可以在http://9gag.com/上找到)

基本上,它在Notifications链接上显示一个小div,上面New写有文字.

现在,New文本是使用div编写的pseudo:after,它可以工作.

// This one works
.text-new:after {
    content: 'New';
}
Run Code Online (Sandbox Code Playgroud)

但是,我想New动态更改文本.(例如,我想显示通知量而不是新的)

我不知道我怎么能这样做,因为我不知道它是如何pseudo:after工作的.

基本上,它应该是这样的:

<span class="popup popup-greenish">
    <i class="text>{{ $amount_notifications }}</i>
    Notifications
</span>
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

html css

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

谷歌没有索引我的网站,但索引论坛?

我在2个月前制作了一个名为League of Legends的游戏的粉丝网站.从那以后,我一直在等Google为我的网站编制索引.

我做了这些步骤.

  1. URL将转换为.htaccess的sef链接.
  2. 我在Google网站站长工具上配置了必要的选项.
  3. 我将sitemap.xml发送给了Google.
  4. 我尝试用几个ping网站ping谷歌.
  5. Robots.txt是正确的.

谷歌到目前为止没有为我的网站编制索引,所以我在/ forum /目录下创建了一个基本的PHPBB论坛.在一两个小时内,垃圾邮件机器人攻击我的论坛并制作了超过5k的主题.奇怪的是,谷歌在一小时内将它们全部索引.

问题是,为什么你认为谷歌没有索引我的主网站?我应该采取额外的步骤,还是我做错了什么?

PS.如果你想看一下,我的网站地址是www.sobafire.com.

indexing .htaccess seo sef

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

您将如何使用 PHP 制作向导系统?

我需要为我的一个项目创建一个向导系统,这就是我现在处理它的方式。

/*
   Just pseudo functions
*/

function wizard_start()
{
    //Fill the table with default values, set isVisible column to 0
}

function wizard_step_1()
{
    //Update necessary columns (e.g Name, sirname)
}

function wizard_step_2()
{
    //Update necessary columns (e.g Date, Type)
}

...

function wizard_final()
{
    //Do the last touches and update isVisible to 1 so it will appear on website
}
Run Code Online (Sandbox Code Playgroud)

我保持我们当前的步骤。喜欢;

isset($_session['step2_completed'])
    $this->wizard_step_3();

isset($_session['step3_completed'])
    $this->wizard_step_4();

...
Run Code Online (Sandbox Code Playgroud)

响应通过XMLHttpRequest并期望 JSON 格式的数据。如果 JSON 返回 true,则 Javascript 将加载下一个向导。(通常是针对不同任务的 HTML 表单。)

我想知道是否有更好和更多好的实践向导替代方案。例如,我不知道在会话中保持当前步骤是好还是坏的练习方式。 …

php wizard laravel

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

回归"某事"; 返回; - 第二个参数有用吗?

在这个给出的例子中;

public function something($input)
{
    if(something) //true case
       return "something";

    if(another something) //true case
       return "another something";
}

$this->something('something');
Run Code Online (Sandbox Code Playgroud)

我应该使用return;以确保在第一种TRUE情况后功能不能继续运行吗?喜欢;

if(something) { //true case
    return "something";
    return; //stop the execution
}
Run Code Online (Sandbox Code Playgroud)

是否有必要,或者单个返回已经停止了函数的执行?

php

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

PHP开发人员学习RoR.我应该用Rails 2.0.2编写的电子书来学习RoR吗?

我已经使用PHP多年了.今天,我开始学习Ruby on Rails并找到了一本适合我的电子书.电子书被称为Rails for PHP Developers.它写于2008年,因此它涵盖了PHP 5.2和Rails 2.0.2.

我选择这本书的唯一原因是它解释了PHP和Ruby on Rails的源代码.比如,我们如何在PHP上创建一个类或方法,以及它在Ruby上是什么样的,有什么不同等等.因为我已经知道PHP方面,我可以很容易地理解正在发生的事情并使自己适应ruby语法.

但是,PHP 5.2 is pretty old.PHP在过去几年中发展如此之多,所以5.2对我来说感觉很古老.Laravel framework过去几个月我也使用了这个,它是由Taylor Otwell with inspiration of Ruby on Rails框架创建的.我也看过Rails for Zombies截屏视频,老老实实地告诉Laravel是一个完美的Rails克隆.感觉就像他们是一回事."是的,ActiveRecord的事情.我已经知道了."

照这样说; 我不确定RoR 2.0.2和RoR 4.0.0之间是否存在巨大差异.我是否应该继续阅读这本电子书或RoR 2.0.0以及许多遗漏的重要功能?(这是两个主要版本的差异.)如果是这样,你能告诉我什么?

此外,如果还有其他很好的资源来学习RoR,请告诉我.

PS.帮助这个PHP人做出正确的选择并跳入Ruby世界.

ruby ruby-on-rails

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

使用 Twitter Bootstrap 自动完成的下拉列表

我想使用 twitter-bootstrap type-ahead 制作一个具有自动完成功能的下拉列表。

有什么方法可以实现这一点吗?

html css twitter-bootstrap-3

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