在我的CI配置文件中,我设置了此日志记录阈值:
$config['log_threshold'] = 1;
Run Code Online (Sandbox Code Playgroud)
在index.php中,我设置了以下错误报告:
error_reporting(E_ERROR);
Run Code Online (Sandbox Code Playgroud)
我的期望是,这将记录我记录(使用log_message('error','my error message'))的任何CI错误,以及任何PHP错误.但是,我希望它不会记录PHP通知,只会记录错误.但是,当我查看日志文件时,它似乎也记录了PHP通知:
错误 - 2009-12-18 13:21:50->严重性:注意 - >未定义变量:pageindex /var/www/apps/OS4W/system/application/views/user/view.php 12
错误 - 2009-12- 18 13:21:50->严重性:注意 - >未定义的变量:friendsmode /var/www/apps/OS4W/system/application/views/user/activitytable.php 207
虽然日志行以"ERROR"开头,但实际上这似乎是一个PHP通知,有点像警告,我不想记录.如何确保仅记录CI和PHP错误,而不是PHP通知?我以为error_reporting(E_ERROR)会这样做?
我是CodeIgniter的新手,刚刚发现使用GET方法通过URL传递变量的困难(例如domain.com/page.php?var1=1&var2=2).
我认为一种方法是传递URI段中的变量,但还没有弄清楚如何做到这一点,因为它似乎创建了在控制器中具有一个名为特定URI段的函数的期望?
无论如何我没有使用GET,而是决定通过使用隐藏输入字段中的变量调整提交按钮(伪装成链接)来使用POST.我已经创建了以下解决方案似乎工作正常,但我想知道我是否在这里正确的轨道或是否有更简单的方法通过CodeIgniter中的链接传递变量?
我在application/libraries /中创建了以下类
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class C_variables {
function variables_via_link($action, $link_text, $style, $link_data) {
$attributes = array('style' => 'margin:0; padding:0; display: inline;');
echo form_open($action, $attributes);
$attributes = array('class' => $style, 'name' => 'link');
echo form_submit($attributes, $link_text);
foreach ($link_data as $key => $value){
echo form_hidden($key, $value);
}
echo form_close();
}
}
?>
Run Code Online (Sandbox Code Playgroud)
使用以下CSS:
/*
SUBMIT BUTTON AS LINK
adapted from thread: http://forums.digitalpoint.com/showthread.php?t=403667
Cross browser support (apparently).
*/
.submit_as_link {
background: transparent; …Run Code Online (Sandbox Code Playgroud) 假设我在我的名为Book的控制器加载的View中.
有没有办法让我在View中获取控制器的URL而不是手动输入:
echo base_url('book');
Run Code Online (Sandbox Code Playgroud) 我正在使用codeigniter版本2.0.3.我正在尝试使用更新查询后获取受影响的行数
$this->db->affected_rows
Run Code Online (Sandbox Code Playgroud)
即使没有更新行,它也总是返回1.我试过了
mysql_affected_rows()
Run Code Online (Sandbox Code Playgroud)
如果查询失败,则返回-1;如果没有更新记录,则返回0.
编辑包括我的代码
我正在使用
$country_id = $this->input->post('country_id');
$time=$this->input->post('time');
$insert_array = array(
'country' => $this->input->post('name')
);
$this->db->update('country_master', $insert_array, array("country_id" => $country_id,"last_updated"=>$time));
$afftectedRows=$this->db->affected_rows();
Run Code Online (Sandbox Code Playgroud) 我创建了一个名为Gallery的模块,它在我的localhost版本2.0.3上正常工作,但是当在远程站点上使用版本2.1.0时,我无法提交表单而且我收到错误:
不允许您请求的操作.
为什么是这样?
嗨,我刚刚在codeigniter工作.我的网站在本地工作,但是当我上传它时,我收到了这个错误:
遇到错误无法加载请求的文件:home\home_view.php
这是我的控制器:
<?php
class home extends CI_Controller{
function index(){
$data=array();
if($query=$this->home_model->get_dynamic_main_menu())
{
$data[‘main_menu’] = $query;
}
$this->load->view(‘home\home_view’,$data);
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
作为一个大多数自学成才的程序员,我在设计模式等方面已经迟到了.我正在使用CodeIgniter编写一个劳动管理Web应用程序.
我在学校做了一些MVC ASP.NET/C#和Java,并且惯例是你的模型主要由代表实际对象的类组成,但也抽象了所有的数据库连接等......这是非常标准的MVC东西从我收集到的.
我想我说对,CI完全看不到数据库连接(除非你去看),这对于课程来说是标准的,你可以创建的模型可以将'通用'CRUD方法抽象得更多创建一些对特定模型更有用的方法.
我遇到问题,因为它与我习惯使用MVC的不同之处在于,每当你说...从数据库返回一行时,惯例就是将它放在一个关联数组或标准对象中使用表示行中数据的属性.
在ASP中,您可以构建实际的类来存储此信息.比如你有一个House类和数据将被存储为属性(例如bedrooms,bathrooms,address)和方法将是有用的东西,你可以对数据进行修改(如printInfo()可能print("$address has $bedrooms bedrooms and $bathrooms bathrooms!')).
我得到的印象 - 仅仅来自我在互联网上看到的代码 - 这不是标准的做事方式.你应该只使用数组或通用对象,并说...做$this->house_model->print_info($houseobject)而不是$houseobject->print_info();?
谢谢.
即时尝试编写代码,我可以提交表单输入数据库中的内容,同时执行文件上传并将其存储在我的服务器内的文件夹中
文件夹位置称为上传,位于我的网站的根目录
这是我的代码
控制器(site.php)
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Site extends CI_controller {
public function __construct()
{
parent::__construct();
// Your own constructor code
$this->load->model("site_model");
$this->load->helper(array('form', 'url'));
}
public function cmain($type,$page)
{
$data = $this->_initialize_data(); //this is just a bunch of variables that im calling in another function
$data['type'] = $type;
$data['page'] = $page;
$this->load->vars($data);
$this->load->view('site/cmain');
}
public function m1()
{
$this->load->library('upload', $config);
if(isset($_POST['m1']))
{
$suffix = $this->input->post("suffix");
$fn = $this->input->post("fn");
$mn = $this->input->post("mn");
$ln …Run Code Online (Sandbox Code Playgroud) 嗨,我正在尝试用HEBREW文本写一个CSV.它写了一些符号而不是希伯来文.下面是我的PHP代码.
<?php
$list = array (
array('????', '????', '????', '????'),
array('123', '456', '789'),
array('"????"', '"????"')
);
$fp = fopen('file.csv', 'w');
//fputs($fp, $bom =( chr(0xEF) . chr(0xBB) . chr(0xBF) ));
foreach ($list as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
?>
Run Code Online (Sandbox Code Playgroud)
我检查了互联网并添加了" fputs($ fp,$ bom =(chr(0xEF).chr(0xBB).chr(0xBF))) "但它没有成功.有人能帮我吗.
以下是我得到的输出.