codeigniter 相关问题

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

如何在CodeIgniter中结合mysql查询

我需要将这两个数组合并成一个数组。 第一个查询结果 数组 ( [0] => stdClass 对象 ( [p_type] => 银行 [tsales] => 131000 [tdues] => 55000 [tpaid] => 75000 ) [1]...

回答 2 投票 0

在codeigniter视图文件中传递2种类型的数组变量

如果我在控制器中有 $data[] 数组和 $another_data[] 我们如何在视图文件中传递这两种类型的数据?前提是 codeigniter 实现类似于 $this->load->view('view_page', $data)

回答 4 投票 0

如何在这段代码中显示每个科室的医生人数?

我在数据库中有一个表,我将其命名为“部门”,还有另一个表,我将其命名为“医生”。我计划显示每个科室的医生人数。但当我尝试显示它们时,我总是得到

回答 1 投票 0

在 Manjaro Linux 中轻松设置基本的 Codeigniter 4 项目

这里我有一篇简短的文章演示了在 manjaro linux 中设置 php 项目的所有主要步骤,因为我来自 Windows 世界后很难完成它。 在获得 Php、MySQL 甚至

回答 1 投票 0

如何在 Manjaro Linux 中设置基本的 Codeigniter 4 项目

这里我有一篇简短的文章演示了在 manjaro linux 中设置 php 项目的所有主要步骤,因为我来自 Windows 世界后很难完成它。 在获得 Php、MySQL 甚至

回答 1 投票 0

codeigniter 页面标题未更改

我正在尝试更改codeigniter中的页面标题,但没有运气更改标题,似乎被困在旧名称中。 页面控制器 php 文件 公共函数索引(){ $data['nur...

回答 1 投票 0

通过 GD 库函数使用自定义印地语字体时,图像上的叠加文本未正确渲染

我正在尝试使用 php 中的 GD 库将覆盖文本添加到图像中,虽然它非常适合英语字符,但当文本为印地语时,我遇到渲染问题,即使字体...

回答 1 投票 0

使用一组规则进行 Codeigniter 表单验证

我正在尝试在我的Codeigniter项目中创建一组表单验证规则,以便当第一组验证失败时,第二组验证规则不应运行。 我在 CI 中发现了这个...

回答 4 投票 0

如何重新配置 CodeIgniter (v4) 以使用新的子目录路径(通过 nginx)?

我有两个应用程序(我们称之为 DRUPAL 和 CODEIGNITER (v4))在 Elastic Beanstalk 中运行,每个应用程序都有一个专用的负载均衡器。我想设置 AWS CloudFront 来整合域,所以

回答 1 投票 0

在 php 中合并数组

在上面的代码中,每个 foreach 循环我每次都会得到一个单独的数组。我想组合所有这些数组。我尝试过 array_merge 但它不起作用。还有其他办法吗? 一些重新...

回答 2 投票 0

CodeIgniter、set_flashdata 重定向后不起作用

set_flashdata 仅在一次重定向后无法直接工作。 我在此过程中使用一个控制器 - Profilers 控制器。它处理会员确认过程,并且还

回答 2 投票 0

使用相同的输入在 codeigniter 中上传多个图像

浏览量 观点 <form action="" method="POST" enctype="multipart/form-data"> <input type="file" name="userfile[]" size="40" multiple/> <input type="submit" name="submit" value="Upload"> </form> 控制器 public function image() { $data['error'] = ''; $this->load->model('StackM'); if(isset($_POST['submit'])) { $data['update_pass_error_msg'] = $this->StackM->add_multiple_image(); } $this->load->view('stack_view'); } Model public function add_multiple_image(){ if((!empty($_FILES['f2']['name']))) { $config['upload_path'] = 'uploads/'; $config['allowed_types'] = 'gif|jpg|png|jpeg'; $files = $_FILES; if ($files['f2']['name'][0] == '' ) { # code... return "Select a file to upload"; } else { $mum_files = count($files['f2']); for($i=0; $i<$mum_files; $i++) { if ( isset($files['f2']['name'][$i]) ) { $config['file_name'] = time().'-'.$files['f2']['name'][$i]; $this->load->library('upload', $config); $_FILES['f2']['name']= $files['f2']['name']["$i"]; $_FILES['f2']['type']= $files['f2']['type']["$i"]; $_FILES['f2']['tmp_name']= $files['f2']['tmp_name']["$i"]; $_FILES['f2']['error']= $files['f2']['error']["$i"]; $_FILES['f2']['size']= $files['f2']['size']["$i"]; $filename = rand().'-'.$_FILES['f2']['name']; if (!empty($this->upload->do_upload('f2'))) { $dataInfo[] = $this->upload->data(); $all_imgs = ''; if ( count($dataInfo) > 0) { # code... foreach ($dataInfo as $info) { # code... $all_imgs .= $info['file_name']; $all_imgs .= ','; } } } } } } } else{ $all_imgs = ""; } } } else{ $all_imgs = $this->session->userdata('image'); } $this->db->insert('table_name', $all_imgs); 我在这段代码中面临的问题是,假设我添加 7 个图像,但它在数据库中只显示 5 个图像,那么它不会超过 5 个,而且我想知道在编辑表单时是否不想这样做更改图像,然后它应该保持相同的图像,因此我已将旧图像存储在会话中,并检查它是否为空,然后只有它应该是会话变量。 但是在我的代码中,如果我不会上传新的图像,如果我保留旧图像,那么它将保存空白 为了避免偏移错误,在 for 循环内部,您需要检查该数组索引是否已设置: 这里我有一个在CodeIgniter中上传多个文件的演示代码: 视图/stack_view.php <?php if ($this->session->flashdata('status')) { ?> <h5><?=$this->session->flashdata('status')?>: <?=$this->session->flashdata('message')?></h5> <?php } ?> <?=form_open_multipart('stack', array('id' => 'my_id'))?> <input type="file" name="userfile[]" size="40" multiple/> <input type="submit" name="submit" value="Upload"> <?=form_close()?> 控制器/Stack.php <?php defined('BASEPATH') OR exit('No direct script access allowed'); class Stack extends CI_Controller { public function __construct() { parent::__construct(); $this->load->library('session'); $this->load->helper(array('form', 'url')); } public function index() { if ($this->input->post('submit')) { $config['upload_path'] = './uploads/'; $config['allowed_types'] = 'gif|jpg|png|jpeg'; $files = $_FILES; if ($files['userfile']['name'][0] == '' ) { # code... $this->session->set_flashdata('status', 'error'); $this->session->set_flashdata('message', "Select a file to upload"); } else { $mum_files = count($files['userfile']); $dataInfo = array(); for($i=0; $i<$mum_files; $i++) { if ( isset($files['userfile']['name'][$i]) ) { $config['file_name'] = time().'-'.$files['userfile']['name'][$i]; $this->load->library('upload', $config); $_FILES['userfile']['name']= $files['userfile']['name']["$i"]; $_FILES['userfile']['type']= $files['userfile']['type']["$i"]; $_FILES['userfile']['tmp_name']= $files['userfile']['tmp_name']["$i"]; $_FILES['userfile']['error']= $files['userfile']['error']["$i"]; $_FILES['userfile']['size']= $files['userfile']['size']["$i"]; $filename = rand().'-'.$_FILES['userfile']['name']; if ( ! $this->upload->do_upload('userfile')) { $error_message = $this->upload->display_errors(); $this->session->set_flashdata('status', 'error'); $this->session->set_flashdata('message', "$error_message"); } else { //$data = array('upload_data' => $this->upload->data()); $this->session->set_flashdata('status', 'success'); $this->session->set_flashdata('message', "Files upload is success"); } $dataInfo[] = $this->upload->data(); //all the info about the uploaded files are stored in this array } } //here you can insert all the info about uploaded file into database using $dataInfo $all_imgs = ''; if ( count($dataInfo) > 0) { # code... foreach ($dataInfo as $info) { # code... $all_imgs .= $info['file_name']; $all_imgs .= ','; } } $insert_data = array( 'your_column_name' => rtrim($all_imgs,",") ); $this->db->insert('your_table_name', $insert_data); } } $this->load->view('stack_view'); } } 尝试这个脚本,我希望你能从中得到一些帮助。 这是工作脚本尝试上传它 公共函数上传() { $this->load->library('session'); if ( ! empty($_FILES)) { $config['upload_path'] = "assets/uploads/"; $config['allowed_types'] = 'jpg|png|jpeg'; $config['max_size'] = 5120; //limit only 5 Mb $this->load->library('upload'); $files = $_FILES;; $number_of_files = count($_FILES['files']['name']); $errors = 0; $myname = $this->input->post('ad_title'); for ($i = 0; $i < $number_of_files; $i++) { //$randVal = rand(450,4550).time('d-y-m'); $filename = basename($files['files']['name'][$i]); $extension = pathinfo($filename, PATHINFO_EXTENSION); $new = md5($filename.''.time('d-y-m')).'.'.$extension; $_FILES['files']['name'] = $new; //$files['files']['name'][$i]; $_FILES['files']['type'] = $files['files']['type'][$i]; $_FILES['files']['tmp_name'] = $files['files']['tmp_name'][$i]; $_FILES['files']['error'] = $files['files']['error'][$i]; $_FILES['files']['size'] = $files['files']['size'][$i]; $image = array('upload_data' => $this->upload->data()); $image_name = $_FILES['files']['name']; $ip = $this->input->ip_address(); $this->session->set_userdata("userIP",$ip); //$this->session->unset_userdata("userIP"); $Dval = array( "filename" => $image_name, "ip" => $this->input->ip_address() ); $this->member_model->tmp_image($Dval); $this->upload->initialize($config); if ( $this->upload->do_upload("files")) { $errors++; $data = $this->upload->data(); echo json_encode($data['file_name']); //code is for thumbnail and watermark on images //$this->watermark($data['full_path']); //$myPathfT = $config1['upload_path'] = "./assets/thumbs/".$aDir; //mkdir($myPathfT);b $config1 = array(); $config1['image_library'] = 'gd2'; $config1['source_image'] = $data['full_path']; $config1['new_image'] = 'assets/uploads/thumbs/'; $config1['create_thumb'] = false; $config1['quality'] = 50; $config1['height'] = 150; $config1['width'] = 150; $this->load->library('image_lib',$config1); $this->image_lib->initialize($config1); $this->image_lib->resize(); $this->image_lib->clear(); } } if ($errors > 0) { //echo "Data Transferred"; } } elseif ($this->input->post('file_to_remove')) { $aDir = $this->session->userdata('Dir'); $file_to_remove = $this->input->post('file_to_remove'); unlink("./assets/mainFilesData/$aDir/" . $file_to_remove); $array = $this->session->userdata('photo'); $dataF = array_diff($array, array($file_to_remove)); $this->session->set_userdata('photo',$dataF); } else { $this->listFiles(); } }

回答 2 投票 0

CodeIgniter 并显示图像/上传图像

我正在开发一个画廊,如果文件夹中没有图像,应该会显示“请上传图像”,但旁边还显示已上传的图像,但这些东西无法正常工作...

回答 1 投票 0

根据验证(名称和密码)动态更改输入字段类

我正在 CodeIgniter 中处理一个表单,我想根据名称和密码字段的验证状态动态更改输入字段类。我的问题是当我提交有效的 n...

回答 1 投票 0

CI4 - 添加 enctype="multipart/form-data" 阻止我的验证消息显示

这是我的html [create.php] 的代码 (请忽略其中的“Sampul”输入,因为它是在 enctype="multipart/form-data" 之后添加的) ... 这是我的 html [create.php] 的代码 (请忽略其中的“Sampul”输入,因为它是在 enctype="multipart/form-data" 之后添加的) <div class="container"> <div class="row"> <div class="col-8"> <h2 class="my-3">Form Tambah Data Komik</h2> <!-- my itu margin sumbu y (vertikal) --> <?php if (session()->getFlashdata('_ci_validation_errors')) : ?> <div class="alert alert-danger"> <ul> <?php foreach (session()->getFlashdata('_ci_validation_errors') as $error) : ?> <li><?= $error ?></li> <?php endforeach ?> </ul> </div> <?php endif ?> <form action="/komik/save" method="post" enctype="multipart/form-data"> <?= csrf_field(); ?> <!-- csrf menjaga supaya form cuma bisa diinput lewat halaman ini saja --> <div class="row mb-3"> <label for="judul" class="col-sm-2 col-form-label">Judul</label> <div class="col-sm-10"> <input type="text" class="form-control <?= $validation->hasError('judul') ? 'is-invalid' : ''; ?>" id="judul" name="judul" autofocus value="<?= old('judul'); ?>"> <!-- autofocus bikin ketika masuk ke page langsung aktif seperti habis di klik --> <div id="validationServer03Feedback" class="invalid-feedback"> <?= $validation->getError('judul'); ?> </div> </div> </div> <div class="row mb-3"> <label for="penulis" class="col-sm-2 col-form-label">Penulis</label> <div class="col-sm-10"> <input type="text" class="form-control <?= $validation->hasError('penulis') ? 'is-invalid' : ''; ?>" id="penulis" name="penulis" value="<?= old('penulis'); ?>"> <div id="validationServer03Feedback" class="invalid-feedback"> <?= $validation->getError('penulis'); ?> </div> </div> </div> <div class="row mb-3"> <label for="penerbit" class="col-sm-2 col-form-label">Penerbit</label> <div class="col-sm-10"> <input type="text" class="form-control" id="penerbit" name="penerbit" value="<?= old('penerbit'); ?>"> </div> </div> <div class="row mb-3"> <label for="sampul" class="col-sm-2 col-form-label">Sampul</label> <div class="col-sm-10"> <div class="mb-3"> <input class="form-control <?= $validation->hasError('sampul') ? 'is-invalid' : ''; ?>" type="file" id="sampul" name="sampul"> <div id="validationServer03Feedback" class="invalid-feedback"> <?= $validation->getError('sampul'); ?> </div> </div> </div> </div> <button type="submit" class="btn btn-primary">Tambah Data</button> </form> </div> </div> </div> 它之前运行良好,正确显示错误消息并在输入中的类内显示“is-invalid”,但是在表单内添加 enctype="multipart/form-data" 后,所有验证都放在里面html 刚刚停止工作(包括旧的用于在验证失败时回调值)。 这是用于此的控制器 获取create.php中的函数 public function create() { // session(); //session tidak perlu dipanggil karena kita sudah pasang manual session() dalam BaseController.php $data = [ 'title' => 'Form Tambah Data Komik', // 'validation' => \Config\Services::validation() 'validation' => session()->getFlashdata('validation') ?? \Config\Services::validation() ]; return view('komik/create', $data); } 这个是保存表单数据的函数(验证失败则返回create.php) public function save() { //validasi input if (!$this->validate([ 'judul' => [ 'rules' => 'required|is_unique[komik.judul]', 'errors' => [ 'required' => '{field} komik harus diisi.', 'is_unique' => '{field} komik sudah terdaftar' ] ], 'penulis' => [ 'rules' => 'required', 'errors' => [ 'required' => '{field} komik harus diisi.' ] ], 'sampul' => [ 'rules' => 'uploaded[sampul]|max_size[sampul,1024]|is_image[sampul]|mime_in[sampul,image/jpg,image/jpeg,image/png]', 'errors' => [ 'uploaded' => 'Pilih gambar sampul terlebih dahulu', 'max_size' => 'Ukuran gambar terlalu besar', 'is_image' => 'Yang anda pilih bukan gambar', 'mime_in' => 'Yang anda pilih bukan gambar', ] ] ])) { //kalo gagal validasi dia jalankan line ini session()->setFlashdata('validation', \Config\Services::validation()); //dari comment YT, bisa jalan return redirect()->to('/komik/create')->withInput(); } $slug = url_title($this->request->getVar('judul'), '-', true); $this->komikModel->save([ 'judul' => $this->request->getVar('judul'), 'slug' => $slug, 'penulis' => $this->request->getVar('penulis'), 'penerbit' => $this->request->getVar('penerbit'), 'sampul' => $this->request->getVar('sampul') ]); session()->setFlashdata('pesan', 'Data berhasil ditambahkan.'); return redirect()->to('/komik'); } 控制器内的验证系统工作正常,但所有错误消息、“无效”和旧的都停止显示。 我只是不明白为什么错误消息根本不再显示在 html 中。 enctype="multipart/form-data" 对这段代码有何影响?谁能给我一个解决方案来解决这个问题? 这个错误你解决了吗? 我也有同样的问题。 谢谢你。

回答 1 投票 0

php-activerecord 无法在 PHP 8.2 中与 Codeignitor 配合使用

我们使用 PHP ActiveRecord ORM 作为查询构建器开发了一个 CodeIgniter 应用程序,该应用程序在 AWS 服务器上的 Docker 容器中运行。 我们最近从版本 8 升级了 PHP...

回答 1 投票 0

Codeigniter 4 - MySQL 重复条目异常不起作用

我正在使用 Codeigniter v4.4.5 并努力捕获 MySQL 重复条目异常。如果有任何重复的值,那么我想在我的控制器中处理,以便我可以发送相关消息......

回答 1 投票 0

对于 codeigniter 来说,哪一个是最好的 PHP ORM? [已关闭]

这将是 codeigniter 框架的最佳 ORM。我看到了一些类似的问题,但它太旧了,链接不起作用。谁能帮我解决这个问题吗?

回答 2 投票 0

如何使用公共功能登出

我使用下面的代码注销,我不知道如何使用公共函数注销,如何使用按钮模式和使用函数注销,这是我来自login.php的函数 我使用下面的代码注销,我不知道如何使用公共函数注销,如何使用按钮模式和使用函数注销,这是我来自login.php的函数 <?php if (!defined('BASEPATH')) exit('No direct script access allowed'); class Login extends CI_Controller { //this function will do the login process function __construct() { parent::__construct(); $this->load->library('session'); } function index() { $this->load->library('session'); if ($this->session->username != NULL) { redirect('index.php/report/dashboard_ch'); } else { $this->load->view('login'); } } function do_login() { $this->load->library('session'); $this->load->model('M_login'); $username = $this->input->post('username'); $password = $this->input->post('password'); $dataLogin = false; if ($username === "dimasdev") { $dataLogin = $this->M_login->web_login_hashed($username, $password); } else { $dataLogin = $this->M_login->web_login($username, $password); } if (!$dataLogin) { $res['msg'] = "Invalid username or password"; $res['status'] = false; echo json_encode($res); exit(); } $this->session->set_userdata($dataLogin); $res['msg'] = "Login Success"; $res['dataLoginUsername'] = $dataLogin['username']; $res['status'] = true; echo json_encode($res); } public function logout() { $this->session->sess_destroy(); // Destroy the session $res['msg'] = "Logout Success"; $res['status'] = true; echo json_encode($res); } } 这是我从导航栏注销的模式,我使用按钮注销,但我不知道如何注销 <div class="modal fade" id="logoutModal" tabindex="-1" aria-labelledby="logoutModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="logoutModalLabel">Are you sure you want to log out?</h5> </div> <div class="modal-footer"> <div class="col s2" style="float: center"> <button class="btn btn-danger" href="<?php echo base_url(); ?>index.php/login/logout" class="col s6 modal-close waves-effect waves-green btn-flat yes">OK</button> </div> <div class="col s2" style="float: center"> <button class="btn btn-secondary" data-bs-dismiss="modal" class="col s6 modal-close waves-effect waves-green btn-flat no">Cancel</button> </div> </div> </div> </div> </div> 我使用 vuexy html 框架构建此代码 你能帮忙吗? 只是一个小 HTML 错误。 <a href="URL">LABEL</a> 按钮没有 href 属性,如果您想使用按钮,只需将其用作 LABEL <a href="URL"><button></button></a> 对于你的情况 <div class="col s2" style="float: center"> <a href="<?php echo base_url() . "index.php/login/logout"; ?>"> <button class="btn btn-danger" class="col s6 modal-close waves-effect waves-green btn-flat yes">OK</button> </a> </div>

回答 1 投票 0

带有 hmvc 的 CodeIgniter 4

我正在尝试在 CodeIgniter 4 中使用 HMVC。我之前使用过它,但在版本 3.10 中。我找不到 CI4 的 HMVC 插件。 有人可以帮助我吗?谢谢。 我想使用电子模块...

回答 1 投票 0

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