質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

92.01%

  • PHP

    11601questions

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

  • Perl

    275questions

    Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

perlの変数をphpへ渡したい

受付中

回答 4

投稿 2016/02/26 00:27 ・編集 2016/02/26 10:24

  • 評価
  • クリップ 1
  • VIEW 478

yoyoyoyogi

score 14

perlの変数をphpへ渡すにはどうしたら良いでしょうか?

phpはやっとこさ分かるのですが、perlは良くわかりません、perlで書かれたコードを使用しなければいけないのでperlの変数をphpへ渡して使いたいと思っています。

よろしくお願いします。

具体的な内容との事で失礼いたしました。

formからpostでperlで書かれたcgiへ飛ばして自動返信するフリーのメールフォームを使ってまして、ある選択肢の時には異なるメールを飛ばしたいのでphpへフォームに入力されたメールアドレスと選択肢の値を渡したいのです。
phpでそれをやるスキルはギリギリありますが、perlではかなり難しいです。

どうにかアイデアありますでしょうか。
よろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問に回答があった場合に通知・メールを受け取ることができます。

    クリップした質問はマイページの「クリップ」タブからいつでも見ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • ogaaaan

    2016/02/26 00:33

    情報が少なすぎ。どういうことをしたいのかもっとちゃんと具体的にかかないと、解答欄で質問合戦になるでしょ。それは無駄なので避けてください。

    キャンセル

  • 退会済みユーザー

    2016/02/26 00:43

    こちらの質問が他のユーザから「問題・課題が含まれていない質問」という指摘を受けました
    teratailでは、漠然とした興味から票を募るような質問や、意見の主張をすることを目的とした投稿は推奨していません。
    「編集」ボタンから編集を行い、質問の意図や解決したい課題を明確に記述していただくと回答が得られやすくなります。

  • CHERRY

    2016/02/26 08:23

    perl の変数を直接 PHP で、操作はできません。 しかし、やりたい内容によっては、代替方法があるかもしれませんので、やりたい内容を具体的に書いてください。

    キャンセル

回答 4

0

phpは大丈夫ということなので、
formのあて先をphpにしてphpで処理したあと、phpからhttp経由でperlに送信するという方法が一番楽じゃないですかね。

投稿 2016/02/26 10:27

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    以下のような回答は評価を下げられます

    • 間違っている回答
    • 質問の回答になっていない投稿
    • 不快な投稿

    評価を下げる際はその理由をコメントに書き込んでください。

  • 2016/02/26 10:43

    ご回答ありがとうございました。

    実はそれ試してみたのですが、フォームの入力支援やチェックなどの機能も切れてしまって駄目でした。
    コード的にはformからの飛ばし先は空白で
    aaa.cgiをジャバスクリプトタグでformのhtmlにリンクしていました。
    aaa.cgi内は複数のファイルへのリンクで成立していて、どこかの記述でsubmitするとaaa.cgiに飛ぶ様にしているのではないかと思ってます。

    また何か良い方法があったら教えて下さい。
    よろしくお願いします。

    キャンセル

  • 2016/02/26 11:15

    『フォームの入力支援やチェックなどの機能も切れてしまって』
    ↑これは関係ないような。
    入力支援ってクライアント側なんで、それはおそらくJavaScriptの実装の問題でしょう。
    そこがおかしいのであれば、ここではなくて、JavaScriptの質問として別途投稿してみるのも手かと。

    『aaa.cgiをジャバスクリプトタグでformのhtmlにリンクしていました。』
    formタグのaction先はデフォルトでは空で、JavaScriptでaction先を動的に書き換えてた、ということですね。

    『aaa.cgi内は複数のファイルへのリンクで成立していて』
    複数ファイルのリンクというは、aaa.cgiが別のライブラリを読み込んでる、ということでしょうか・・・。そこはいったん無視していいかと。

    『どこかの記述でsubmitするとaaa.cgiに飛ぶ様にしているのではないかと思ってます。』
    ↑perlで書かれたcgi用のファイルで送信はしてないと思いますよ。できないし。
    送信するのはあくまでブラウザ側なんで送信させてるのはJavaScriptでしょう。ここはスルーしておきますが。


    もう少し状況を知りたいところですが、2つばかり返答しておきます。

    perl自体、phpをちょっと難しくした程度の記述なんで、perl側いじったほうが早い気がしますね。おそらくファイル内に送信先のメールサーバとかメールアレスが書かれてると思うけど、その部分をif分つかって分岐するだけですむと思うので。
    http://www.envinfo.uee.kyoto-u.ac.jp/user/susaki/perl/condition.html

    もしくは、phpでメール処理するのはかなり簡単なので、mb_send_mail()とかつかって丸ごと作り、perlを一切使わないってやるのもいいんじゃないですかね。php大丈夫なら1日2日で終わる程度だと思いますが。
    http://techblog.ecstudio.jp/tech-tips/mail-japanese-basics.html

    キャンセル

