如何使用CodeIgniter生成embd code/blgger like widget?请告诉我如何制作
这是我的问题。我正在构建一个需要过滤器的应用程序。我已经使过滤器系统开始工作,我什至可以在此时此刻确定要访问的实际方法。问题是我无法从过滤器文件访问CI核心。我在网上搜索过,虽然发现了一些建议的解决方案,例如“浸入CI”,但不建议使用它们,因为它们会导致PHP应用程序不稳定。
我的应用程序中的示例过滤器如下所示
class Trust_filter extends Filter {
function before() {
$this -> ci = &get_instance();
if ($this -> ci -> auth -> is_user_active()) {
$this -> ci -> load -> model("trust_model", "trustmanager");
if ($this -> trustmanager -> verify()) {
echo "##090##";
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码不起作用,因为CI对象是非对象。我无法获得实例,并且为此花了一整夜都没有结果。我正在使用CodeIgniter 1.7.1。任何帮助将不胜感激。
编辑:我找到了问题的答案。创建构造函数后,我将过滤器系统扩展为可以工作,以确保可以访问CI超对象。我的代码也完美地工作。谢谢大家,但我仍然对您的解决方案感兴趣。
我有一个PHP应用程序,其中一个页面上有一个删除功能.我允许用户通过点击标签从他们的个人资料中删除标签.用户单击标记后,HTML中先前显示标记的内容区域将使用新的标记集进行更新.
现在的问题是,从标签列表中,用户第一次点击标签时,它就会被删除.如果用户现在点击另一个标签(来自刷新区域),则没有任何反应.
$("a.single_tag").click(function(){
the_id = $(this).attr('id');
$.ajax({
type: "POST",
data: "data="+the_id,
url: "<?php echo site_url('user/deletetag/');?>/",
success: function(msg)
{
$("#current_tags").fadeIn("slow");
$("#current_tags").html(msg);
}
});
Run Code Online (Sandbox Code Playgroud)
谢谢
我知道之前有人问过,但我需要联盟跟踪......
http://www.mysite.com/controller/method/params?affiliate=123&sub_id=456
如何获取该URL中列出的参数和$ _GET参数?
所以我有一个PHP CodeIgniter webapp,我正在尝试决定是否合并缓存.
请耐心等待我,因为我很高兴地承认我不完全理解缓存!
因此,第一个用户加载一页用户提交的内容.加载'慢'需要0.8秒(处理).然后,下一个用户加载同一页面,从缓存中"快速"加载它需要0.1秒.
第三个用户加载它,也需要0.1秒的执行时间.该用户决定对该页面发表评论.
第二个用户在2分钟后加载它但没有看到第三个用户的评论,因为在缓存过期之前还有50分钟的时间
你在这种情况下做了什么?是否值得在这样的页面上加入缓存?
我想使用缓存的原因是因为我运行了一些测试.没有缓存,我的页面平均执行时间为0.7864秒.使用缓存,平均花费0.0138秒.这是5599%的改善!
我知道它仍然只是几毫秒,但即便如此......
插口
我尝试制作一款应用.我正在使用Ion Auth.
我的意思是我想利用这个库.
应用程序的当前结构:
假设我的名字是Lisa,Lisa提交了一个帖子.它使用当前登录并将其保存到Posts表.它应该保存ID或名称?我不知道如何将它与我的程序集成.
我正在尝试在Codeigniter中使用原生$ _SESSION数组,因为我不能使用$ _COOKIES数组,所以我创建了自己的类但似乎Codeigniter继续保存cokkies数据导致如果我禁用浏览器cookie我无法检索$ _SESSION数据:O !! 不可思议....我不明白为什么?codeigniter是停止还是删除所有设置的$ _SESSION数据?
是否有人仍然只使用$ _SESSION数组,中止默认的$ _COOKIE数组选项?我的意思是,我希望会话数据不是cookie数据,但似乎是不可能的:哦!!! ?? !!
我已将CI原始Session.php库重命名为Cookie.php,而且我将两个个人类重命名为应用程序/库,并将其默认加载到autoloader.php中
session_start();
class Session {
function set_data($key,$data)
{
if(!$key)
{ echo 'first param passed is null in session set_data';}
if(!$data)
{ echo 'second param passed is null in session set_data';}
if(isset($key) && isset($data))
{
if(isset($_SESSION[$key]))
{
unset($_SESSION[$key]);
}
return $_SESSION[$key] = $data;
}
function keep_data($key)
{
if(!$key)
{ echo 'first param passed is null in session keep_data';}
if(isset($_SESSION[$key]))
{
return htmlentities($_SESSION[$key]);
}
}
Run Code Online (Sandbox Code Playgroud)
我想创建一个回调函数,在验证过程中使用它来检查用户名/电子邮件地址是否已经存在于数据库中...问题是我似乎无法让它工作
所以这是回调函数:
function callback_username_available($username)
{
if($this->user_model->username_available($username))
{
return TRUE;
}
else
{
$this->form_validation->set_message('username_available', 'ERROR');
return FALSE;
}
}
Run Code Online (Sandbox Code Playgroud)
这是验证逻辑:
// setup form validation rules
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'username', 'callback_username_available');
if($this->form_validation->run() == FALSE)
{
// validation errors
}
else
{
// no validation errors
}
Run Code Online (Sandbox Code Playgroud)
我已经在这几个小时了,不知道我做错了什么......两个函数都在同一个控制器中,所有其他标准验证规则都运行得很好.
即使我将回调函数设置为仅返回FALSE,它仍然会验证用户名.
任何想法的家伙......此刻它正在推动我的问题:S
我有一个很奇怪的问题,当我使用CSS :hover的td静态HTML文件,它工作正常(见导航栏http://www.nutricioncelular.es/REGISTRATE.html)
但是,当我在CodeIgniter视图中使用它时,(代码是相同的,请参阅http://www.nutricioncelular.es/index.php)td背景上的红色不起作用.代码完全相同,对视图的调用是一个简单的加载视图,没有参数,没有数据.
我想在$ _POST前加一个"0"
$currency = $_POST['Currency']; // lets say 900
$currency = "0".$currency;
echo $currency;
Run Code Online (Sandbox Code Playgroud)
它应该已经返回0900但它返回900.
有任何想法吗?
编辑
这是完整的功能
function validate(){
$ref = $this->input->post('Ref');
$shop = $this->input->post('Shop');
$amount = $this->input->post('Amount')*1000;
//$currency = $this->input->post('Currency');
//$currency = $_POST['Currency']; // lets say 900
//$currency = "0".$currency;
$currency = str_pad($_POST['Currency'],4,'0',STR_PAD_LEFT);
$query = $this->db->query("SELECT * FROM shop_validation WHERE merchant_ref = '$ref' ");
if($query->num_rows() > 0) {
$row = $query->row_array();
$posts = "";
foreach ($_POST as $name => $value) {
$posts .= $name." / ".$value;
}
$this->db->query("INSERT …Run Code Online (Sandbox Code Playgroud) codeigniter ×10
php ×6
affiliates ×1
ajax ×1
caching ×1
callback ×1
cookies ×1
css ×1
javascript ×1
jquery ×1
query-string ×1
session ×1
validation ×1