Передача переменной с одной страницы на другую в php для динамического заполнения открываемых тегов Facebook

Я хочу динамически заполнять данные в открытых тегах Facebook. Для этого мне нужно передать переменную из моего файла контроллера в файл, который находится за пределами модели CI. Как это сделать?

public function index() { $data['clients'] = $this->qua_model->list_clients(); $data['clientst'] = $this->qua_model->list_clientst(); $id = $this->uri->segment(3); //GET RECORD BY ID $data['result']=$this->qua_model->get_record_by_id($id); // print_r($data['result']); $data['url']= urlencode(base_url().'intermediate.php?data=$result'); // print_r($data['url']); // return; //echo $data['url']; //exit(); //$data['url'] = base_url().'Testimonial'; $this->load->view("header",$data); $this->load->view("testimonial",$data); $this->load->view("footer"); } 

Вышеприведенный код является функцией индекса моего контроллера. Я хочу передать переменную $ result на промежуточную страницу.

Ниже представлена ​​промежуточная страница.

  <!DOCTYPE html> <html> <head> <!--<meta property="fb:app_id" content="535219850163370" /> <meta property="og:site_name" content="meta site name"/> --> <meta property="og:url" content="http://www.quanutrition.com/Dotcom/new/"/> <meta property="og:type" content="website"/> <meta property="og:title" content="title"/> <meta property="og:image" content="http://img.ruphp.com/php/shikhar-dhawan-759.jpg"/> <meta property="og:description" content="My description"/> <script type="text/javascript"> <!-- function Redirect() { window.location="http://www.quanutrition.com/Dotcom/new/"; } //--> </script> </head> ; <body onload="Redirect()" > </body> </html> 

Ниже представлена ​​страница просмотра, где я устанавливаю сеанс. $ clients – это переменная, содержащая массив.

 <?php session_start(); $_SESSION['clients']=$clients; print_r ($_SESSION); exit(); ?> 

Теперь на другой странице я делаю это.

 <?php session_start(); print_r ($_SESSION); $var = $_SESSION['clients']; echo $var; exit(); ?> 

Это бросает эту ошибку – Неопределенный индекс: клиенты. Что я делаю не так?

Вот как выглядят отдельные данные в моем массиве в $ clients

Array ([clients] => Array ([0] => stdClass Object ([client_id] => 1 [name] => Shikhar Dhawan [image] => shikhar-dhawan-759.jpg => [content1] => «Питание играет ключевую роль в моем восстановлении и производительности. Использование спортивного тестирования генов и повышение биохимии питательной крови помогает мне. Питание с планом становится более научным и ориентированным на результат таким образом».

Передача данных с использованием $ _SESSION в PHP

Сеансы выполняются простым рабочим процессом. Когда сеанс запущен, PHP будет либо получать существующий сеанс с использованием переданного идентификатора (обычно из файла cookie сеанса), либо если сеанс не передан, он создаст новый сеанс. PHP закроет суперсогласование $ _SESSION с любыми данными сеанса после начала сеанса.

См. Здесь: http://php.net/manual/en/session.examples.basic.php

Каждый раз, когда вы хотите хранить или извлекать данные со своего сеанса, вам нужно открыть сеанс. session_start();

Поэтому вам нужно использовать это в своем controler.php:

 <?php session_start(); ... 

на самом верху. Это запустит вашу сессию, и теперь вы можете просто сохранить свои переменные / данные в сеансе, который вы только что начали. Для этого:

$_SESSION['var_name'] = "value";

или

$_SESSION['foo'] = bar;

На следующей странице вы начинаете все сначала:

 <?php session_start(); ... 

на самом верху. Затем вы просто вызываете переменную:

$new_page_var = $_SESSION['foo']; // contains now 'bar'

Если вам больше не нужна переменная, вы можете следить за ней следующим образом:

unset($_SESSION['foo']);

и переменная будет удалена.

После того, как вы закончите, и сеанс больше не понадобится, вы также можете отключить сеанс, используя: session_destroy(); – Это приведет к удалению сеанса и всех сохраненных данных!

Надеюсь, это поможет, ура 🙂


С вашим примером здесь:

 <?php session_start(); $_SESSION['clients']=$clients; print_r ($_SESSION); exit(); ?> 

Вам не хватает переменной $ clients! Смотри сюда:

 <?php session_start(); $clients=array("foo", "bar"); $_SESSION['clients']=$clients; print_r ($_SESSION); exit(); ?> 

ура


Более подробное решение

 <?php session_start(); $object1 = new stdClass(); $object1->client_id = 1; $object1->name = 'Shikhar Dhawan'; $object1->content1 = 'Some content'; $object2 = new stdClass(); $object2->client_id = 2; $object2->name = 'Florian Foo'; $object2->content1 = 'Bar some content'; $clients=array($object1, $object2); $_SESSION['clients']=$clients; foreach ($_SESSION['clients'] as $client) { echo $client->name ." wrote:".$client->content1."\n"; } exit(); ?> 

Что будет выводить:

 Shikhar Dhawan wrote:Some content Florian Foo wrote:Bar some content 

См. Здесь: https://ideone.com/CYDcVa

ура