我已经阅读了很长一段时间的TDD/BDD,但我永远无法弄清楚如何在项目中实现它.
这是我目前正在工作的项目的简化版本:
一个允许人们注册,发布旧书出售的网站.需要这些书籍的人可以搜索附近发布的书籍,并通过网站向卖家发送电子邮件.
这是用CodeIgniter编写的,我是唯一一个开发它的开发人员.对于这种情况,您能告诉我我将如何进行测试 - 从哪里开始以及将要测试什么.
我一直想这么做,我有点理解这个概念,但是实际的实现让我望而却步,非常感谢!
我在理解codeigniters加载如何工作方面遇到了一些麻烦.
首先,你有自动加载,看起来非常简单,它每次加载一切.所以这对于我一直使用的东西来说听起来不错.
其次,你可以加载所有内联.但这是我的问题:它能保持多长时间?
假设我在控制器中加载表单验证库,然后加载模型,我可以在模型中使用表单验证还是我必须重新加载它?继续说我加载一个视图和另一个控制器,我可以使用表单验证吗?或者我需要加载?重定向后?如果我加载模型或帮助程序而不是库,怎么样?假设我想在另一个模型中使用模型,在哪里加载那个模型?
那么基本问题是,在我需要重新加载之前,负载需要多长时间?
我是一个codeignite新手,并尝试在我的文件在视图文件夹下添加一个图像.
我添加 <img src="../images/myImage.jpg"></img>到我的service_view.php.我只能看到一个小图标的断开链接.
但是,如果我改变我的路径
<img src="../../user_guide/images/myImage.jpg"></img>
Run Code Online (Sandbox Code Playgroud)
我可以看到图像.
我的文件系统如下:
application-
view ->folder (where service_view.php is located)
images -> folder (where myImage.jpg is located)
user_guide-
images ->folder ((where myImage.jpg is located))
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我这个吗?非常感谢!
如何require_once在普通PHP文件中使用Codeigniter中的php函数?我',目前收到错误.
码:
require_once($_SERVER['DOCUMENT_ROOT'].'/php/jformer.php');
错误:
Message: require_once() [function.require-once]: http:// wrapper is disabled in the server configuration by allow_url_include=0
Message: require_once(http://localhost/site/php/jformer.php) [function.require-once]: failed to open stream: no suitable wrapper could be found
我从未接触过model.php文件,但是我收到了这个错误.Jobprocess是我的控制器,$lastname是一个在其中正确分配的变量.我不知道为什么会出现这个错误.这是使用codeigniter框架
Message: Undefined property: Jobprocess::$lastname
Filename: core/Model.php
Line Number: 50
Run Code Online (Sandbox Code Playgroud) 我正在为我的应用程序使用codeigniter
即使用户在网站上处于活动状态,我的问题是会话即将到期.
这些是会话设置..我正在使用数据库会话
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'edu_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
Run Code Online (Sandbox Code Playgroud)
任何解决方案.
帮助我,我必须解决它
这是codeigniter 论坛链接
我正在使用CodeIgniter的会话功能,我正在运行此代码:
$session_id = $this->session->userdata('session_id');
echo "My Session ID is $session_id";
Run Code Online (Sandbox Code Playgroud)
每次加载页面时它都会不断变化.这是否意味着会话未正确保存?有没有办法调试这个并找出原因?或者我没有正确使用这个库?
启用错误报告时,我没有收到任何错误,并且我正在使用CI的自动加载功能来加载会话库:
$autoload['libraries'] = array('session');
Run Code Online (Sandbox Code Playgroud)
任何建议都会有所帮助!
以上代码的输出示例:
我的会话ID是7c92bac53d2654df6e87eb4e4cb25467
..重装..
我的会话ID是c6dd14aed2499760f788a1364dcab030
更新:我在config.php中的会话配置如下所示:
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = FALSE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
Run Code Online (Sandbox Code Playgroud)
所以我发现了
session_start();
$_SESSION['myvar']='var';
Run Code Online (Sandbox Code Playgroud)
也没有存储任何东西,我的linux服务器上的会话存储似乎有问题.
我的会话保存路径有apache:apache 775权限.也许这应该转移到serverfault?
暴力会议有多可行?
我目前正在使用CodeIgniter数据库会话,它不使用本机PHP会话 - 会话cookie加密和用户代理匹配已打开.
假设我将会话过期时间设置为4个月,是否有人可以通过会话ID来强制执行?不仅要接管会话,还要大量删除帐户中的内容,导致一般混乱等(CI的CSRF保护已打开)
我想给大多数用户一个持久的会话ID,匿名用户被赋予注册用户的大部分功能,比如喜欢的东西 - 类似于StackOverflow.
如果我想捕获传递给我的Web应用程序的每个非现有 URL并在不提供404的情况下为它们提供视图,我该怎么做?
基本上我需要根据这些命中记录统计数据,但我需要通过提供内容而不是404错误来实现.
据我所知application/config/routes.php,我可以使用
$route['default_controller'] = 'catchall';
Run Code Online (Sandbox Code Playgroud)
但我需要这个用于我的实际网络应用程序.
我也可以用
$route['404_override'] = 'catchall';
Run Code Online (Sandbox Code Playgroud)
但我不想扔404.
我试过用
$route['(:any)'] = '$1';
Run Code Online (Sandbox Code Playgroud)
但我需要记录整个URL(例如任何段的长度),而不仅仅是第一段.
codeigniter ×10
php ×4
session ×3
bdd ×1
brute-force ×1
image ×1
load ×1
path ×1
security ×1
sessionid ×1
tdd ×1
unit-testing ×1