[英]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.