codeigniter 相关问题

CodeIgniter是由EllisLab公司创建的开源PHP Web开发框架,它已被不列颠哥伦比亚理工学院采用。该框架实现了Model-View-Controller设计模式的修改版本。有关CodeIgniter类,方法,函数,语法和用法的问题,请使用此标记。

路线不工作codeigniter

当我将welcome设置为默认控制器时,路由不起作用,默认控制器显示错误404,然后使用welcome控制器定义的所有路由都工作,但我的其他路由和url...

回答 3 投票 0

DataTable(服务器端)Ajax 使用 CodeIgniter4 错误 DataTable 未显示

所以我的任务是使用 codeigniter 4 制作一个 DataTable,并在互联网上浏览如何做到这一点,我设法在 youtube 上找到一个教程并遵循每个步骤,但出于某些原因...

回答 1 投票 0

如何在 php 中动态添加多个 WHERE 子句 [已关闭]

我有五个输入字段,即技能、地点、公司、经验和薪水。根据用户的要求,我将从数据库中获取值。我的问题是,如何使用where条件动态...

回答 2 投票 0

Codeigniter 将数组插入数据库

我在 Codeigniter 中创建了一个表单,其中包含一个使用 JavaScript 动态复制的电话号码字段。所以基本上我可以有一个或多个这样的字段。 我在 Codeigniter 中创建了一个表单,其中包含一个使用 JavaScript 动态复制的电话号码字段。所以基本上我可以有一个或多个这样的字段。 <input name="phone[]" value=""type="text"> <input name="phone[]" value=""type="text"> 然后在我的控制器中我有 $form_data = array( 'first_name' => $this->input->post('first_name'), 'last_name' => $this->input->post('last_name'), 'phone' => $this->input->post('phone[]') ); 然后我将其保存到我的数据库中 function SaveForm($form_data) { $this->db->insert('customers', $form_data); if ($this->db->affected_rows() == '1') { return TRUE; } return FALSE; } 但显然“电话”的代码是错误的,我只是不知道如何正确执行此操作。 您无法将数组保存到数据库中。您可以使用 implode() 将其转换为字符串,然后在需要时使用 explode() 将其转换回数组。就像下面这样 $phone=implode(',',$this->input->post('phone')); $form_data = array( 'first_name' => $this->input->post('first_name'), 'last_name' => $this->input->post('last_name'), 'phone' => $phone ); 或 您可以将其转换为 json 字符串,并在需要时转换回数组,如下所示: $phone = json_encode($this->input->post('phone')); 转换回数组 $phone = json_decode($phone, TRUE); 按如下方式修改你的函数,它将像魅力一样工作: function SaveForm($form_data) { $batch_data = []; foreach ($form_data as $data) { $batch_data[] = [ 'first_name' => $data['first_name'], 'last_name' => $data['last_name'], 'phone' => $data['phone'] ]; } $this->db->insert_batch('customers', $batch_data); return $this->db->affected_rows() > 0; } 在控制器中 $phone = $_POST['phone'];//this will store data as array. Check image 02 $form_data = array( 'first_name' => $this->input->post('first_name'), 'last_name' => $this->input->post('last_name'), 'phone' => $phone,//some times it works with '$phone' ); 在模型中 function SaveForm($form_data) { $this->db->insert('customers', $form_data); if ($this->db->affected_rows() == '1') { return TRUE; } else { return FALSE; } } 已测试 图片01(我的表格) 图片02(提交后) mysql没有任何数组数据类型。所以我们不能将数组直接存储到mysql数据库中。 为此,我们必须首先使用 php serialize() 函数将数组转换为字符串,然后将其保存到 mysql 数据库中。 例如:将数组存储在数据库中的php代码 $array = array("foo", "bar", "hello", "world"); $conn=mysql_connect('localhost', 'mysql_user', 'mysql_password'); mysql_select_db("mysql_db",$conn); $array_string=mysql_escape_string(serialize($array)); 从数据库检索数组 $conn=mysql_connect('localhost', 'mysql_user', 'mysql_password'); mysql_select_db("mysql_db",$conn); $q=mysql_query("select column from table",$conn); while($rs=mysql_fetch_assoc($q)) { $array= unserialize($rs['column']); print_r($array); } 要将数组插入到数据库,请在 codeigniter 控制器中使用此程序=> $inputdata=$this->input->post(); $phone=array($inputdata['phone']); foreach($phone as $arr) { $phoneNo=$arr; $f=count($phoneNo); for($i=0;$i<$f;$i++) { $arre=[ 'phone'=>$phoneNo[$i], ]; $insertB= $this->user_model->userdata($arre); } } public function add_theme_pages(){ $page_name = $this->input->post('page'); $page_img = $this->input->post('page_img'); for($i=0; $i < count($page_name); $i++){ $pages_data = array( 'theme_id' => $this->input->post('theme_id'), 'theme_page_name' => $page_name[$i], 'theme_page_img' => $page_img[$i] ); if($this->backendM->add_theme_pages($pages_data)){ $this->session->set_flashdata('message', 'Theme Added Successfully !'); $this->session->set_flashdata('message_class', 'green'); $this->create_template(); }else{ $this->create_template(); } } }

