繁体   English   中英

Facebook Tab应用程序上的PHP会话

[英]PHP Sessions on facebook Tab application

我已经在Facebook上构建了一个应用程序,并且我试图在数据库上插入正确的信息。 插入了信息,但是我的代码中的会话出现了问题(对于用户而言,不是facebook会话)。看来,如果有两台不同的机器进入了iframe应用,则它只会创建1个会话,并且不会正确存储产品。

在这里:(第一页)-product-check.php我开始了会议。

session_start();

然后(第二页)-form.php:

    require 'facebook.php';
    session_start();
   if (isset($_REQUEST['product']) == NULL)
   {
   header ("location: product-check.php");
   }
   else
   {
   $product = $_REQUEST['product'];
   //let's start the session
   //Posted Values stored in session
   $_SESSION['product'] = $product;

然后在第三页上,用两页中的值进行插入-产品检查和表单。

    session_start();
    $link = mysql_connect('With the right credentials') or die(mysql_error());
    mysql_set_charset('utf8',$link);
    $db_selected = mysql_select_db('application', $link);
   $product = mysql_real_escape_string($_SESSION['product']);
   if (isset($_POST['name'])){$name = mysql_real_escape_string($_POST['name']);}   
   if (isset($_POST['surname'])){$surname = mysql_real_escape_string($_POST['surname']);} 
   if (isset($_POST['email'])){$email = mysql_real_escape_string($_POST['email']);}
   if (isset($_POST['term'])){$accept_terms =   mysql_real_escape_string("N");}else{$accept_terms = mysql_real_escape_string("Y");}
   if (isset($_POST['contact'])){$accept_newsletter =   mysql_real_escape_string("Y");}else{$accept_newsletter = mysql_real_escape_string("N");}
   $query_insert = "INSERT INTO app(database fields) 
     VALUES(the above values i have declared)";
     $result = mysql_query($query_insert);
     mysql_close($link);
      session_destroy();

就是这样,但并非product-check.php中的所有产品都出现在数据库中。

好的,所以我尝试了另一种可行的方法。这次我没有使用会话来传递值,而是使用了隐藏字段。

我删除了:

    session_start();

从所有页面以及与会话有关的所有内容中分离出来,然后我创建了用于发布值的隐藏字段,如下所示:

    <input type="hidden" name="productselect" value="<?php echo $variable ?>">

然后在发布的页面上,我使用了一个简单的帖子:

   $product = $_POST['productselect']

有效!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM