在php中将变量从一个页面传递到另一个页面以动态填充Facebook开放标记

时间:2017-09-06 08:05:45

标签: php codeigniter

我想动态填充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传递给intermediate.php页面。

下面是intermediate.php页面。

    <!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://quanutrition.com/Dotcom/new//admin/assets/uploads/clients_image/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] =&gt; Array([0] =&gt; stdClass Object([client_id] =&gt; 1 [name] =&gt; Shikhar Dhawan [image] =&gt; shikhar-dhawan-759.jpg [video] =&gt; [content1] =&gt;   “营养在我的恢复和表现中起着关键作用。使用运动基因测试和推进营养血液生物化学可以帮助我。通过这种方式进食计划变得更加科学和结果导向。”

1 个答案:

答案 0 :(得分:0)

使用PHP中的$ _SESSION传递数据

  

会话遵循简单的工作流程。当会话启动时,PHP将使用传递的ID(通常来自会话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

干杯