2013-07-23 2 views
1
<< Error message >> 
Severity: Notice 
Message: Uninitialized string offset: 0 
Filename: controllers 
Line Number: 192 

Это сообщение об ошибке, с которым я столкнулся. и ниже - файлы контроллера и модели.Неинициализированное смещение строки: 0, почему?

// controller file 
    $user = $this->user_model->getByMail(array('total_mail' => $mail_auth)); 

    if($user = '') 
    { 
     $this->load->helper('url'); 
     redirect('/'); 
    } 
    else if($this->encrypt->decode($user['password']) == $password_auth) // line 192 
    { 
     if($user['verified'] == 'N') 
     { 
      $this->session->set_flashdata('message', 'Wront inputs.'); 
      $this->load->helper('url'); 
      redirect('/'); 
     } 
    } 
    else 
    { 
     $this->session->set_flashdata('message', 'Wrong inputs'); 
     $this->load->helper('url'); 
     redirect('/'); 
    } 

} 
    // model file 
function getByMail($option) 
{ 
    $basic_result = $this->db->get_where('ndd_user', array('total_mail' => sanitizeMySQL($option['total_mail']))); 
    if ($basic_result->num_rows() > 0) 
    { 
     $result = $basic_result->row_array(); 
     return $result; 
    } 
    else 
    { 
     return ''; 
    } 
} 

В файле модели есть функция getByEmail, которая выводит массив результатов запроса. Однако он делает ошибку. Как я могу сделать?

Заранее спасибо :)

+0

Не могли бы вы сказать, где находится эта строка «192»? – guessimtoolate

+0

Я добавил сноску «// строка 192». – nextdoordoc

+4

Моя ставка 'if ($ user = '')' - она ​​присваивает пустое строковое значение '$ user', так что это '', когда вы проверяете, есть ли в вашем else if? Вероятно, вы имели в виду 'if ($ user == '')'. – guessimtoolate

ответ

3

Вы присваивающая if($user = '')

по крайней мере, он должен быть

if($user == '') 
+2

Я чувствую, что guessimtoolate заслуживает кредита за этот ответ ... – BLaZuRE

+0

@BLaZuRE Я согласен, он представил свой комментарий, пока я печатал. – bansi

+0

, но нет способа дать кредит. потому что он просто пишет комментарий .. – nextdoordoc

1

Где-то в вашем коде вы пытаетесь получить первый символ какой-то струны перед тестированием он пуст (или вы хотите использовать его в качестве массива, пока это не так, но сначала выдает предупреждение)

$foo = ''; 

// these throws "Notice: Uninitialized string offset: 0" 
$firstChar = $foo[0]; 
$firstChar = $foo{0}; 

// this throws "Warning: Illegal string offset 'bar'" 
// and "Notice: Uninitialized string offset: 0" 
$bar = $foo['bar']; 
Смежные вопросы