所有这些天我都认为CodeIgniter不允许直接访问应用程序中的文件(我的意思是应用程序本身而不是应用程序文件夹).
所以,如果我在文件夹下有以下结构,www:
ROOT
|____APPLICATION
|___________JS/mine.js
|___________VIEWS/my_view.php
Run Code Online (Sandbox Code Playgroud)
如果我想包括mine.js在my_view.php,我需要使用引用的JS文件base_url()的功能如下:
<script type="text/javascript" src="<?php echo base_url();?>js/mine.js"></script>
Run Code Online (Sandbox Code Playgroud)
看起来我错了,我也可以参考它.喜欢:
<script type="text/javascript" src="../js/mine.js"></script>
Run Code Online (Sandbox Code Playgroud)
有什么想法/意见吗?
哪一个是好习惯?为什么?
我在这里想要实现的是改变输出.行分钟,短信或数据可以输出-1作为结果.我想要做的就是拥有它,如果任何行的输出为-1,那么它应该输出"Unlimited".
这是通过CodeIgniter完成的.
foreach ($getprices->result() as $row)
{
echo $row->price;
echo "<br>";
echo $row->minutes;
echo "<br>";
echo $row->sms;
echo "<br>";
echo $row->data;
echo "<br><hr>";
}
Run Code Online (Sandbox Code Playgroud) 一个愚蠢的问题,我想从我的admin_news控制器函数调用,该函数驻留在另一个控制器Admin中.功能名称为is_logged_in();
admin.php
public function is_logged_in()
{
....
}
admin_news.php
public function __contruct()
{
parent::__construct();
//admin->is_logged_in();??
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?谢谢
我正在尝试使用codeigniter实现分页.情况如下:3我的数据库中只有文章,因此我将每页限制设置2为测试分页.内容是属性中断,在第一页内我有前两篇文章和第二篇第三篇文章.正确生成分页链接号.
当我在第一页时,我点击分页link (2)加载第二页的内容,但是当我在第二页的分页链接不工作时page 1, (1)根本没有链接,(2)是否再次链接?
有什么问题?
这是我的控制器方法
function pagination()
{
$this->load->library('pagination');
$this->load->library('table');
$this->load->model('article_m');
$config['base_url'] = 'http://mysite.com/en/news/pagination';
$config['total_rows'] = $this->db->get('articles')->num_rows();
$config['per_page'] = 2;
$config['num_links'] = 20;
$this->pagination->initialize($config);
$pag = $this->db->get('articles', $config['per_page'], $this->uri->segment(4));
$data['records'] = $pag->result();
$this->template->view('news/pagination', $data);
}
Run Code Online (Sandbox Code Playgroud) 我在理解MVC的概念和一次显示多个表单时遇到了根本问题.我尝试了各种各样的方法,但我仍然坚持 - 这是因为我认为我没有正确理解CI和MVC.
我试着为两种不同的形式使用2种不同的视图.没工作.我尝试在控制器中为每个表单使用一个函数.那也行不通.我不知道该怎么办.
我应该这样做吗?
6是我最大的问题.不知道该怎么做.例如,在成功完成表单后,我希望我的用户在所选位置创建了一个目录 - 所以我正在使用mkdir() - 所以我需要在validate()函数中使用if语句或者什么?
UPDATE
这是我到目前为止创建的代码;
控制器:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
Run Code Online (Sandbox Code Playgroud)
// Forms CodeIgniter控制器类Admin扩展CI_Controller {
// Controller constructor
public function __construct()
{
parent::__construct();
// Load form helper required to validate forms
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
}
//*************************************************//
// Prepare data for the view to output the forms
public function index()
{
//*****************************************************//
//returns a drop down list of radio buttons, one …Run Code Online (Sandbox Code Playgroud) Mysql AES_encrypt中有一个函数.
SELECT AES_encrypt( "Hello World", "password" ) AS encrypted_value
Run Code Online (Sandbox Code Playgroud)
这给出了结果: 9438eb79863e7009722fc3f0ad4b7198
但是当我使用php中的代码来执行AES_encrypt时,它给了我不同的值.
我从stackoverflow获得的PHP代码 - PHP AES加密/解密
<?php
base64_encode(
mcrypt_encrypt(
MCRYPT_RIJNDAEL_256,
$sSecretKey, $sValue,
MCRYPT_MODE_ECB,
mcrypt_create_iv(
mcrypt_get_iv_size(
MCRYPT_RIJNDAEL_256,
MCRYPT_MODE_ECB
),
MCRYPT_RAND)
)
), "\0"
?>
Run Code Online (Sandbox Code Playgroud)
PHP代码的结果是 ytip2sEkD87gmRk3IVI09qE7T+RoLr20YK4rJp16NkY=
在php或codeigniter中是否有一个方法,以便它返回相同的值. - 谢谢.
我的问题有点难以解释,但我会试试..
基本上,在tank_auth示例脚本中,如果用户尚未登录,则会使用此代码重定向用户;
if (!$this->tank_auth->is_logged_in()) {
redirect('/auth/login/');
} else {
$data['user_id'] = $this->tank_auth->get_user_id();
$data['username'] = $this->tank_auth->get_username();
$this->load->view('welcome', $data);
}
Run Code Online (Sandbox Code Playgroud)
如果你有一个登录页面,并且用户每次都在开头就开始,那就太好了.(而且我这样做很舒服)
但是我希望用户能够(几乎)跳到任何控制器的网站,并在顶部有一个登录栏.登录时,不应将其重定向到其他页面.他们应该在他们试图访问的同一页面上结束.
例如,我的用户可能会立即加载example.com/food/burgers.我想要一个空白页面,但只是顶部有一个登录栏.然后,当他们登录时,他们最终回到'汉堡'页面,但这次还有一个汉堡包列表和顶部的栏,告诉他们他们已登录,并可选择注销.
那我该怎么做?我是否需要从每个控制器调用auth/login方法?我是否将其作为"包含"?不知道.
始终在我的浏览器上显示错误消息:
An Error Was Encountered
Non-existent class: IOFactory
Run Code Online (Sandbox Code Playgroud)
所有类PHPExcel,我在库中提取.
这是我的控制器代码
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Report extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->helper(array('form','url'));
}
public function index()
{
$this->load->library('phpexcel');
$this->load->library('PHPExcel/IOFactory.php');
$objPHPexcel = PHPExcel_IOFactory::load('tandaterima.xlsx');
$objWorksheet = $objPHPexcel->getActiveSheet();
//Daftar barang (4item)
$objWorksheet->getCell('B16')->setValue('UTP');
$objWorksheet->getCell('B17')->setValue('Cross');
$objWorksheet->getCell('B18')->setValue('');
$objWorksheet->getCell('B19')->setValue('');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPexcel, 'Excel5');
$objWriter->save('write5.xls');
}
}
Run Code Online (Sandbox Code Playgroud)
请帮我.
这是我的文件的层次结构
Codeigniter/
applications/
assets/
styles.css
...
views/
welcome.php
system/
...
Run Code Online (Sandbox Code Playgroud)
在我的style.css下是这段代码
p {
color: #3333ff;
background-color: #66ff66;
}
Run Code Online (Sandbox Code Playgroud)
在welcome.php之下就是这个.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>test</title>
<link rel="stylesheet" type="text/css" href="<?php echo base_url(); ?>assets/styles.css" />
</head>
<body>
<p>test</p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我将base_url设置为
$config['base_url'] = 'http://localhost/Codeigniter/';
Run Code Online (Sandbox Code Playgroud)
我不明白为什么css文件不起作用
我也试图改变链接
<link rel="stylesheet" type="text/css" href="<?php echo base_url(); ?>application/assets/styles.css" />
Run Code Online (Sandbox Code Playgroud)
但也没有奏效
以下代码非常重复,我可以避免重复userdata函数调用吗?
if($this->session->userdata('lang'))
$lang = $this->session->userdata('lang');
Run Code Online (Sandbox Code Playgroud) codeigniter ×10
php ×6
mysql ×2
controller ×1
css ×1
encryption ×1
forms ×1
integrated ×1
javascript ×1
phpexcel ×1