0

横槍を入れるようで申し訳ないのですが、とりあえず主題の件について回答します。
HTMLに出力する場合、当然ながらprintするのは、Perlです。
Perlは、phpがechoした出力を受け取ります。

注)  Perlのソースの ` は '(シングルクオーテーション)ではありません。

my $res = `/usr/bin/php -f ./other.php ABC DEF`;
print $res;
<?php
echo '$argv[1] : ' . $argv[1] . '<br>';
echo '$argv[2] : ' . $argv[2] . '<br>';
?>

投稿 2016/03/09 07:54

編集 2016/03/09 08:30

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    以下のような回答は評価を下げられます

    • 間違っている回答
    • 質問の回答になっていない投稿
    • 不快な投稿

    評価を下げる際はその理由をコメントに書き込んでください。

0

PerlからPHPへPOSTする。 要は”Perl POST" の検索で見つかります。

use LWP::UserAgent;

our $ua = LWP::UserAgent->new;
our $url = 'http://exsample.com/phpform.php';
our $query_string = 'param1=a&param2=b';

my $req = HTTP::Request->new(POST => $url);
$req->content_type('application/x-www-form-urlencoded');
$req->content($query_string);

my $res = $ua->request($req);
print $res->as_string;

LWP::UserAgent がインストールされてないと使えないので

あとは、curl コマンドを呼ぶか

投稿 2016/03/09 09:03

編集 2016/03/09 09:08

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    以下のような回答は評価を下げられます

    • 間違っている回答
    • 質問の回答になっていない投稿
    • 不快な投稿

    評価を下げる際はその理由をコメントに書き込んでください。

0

要は,
フォームデータ → perl → PHP
と値を渡したいということで間違いないでしょうか?

間違いないようでしたら,以下の様な形になると思います.
なお,実行などは行っていないのでエラーが出るかもしれません.

 perlに条件式を加える

# ある選択肢が変数「$value」に入っていると仮定
if ( $value eq "ある選択肢" ){
    #とりあえずJavaScriptでPHPにデータを送ります
    print '<script>';

    #メールアドレスが変数「$mailaddress」に入っていると仮定
    print 'location.href="hoge.php?mail='. $mainaddress .'&value='. $value .'"';

    print '<script>';
}

 PHP側で受け取る

#ある値の取得
$value = $_GET["value"];

#メールアドレスの取得
$mailaddress = $_GET["mail"];

投稿 2016/03/17 01:44

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    以下のような回答は評価を下げられます

    • 間違っている回答
    • 質問の回答になっていない投稿
    • 不快な投稿

    評価を下げる際はその理由をコメントに書き込んでください。

15分調べてもわからないことは、teratailで質問しよう!

ただいまの回答率

92.01%

関連した質問

同じタグがついた質問を見る

  • PHP

    11601questions

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

  • Perl

    275questions

    Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

閲覧数の多いPHPの質問