簡體   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