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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Perl

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

PHP

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

Q&A

解決済

4回答

4944閲覧

perlの変数をphpへ渡したい

yoyoyoyogi

総合スコア47

Perl

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

PHP

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

0グッド

1クリップ

投稿2016/02/25 15:27

編集2016/02/26 01:24

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

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

よろしくお願いします。

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

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

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

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

クリップした質問は、後からいつでもMYページで確認できます。

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ogaaaan

2016/02/25 15:33

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

2016/02/25 23:23

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

回答4

0

ベストアンサー

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

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

perlに条件式を加える

perl

1# ある選択肢が変数「$value」に入っていると仮定 2if ( $value eq "ある選択肢" ){ 3 #とりあえずJavaScriptでPHPにデータを送ります 4 print '<script>'; 5 6 #メールアドレスが変数「$mailaddress」に入っていると仮定 7 print 'location.href="hoge.php?mail='. $mainaddress .'&value='. $value .'"'; 8 9 print '<script>'; 10}

PHP側で受け取る

PHP

1#ある値の取得 2$value = $_GET["value"]; 3 4#メールアドレスの取得 5$mailaddress = $_GET["mail"];

投稿2016/03/16 16:44

nnahito

総合スコア2004

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

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 00:03

編集2016/03/09 00:08
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

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

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

perl

1my $res = `/usr/bin/php -f ./other.php ABC DEF`; 2print $res;

php

1<?php 2echo '$argv[1] : ' . $argv[1] . '<br>'; 3echo '$argv[2] : ' . $argv[2] . '<br>'; 4?>

投稿2016/03/08 22:54

編集2016/03/08 23:30
kagi_shippo

総合スコア105

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

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

投稿2016/02/26 01:27

ogaaaan

総合スコア765

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoyoyoyogi

2016/02/26 01:43

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

2016/02/26 02: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
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問