我目前正在使用基于codeigniter PHP的应用程序,并且已经达到了即将推出多种语言的程度.
codeigniters自己的语言类是处理语言最有效的方法吗?是否有任何特定的语言工具/库在PHP应用程序中常用?
谢谢!
关于Codeigniter及其输入处理功能的一些疑问.有些可能有点奇怪,但他们怀疑是无中生有.
我知道这可能很简单,但我没有得到.我已经创建了一个库,我想从配置文件中加载参数.所以这是我所拥有的一个例子:
// libraries/Mylib.php
class Mylib {
var $ci;
var $key;
public function _construct {
$this->ci =& get_instance();
$this->ci->config->load('mylib');
$this->key = $this->ci->config->item('key');
}
public function myKey() {
return "Key=" . $this->key;
}
}
// config/mylib.php
$config['key'] = 'randomcharacters';
Run Code Online (Sandbox Code Playgroud)
我加载了库,并尝试打印出myKey函数,但它只返回"Key =",没有实际的键.我错过了什么?
我对MVC框架(codeIgniter)中的控制器和模型感到困惑.我清楚地知道控制器方法调用视图和模型方法与数据库交互.但是,我对以下类型的方法感到困惑,这些方法由控制器中的方法调用.
hash_password //returns hash password.
valid_email //validates email format and return true or false
is_logged //check if session has a variable, returns true or false
generate_random_string //generates and hashes a random string
Run Code Online (Sandbox Code Playgroud)
它们应该放在控制器还是模型中?
目前,我将所有上述功能放在控制器中.这是对的吗?
好吧,我有一个包含报告链接的页面.只要有人点击一个报告,他们就可以下载excel文件.但是,有时候没有字段可以报告; 在这种情况下,我想显示一条警告信息,在他们点击"接受"后,他们会被重定向到主面板.当他们点击报告时,他们会转到使用a switch来获取数据的控制器.如果没有数据,则模型返回FALSE; 所以在控制器的最后,我检查:
if ($result_array != FALSE)
to_excel($result_array->result_array(), $xls,$campos);
else {
echo "<script>alert('There are no fields to generate a report');</script>";
redirect('admin/ahm/panel');
}
Run Code Online (Sandbox Code Playgroud)
如果我摆脱redirect('admin/ahm/panel');了警报,那么它会将用户移动到应该生成excel文件的页面.但是如果我使用重定向,控制器会将用户移动到主面板而不显示警报.
任何帮助表示赞赏.
提前致谢.
这是表单的代码.我想为提交按钮添加一个类,并为所有文本字段添加内联样式.我怎么能这样做?
例如在视图源中看起来像这样我想像这样编辑
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'login-form',
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
),
)); ?>
<p class="note">Fields with <span class="required">*</span> are required.</p>
<div class="row">
<?php echo $form->labelEx($model,'username'); ?>
<?php echo $form->textField($model,'username'); ?>
<?php echo $form->error($model,'username'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'password'); ?>
<?php echo $form->passwordField($model,'password'); ?>
<?php echo $form->error($model,'password'); ?>
<p class="hint">
Hint: You may login with <kbd>demo</kbd>/<kbd>demo</kbd> or <kbd>admin</kbd>/<kbd>admin</kbd>.
</p>
</div>
<div class="row rememberMe">
<?php echo $form->checkBox($model,'rememberMe'); ?>
<?php echo $form->label($model,'rememberMe'); ?>
<?php echo $form->error($model,'rememberMe'); ?>
</div>
<div class="row …Run Code Online (Sandbox Code Playgroud) 我正在使用开发我的网站PHP Codeigniter Framework.我想在我的一些网页上显示我的网络服务器的时间以及客户端的机器时间.我成功地显示了客户端时间JavaScript,通过简单地使用setInterval('clientMachineTime()',1000)函数每秒更新时间 .我希望显示Web服务器时间与我的客户端时钟相同.我用谷歌搜索,但找不到我想要的东西.任何建议将不胜感激.谢谢.
我正在尝试在codeigniter web上使用bootstrap,但它看起来像找不到引导程序文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Bootstrap 101 Template</title>
<!-- Bootstrap -->
<link href="<?php echo base_url('application/bootstrap/css/bootstrap.min.css');?>" rel="stylesheet">
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="<?php echo base_url('application/bootstrap/js/bootstrap.min.js');?>"></script>
Run Code Online (Sandbox Code Playgroud)
我检查了base_url()生成的路径,它是正确的.
当我尝试使用set_cipher,并set_flashdata在笨在一起,flashdata未设置并记录一个PHP错误.
要在新的 CI 上重现这一点:
更改以下config.php行(从默认CI配置更改):
$config['sess_encrypt_cookie'] = TRUE;
$config['log_threshold'] = 1; // To log the error
// Encryption key should be set, just set anything, for example:
$config['encryption_key'] = 'HjyePR4FPF70vHKaHTl8jZ0hSMgOu5bW';
Run Code Online (Sandbox Code Playgroud)
控制器(尽可能简化):
<?php
class Welcome extends CI_Controller {
function __construct(){parent::__construct();}
function index()
{
$this->load->library('session');
$this->load->library('encrypt');
$this->encrypt->set_cipher(MCRYPT_BLOWFISH);
$this->encrypt->encode('message');
$this->session->set_flashdata('item', 'value');
}
}
Run Code Online (Sandbox Code Playgroud)
然后只需在浏览器和刷新页面中打开控制器,您将看到flashdata未设置,如果CI应用程序日志文件夹具有正确的权限,则会记录以下错误:
严重性:通知 - > unserialize():偏移0处的错误为286字节/Applications/MAMP/htdocs/final/system/libraries/Session.php 741
1.这是CodeIgniter错误还是我做错了什么?
2.我该怎么做才能工作?
P.S. had to change cipher because default encryption result was too …
codeigniter ×10
php ×7
config ×1
controller ×1
css ×1
html ×1
javascript ×1
model ×1
unzip ×1
yii ×1