当我在一个简单的表格中回复没有CI的'£'字符的$ _POST时,结果如预期的那样,'£'.
当我使用输入类以及本机$ _POST var使用CI框架尝试相同时,echo是一个空白.
我已经检查确保配置中的所有内容都是utf-8但没有?有小费吗?
更新:这似乎只影响使用最新版本的MAMP和使用PHP 5.3.5的用户.目前的解决方法是转到MAMP控制面板并使用早期版本的PHP 5.2.17
有关详细信息,请参阅:https: //bitbucket.org/ellislab/codeigniter-reactor/issue/214/problem-when-inserting-special-characters
编辑:我想我已经解决了一些问题.- 这个角色 - ’似乎打破了它.如果我使用'常规'撇号(')它似乎工作正常,如果我用常规撇号替换其中的每个时髦撇号,它提交就好了.那么,下一个问题:为什么那个花哨的撇号打破了CodeIgniter或PHP?我会认为这是一个CI错误,但如果我错了,请纠正我.无论如何,这是我最初发布的问题,我仍然会理解为什么会发生这种情况以及我能做些什么呢?
我把头发撕成了这个.这完全是奇怪的,我根本无法解决这个问题.
首先,我有一个基本形式:
<?php $attributes = array('class' => 'form1'); $selected="";
echo form_open('admin/edit_page/'.$page->row('id'), $attributes); ?>
<div>
<?php echo form_error('title'); ?>
<label>Page Title:</label><input type="text" maxlength="100" name="title" value="<?php echo $page->row('title');?>" />
</div>
<div class="textarea">
<?php echo form_error('content'); ?>
<label>Page Content:</label><textarea name="content"><?php echo $page->row('content');?></textarea>
</div>
<div class="no">
<input type="submit" value="Submit"/>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
接下来,我有相应的CI功能:
function edit_page($id)
{
$this->form_validation->set_rules('title', 'Title', 'trim|required|max_length[50]');
$this->form_validation->set_rules('content', 'Content', 'trim|required');
// If validation has failed...
if ($this->form_validation->run() == FALSE)
{
$data['page'] = $this->gallery_model->get_page($id); …Run Code Online (Sandbox Code Playgroud)