1

「main.php」内のiframeで開くphpスクリプト(ini.php) <iframe src='ini.php' style='width:650px;' frameborder='0' id="IDMain" allowtransparency="YES" scrolling="NO"></iframe> があります。SQLは「ini.php」のデータを取得しません。しかし、iframe を使用せずに「main.php」に「ini.php」のコードを組み込むと、クエリはすべての情報を取得します。同じ iframe 内のすべての異なるスクリプトを変更するには、iframe が必要です。ここで何か助けはありますか?ありがとう

さらに詳しい情報:

ログイン後、main.php はセッション中です。以前は、各スクリプトでフレーム全体を繰り返していて、すべてが ok.main.php、ini.php などでした。ヘッダー、左、右、メイン、フッターを含む各スクリプト。より速く簡単にするために、main.php という名前のメイン スクリプトを作成することにしました。これには、いくつかの機能を持つ config.inc.php という名前のスクリプトが含まれています。また、データベースに接続して、ヘッダーにデータを取得します。メイン エリア (iframe) の右側とフッター側では、他のスクリプトが異なるため、iframe 内で開くだけで、周囲の情報が維持されます。iframe で実行される各スクリプト (ini.php など) には、データベースにも接続するための config.inc.php ファイルも含まれています。ただし、情報は取得しません。構成スクリプトでのデータベースへの接続は次のとおりです。

<$connect=mysql_connect ("localhost","database","password") or die ('I cannot connect to the database because: ' . mysql_error()); mysql_select_db ("database", $connect) or die ("'I cannot connect to the database "); >

ini、php (およびその他) のクエリは次のとおりです。

`

 if ($id) { 
$id_session=$_SESSION['id_session'];
$namesession=$_SESSION['name_session'];
$sql="select * from data where id='$id_sessino' limit 1 ";
$result=mysql_db_query("database",$sql);
$regist=mysql_fetch_array($result);
$id=$regist["id"];
$id_session=$regist["id"];
$namesession=$regist["name_session"]; 
$country=$regist["country"];
And soo on…
} 

`

私が何を意味するのかを明確にする情報があることを願っています. ありがとうございました

4

2 に答える 2

1

mysql_db_queryの PHP ヘルプを確認してください。開いている db リンクを提供していないため、デフォルトの魔法を実行しようとしますが、失敗する可能性があります。これは、コメントで述べたように、2 つのスクリプト (親ウィンドウと iframe 内) が別々に実行され、お互いについてのアイデア *同期を行っていない限り、それはコード スニペットには示されていません。つまり、iframe スクリプトは、親ページで開いた接続について何も認識せず、失敗します。ログを確認すると、いくつかのE_WARNING苦情が表示されるはずです (このレベルのログを記録している場合)。

また、ドキュメントにあるように、MySQLiまたはPDO_MySQL拡張機能を使用したほうがよい場合があります。しかし、原則は同じままです - クエストのスクリプトはデータベースへのオープン接続を持っている必要があります (そして、オープンをあるスクリプトから別のスクリプトに簡単かつ安全に転送できるかどうかはわかりません。すべてを iframe スクリプトで行う必要があります)。

于 2012-11-10T22:53:57.360 に答える
0

2 つのことを試してください。まず、MySQL_fetch_array の部分を次のように変更します。

While($regist = mysql_fetch_array($result))
{
//Code goes here
}

次に、配列値を名前ではなく数値として参照してみます。したがって、regist['id'] は regist[0] になります。それらは、データベース内の順序になります。

また、接続を作成するときにデータベースを選択するので、mysql_query("QUERY HERE"); を使用しないのはなぜですか。mysql_db_query ではなく

于 2012-11-10T08:07:56.320 に答える