0

私は Facebook でアプリを作成しました。データベースに正しい情報を挿入しようとしています。情報が挿入されますが、コードのセッションで問題が発生しました (ユーザーの facebook セッションではありません)。2 つの異なるマシンが iframe アプリに入った場合、1 つのセッションのみが作成され、製品の修正が保存されないようです。

ここ: (最初のページ) - product-check.php セッションを開始します。

session_start();

次に (2 ページ目) - 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;

次に、3 ページ目に、製品チェックとフォームの両方のページの値を挿入します。

    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 のすべての製品がデータベースに表示されるわけではありません。

4

1 に答える 1

0

わかりましたので、別の方法で試してみました。今回は値を渡すためにセッションを使用せず、代わりに隠しフィールドを使用しました。

私は削除しました:

    session_start();

すべてのページとセッションに関係するすべてのものの一部であり、次のように値を投稿するために使用する隠しフィールドを作成しました。

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

そして、投稿されたページで、単純な投稿を使用しました:

   $product = $_POST['productselect']

出来た!

于 2012-10-02T23:43:22.423 に答える