2015-03-06 2 views
1

У меня есть представление, которое шифрует текущую pid из базы данных, и при нажатии кнопки «Сохранить» она перенаправляется на другой контроллер.Codeigniter - сегмент uri не возвращает ничего

Мой URL-адрес зашифрован. Итак, третий сегмент моего URL-адреса - это pid, зашифрованный. Так что мой URL будет:

http://localhost/profile/edit_entry/3YnwZhh5hLiYEB2ICaPUgZs.6Ydz8C1mbyiGoJnTcw34Ejuy0sgeIasI3C2fVxoZca4SgZ9mjKsqmX.l8otGrw-- 

Но когда я его расшифровать и попробовать повторить его, он не будет ничего эхо.

Мой контроллер:

$pid = $this->uri->segment(3); 
    $pid = $this->encrypt->decode($pid); 

    echo "$pid"; 

Ничего не происходит. Есть идеи?

+0

как альтернатива, попробуйте получить его в методе в качестве аргумента – Ghost

+0

@Ghost Что вы имеете в виду? Не могли бы вы рассказать? Благодарю. –

+0

вместо использования сегментов, разве вы не попробовали это http://pastebin.com/jvWzQbb9 – Ghost

ответ

0

Это путь я опробованный и работа:

Сначала нужно загрузить Библиотеку «шифровать» это может быть загружено на autoload.php или просто позвонить в библиотеку на контроллере:

Как я вижу, в первую очередь вы создали зашифрованный идентификатор, чтобы не показывать истинный идентификатор в URL-адресе, и вам нужно расшифровать, чтобы получить идентификатор в post/edit/etc.

поэтому, мы создадим метод Edit.

public function Edit($id){ 

      $this->load->library('encrypt'); 
      $pid = $this->uri->segment(3); 
      $pid = $this->encrypt->decode($pid); 

      var_dump($pid); 
} 
+2

Объясните свой ответ – CodeGodie

+0

@CodeGodie Я отредактировал свой ответ и добавил более подробную информацию! – Dario

+1

лучше .. спасибо за объяснение .. к сожалению, я считаю, что Тейлор нашел свой ответ и совсем не следит за ним. – CodeGodie