我正在尝试使用Laravel Installer方法在Windows上安装Laravel Framework.
在文档中我发现了以下内容:
首先,使用Composer下载Laravel安装程序.确保将"〜/ .composer/vendor/bin"目录放在PATH中,以便在终端中运行laravel命令时找到laravel可执行文件.
现在这个PATH对我来说并不熟悉.你能告诉我Windows的工作路径吗?
顺便说一句:我正在使用WAMP.Composer已安装并更新.
问题场景:
我正在用Laravel 4创建一个博客.负责创建新博客文章的表单由CSRF保护(Laravel Docs:CSRF Protection)构建.
到目前为止一切正常,但似乎laravel不会在每个请求上刷新csrf标记.
出现的问题是,如果用户点击浏览器的后退按钮返回提交的表单,则输入的数据仍然存在,用户可以"重新提交"表单.这可能会为垃圾邮件发送者打开一扇门.
通常这是由CSRF令牌阻止的,因为它在每次请求时都会被刷新,但是Laravel似乎并没有这样做.
我使用laravel"资源控制器"方法(Laravel Docs:Resource Controllers)来处理表单和博客帖子视图.此外,在将提交的输入存储在数据库(MySQL)中之前,我使用Laravels输入验证器.
所以出现了以下想法:
以某种方式强制Laravel 4在每次请求时自动重新生成csrf
生成另一个令牌并手动将其包含在表单中
在用户会话(php或数据库)中保存表单子目录的时间戳,并在时基上限制新表单提交
我个人更喜欢第一个想法,但遗憾的是我无法找到一种方法来强制laravel表现我想要的样子,而不会破坏"Illuminate"本身(我想保持"原样"以便能够更新laravel没有"麻烦hoff "^^).
你会推荐什么?
你是怎么自己处理这个问题的?
在Laravel 4中运行时访问配置值是使用其Config类完成的:
Config::get('app.timezone');
Run Code Online (Sandbox Code Playgroud)
为了组织配置文件,我想把它们放到不同的子目录中.
例如:
/config/users/ - > 用于特定于用户的配置/config/auth/ - > 认证相关我从Dayle Rees 读了一本老教程(Laravel v3),他说下面的内容是可能的:
$option = Config::get('ourconfig.sub.directory.size');
Run Code Online (Sandbox Code Playgroud)
试了一下,没有运气.根据杰森刘易斯的说法,它从未受到支持.
然后我看了一下Laravel 4 API并找到了load()和getRequire()(这里可以找到更多相关的函数).
但是,我找不到在L4中获取sub-dir配置值的方法.
所以,
我正计划用PHP编写一个用于博客的视图计数.计数器的目的是指示博客文章的阅读频率,例如StackOverflow在问题页面上显示"浏览n次".
首先,我想将计数器数据存储在文件中,但通过研究,我改变了主意,将MySQL与几个InnoDB表一起使用,因为这些表的执行速度比硬盘查找速度快,从长远来看也不那么费力,而且本身也提供了有用的功能.
我坚持的问题是如何只为每个用户计算一次?
限制IP不是一种解决方案,因为动态IP和网络通常只有一个IP与所有连接的设备(例如学校,办公室,公共接入点)共享连接.
编辑:
受到fideloper的回答的启发,我正在研究基于会话的解决方案.
我已经在会话中使用单独的数据库表,所以我会按照建议将其合并到解决方案中.
这是我到目前为止(使用Laravel 4和Eloquent ORM):
SQL表设置:
--
-- Sessions Table
--
CREATE TABLE sessions (
id VARCHAR(255) NOT NULL COLLATE 'utf8_unicode_ci',
payload TEXT NOT NULL COLLATE 'utf8_unicode_ci',
last_activity INT(11) NOT NULL,
UNIQUE INDEX sessions_id_unique (id)
) COLLATE='utf8_unicode_ci' ENGINE=InnoDB;
--
-- Views Table
--
CREATE TABLE post_views (
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
post_id INT(11) UNSIGNED NOT NULL,
sess_id VARCHAR(255) NOT NULL COLLATE 'utf8_unicode_ci',
viewed_at TIMESTAMP NULL DEFAULT …Run Code Online (Sandbox Code Playgroud) laravel-4 ×4
laravel ×3
php ×2
app-config ×1
composer-php ×1
csrf ×1
forms ×1
installer ×1
mysql ×1
subdirectory ×1