Я хочу динамически заполнять данные в открытых тегах 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] => «Питание играет ключевую роль в моем восстановлении и производительности. Использование спортивного тестирования генов и повышение биохимии питательной крови помогает мне. Питание с планом становится более научным и ориентированным на результат таким образом».
Сеансы выполняются простым рабочим процессом. Когда сеанс запущен, 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
ура