Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
facebook选项卡应用程序上的PHP会话_Php_Facebook - Fatal编程技术网

facebook选项卡应用程序上的PHP会话

facebook选项卡应用程序上的PHP会话,php,facebook,Php,Facebook,我已经在facebook上建立了一个应用程序,我正在尝试在数据库中插入正确的信息。 信息被插入,但我代码中的会话出现了问题(不是用户的facebook会话) 似乎如果两台不同的机器进入了iframe应用程序,它只会创建一个会话,并且不会正确存储产品 这里:(第一页)-product-check.php我开始会话 session_start(); 然后(第二页)-form.php: require 'facebook.php'; session_start(); if (i

我已经在facebook上建立了一个应用程序,我正在尝试在数据库中插入正确的信息。 信息被插入,但我代码中的会话出现了问题(不是用户的facebook会话) 似乎如果两台不同的机器进入了iframe应用程序,它只会创建一个会话,并且不会正确存储产品

这里:(第一页)-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 ?>">

成功了

您是否尝试在插入DB之前回显第三页上的值,以确保收到所有数据?至少通过这种方式,您可以回溯管道,找出数据停止“存在”的位置:)是的。它是正确的,并且正在工作。但是会话似乎没有被破坏,并且在为多个用户存储数据时产生了问题。
   $product = $_POST['productselect']