Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用CodeIgniter向数据库插入单引号或双引号_Php_Html_Codeigniter_Input_Htmlspecialchars - Fatal编程技术网

Php 使用CodeIgniter向数据库插入单引号或双引号

Php 使用CodeIgniter向数据库插入单引号或双引号,php,html,codeigniter,input,htmlspecialchars,Php,Html,Codeigniter,Input,Htmlspecialchars,当我将数据加载到输入框中时: <input type="text" name='name' value='<?= ($activity->name); ?>' class="form-control"> 为什么不在值上加双引号 <input type="text" name='name' value="<?=($activity->name); ?>" class="form-control"> 您可以同时使用这两种类型的报价。没有

当我将数据加载到输入框中时:

<input type="text" name='name' value='<?= ($activity->name); ?>' class="form-control">

为什么不在值上加双引号

<input type="text" name='name' value="<?=($activity->name); ?>" class="form-control">

您可以同时使用这两种类型的报价。没有理由使用单引号/双引号

<input type='text' name='name' value='<?=($activity->name); ?>' class='form-control'>

<input type="text" name="name" value="<?=($activity->name); ?>" class="form-control">
使用表单帮助器:

$data=array(
    'class' => 'form-control',
    'name' => 'name',
    'value' => set_value('name', $activity->name)
);
echo form_input($data);
或者如果你不想逃避任何事情

'value' => set_value('name', $activity->name, false)

我想对于codeigniter,使用它自己的语法输入文本框试试这个

<?php echo form_input(array("name" => "name", "class" => "form-control input-sm", "value" => $activity['name'])); ?>

您可以尝试在类中添加
htmlspecialchars
。类似于

class Activity{
   public $name = htmlspecialchars("value");
}

每个问题都有解决方案。

我厌倦了分配配置和所有我能做的事情。最终为您找到最佳解决方案。现在您不想为所有函数添加
htmlspecialchars()
。只需使用下面的代码

在CI方法调用中还有一件事,请阅读


变化 转到
system/core/input.php
(我使用的是CI 3,所以转到第254行)

改变这个

public function post($index = NULL, $xss_clean = NULL)
{
    return $this->_fetch_from_array($_POST, $index, $xss_clean);
}
对此

public function post($index = NULL, $xss_clean = NULL)
{
    return htmlspecialchars ($this->_fetch_from_array($_POST, $index, $xss_clean));
}
要使用此表单,方法应为
method=“post”
。在控制器中,您必须使用
$this->input->post(“”)
$\u POST
不适用于您的


示例-代码 视图中的(示例表单)


输入与输出 输入
这是一些粗体文本。
我从

输出是
这是一些粗体文本。


登记入住
  • (推荐)

  • 与其全局更改codeigniter函数,不如通过剥离所有不必要的字符来更改代码并保存名称数据。我想这样做,但用户需要插入单引号和双引号。我可以添加您需要的输出以及现在获得的输出吗?如果正确,您的值有双引号,并且与您的输出产生了某种形式的冲突?谢谢,问题是,如果$activity->name包含双引号,那么它仍然是相同的
    public function post($index = NULL, $xss_clean = NULL)
    {
        return htmlspecialchars ($this->_fetch_from_array($_POST, $index, $xss_clean));
    }
    
    <?php echo form_open('welcome/form'); ?>
    <h1>Create Contact Form Using CodeIgniter</h1>
        <?php echo form_label('Student Name :'); ?>
        <?php echo form_input(array('id' => 'dname', 'name' => 'dname')); ?>
        <?php echo form_label('Student Email :'); ?>
        <?php echo form_input(array('id' => 'demail', 'name' => 'demail')); ?>
        <?php echo form_submit(array('id' => 'submit', 'value' => 'Submit')); ?>
    <?php echo form_close(); ?>
    
    echo $this->input->post('dname');