【问题标题】:Codeigniter project have different result beetween hostinger and localhostCodeigniter 项目在托管程序和本地主机之间有不同的结果
【发布时间】:2016-07-15 12:20:21
【问题描述】:

我只是使用 filezilla 将我的网站从 localhost 上传到托管程序。 我已经配置了数据库设置并且一切正常,但是如果我想登录网站,我会得到不同的结果。它给出错误“用户名或密码错误”。 之后,我在本地主机中运行该网站。使用相同的用户名/密码登录及其工作。 我不知道错误,我在本地和托管程序之间使用相同的代码

控制器/login.php

  <?php
  class Login extends CI_Controller {
   function __construct() {
    parent::__construct();
    session_start();
    $this->load->model(array('mlogin'));
   if ($this->session->userdata('email')) {
    $this->load->view('header1');
   }
   elseif (!$this->session->userdata('email')) {
    $this->load->view('header'); 
     }
     }
    function index() {
    $this->load->view('login');
    }

function proses() {
    $this->form_validation->set_rules('email', 'email', 'required|trim|xss_clean');
    $this->form_validation->set_rules('password', 'password', 'required|trim|xss_clean');

    if ($this->form_validation->run() == FALSE) {
        $this->load->view('login');
    } else {

        $usr = $this->input->post('email');
        $psw = $this->input->post('password');
        $u = mysql_real_escape_string($usr);
        $p = md5(mysql_real_escape_string($psw));
        $cek = $this->mlogin->cek($u, $p);
        if ($cek->num_rows() > 0) {
            //login berhasil, buat session
            foreach ($cek->result() as $qad) {
                $sess_data['u_id'] = $qad->u_id;
                $sess_data['nama'] = $qad->nama;
                $sess_data['email'] = $qad->email;
                $sess_data['role'] = $qad->role;
                $this->session->set_userdata($sess_data);
            }
            redirect('home');
        } else {

            $this->session->set_flashdata('result_login', '<br>Username atau Password yang anda masukkan salah.');
            redirect('login');
        }
    }
}

function logout() {
    $this->session->sess_destroy();
    redirect('login');
}}

模型/mlogin.php

 <?php

 class Mlogin extends CI_Model {

private $table = "user";

function cek($email, $password) {
    $this->db->where("email", $email);
    $this->db->where("u_paswd", $password);
    return $this->db->get("user");
}

function semua() {
    return $this->db->get("user");
}

function cekKode($kode) {
    $this->db->where("email", $kode);
    return $this->db->get("user");
}

function cekId($kode) {
    $this->db->where("u_id", $kode);
    return $this->db->get("user");
}

function getLoginData($usr, $psw) {
    $u = mysql_real_escape_string($usr);
    $p = md5(mysql_real_escape_string($psw));
    $q_cek_login = $this->db->get_where('users', array('email' => $u, 'password' => $p));
    if (count($q_cek_login->result()) > 0) {
        foreach ($q_cek_login->result() as $qck) {
            foreach ($q_cek_login->result() as $qad) {
                $sess_data['logged_in'] = 'vera';
                $sess_data['u_id'] = $qad->u_id;
                $sess_data['email'] = $qad->email;
                $sess_data['nama'] = $qad->nama;
                $sess_data['group'] = $qad->group;
                $sess_data['rid'] = $qad->rid;
                $this->session->set_userdata($sess_data);
            }
            redirect('main');
        }
    } else {
        $this->session->set_flashdata('result_login', '<br>Username atau Password yang anda masukkan salah.');
        header('location:' . base_url() . 'login');
    }
}

function update($id, $info) {
    $this->db->where("u_id", $id);
    $this->db->update("user", $info);
}

function simpan($info) {
    $this->db->insert("user", $info);
}

function hapus($kode) {
    $this->db->where("u_id", $kode);
    $this->db->delete("user");
}

 }

查看/login.php

    <html>
<head>
    <meta charset="UTF-8">
    <title>Log in</title>
    <meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport'>
    <!-- Font Awesome Icons -->
    <link href="<?php echo base_url('assets/css/font-awesome.min.css'); ?>" rel="stylesheet">  
    <!-- Theme style -->
    <link href="<?php echo base_url('assets/css/AdminLTE.min.css'); ?>" rel="stylesheet">        
    <!-- iCheck -->
    <link href="<?php echo base_url('assets/js/plugins/iCheck/square/blue.css'); ?>" rel="stylesheet"> 

