小编Sai*_*han的帖子

MySQL存储引擎的决定

我是荷兰的网页设计师.我从头开始构建Web应用程序,我总是使用CMS,并对其进行自定义.

我正在php/mysql中建立一个拍卖网站,已经完成了.最近我读了一些关于存储引擎的文章.

我有一些问题一直困扰着我一段时间:


什么样的存储引擎最适合我的网站,我使用myIsam,innodb等.

我正在建设的网站是一个拍卖网站,它必须处理几个读写每一个!它必须检查拍卖是开放,关闭,暂停,当前价格等.

我知道不是我的数据库中的所有表都会被访问,这些表只有3个.它们目前都是myIsam.这个好吗?我应该改变它们吗?没有改变?我真的不知道该怎么办.我是否会改变它们,这会对我的网站产生巨大影响.并且这些变化很容易适用,或者很难做到.


我的另一个问题是关于缓存系统.

我也读了一些关于它们但我不知道它们是否适用于我所拥有的那种网站.我从数据库中获取的数据发生了很大变化.缓存它们对我来说很方便吗?例如,可以缓存拍卖,因为并非所有项目都会更改.但拍卖会不会永远存在,经过几个小时它就不见了.

我无法看到缓存系统如何应用于此,或者我看到错误的方式.而且,如果这个系统适用于我,这种改变是否需要付出很多努力,而且这种努力会带来巨大的变化.


这些都是我的问题,我猜它们非常普遍,我希望有些人可以帮助我,我真的很感激.

问候

mysql caching myisam innodb

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

您如何防范特定的CSRF攻击

我将通过2007年2010年OWASP十大名单.

我偶然发现Cross Site Request Forgery(CSRF)这通常被称为会话骑行,因为您让用户使用他的会话来实现您的愿望.

现在解决方案是向每个URL添加一个令牌,并为每个链接检查此令牌.

例如,对产品x进行投票,网址为:

'http://mysite.com?token=HVBKJNKL'
Run Code Online (Sandbox Code Playgroud)

这看起来像是一个可靠的解决方案,因为黑客无法猜出令牌.

但我正在考虑以下场景(我不知道是否可能):

您创建一个隐藏的iFrame或div的网站.之后,您可以使用普通的iFrame或ajax加载我的网站.

如果您的网站已隐藏在您的网站内,并且用户已存储会话,则可以执行以下操作.您可以从URLS检索令牌,并仍然执行所需的所有操作.

有可能做这样的事情.或者是不可能做这个跨域.

security csrf owasp

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

PHP静态类和单例类之间的确切区别是什么

我一直在PHP中使用Singleton类作为注册表对象.作为所有Singleton类,我认为main方法如下所示:

class registry
{
    public static function singleton()
    {
        if( !isset( self::$instance ) )
        {
            self::$instance = new registry();
        }
        return self::$instance;
    }

    public function doSomething()
    {
        echo 'something';
    }
}
Run Code Online (Sandbox Code Playgroud)

所以每当我需要一些注册表类时,我都会使用这样的函数:

registry::singleton()->doSomethine();
Run Code Online (Sandbox Code Playgroud)

现在我不明白创建一个普通的静态函数有什么区别.如果我只使用普通的静态类,它会创建一个新对象吗?

