我在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的所有产品都出现在数据库中。
答案 0 :(得分:0)
好的,所以我尝试了另一种有效的方式。这次我没有使用会话传递值,而是使用隐藏字段。
我删除了:
session_start();
部分来自所有页面以及与会话有关的所有内容,然后我创建了用于发布值的隐藏字段,如下所示:
<input type="hidden" name="productselect" value="<?php echo $variable ?>">
然后在发布的页面上我使用了一个简单的帖子:
$product = $_POST['productselect']
有效!