почему каждый пользователь может видеть чаты в codeigniter - PullRequest
0 голосов
/ 27 июня 2018

Я запрограммировал простой чат в чате между двумя пользователями, но проблема в том, что каждый может видеть разговор, как и все пользователи в тех же комнатах, но я хочу, чтобы разговор был только между двумя пользователями, такими как Facebook. это захват для моего сценария.

enter image description here

весь мой код контроллера:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Chat extends CI_Controller {
    Public function __construct() {
        parent::__construct();
        $this->load->model('chats');
        $this->load->model('regis');
    }

    public function index() {

    }

    public function send() {
        date_default_timezone_set('Asia/Jakarta');
        $date = date('Y-m-d H:i:s');
        $message = array(
                    'sender' => $this->session->userdata('user'),
                    'time' => $date,
                    'text' => $this->input->post('message')
                 );

        $this->db->insert('chat', $message);
        redirect (base_url('chat'));
    }

    public function open() { 

        return $this->chats->main(array('status'=>TRUE)); 
    }

    public function maintenance() { return $this->chats->main(array('status'=>FALSE)); }

    public function pending() {
        if ($this->session->userdata('sesi') == FALSE) {
            $this->session->set_flashdata('login', 'You Must Login!');
            redirect(base_url());
        } else {
            $data['orang'] = $this->regis->orang();
            $data['status'] = $this->chats->get_stats()->result();
            $this->load->view('header');
            $this->load->view('pending', $data);
            $this->load->view('footer');
        }
    }

}

мои модели:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Chats extends CI_Model {

    public function __construct() { $this->load->database(); }

    public function isi_chat(){ return $this->db->select('*')->order_by('time','ASC')->get('chat'); }

    public function main($status) {
        $this->db->update('status', $status);
        redirect(base_url('chat'));
    }

    public function get_stats() { return $this->db->get('status'); }

}

мой взгляд:

<div class="container">
    <div class="row">
        <div class="col-md-6 col-md-offset-3">
            <br><br><br>
                <?= $this->session->flashdata('done'); ?>
                <div class="panel panel-default">
                    <?php foreach($status as $s): ?>
                    <div class="panel-heading">
                        <strong><?= $this->session->userdata('nama'); ?></strong>
                        <a href="<?= base_url('auth/logout') ?>" class="btn btn-danger btn-xs pull-right">Exit</a>
                        <?php 
                            if ($this->session->userdata('akses') == 'ADMIN') {
                                echo "<a href=".base_url('chat/pending')." class=\"btn btn-primary btn-xs\" title=\"Users Need Approval\"><i class=\"glyphicon glyphicon-user\"></i> User Pending</a>";
                                if($s->status == TRUE) {
                                    echo "<a href=".base_url('chat/maintenance')." class=\"btn btn-warning btn-xs\" title=\"Disable Chat\"><i class=\"glyphicon glyphicon-lock\"></i> Maintenance</a>";
                                } else {
                                    echo "<a href=".base_url('chat/open')." class=\"btn btn-success btn-xs\" title=\"Enable Chat\"><i class=\"glyphicon glyphicon-ok\"></i> Buka Chat</a>";
                                }
                            }
                        ?>
                    </div>
                    <?php endforeach ?>
                    <?php if ($s->status == TRUE): ?>
                    <div class="panel-body" style="height: 300px; overflow-y: scroll">
                    <?php foreach ($chat as $c){ ?>
                        <?php if($c->sender == $this->session->userdata('user')){ ?>
                            <div class="col-md-12">
                                <div class="panel panel-success panel-comment pull-right">
                                    <div class="panel-heading" >
                                        <strong style="opacity: .5; font-size: 12px; color: #4BD239">ME : &nbsp;&nbsp;&nbsp;</strong>
                                        <small><?php echo date("d-M-Y H:i:s", strtotime($c->time)); ?></small><br/>
                                        <?= $c->text ?>
                                    </div>
                                </div>
                            </div>
                        <?php } else { ?>
                            <div class="col-md-12">
                                <div class="panel panel-warning panel-comment pull-left">
                                    <div class="panel-heading" >
                                        <strong style="opacity: .5; font-size: 12px; color: #DCD15B"><?= $c->sender ?>:</strong>
                                        <small><?php echo date("d-M-Y H:i:s", strtotime($c->time)); ?></small><br/>
                                        <?= $c->text ?>
                                    </div>
                                </div>
                            </div>
                        <?php } ?>
                    <?php } ?>
                    </div>
                    <?php endif ?>
                    <?php if ($s->status == FALSE): ?>
                    <div class="panel-body">
                        <h4 class="text-center" style="color: #FF0000">SORRY<br> MAINTENANCE<br><br></h4>
                    </div>
                    <?php endif ?>
                </div>
                <?php if ($s->status == TRUE): ?>
                    <div class="row">
                        <div class="col-md-12 ">
                            <form method="post" action="chat/send">
                                <div class="col-md-12">
                                    <div class="input-group">
                                        <input type="text" name="message" class="form-control" placeholder="Masukan Teks">
                                        <span class="input-group-btn">
                                            <input class="btn btn-success" type="submit" value="Send">
                                        </span>
                                    </div>
                                </div>
                            </form>
                        </div>
                    </div>
                <?php endif ?>
        </div>
    </div>
</div>

теперь проблема в том, что я хочу приватный разговор между двумя пользователями! Может ли кто-нибудь помочь мне, пожалуйста, потому что более 5 дней я пытаюсь решить эту проблему без какого-либо результата. спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...