0

あるサイトから別のサイト データベースにデータを保存するにはどうすればよいですか? データを外部データベースに保存するフォームを作成する必要があります。使用してみfopenましたが、これが正しい方法だとは思いません:

$externalsave = fopen('http://onewebsite.com/folder/this_page_INSERTS_INTO_DB.php?datavalue1='.$data1.'&datavalue2='.$data2, 'r');
$data = '';
while(!feof($externalsave)) 
   $data .= fread($externalsave, 4092); 
fclose($externalsave); 

echo $data;

ある Web サイトのフォームに挿入された値を外部データベースに保存する方法を知っている人はいますか?

私は Apache サーバーを使用していますが、上記のコードは正常に動作しますが、信頼できません。それともできますか?

4

3 に答える 3

2

最も簡単な答え:

  • サイト A でフォームをセットアップします。

  • フォーム アクションをサイト B のスクリプトに向けます。

  • サイト B に着信変数を検証させ、挿入します。

実際にサイト A でフォームを作成したくない場合は、cURLを使用することもできます。

于 2012-08-07T13:37:59.597 に答える
2

主な解決策は 3 つあります。

1.リモートアクション

最も簡単な方法は、リモート サーバー上のフォームをポイントすることです。例えば ​​:

<form method="post" action="http://myothersite.com/myphpscript.php">
</form>

そして、myphpscript.phplocalhost で行うようにフォームを処理するだけです。

2. プロキシ アクション(allow_url_fopen ディレクティブを有効にする必要があります)

他のサーバーにデータを送信する同じサーバー上の php スクリプトでフォームを指定することもできます。このソリューションは、csrf トークンなどのセキュリティをバイパスするのに役立ちます。

<form method="post" action="proxy.php"></form>

proxy.php :

$postdata = http_build_query($_POST); //Need some filtering !!!

$opts = array('http' =>
    array(
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'content' => $postdata
    )
);

$context  = stream_context_create($opts);
$result = file_get_contents('http://myotherserver.com/submit.php', false, $context);

ここでカールする必要はありません;)

3. リモート データベース

最後に、リモート アクセスでデータベースを使用し、次のようなリモート ホストでデータベースに接続するだけです。

$mysqli = new mysqli('mydbHost.com', 'my_user', 'my_password', 'my_db');

残念ながら、このソリューションは大きなセキュリティ リスクをもたらす可能性があるため、めったに許可されません (世界中の誰もがデータベースに接続しようとする可能性があります)。

于 2012-08-07T13:45:06.003 に答える
0

ネットワーク接続をリッスンして直接接続するようにmysql(データベースはMySQLだと思います)を設定する必要があります。

/etc/mysql/my.cnf の DB サーバー コメント 'bind-address = 127.0.0.1' で、Mysql デーモンを再起動します。

Web サーバーで、次のようにします。

$dbconnection = mysql_connect('IP_OF_DB_SERVER', 'username', 'userpassword');

データベースにデータを挿入するだけです。

于 2012-08-07T13:53:22.723 に答える