1 Востаннє редагувалося Blast (01.06.2014 17:50:08)

Тема: Авторизація + сессії Codeignitor

Організував контроллер запит проходить . Як звірити вхідні данін з отриманними з  бд чи оформити перевірку ?

if ($query = TRUE) {
                    echo "1";
                } 
                else { echo "2";}

                }



Весь контроллер
    function index()
        {        


                if (isset($_POST['log'])) 
                {     
                    $username = $_POST['username'] ;
                    $password = $_POST['password'];
                $query = $this->db->query('SELECT * FROM  `admins` WHERE login ="$username" || pass = "$password"');

                if ($query = TRUE) {
                    echo "1";
                } 
                else { echo "2";}

                }
                else 
                {
                    $this->load->view('author_view');
                }
    

}

2 Востаннє редагувалося Blast (01.06.2014 17:50:14)

Re: Авторизація + сессії Codeignitor

?

3

Re: Авторизація + сессії Codeignitor

Як звірити вхідні данін з отриманними з  бд чи оформити перевірку ?

реально звіряти через іф, але використовуйте як мінімум 2 порівнянна а не одне


Але авторизацію роблять по наступному принципу:
користувач вводить логін пароль, беремо логін і шукаємо в базі відповідний запис і витягуємо пароль. якщо пароль співпадає з введеним тоді все ок.

загляньте у класи
https://github.com/ukrcms/simple-blog/b … er.php#L24
у контроллері викликаємо клас авторизації і передаємо йому логін і пароль

клас авторизації витягує з бази даних інформацію і перевіряє чи збігається пароль

https://github.com/ukrcms/simple-blog/b … ty.php#L16

більш менш надіюсь пояснив.

p.s. Це форум, не варто писати повідомлення яке складається із знаку питання. Як буде час народ відповість ;)

4

Re: Авторизація + сессії Codeignitor

funivan написав:

Як звірити вхідні данін з отриманними з  бд чи оформити перевірку ?

Все на багато простіше потрібно авторизація лише для одного користувача - адміна , якого при авторизації буде перекидати на сторінку доадвання новини та завантаження фото в базу . дійшов ось до чого але свариться
на не вибрану таблицю .

function index()
        {        


                if (isset($_POST['log'])) 
                {     
                    

                    $username = $_POST['username'] ;
                    $password = $_POST['password'];
                
            $query = $this->db->query('SELECT * FROM  `admins` WHERE login ="$username" || pass = "$password"');

            $user = mysqli_fetch_array($query) ; //Генерирует удобный массив из результата запроса
                if(!empty($user)){
                    echo "1";

                } 
                else { echo "2";}

                }
                else 
                {
                    $this->load->view('author_view');
                }
    

}

5

Re: Авторизація + сессії Codeignitor

Перестав паритись і записав данні авторизації образу у форму = )

if (isset($_POST['log'])) 
                {     


                    $username = $_POST['username'] ;
                    $password = $_POST['password'];
                
            
                             //Генерирует удобный массив из результата запроса
                if(($username === "Panda") && ($password === "123456") ){
                    echo "1";

                } 
                else { echo "2";}

                }
                else 
                {
                    $this->load->view('author_view');
                }

6

Re: Авторизація + сессії Codeignitor

Замість прямого доступу до елементів масивів $_POST, $_GET краще використовувати $this->input->post(), $this->input->get() відповідно.

7

Re: Авторизація + сессії Codeignitor

Invader написав:

Замість прямого доступу до елементів масивів $_POST, $_GET краще використовувати $this->input->post(), $this->input->get() відповідно.

працювали з кодігнайтором ?


тепер задав параметр для сессії

                      $this->session->set_userdata('admin','1');
                      $my_var = $this->session->userdata('admin');


але коли намагаюсь знищити сессію   

окремою функцією
function dest()
                {       

                       
                $this->session->sess_destroy();

   

                }



і викликати функцію типу 
    $this->load->view('menu_view');
                        if ($my_var =  '1') {
                            echo "a";
                        }

                        else {echo "1"; }

                }

всерівно виводиться а ?

8

Re: Авторизація + сессії Codeignitor

Прихований текст

Є спеціальний тег для коду який слід використовувати.

В до кументації до функції sess_destroy сказано, що дана функція має бути викликана в останню чергу. Є ще функція unset_userdata().

$this->load->view('menu_view');
                        if ($my_var =  '1') {
                            echo "a";
                        }

                        else {echo "1"; }

                }

Мало б бути

 if ($my_var ==  '1') {

або

 if ($my_var ===  '1') {

9 Востаннє редагувалося Blast (01.06.2014 21:22:35)

Re: Авторизація + сессії Codeignitor

Invader написав:
Прихований текст

Є спеціальний тег для коду який слід використовувати.


Весь контроллер .

Не потрібно аж якась така авторизація , просто захистити сторінку додавання новин від можливог спаму .

Прихований текст
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Admin extends CI_Controller {

        function index()
        {        


                if (isset($_POST['log'])) 
                {     


                    $username = $_POST['username'] ;
                    $password = $_POST['password'];
                
            
                            
                if(($username === "1") && ($password === "1") ){
                    
                     
                      $this->session->set_userdata('admin','11111111111');
                      $my_var = $this->session->userdata('admin');        
                } 
                else { echo "2";}

                }
                else 
                {
                    $this->load->view('author_view');
                }
}
function add_post()
                {        

                        $this->load->view('menu_view');
                        if ($my_var == '1') {
                            echo "asddddddddddddddddddddddddddddddddddd
                            adsssssssssssssssssssssssssssssssssssssssss
                            adssssssssssssssssssss<p>sssssssssssssssssssssasd
                            adsssssssssssssssss<p>ssssssssssssssssssssssssasdasd
                            asddddddddddddd<p>dddddddddddddddddddd<p>dddddddddddddddd
                            adsssssssssssssss<p>ssssssssssssssssssssssssssasdasdasd
                            asddddddddddddd<p>ddddddddddddddd<p>dddddddddddddddddddddasd
                            asdddddddddd<p>dddddddddddddddd<p>dddddddddddddddddddddddasdasd
                            asddddddddddddd<p>dddddddddd<p>ddddddddddddddddddddddddddddd
                            ";
                        }

                        else {echo "11111111111111<p>11111111111111111111111111111111
                            1111111111111111111111111111111111111<p>111111111111111111
                        11111111<p>1111111<p>1111<p>1111111111111111111111111111111111111111
                        11111111111<p>11111111111111<p>11111111111111111111111111111111111
                        1111111111<p>111111111111111111111111111111111111
                            11111111111<p>11111111111111111<p>111111111111111111111111111
                        11111111111111111111111111111111111111111111111111111111111
                        11111111111<p>111111<p>111111111<p>1111<p>111111111111111111111111111111
                        1111111111111111111111111111111111111111111111
                            111111111111<p>11111111<p>11111111111111111111111111111111111
                        11111111111<p>111111111111111111111111111111111111111<p>111111111
                        111111111111111111111111111111111111111111111111111111111111
                            "; }
    

                }


                function dest()
                {        

                        
                $this->session->sess_destroy();

    

                }

}

<p>Severity: Notice</p>
<p>Message:  Undefined variable: my_var</p>
<p>Filename: controllers/admin.php</p>
<p>Line Number: 36</p>

10

Re: Авторизація + сессії Codeignitor

Вписав інціалізацію данних в середині іншої функції і все на диво запрацювало . Спасибі всім за допомогу .

$this->load->view('menu_view');
$my_var = $this->session->userdata('admin');   

                        if ($my_var == '1') {