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

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

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

HTTPにおけるCookieとは、クライアントのウェブブラウザ上に保存された一時的なデータを指します。クライアント側のJavaScriptでも、サーバー側のHTTPヘッダーでもクッキーの読み書き・修正・削除が可能です。

Perl

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

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

PHP

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

セッション

Sessionはクライアントがサーバに送ったすべてのリクエストのことを指します。

Q&A

解決済

3回答

4092閲覧

言語をまたいでのCookieやSessionの使用は可能でしょうか。

shimayu

総合スコア35

Cookie

HTTPにおけるCookieとは、クライアントのウェブブラウザ上に保存された一時的なデータを指します。クライアント側のJavaScriptでも、サーバー側のHTTPヘッダーでもクッキーの読み書き・修正・削除が可能です。

Perl

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

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

PHP

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

セッション

Sessionはクライアントがサーバに送ったすべてのリクエストのことを指します。

0グッド

0クリップ

投稿2016/08/29 18:19

素朴な疑問です。当方はPHPとJavaScriptしか使えないので分かりませんが、Perlと言った他言語でもCookieやSessionと言うのはあるのでしょうか。
また、PHPで作成したCookieやSessionを他の言語で削除したり破棄したりすることは可能なのでしょうか。

現在PHPを使ったサイトを構築しているのですが、最後の決済部分でASPが用意してるライブラリ?がPerl用しか無いらしく、私はPerlがさっぱりなのでその部分だけ別の方に依頼をしたようです。私はその方が作ったPerl(CGI)へFormのデータをPOSTしているだけです。

最近、クライアントより決済完了画面から戻るボタンを押して再決済されるケースがある、と言うことを聞いたので、CookieかSessionで有効時間を設けてPerlでそれをチェック出来ないかと考えています。

私が言うのもなんですが、Perlを制作した方があまりレベルの高い方では無いようで、本人は「???」と言った様子でした。

PerlでCookieが使えるのは知っていますが、PHPで作成したCookieをPerlでチェック・削除などができるのか、同じようにPHPで作成したSessionをPerl側でチェック・削除ができるのか教えて下さい。

また、その方法も合わせて教えて頂けると助かります。

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

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

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

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

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

guest

回答3

0

ベストアンサー

Cookieは、HTTPの仕組みなので、プログラミング言語とは関係ありません。

Sessionは、プログラミング言語ないしはフレームワークの仕組みなので、プログラミング言語をまたぐ場合はデータを引き継ぐような仕組みを意識的に作る必要があります。ファイルに書き込むとか、DBに書き込むとかが必要になります。

投稿2016/08/30 00:12

編集2016/08/30 00:13
otn

総合スコア84423

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

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

shimayu

2016/08/30 04:50

Sessionと言うのはサーバー側が用意しているものではなかったのですね。また一つ勉強になりました。 結局Sessionの内容を何処かに保存したりいしないといけないとなるとかなり面倒になりそうです。となれば、Cookieを使ってチェックを行ったほうが簡単そうですね。
otn

2016/08/30 12:36

> Sessionと言うのはサーバー側が用意しているものではなかったのですね。 「サーバー側」とは何のことですか? Sessionは、サーバー側で動くプログラムで実現している機能ですよ。 Apache等のことを言ってますか?であれば、合ってます。
guest

0

データ渡すだけであればPHP側でチェックなど済んだ状態までもっていってから
CURLなどでPerlにデータをなげて返ってきた値を利用すればよいのでは?

投稿2016/08/30 01:53

yambejp

総合スコア114583

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

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

shimayu

2016/08/30 04:47

CURLは概念はなんとなくわかりますが使用したことがありません。 なので追加でお聞きしたいのですが、現状では 「form.php→pay.cgi→完了画面」といいう流れになっており、完了画面はCGIの方で出力しています。 これをform.phpからcurlでpay.cgiにPOSTデータを送るということだと思いますが、 CGIが出力する完了画面をPHP側で取得することができるのでしょうか? CGI側でプログラムを改変する必要はありますでしょうか。 もしCGI側のプログラム改変無しでPHPのみで出来るのであれば便利そうです。
guest

0

Cookieとセッションに関しては他の回答通りです。

POSTしたあと、ブラウザの戻るボタンで再度POSTされてしまうのは、昔からある問題のひとつですよね。
対策方法をまとめたサイトなどもあると思うので調べてみてください。
こことか
「戻れない」仕組みと、「戻らなくてもよい」画面構成(遷移)、この2つの対策でしょうかね。
決済処理ということなので、きちんとした対策をした方が良いですね。

投稿2016/08/30 01:09

ttyp03

総合スコア16996

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

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

shimayu

2016/08/30 04:49

最後の申し込みボタンをおした後にPHPで申し込みデータの整合性のチェックを行い、そのままPHPで決済システムと連携出来れば問題は解決するのですが、今回はCGIしか無いということで、整合性チェックをした後にheaderでcgiにリダイレクトしようにもPOSTデータはheaderのリダイレクトでは行えませんよね。 なのでどうしようかと悩んでいたのです。 CookieがPerlでも扱えるようなのでCGI側でCookieチェックを行ってもらうのが良さそうです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問