回答 6 投票 0

CodeIgniter - 图像提交按钮不起作用

我正在使用 CI 为客户创建一个项目,我有一个提交按钮作为图像,但它似乎没有提交表单,我目前拥有的代码是。 我正在使用 CI 为客户创建一个项目,我有一个提交按钮作为图像,但它似乎没有提交表单,我目前拥有的代码是。 <input type="image" name="trialSubmit" id="trialSubmit" src="<?php echo base_url().'images/subscribe_free.jpg'; ?>" style="height:29px;width:207px;border-width:0px;" /> 我现在必须使用的代码如下 <input type="submit" name="trialSubmit" value=" Subscribe Free " id="" class="button" /> 如果有人能解释为什么它不能处理图像,那就太紧张了。 干杯, 是否适用于所有浏览器?还是IE特定的?如果您添加一个 onclick 事件只是为了测试呢? onclick="javascript:document.formidhere.submit()" 我建议使用 <input type="submit" /> 或我的偏好是使用 <button type="submit>,因为浏览器与 <input type="image" /> 不一致,只需使用以下内容设置按钮样式: button{ background:url('/images/subscribe_free.jpg') no-repeat; height:29px; width:207px; border:0; } 尝试添加 value="trialSubmit" 以获取要提交的图像。似乎对我有用。 您还可以看看这个答案是否有帮助: 图像提交按钮 **inside the view(as comerciales in my case)**, <form action= "<?php echo site_url()?>/admin/doupload" method="post" enctype="multipart/form-data" > <b> Select the image to upload( Maximum size 500 kb, jpg, jpeg): </b> <input style="color:#00A76F" type="file" name="fileToUpload" id="fileToUpload"> <div class="input-group" style="left:10%;width:85%;"> <input class="btn btn-success pull-right" style="background:#00A76F" type="submit" value="Upload Image" name="submit"> </div> </form> <div class="modal-body"> <div id="user_data"> <?php if (!empty($massage)){ echo $massage ; } ?> </div> **inside the controller define a method** public function doupload(){ $root1 = $_SERVER['DOCUMENT_ROOT'];; $target_dir = $root1."/nawaloka/uploads/"; // $target_dir = $root1."/nawaloka/application/"; $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); $uploadOk = 1; $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); // Check if file already exists // Check file size if ($_FILES["fileToUpload"]["size"] > 500000) { $data['massage']= "Sorry, your file is too large."; $partials = array('content' => 'Admin/comerciales'); $this->template->load('template/admin_template', $partials,$data); $uploadOk = 0; } if (is_dir($target_dir) && is_writable($target_dir)) { // do upload logic here } else { echo 'Upload directory is not writable, or does not exist.'; } // Allow certain file formats if($imageFileType != "jpg" && $imageFileType != "jpeg" ) { $data['massage']= "Sorry, only JPG, JPEG files are allowed."; $partials = array('content' => 'Admin/comerciales'); $this->template->load('template/admin_template', $partials,$data); $uploadOk = 0; } // Check if $uploadOk is set to 0 by an error if ($uploadOk == 0) { $data['massage']= "Sorry, your file was not uploaded."; $partials = array('content' => 'Admin/comerciales'); $this->template->load('template/admin_template', $partials,$data); // if everything is ok, try to upload file } else { array_map('unlink', glob("/var/www/html/nawaloka/uploads/*")); if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"],"/var/www/html/nawaloka/uploads/shamith.jpg")) { $data['massage']= "The image ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded."; $partials = array('content' => 'Admin/comerciales'); $this->template->load('template/admin_template', $partials,$data); //echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded."; } else { $data['massage']= "Sorry, there was an error while uploading your file."; $partials = array('content' => 'Admin/comerciales'); $this->template->load('template/admin_template', $partials,$data); } } }

回答 3 投票 0

Codeigniter 无法加载库

最初,我以为由于在 Codeigniter 中使用模块化扩展而导致加载库时出现问题。 然而我发现即使全新安装了 codeigniter 我也无法加载

回答 6 投票 0

Codeigniter 会话无法在实时服务器上运行

当打开 codeigniter 项目 localhost 时,它们正常工作并在服务器中打开,然后出现无效路径错误 遇到 PHP 错误 严重性:警告 消息:mkdir():无效路径

