質問編集履歴

2 コード修正

ao_love

ao_love score 432

2015/09/09 13:41  投稿

一度のクリックでサーバの異なる二つのサイトに画像アップロードしたい
お世話になっております。
題名の通り、サイトAで会員登録をし、同時にサイトBにも登録をしたいです。
テキスト部分の登録はできるようになったのですが、画像の保存について試行錯誤しています。
サイトBの会員登録方法がワンクリックではなく
0. 登録画面を開く
0. 画像登録部の参照ボタンから画像を選択
0. 1枚登録するごとに画像下部の保存ボタンをクリックしてサーバ内に画像を保存(この時画像名は変更される)
0. その他の情報も入力して最終的な登録ボタンをクリック
という流れになっています。
サイトAの方は
参照→選択のみで保存は他情報と一括で行われています。
実験的に以下のようにコードを書いてみたのですが、画像以外の情報しか登録されませんでした。
```php
<?php
if($_POST){
 $file1  = array('userfile1'=>'@'.$_FILES['img1']['name'],
                  'UP_1'=>'1');
 $file2  = array('userfile2'=>'@'.$_FILES['img2']['name'],
                  'UP_2'=>'1');
 $member = array('member_name'=>$_POST['name'],
                 'member_mail'=>$_POST['mail'],
                 'member_kana'=>$_POST['kana'],
                 'member_userid'=>"12345678",
                 'member_passwd'=>"12345678",
                 'member_repass'=>"12345678",
                 'OK_1'=> "保存");
//postするデータの配列
$params = array('login_mail' => "test@example.com" ,
               'login_passwd'=> "pass" ,
               'LOGIN' => "ログイン");
 $fp = fopen("tmp", "w");
 $ch = curl_init("http://www.example.com/login.php");
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
 curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie");
 curl_setopt($ch, CURLOPT_POST, TRUE);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
 curl_setopt($ch, CURLOPT_WRITEHEADER, $fp); $
 $output = curl_exec($ch);
 fclose($fp); curl_close($ch);
 // print "CURL OUTPUT:n{$output}n";
 
 $ch = curl_init("http://example.com/register.php");
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
 curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie");
 curl_setopt($ch, CURLOPT_COOKIEFILE, "tmp");
 curl_setopt($ch, CURLOPT_POST, TRUE);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $file1);
 $output = curl_exec($ch);
 curl_close($ch);
 $ch = curl_init("http://example.com/register.php");
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
 curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie");
 curl_setopt($ch, CURLOPT_COOKIEFILE, "tmp");
 curl_setopt($ch, CURLOPT_POST, TRUE);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $file2);
 $output = curl_exec($ch);
 curl_close($ch);
 $ch = curl_init("http://example.com/register.php");
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
 curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie");
 curl_setopt($ch, CURLOPT_COOKIEFILE, "tmp");
 curl_setopt($ch, CURLOPT_POST, TRUE);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $member);
 $output = curl_exec($ch);
 curl_close($ch);
}else{
echo <<< EOH
<!DOCTYPE html>
<html lang="ja">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
</head>
<body>
 <form action="" method="post" enctype="multipart/form-data">
   <div>名前<input type="text" name="name"></div>
   <div>メールアドレス<input type="text" name="mail"></div>
   <div>画像1<input type="file" name="img1"></div>
   <div>画像2<input type="file" name="img2"></div>
   <input type="submit" name="send" value="送信">
 </form>
</body>
</html>
EOH;
}
```
もっと簡単な方法が!というようなことでも構いませんのでご教授いただけると幸いです。
サイトAの環境はPHP/5.2.4
サイトBの環境はPHP/5.3.27
になります。
  • PHP

    36834 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • cURL

    353 questions

    cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

1 タグの追加

ao_love

ao_love score 432

2015/09/09 13:30  投稿

一度のクリックでサーバの異なる二つのサイトに画像アップロードしたい
お世話になっております。
題名の通り、サイトAで会員登録をし、同時にサイトBにも登録をしたいです。
テキスト部分の登録はできるようになったのですが、画像の保存について試行錯誤しています。
サイトBの会員登録方法がワンクリックではなく
0. 登録画面を開く
0. 画像登録部の参照ボタンから画像を選択
0. 1枚登録するごとに画像下部の保存ボタンをクリックしてサーバ内に画像を保存(この時画像名は変更される)
0. その他の情報も入力して最終的な登録ボタンをクリック
という流れになっています。
サイトAの方は
参照→選択のみで保存は他情報と一括で行われています。
実験的に以下のようにコードを書いてみたのですが、画像以外の情報しか登録されませんでした。
```php
if($_POST){
$file1 = array('userfile1'=>'@'.$_FILES['img1']['name'],
'UP_1'=>'1');
$file2 = array('userfile2'=>'@'.$_FILES['img2']['name'],
'UP_2'=>'1');
$member = array('member_name'=>$_POST['name'],
'member_mail'=>$_POST['mail'],
'member_kana'=>$_POST['kana'],
'member_userid'=>"12345678",
'member_passwd'=>"12345678",
'member_repass'=>"12345678",
'OK_1'=> "保存");
//postするデータの配列
$params = array('login_mail' => "test@example.com" ,
'login_passwd'=> "pass" ,
'LOGIN' => "ログイン");
$fp = fopen("tmp", "w");
$ch = curl_init("http://www.example.com/login.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie");
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_WRITEHEADER, $fp); $
$output = curl_exec($ch);
fclose($fp); curl_close($ch);
// print "CURL OUTPUT:n{$output}n";
$ch = curl_init("http://example.com/register.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie");
curl_setopt($ch, CURLOPT_COOKIEFILE, "tmp");
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $file1);
$output = curl_exec($ch);
curl_close($ch);
$ch = curl_init("http://example.com/register.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie");
curl_setopt($ch, CURLOPT_COOKIEFILE, "tmp");
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $file2);
$output = curl_exec($ch);
curl_close($ch);
$ch = curl_init("http://example.com/register.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie");
curl_setopt($ch, CURLOPT_COOKIEFILE, "tmp");
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $member);
$output = curl_exec($ch);
curl_close($ch);
}else{
echo <<< EOH
Document
名前
メールアドレス
画像1
画像2
EOH;
}
```
もっと簡単な方法が!というようなことでも構いませんのでご教授いただけると幸いです。
サイトAの環境はPHP/5.2.4
サイトBの環境はPHP/5.3.27
になります。
  • PHP

    36834 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • cURL

    353 questions

    cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る