我正在努力学习Codeigniter.我按照CI网站上的教程构建了一个简单的MVC.这是我的控制器......
<?php
class Pages extends CI_Controller {
public function view($page = 'home'){
if(!file_exists(APPPATH.'/views/pages/'.$page.'.php')){
show_404();
}
$data['title'] = ucfirst($page);
$this->load->view('templates/header', $data);
$this->load->view('pages/'.$page, $data);
$this->load->view('templates/footer', $data);
}
}
Run Code Online (Sandbox Code Playgroud)
这是标题模板......
<html>
<head>
<title><?php echo $title ?> - WurkWithUs</title>
<link rel="stylesheet" href="http://localhost/ci/CodeIgniter_2.1.2/css/bootstrap.css" type="text/css" media="screen"/>
<link rel="stylesheet" href="http://localhost/ci/CodeIgniter_2.1.2/css/custom.css" type="text/css" media="screen"/>
</head>
<body>
<h1>Wurk With Us</h1>
Run Code Online (Sandbox Code Playgroud)
当我使用像上面那样的绝对路径时,样式表可以工作.但是,如果我尝试使用类似......
<link rel="stylesheet" href="<?= base_url()?>css/bootstrap.css" type="text/css" media="screen"/>
Run Code Online (Sandbox Code Playgroud)
我得到一个空白页面.当我"查看页面源"时,我的样式线看起来像......
<link rel="stylesheet" href="
Run Code Online (Sandbox Code Playgroud)
我试图按照这里的建议,我得到相同的结果,即文档停止在"href ="行解析.
我究竟做错了什么?有没有更好的方法来加载我的样式表?
我通常使用codeigniter框架,它提供了一些防止sql注入的帮助,例如xss clean表单输入数据.
我有一个基本的想法,sql注入是什么以及如何阻止它发生,但我的一个朋友有一个非常基本的网站,其中唯一的用户输入是电子邮件脚本的cgi表单 - 网站的部分被一些成人取代内容.
所以我很好奇有人能够控制这样一个基本网站,以及在构建自己的网站时我应该注意哪些漏洞?
我对CodeIgniter MVC的原理提出了一个"简单"的问题.如果我查看CI(模型)中的手册,我会看到例如:
function insert_entry()
{
$this->title = $_POST['title']; // please read the below note
$this->content = $_POST['content'];
$this->date = time();
$this->db->insert('entries', $this);
}
Run Code Online (Sandbox Code Playgroud)
好吧,好吧 - 以这种方式输入数据很糟糕我知道:)但是如果我们使用"$ this-> input-> post()"...对我来说它看起来并不好.在使用模型中的函数之前处理控制器中的数据不是更好吗?也许模型部分看起来如此:
function insert_entry($data)
{
$this->db->insert('entries', $data);
}
Run Code Online (Sandbox Code Playgroud)
在像这样的控制器中:
$this->load->model('Blog');
$data = array();
$data['title'] = $this->input->post('title');
$data['content'] = $this->input->post('content');
$this->Blog->insert_entry($data);
Run Code Online (Sandbox Code Playgroud)
但我在哪里运行验证等...模型或控制器?也许有人明白我想知道什么.也许你有更多的经验,链接或其他什么.谢谢!
我无法为CodeIgniter找出这个迁移业务...我找不到任何体面的文档来解释其他字段元素,如current_timestamp,默认日期时间值等等
我想知道是否有人可以帮助我将以下内容翻译成适当的dbforge-> add_field数组
我需要以下2
`last_login` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
Run Code Online (Sandbox Code Playgroud)
和
`created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00'
Run Code Online (Sandbox Code Playgroud)
我从tank_auth库的SQL insert语句中复制了这些.
但我现在想把它放到迁移中.
干杯,
我在模型中有以下功能,但它会继续返回:
消息:mysql_fetch_array():提供的参数不是有效的MySQL结果资源
而我为我的生活无法弄清楚为什么.
function getNames() {
$query1 = $this->db->query("SELECT * FROM Device_tbl ORDER BY Manufacturer");
$dev = array();
while($row = mysql_fetch_array($query1))
{
$manu = $row['Manufacturer'];
$mod = $row['Model'];
$dev[] = $manu.' '.$mod;
}
return $dev->result();
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
CodeIgniter的答案是:
$query1 = $this->db->query("SELECT * FROM table");
foreach($query1->result_array() as $row)
{
$manu = $row['column1'];
$mod = $row['column2'];
echo $manu.' '.$mod;
}
return $query1->result();
Run Code Online (Sandbox Code Playgroud) 我是.net开发人员我有一些项目我必须使用PHP注意我知道php但我想问一下是否有人知道如何使用CodeIgniter和MySql创建简单的Web应用程序的"walkthough"?
我目前正在使用codeigniter 2.1.2构建一个网站.现在我遇到了有效构建多语言网站的问题.
我已经阅读了语言课程教程和助手,我已经存储了两个语言文件夹"Chinese"和"English".
我打算做的是我想要一个名为"lang"的语言会话变量.我想要以下内容:
我是PHP和Codeigniter的新手,我现在能想到的就是以下内容.任何人都能发挥一些亮点,因为我如何有效地允许用户更改我的网站上的语言?
我不知道如何在用户的点击事件中更改会话变量.
// Load Language Files
if(!$this->session->userdata('lang')) {
$this->session->set_userdata('lang','english');
$lang = 'english';
} else {
$lang = 'chinese';
}
$this->lang->load('pages/header',$lang);
Run Code Online (Sandbox Code Playgroud)
我创建了一个语言控制器并设置了会话变量,然后将页面重定向回上一页.这是一个好方法吗?
<?php
Class language Extends CI_Controller {
function index() {
if(!$this->session->userdata('lang')) {
$this->session->set_userdata('lang','english');
} else {
$lang = $this->session->userdata('lang');
if ($lang =="chinese") {
$this->session->set_userdata('lang','english');
} elseif ($lang == "english") {
$this->session->set_userdata('lang','chinese');
} else {
$this->session->set_userdata('lang','english');
}
}
header('Location: ' . $_SERVER['HTTP_REFERER']);
}
}
Run Code Online (Sandbox Code Playgroud) 正如我读过的文章一样,在我的应用程序的所有控制器中验证用户的最佳方法是扩展我自己的扩展CI_Controller的Controller
但我不能让它发挥作用.
我拥有的是一个members_controller扩展我的MY_Controller.
在MY_Controller我有这段代码,只是为了测试我是如何利用这个.
<?php
class MY_Controller extends CI_Controller {
private $foo;
function __construct() {
parent::__construct();
$this->foo = 'hello world again';
}
}
Run Code Online (Sandbox Code Playgroud)
在我的 members controller
<?php
class Members extends MY_Controller {
function index() {
$this->load->view('members');
}
}
Run Code Online (Sandbox Code Playgroud)
在我的 members view
我想访问我刚设置的这个变量,但我不知道如何.
我试着像这样回应它echo $foo,像这样$this->foo
但都没有工作.非常感谢!!
嗨,我正在尝试编辑下图所示的视图通道表
是否可以删除表列并将其替换为该通道字段组中的数据?
或者我是否必须制作一个模块并从头开始创建此视图?
对那些投票的人来说,这不是一个真正的问题,这是绝对的生活.
我已经用谷歌搜索和搜索了一个月了,我找不到一个准确的例子,它实际上是使用php和mysql进行ajax长轮询.最好想找到一个用mysql和codeigniter进行ajax长轮询的例子.
任何人都会遇到这个问题并有一个很好的例子请告诉我.
任何读过这篇文章的人都认为他们知道我正在寻找的ajax长期投票请给我发电子邮件或告诉我这里.我几乎完成了使用Codeigniter的聊天应用程序,但我遇到了jquery/ajax长轮询部分是客户端的问题.我没有发布这个聊天应用程序,因为上次我发布了另一个聊天应用程序我在这里有另一个开发人员抱怨我发布的代码太多了.我准备将此代码发送给任何能够实际提供有效的ajax长轮询代码的人.
非常感谢.
codeigniter ×10
php ×8
mysql ×3
css ×2
ajax ×1
html ×1
long-polling ×1
multilingual ×1
oop ×1
security ×1
variables ×1