回答 8 投票 0

codeigniter 路由和重定向

当我输入我的基本 URL http://localhost/myproject/admin 时,它会继续将我发送到我的权限页面。 http://localhost/myproject/admin 是base_url()。 我的 core/Controller.php 是如何工作的...

回答 2 投票 0

CodeIgniter 中发起的Controller在哪里

我想知道控制器在哪里启动(我的意思是文件包含在哪里,然后加载它的类并调用它的方法)。我想知道,因为我想创造......

回答 1 投票 0

Htaccess 重定向 http>https CI3

我目前有这样一个htaccess文件,它将通配符子域(例如name.domain.com)重定向到domain.com/account/company/name。 RewriteCond %{REQUEST_FILENAME} !-f 重写条件%{

回答 1 投票 0

codeigniter更新图片上传

嗨,我正在开发一个图像上传模块,其中图像路径保存在数据库中并在预览中检索,这是我的问题我希望它编辑和更新,但我的问题是它不删除...

回答 2 投票 0

在 Codeigniter 的控制器上调用函数 B 中的函数 A

我有一个具有大约 5-6 个功能的控制器。 类 Register 扩展 CI_Controller { 公共函数索引() { // 写的一些代码 } 公共函数添加() { // 写的一些代码 } ...

回答 2 投票 0

将字符串转换为 MongoDB 中的 ObjectID

我正在使用 Codeigniter 和 MongoDB 开发 API。 在数据库的某些部分,我以 ObjectID 格式保存了图像的 ID 而不是字符串。现在我得到了一个字符串格式的 ID,我需要...

回答 10 投票 0

如何防止机器人在 CodeIgniter 中创建会话?

我正在使用 CodeIgniter 并将会话存储在我的数据库中。 在短时间内,机器人/蜘蛛等会创建大量会话。 有办法防止这种情况吗?也许通过 .

回答 1 投票 0

CodeIgniter:“不允许您尝试上传的文件类型。”

我遇到了一个非常奇怪的上传问题。这是相关的视图文件: 我遇到了一个非常奇怪的上传问题。这是相关的视图文件: <form action="http://localhost/index.php/temp/upload/" method="post" enctype="multipart/form-data"> <fieldset> <input type="file" name="userfile"/> <input type="submit" value="Upload"/> </fieldset> </form> 这是我的 temp 控制器的 upload() 方法: public function upload() { $config['upload_path'] = FCPATH . 'uploads' . DIRECTORY_SEPARATOR; assert(file_exists($config['upload_path']) === TRUE); $config['allowed_types'] = 'avi|mpg|mpeg|wmv|jpg'; $config['max_size'] = '0'; $this->load->library('upload', $config); if ($this->upload->do_upload('userfile') === FALSE) { // Some error occured var_dump($this->upload->display_errors('', '')); var_dump($_FILES); } else { // Upload successful var_dump($this->upload->data()); } } 当我上传 AVI 视频时,一切正常。当我上传 WMV 视频时,我会得到以下 var 转储: string 'The filetype you are attempting to upload is not allowed.' (length=57) array 'userfile' => array 'name' => string 'wmv.wmv' (length=7) 'type' => string 'video/x-ms-wmv' (length=14) 'tmp_name' => string 'C:\wamp\tmp\php2333.tmp' (length=23) 'error' => int 0 'size' => int 83914 “wmv”扩展名被解释为 MIME 类型:video/x-ms-wmv。这应该没问题,因为我的 config/mimes.php 有以下内容: 'wmv' => array('video/x-ms-wmv', 'audio/x-ms-wmv') 当我尝试上传其他文件时,也是类似的情况。到目前为止,唯一有效的似乎是我的测试 AVI 视频。 有什么想法可能是错的吗? 更新1: 我的一台机器,只上传AVI。在另一位开发人员的计算机上,没有文件上传。在另一台开发人员的机器上,所有支持的文件都会上传。这些是浏览器还是服务器问题? 您正在使用 Firefox,不是吗? 你可以尝试查看system/libraries/Upload.php第199行: $this->_file_mime_type($_FILES[$field]); 将该行更改为: $this->_file_mime_type($_FILES[$field]); var_dump($this->file_type); die(); 然后上传您的 .wmv 文件。它会显示类似 application/octet-stream 之类的东西。将其添加到您的mimes.php。希望这有帮助 =) 类似答案这里 一些链接: CodeIgniter 论坛主题 Firefox 中的 Mimetype 损坏 绕过 IE 的 MIME 类型修改 $config["allowed_types"] ="*"; 使用 FTP/SFTP/scp/etc 将 .wmv 文件上传到运行 CodeIgniter 应用程序的服务器 在您上传.wmv文件的服务器上,执行以下PHP代码 <?php $file_path = 'CHANGE_THIS_TO_ABSOLUTE_FILE_PATH_THAT_YOU_HAVE_UPLOADED.wmv'; $finfo = finfo_open(FILEINFO_MIME); $mime = finfo_file($finfo, $file_path); var_dump($mime); ?> 将代码另存为mime.php 在终端中运行 - $ php mime.php 如果它转储除 wmv 已有的任何其他值,请将该值附加到 wmv mime 类型中。 还要检查其他开发机器上的 PHP_VERSION。 finfo_open 是在 PHP 5.3 中引入的。上传工作的开发机器可能有旧版本的 PHP,或者可能有适合 wmv 的 mime 类型。 您是否尝试在 $config['allowed_types'] 中使用 mime 类型而不是扩展名? 这样写 $config["allowed_types"] = "video/x-msvideo|image/jpeg|video/mpeg|video/x-ms-wmv"; 在 CodeIgniter 中上传 .doc 文件的答案 改变这个 'doc' => 'application/msword', 第 95 行(application/config/mimes.php 文件) 'doc' => array('application/vnd.ms-word','application/msword'), 我最近在使用 Codeigniter 的 Upload 类时遇到了一些非常类似的问题。 *allowed_types* 似乎不起作用。例如,我想允许上传 .PNG 图像,但不允许它们通过其过滤器。我最终进一步调查了它。我允许临时上传所有文件类型,上传了 .PNG,然后转储上传数据 ($this->upload->data());)。由于某种原因,它认为 MIME 类型是 text/plain!这可能与您的问题有关。 我在一些论坛上找到了一些解决方案,您可以在其中修改/扩展类或核心,但它们对我不起作用 - 抱歉。我相信这是一个 Codeigniter Core 错误(我认为这个问题已经由 EllisLabs 提出)。无论如何,我最终还是对这该死的东西进行了硬编码!嗯,希望这对您有所帮助。 基本示例/解决方法, //replace with your allowed MIME types if ($_FILES['name_of_form_upload']['type'] != 'image/jpeg' && $_FILES['name_of_form_upload']['type'] != 'image/png' && $_FILES['name_of_form_upload']['type'] != 'image/gif') { $data['message'] = '<div class="message">That file type is not allowed!</div>'; $this->load->view('home_view', $data); } else { //run upload code } 编辑:格式/语法 检查 application/config 中的 mimes.php 文件。它应该返回一个 mime 类型数组,例如文件末尾的 return $mimes; 或 mime 数组开头的 return array(.....。 对于 Codeigniter 3.1.7,如果您通过 $config['file_name'] 提供自定义文件名,请确保文件名也具有文件扩展名。 这实际上是核心中的一个错误。我升级到最新版本的 CI,错误消失了。 如果您需要简单的方法来解决这个问题,有一个简单的解决方案。 打开“system/libraries/Upload.php”文件 line no 465 you will see if ( ! $this->is_allowed_filetype()) { $this->set_error('upload_invalid_filetype', 'debug'); return FALSE; } just make it true if ( ! $this->is_allowed_filetype()) { $this->set_error('upload_invalid_filetype', 'debug'); return TRUE; } note : it will stop your all file type validation. 申请变更

回答 11 投票 0

在调用 CodeIgniter 的 update_batch() 方法之前,转置多个平面数组中的数据并添加二级关联键

我在重组某些数组数据时遇到问题。 我正在将数据批量上传(更新)到数据库。所以我有 3 个这样的数组: 数组 ( [0] => aaa [1] => ccc [2] => eee [3] =...

回答 2 投票 0

重组数组并使用update_batch函数

重组数组时遇到问题。 我正在将数据批量上传(更新)到数据库。所以我有一个像这样的 3 数组。 数组 ( [0] => aaa [1] => ccc [2] => eee [3] => ggg ) 一个...

回答 2 投票 0

如何在codeigniter中将当前日期时间插入oracle数据库[重复]

我试图在 Codeigniter 中将当前日期时间插入到 Oracle 数据库中,但出现如下错误: ORA-01858: 在需要数字的地方发现了非数字字符 插入“USER_...

回答 4 投票 0

对 CodeIgniter 查询结果进行分块并转置以在垂直 HTML 列中打印值

我有一个CodeIgniter查询结果,有28条记录。 我的意思是根据这些记录创建一个 HTML 表,并从左到右按列打印数据。 换句话说,我想做 7 行 4

回答 3 投票 0

foreach codeigniter 计数索引,用于生成 result() 到 html 表中

我有一个基于 result() 的活动记录代码点火器。 结果有 28 条记录 我的意思是创建一个基于此记录的表。 我的问题是,我想制作 7 行、4 列以提高可读性。 我的...

回答 3 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.