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

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

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

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

解決済

3回答

1805閲覧

セキュリティの関わる問題なので削除させていただきました。

amaguri

総合スコア227

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

0クリップ

投稿2016/11/28 01:44

編集2018/06/18 09:59

セキュリティの関わる問題なので削除させていただきました。

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

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

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

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

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

guest

回答3

0

app/modules/test.php(自作フォルダ/ファイル) $nowdate=date("Y/m/d g:i:s"); WriteFinFile($fin_file,"START:$nowdate\n"); $sv_db=""; $sv_gzip_file=""; $file_cnt=0; $file_size=0; $sv_query=""; require_once "app/modules/cmdhive.php"; $cmdhive=CmdHive($username); if ( $OUTPUT_VERBOSE == "" and $OUTPUT_HEADER == "" ){ $cmd = $cmdhive . " -f $hql_file 2>$out_file"; }else{ $cmd = $cmdhive . " -f $hql_file 2>$out_file"; } if ( !($ifp=popen($cmd,"r")) ){ WriteFinFile($fin_file,"ERR:popen($cmd) error\n"); unlink($pid_file); exit(1); }
cmdhive.php function CmdHive($username){ $queuename=QUE_PRE_NAME.$username.QUE_POST_NAME; if(QUENAME_FLG==1){ $cmdhive=CMD_HIVE." ".OPT_HIVE." -hiveconf tez.queue.name=$queuename -hiveconf mapreduce.job.queuename=$queuename"; }else{ $cmdhive=CMD_HIVE." ".OPT_HIVE; } return $cmdhive; }

function CmdHive($username)のコードをtest.phpに書くと問題なく動作するのですが、、
require_onceすると$out_fileが作られなくなります。
require、includeも全てダメでした

投稿2018/06/24 07:39

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

cmdhive.php <?php /////////////////////////////////////////////////////////////////// //クエリ実行者識別 /////////////////////////////////////////////////////////////////// function CmdHive($username){ $queuename=QUE_PRE_NAME.$username.QUE_POST_NAME; if(QUENAME_FLG==1){ $cmdhive=CMD_HIVE." ".OPT_HIVE." -hiveconf tez.queue.name=$queuename -hiveconf mapreduce.job.queuename=$queuename"; }else{ $cmdhive=CMD_HIVE." ".OPT_HIVE; } return $cmdhive; }

投稿2016/11/28 06:19

amaguri

総合スコア227

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

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

0

ベストアンサー

cmdhive.php の先頭行に <?phpを追加してください。

PHPは include include_once require require_once で指定したファイルに <?phpが存在しない場合、単にそのファイルの内容を レスポンスにそのまま出力します。
(自動で ファイルの先頭に?>が補われたような動作になります。)

cmdhive.php

php

1<?php 2function CmdHive($username){ 3

投稿2016/11/28 02:00

編集2016/11/28 02:02
Y.H.

総合スコア7914

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

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

amaguri

2016/11/28 02:23

回答ありがとうございます。 <?php require_once "app/config/app.php"; /////////////////////////////////////////////////////////////////// //クエリ実行者識別 /////////////////////////////////////////////////////////////////// function CmdHive($username){ $queuename=QUE_PRE_NAME.$username.QUE_POST_NAME; if(QUENAME_FLG==1){ $cmdhive=CMD_HIVE." ".OPT_HIVE." -hiveconf tez.queue.name=$queuename -hiveconf mapreduce.job.queuename=$queuename"; }else{ $cmdhive=CMD_HIVE." ".OPT_HIVE; } return $cmdhive; } ?> faunctionのみ記載してしまっておりましたが 実際はこの形なのですが それでもううまくいきません
Y.H.

2016/11/28 02:42

「うまくいきません」を具体的にお願いします。エラーログの内容など確認されましたか? 元のコードでもCmdHiveが未定義などのエラーが出力されているはずです。
amaguri

2016/11/28 04:03

エラーとしてrequire等で別ファイルを指定すると $out_fileが発行できないためそこでエラーが起きてします。
Y.H.

2016/11/28 04:07

「エラーとしてrequire等で別ファイルを指定すると」何をおっしゃっているのかよくわかりません。
amaguri

2016/11/28 04:26 編集

わかりにくくてすみません require等で "app/modules/cmdhive.php" を実行させようとすると $out_fileが作成出来ないとエラーになります。 実際に test.php内で "app/modules/cmdhive.php" の処理を直接書き込んだ場合、違うコントローラーのphpファイルから呼び出した場合は問題なく動作していたので パスがおかしい、コードが間違えているという可能性は低いと考えられ 原因はrequireが原因ではないかと考えてはいるのですが解決策がわからず質問させていただきました。
Y.H.

2016/11/28 04:29

> require等で"app/modules/cmdhive.php"を実行させようとするとエラーになります。 どういうエラーになるのでしょうか? エラーメッセージが出た場合はそのエラーメッセージに解決の糸口が含まれています。
amaguri

2016/11/28 05:36

$out_fileが作成されない原因として requireのやり方に問題があるかもしれないとのことで いろいろ試して見たいと思います。
Y.H.

2016/11/28 05:45

情報を出していただけないようなので私ではお役に立てないようです。 解決できるよう祈ってます。
amaguri

2016/11/28 05:51

controllerのphpファイルと 素のPHPが入るでrequireしたときに帰ってくる値がちがうようです。
amaguri

2016/11/28 06:02 編集

エラー内容が $out_fileが作成されない原因がrequireのやり方ではなく controllerのphpファイルと素のPHPが入るでrequireしたときに帰ってくる値がちがうので それを分けて書いてあげないといけないとのことなのですが 同じコードでrequireの返り値が宣言されるファイルで変わる原因は仕様なのでしょうか・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問