class registry
{
    public static function doSomething()
    {
        echo 'something';
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我可以使用:

registry::doSomethine();
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释单例类的功能是什么.我真的不明白这一点.

php singleton static

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

用PHP下载的本地文件替换本地文件

我一直在寻找这个功能:

bool move_uploaded_file(string $ filename,string $ destination)

这样做是检查文件是否可以被覆盖并执行.现在我的问题如下:

此函数检查以确保filename指定的文件是有效的上载文件(意味着它是通过PHP的HTTP POST上载机制上传的).如果文件有效,它将被移动到目标给出的文件名.

当我填写一个url作为文件名时,它返回false.是否有另一个函数可以用来用url替换本地文件.他们都有名字.

php

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

Lumen + Dingo + JWT在构建时不可实例化

我正在努力为Lumen + Dingo Rest API找到一个基本的工作基础,但我无法弄清楚如何将和平放在一起.

Lumen工作正常,但是当我尝试添加Dingo时,我会遇到各种各样的错误.从Dingo文档我读到:

获得程序包后,您可以在config/api.php文件或服务提供程序或引导程序文件中配置提供程序.

'jwt' => 'Dingo\Api\Auth\Provider\JWT'
Run Code Online (Sandbox Code Playgroud)

要么

app('Dingo\Api\Auth\Auth')->extend('jwt', function ($app) {
   return new Dingo\Api\Auth\Provider\JWT($app['Tymon\JWTAuth\JWTAuth']);
});
Run Code Online (Sandbox Code Playgroud)

我已经安装了一个新的Lumen副本,我没有看到config/api.php,所以我假设我使用这段代码放在我的bootstrap/app.php

这就是我的bootstrap/app.php样子:

<?php

require_once __DIR__.'/../vendor/autoload.php';

try {
    (new Dotenv\Dotenv(__DIR__.'/../'))->load();
} catch (Dotenv\Exception\InvalidPathException $e) {
    //
}

$app = new Laravel\Lumen\Application(
    realpath(__DIR__.'/../')
);

$app->singleton(
    Illuminate\Contracts\Debug\ExceptionHandler::class,
    App\Exceptions\Handler::class
);

$app->singleton(
    Illuminate\Contracts\Console\Kernel::class,
    App\Console\Kernel::class
);

$app->register(Dingo\Api\Provider\LumenServiceProvider::class);

app('Dingo\Api\Auth\Auth')->extend('jwt', function ($app) {
    return new Dingo\Api\Auth\Provider\JWT($app['Tymon\JWTAuth\JWTAuth']);
});

$app->group(['namespace' => 'App\Api\Controllers'], function ($app) {
    require __DIR__.'/../app/Api/routes.php';
});

return $app;
Run Code Online (Sandbox Code Playgroud)

运行时,我收到以下错误:

BindingResolutionException …
Run Code Online (Sandbox Code Playgroud)

php jwt dingo-api lumen lumen-5.2

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

PHP循环充当cronjob [确保只运行一个实例]

我有一个PHP脚本文件的多部分问题.我正在创建此文件,每秒更新一次数据库.没有其他建模方法,必须每秒完成.

现在我正在运行CentOS,我是新手.第一个菜鸟问题是:

我如何通过SSH运行php文件.我读到它只是#php path-to/myfile.php.但我试图回应一些东西,我没有在文中看到它.

现在我不认为启动文件会成为一个问题.我猜的一个问题是,我不知道它是否可能,但是这里有.

我是否有可能百分百确定该文件只运行一次.如果我偶然再次运行该文件会发生什么.

我进一步想知道,如果我每秒都对一个日志执行写操作,我就知道一切都运行正常.如果出现错误或出现错误,日志文件将停止.

是用fopen写入日志文件,还是写入和关闭.这不会花费很多时间,在CentOS中没有更简单的方法.

好吧我的另一个重点是当我运行文件时会发生什么.文件是在内存中运行,还是在系统中使用该文件.它是否响应文件中所做的更改,例如停止执行脚本.

我可以在文件本身中实现某种停止机制.或者是否有一个命令我可以用来停止文件.

我知道的另一个选择是实现每分钟运行一次的cronjob.而这个cronjob执行php文件.php文件将循环一分钟,更新所需的一切,然后终止.我实现了这个方法,但只使用了浏览器.我只是浏览了mu文件,然后打开它.我看到浏览器忙了一分钟,但它没有更新数据库中的任何内容.有谁知道这可能是什么原因.

我的另一个问题是通过实现cronjob方法,我填写PLESK面板的命令是什么.它与上面的命令相同.只是php和文件名.或者是否有像-f -q -something这样的特殊命令.

抱歉所有的菜鸟问题.

如果有人可以帮助我,我真的很感激.

再见!

php mysql ssh cron centos

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

在javascript中计算用户名和电子邮件之间的差异

出于安全原因,我希望我网站上的用户无法注册类似于他们的电子邮件地址的用户名.电子邮件地址为user@domain.com的人无法注册为user或us.er等

例如,我希望这不可能:

测试员 - > tester@mydomain.com(错误)tes.ter - > tester@mydomain.com(错误)等

但我确实希望能够使用以下内容:

tester6 - > tester@mydomain.com(好)等

//编辑tester6也是错误的.我用户6 - > tester@mydomain.com(好).

有没有人知道如何实现这一点,或尽可能接近的事情.我在javascript中检查这个,然后在php中的服务器上.

再见!

PS.也许有一些jquery插件可以做到这一点,到目前为止我找不到这个.使用插件的缺点是,我必须在php中实现相同的功能.如果它是一个很长的插件,翻译需要一些时间.

//再次编辑如果我只检查@之前的部分,他们仍然可以使用userhotmailcom或usergmail等.如果他们提供电子邮件是明显的.

javascript php email algorithm jquery

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

很好的编程截屏教程

我正在寻找一个网站,提供有关编程和网页设计的精美截屏和教程.

目前我正在使用http://net.tutsplus.com.我觉得这个很不错.有人知道任何好的选择吗?

language-agnostic

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

从静态域提供CSS

我想从静态无Cookie域提供我的CSS和图像.现在我的问题是如何指向我的css文件中的图像.

我不想在css文件中对我的域进行硬编码,例如:

http://static.com/image.png

我宁愿有一个指向图像的变量,所以它适用于我使用的每个静态域.

实现这一目标的最佳方式是什么?我应该通过php运行整个css文件,并在所有png引用前添加静态域.这方面的缺点是我必须将整个CSS放在html中.

或者还有另一种更优化的方法.

css static cookieless

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

PHP/MySQL分页与一个查询

我现在的分页方式如下:

===============
首先,我进行常规查询,然后获取所有结果.

之后我计算结果,比方说300.我用num_results做到这一点

现在我查看用户想要的页面和限制,比方说30,10.

最后我执行了新查询,并选择了限制.

===============

使用这种方法,我做了几乎相同的查询两次,没有其他方法可以做到这一点,只需一次.

php mysql pagination

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