</head>
<body>
   <body class="login-page">
    <div class="login-box">
        <div class="login-logo">
        <div class="login-box-body">
            <h2>Login</h2>
            <form action="<?php echo site_url('login/proses'); ?>" method="post">
                <?php
                if (validation_errors() || $this->session->flashdata('result_login')) {
                    ?>
                    <div class="alert alert-error">
                        <button type="button" class="close" data-dismiss="alert">&times;</button>
                        <strong>Warning!</strong>
                        <?php echo validation_errors(); ?>
                        <?php echo $this->session->flashdata('result_login'); ?>
                    </div>    
                <?php } ?>
                <div class="form-group has-feedback">
                    <input type="email" name="email" class="form-control" placeholder="Username"/>
                    <span class="glyphicon glyphicon-user form-control-feedback"></span>
                </div>
                <div class="form-group has-feedback">
                    <input type="password" name="password" class="form-control" placeholder="Password"/>
                    <span class="glyphicon glyphicon-lock form-control-feedback"></span>
               </div>
               <div>
                        <button type="submit" class="btn btn-primary btn-block btn-flat">Masuk</button>
              <br>
             <a href="<?php echo base_url();?>index.php/user"><h4>Daftar Anggota Baru</h4></a>
                    </div><!-- /.col -->
                </div>
            </form>               
        </div><!-- /.login-box-body -->
    </div><!-- /.login-box -->

    <!-- jQuery 2.1.3 -->
    <script src="<?php echo base_url('assets/js/plugins/jQuery/jQuery-2.1.3.min.js'); ?>"></script> 
    <!-- Bootstrap 3.3.2 JS -->
    <script src="<?php echo base_url('assets/js/bootstrap.min.js'); ?>"></script> 
    <!-- iCheck -->
    <script src="<?php echo base_url('assets/js/plugins/iCheck/icheck.min.js'); ?>"></script>       
    <script>
        $(function () {
            $('input').iCheck({
                checkboxClass: 'icheckbox_square-blue',
                radioClass: 'iradio_square-blue',
                increaseArea: '20%' // optional
            });
        });
    </script>
 <script>
 $(function () {
  $("#slider").responsiveSlides({
    auto: true,
    nav: true,
    speed: 500,
    namespace: "callbacks",
    pager: true,
  });
});
</script>

  <!--footer-starts-->
  <?php $this->load->view('footer') ?>
   <!---->
  </div>
  </body>
  </html>

localhost php 版本 5.6.11

hostinger php 版本 5.6.18

【问题讨论】:

  • 在这种情况下,您需要调试在现场上传的代码。只需打开一个您进行查询的文件,即可从数据库中获取提供的登录详细信息的记录。回声查询并在实时数据库中检查它。如果您有行,则表示查询和登录详细信息很好,否则更改登录详细信息并重试。
  • 如果你自动加载会话库,你不需要使用这个session_start();
  • 还是不行。帮帮我@wolfgang1983
  • 代码和数据库连接正在检查数据库中的数据——你的用户名和密码。您提到您上传了文件,并配置了数据库连接,但是数据呢?如果你转移了,你是怎么做到的?

标签: php mysql codeigniter hosting


【解决方案1】:

Hostinger 对大小写敏感

更改此代码

$this->form_validation->set_rules('email', 'email', 'required|trim|xss_clean');
$this->form_validation->set_rules('password', 'password', 'required|trim|xss_clean');

有了这个

$this->form_validation->set_rules('email', 'Email', 'required|trim|xss_clean');
$this->form_validation->set_rules('password', 'Password', 'required|trim|xss_clean');

我认为这段代码会给你 $p 的 0

$p = md5(mysql_real_escape_string($psw));

就用这个

$p = md5($psw);

【讨论】:

    猜你喜欢
    • 2018-01-31
    • 2015-06-12
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    • 2012-12-21
    • 1970-01-01
    • 2023-03-13
    • 2015-10-16
    相关资源
    最近更新 更多