トップページtech
1002コメント357KB

【PHP】下らねぇ質問はここに書き込みやがれ 4 [無断転載禁止]©5ch.io

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2016/03/12(土) 23:25:33.88ID:j4grSBgs
PHPに関する下らない質問用避難スレです。
まず読むこと【PHPマニュアル】
http://www.php.net/manual/ja/

前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 3
http://echo.2ch.net/test/read.cgi/tech/1447495088/
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
0409デフォルトの名無しさん2016/04/17(日) 03:04:32.12ID:I4Bf6IMv
>>408
>それともPHPではなくPerlなりPythonなり、そういう用途向き(?)の言語で書く?
ここから 少なくともphp = そういう用途向きではない と読み取ったんだが

まあ言語ごとのバッチサポートの様子を語ってくれるなら誰でもいいよ
0410デフォルトの名無しさん2016/04/17(日) 03:59:55.77ID:WVqY7eVD
>>405
$ をコピーしておいて、$ を打ちたい場所で CTRL+V
0411デフォルトの名無しさん2016/04/17(日) 05:50:07.84ID:schrg1Ho
if(0 == '@attributes'){
echo '一致';
}else{
echo '不一致';
}

このPHP文を実行するとなぜか一致してしまうんですがこれは一体どういうことなんでしょうか
バージョンは5.3です。
0412デフォルトの名無しさん2016/04/17(日) 05:59:53.89
PHPで書かれたソースコードから見ると、入力にGET index.html 貰ってファイル処理して返すのと
標準入力からコマンド貰ってなんかしてechoすんのと
やることに変わりはないと思うんすよ
04134002016/04/17(日) 07:56:36.40ID:SaVaSm2U
>>409
優劣があると捉えられないように、慎重に言葉を選んだつもりだったんだけど
なかなか難しいね、すまん。

要はさ、もともとPHPはWebページ出力用として、Perlはバッチ処理用として、
あとは有名ドコロだと、Cは低レベル処理が可能な高級言語として生まれた、
……みたいなのあるじゃん?
優劣とまでは行かなくても、その生まれに適した部分(設計思想)って
やっぱりあったりするのかなって。
0414デフォルトの名無しさん2016/04/17(日) 09:21:16.78ID:I4Bf6IMv
>>413
なるほど…なるほど?perlは"バッチ"処理用として生まれたのか?cの生い立ちはbと比べて機械語吐ける/型がある/高開発効率が欲しかったからじゃ?まあ細かいことか

機能的にはぶっちゃけ列挙されたものだとさしたる違いはないかと バイナリも扱えるしsocketも叩ける
ただ、少なくともphpについては基本的には同期処理一本で出来てるから
複数の処理を平行でやらせて全部終わったらこれやらせて…とかはちょっと

あとサーバの機能を分割するときに「あーphp入れなきゃな」とか「バージョン同じにしないと」「別verと同居させないと」「php.ini別に作って指定させないと」がある
pythonやrubyだと最小構成でサーバ作ってるとき「あーpython入れなきゃな」ってことは良くあるし、perlでも移すのに「cpanであれこれ入れなきゃ」が稀に良くあるけど
そういやphpだとpearで持ってこなきゃって経験はないな
んで、web利用が基本だからなのかメモリとか継続実行時間とかで設定(php.ini)に気を使わなきゃいけないことが若干多い…かもしれない

自分が決めていい状況ならあらかじめ問題があるとわかってる場合以外はphpを採用しちゃう
cで書かなきゃ速度的に辛いってこともそう無いし、メインもphpならphp以外が苦手な人にもまとめて投げられる
0415デフォルトの名無しさん2016/04/17(日) 15:07:09.77ID:vkBmD+Lb
1,2,3,
この文字列を分解して数値配列にしたいんだけどどうすればいいの?
0416デフォルトの名無しさん2016/04/17(日) 15:16:01.30ID:CLrgwT7G
$list = preg_split("/,/", "1,2,3,");

とか?
文字列として入るし、最後のカンマのせいで空文字が末尾につくけど
0417デフォルトの名無しさん2016/04/17(日) 15:36:53.85ID:YYhB6pHO
みなさんPHPやり始める時は基本の基本から時間かけてやりました?
変数宣言の仕方とか、echoとprintの違いとかそこからやりました?
正規表現をいきなりやろうと思ってpreg_splitなどを調べてたりしたんですがチンプンカンプンなんですよね。
0418デフォルトの名無しさん2016/04/17(日) 15:37:03.30ID:MApiboDi
カンマをtrimしてexplode
0419デフォルトの名無しさん2016/04/17(日) 15:40:37.31ID:MXiE5eIT
正規表現は、仕様を理解できた範囲で使えばいいよ。
ワイルドカードを使わない文字列の検索や置換から慣れて行けば良い。
理解できないうちに複雑な表現を使うとメンテできなくなる。
0420デフォルトの名無しさん2016/04/17(日) 15:41:30.72ID:UjRxHr47
$array=explode(´,´,´1,2,3´)
0421デフォルトの名無しさん2016/04/17(日) 16:01:01.71ID:vkBmD+Lb
できました。
ありがとうございました。
0422デフォルトの名無しさん2016/04/17(日) 16:06:20.13ID:r8zM09th
>>411
==演算子を使っていいのは何やってるか分かっている人間だけ
分からんなら===演算子を使え
0423デフォルトの名無しさん2016/04/17(日) 16:11:31.64ID:CLrgwT7G
>>411
どうぞ
http://php.net/manual/ja/types.comparisons.php
0424デフォルトの名無しさん2016/04/17(日) 18:33:57.46ID:SaVaSm2U
>>417
今月からPHPプログラマとして仕事してるけど
休日にパーフェクトPHPを1冊読んだくらいかな。

それでもちょっとしたツールを作れるくらいにはなったよ。
もちろん細かい仕様とか、セキィリティ界隈とかの話とかはまだ怪しいところもあるけれど
最初からクリティカルな仕事を任されるわけでもないし。
0425デフォルトの名無しさん2016/04/17(日) 19:17:40.22ID:LFk8XMyg
>>411
数値と比較してるから@attributesはintにキャストされてると思えばいい
当然@attributesの前に何も数字がないので0になる
booleanで比較したいのなら!!をつけるとか
型まで考慮する場合===で比較するといい
0426デフォルトの名無しさん2016/04/17(日) 19:33:09.25ID:S2UekzcW
>>424
他に何かプログラミング経験はあったんですか?
Cをやってたとか
0427デフォルトの名無しさん2016/04/17(日) 19:44:45.16ID:SaVaSm2U
>>426
うん。仕事で使ったといえるのはC、C++、C#、Perlくらいだけど
0428デフォルトの名無しさん2016/04/18(月) 00:19:52.32ID:tA63gAjN
数値 == 文字でやった時の結果って 数字があるなしだったのか
10年近く勘違いしてたわ・・・
0429デフォルトの名無しさん2016/04/18(月) 15:41:37.77ID:3MBtO9g0
バッチ処理にPerlやPythonがよく使われてるのは
デフォルトの環境でインストール済みが多いからだ
PHPはインストールされてないことのほうが多い
0430デフォルトの名無しさん2016/04/18(月) 16:48:18.20ID:Py/QbWo6
php ruby perl python なら python がほぼ確実に入っているでしょう。

> 最小構成でサーバ作ってるとき「あーpython入れなきゃな」ってことは良くある
何のディストリつかってるんだろう
0431デフォルトの名無しさん2016/04/18(月) 16:55:31.74ID:V0FZFOjy
MacOSの中には PHP入ってますね
0432デフォルトの名無しさん2016/04/18(月) 17:07:57.24ID:looFcgiP
php単体で動かすことあまりないからな
基本的にapacheがはじめから入ってる環境でないと・・・
0433デフォルトの名無しさん2016/04/18(月) 21:14:51.29ID:qDtmsg1l
Perlはもともとawkの代替ってのもあるんじゃね
0434デフォルトの名無しさん2016/04/19(火) 12:36:16.06ID:6K/M8riZ
>>432
PHPにはビルトインWebサーバ付いてるぞ

しかしバッチ処理は2000年代まではPerlで書いてたけどPerl 6が正式に出た以上新規には書きにくくなったなー
Pythonは兎も角Rubyは趣味に合わないから専らPHPで書いてるわ
0435デフォルトの名無しさん2016/04/19(火) 22:50:20.52ID:IoSLlNnO
もうどうしていいか検討もつかないから助けてください。

$fp = fopen("list.csv", "r");
while (!feof($fp)) {
$line = fgetcsv($fp);
mb_convert_variables("UTF-8", "SJIS", $line);
echo "Title:$line[0] Date:$line[1]";
}

こんな感じでlist.csvからデータを読み込むことはできました。
問題は
1.Titleをクリックできるようにして、クリックでされたら対応するDateを返すこと
2.50件まで表示させて残りは次のページに表示させること
list.csvは4万件以上のデータがあるらしくページ番号で移動もおそらく必要

list.csvは
aaa,a000
bbb,b111
ccc,c222
……

こんな感じになっています。
0436デフォルトの名無しさん2016/04/19(火) 23:05:59.46ID:vjTai48k
>>435
csvファイルはtitle,dateの2列だけ?
a000がdateなの?

[title],[date]
aaa,a000
0437デフォルトの名無しさん2016/04/19(火) 23:19:30.67ID:9i1atlZ9
問題がある、わからないところがある、じゃなくてただの丸投げだな
0438デフォルトの名無しさん2016/04/19(火) 23:26:25.28ID:IoSLlNnO
>>436
はい
その通りです。

>>437
すみません。
PHPは昨日まで触ったこともなくて…
昨日環境作ってドットインストールで勉強して
今日から作ってたんです。
0439デフォルトの名無しさん2016/04/19(火) 23:43:55.16ID:pETlWi8B
「Titleをクリックできるようにする」と「Dateを返す」の2つの意味が分からない

妄想はできるけどw
0440デフォルトの名無しさん2016/04/19(火) 23:48:02.32ID:6Xufz3Pd
何がしたいかよくわからんな。
htmlのテーブルで表でも作る?
クリックはAタグ?
0441デフォルトの名無しさん2016/04/20(水) 00:20:19.71ID:hJ4omFpR
list.csvから内容を取得
HTMLのテーブルで読み込んだ内容を上から50件のTitleをリストのように表示
(残りは次のページで表示させる・ページ番号で移動できるようにする)
Titleは<a>で囲いリンクにする
リンクを選択するとDateの部分が画面に表示される

説明下手だな…
わからない部分をまとめるとこんな感じになる。
0442デフォルトの名無しさん2016/04/20(水) 00:39:10.82ID:1rGPQiSA
Dataの表示とページ番号で移動とが繋がりにくい
ページ移動せずにDataを表示しないといけない感じ?
0443デフォルトの名無しさん2016/04/20(水) 00:44:45.90ID:W+moKoI4
ページング php とかで適当に検索してこい
phpどころかHTTP/htmlすらわかってるか怪しいのに内容エスパーも追加とか役満レベル
0444デフォルトの名無しさん2016/04/20(水) 01:02:38.69ID:Hoj62ndF
1、Titleとその行数を返すPHPを作る
2、1を開始行数、取得行数を与えてその範囲の値を返す関数に改造する
これでデータ一覧およびページングができる
3、行番号を与えるとDateを返すPHPを作る
4、2を元に作られた一覧から、TitleのAタグをクリックしたら3にアクセスし値を取ってくるJavascriptを作る
0445デフォルトの名無しさん2016/04/20(水) 01:19:22.25ID:QFZZ7CGm
どうしたらいいかわからないなんてのは
たいてい身の丈にあってないことやろうとしてるだけで
基礎的なところから勉強していくしかないわけで
0446デフォルトの名無しさん2016/04/20(水) 01:27:31.57ID:hNTaWlcr
くだらない質問ですみません。

WordPressのフォーム云々の説明文があった場合、
WordPressでフォームというと、メールフォームのことを指すのでしょうか?

PHPでフォームというと、HTMLの<form></form>タグで、
そこから送信されたデータの処理することを指すと思うのですが、どうなのかなと。
0447デフォルトの名無しさん2016/04/20(水) 01:35:54.43ID:3QX7LeE6
$total = $total + 1
これを見た時「んんん?成り立ちません」って思ったおれは頭が硬いんだよね。ブログラマ向いてないよね
0448デフォルトの名無しさん2016/04/20(水) 01:39:34.86ID:3QX7LeE6
よくソフトウェア関係やIT関係の会社の入社試験で暗号化とか推理判断とか全然ついていけなかったもん。
aabbbccccdddeeこんなのみたらめまいがしてきてたよ
0449デフォルトの名無しさん2016/04/20(水) 01:55:50.19ID:hNTaWlcr
>>447

大丈夫、そのぐらいの誤読は誰でもやるし、どんな時にでも起こりうる。
本当のプロは、普通だったらやらないだろう、普通だったらわかるだろうということさえ、
注意して確認を行える人。
そうならないために、普段から変数名に「no」ではなく、「id」を使ったりする。
0450デフォルトの名無しさん2016/04/20(水) 02:40:12.55ID:jyo5QKfK
>>446
> HTMLの<form></form>タグで、
> そこから送信されたデータの処理する
メールフォームはそれに含まれるよ。
0451デフォルトの名無しさん2016/04/20(水) 03:25:37.50ID:hNTaWlcr
>>450
うん、だからWordPressを使う人は、
フォームと聞いたら、メールフォームだけを限定していうのか、
<form></form>タグで行う処理全般を指すのか、
その境目の認識がよくわからないです。

まあ、某掲示板でこんなやり取りがあって質問したところです。
A「WordPressのフォームに関して……」DBが必要云々の質問
B「メールフォーム如きにWordPressを使うのはオーバースペック」
僕(あれ、メール以外にも色々あるよね。てかWordPressって、PHPで動いているCMSだよね
  それだと、フォームから来たデータを基に、DB登録とかCSV作成とか、データ編集とか色々あるよね?)
0452デフォルトの名無しさん2016/04/20(水) 03:55:52.29ID:TcGBKumn
Wordpress特有に文化をここで質問するのってどうなん
0453デフォルトの名無しさん2016/04/20(水) 03:57:25.84ID:3t709hpA
まともな質問はねーのか

> ID:3QX7LeE6
人生相談じゃなくてPHPの質問しろ
IQは個人差あるから仕方ねーよ
雑談スレ池

> ID:hNTaWlcr
PHP=WPみたいに語るんじゃねーよ
俺には投稿フォームであるコメント欄のイメージが浮かぶし
WPスレ池
0454デフォルトの名無しさん2016/04/20(水) 04:03:47.18ID:2dGZ41Su
>>453
PHPだよ

$total = $total + 1
0455デフォルトの名無しさん2016/04/20(水) 04:05:29.57ID:3t709hpA
それの何が質問なの?
0456デフォルトの名無しさん2016/04/20(水) 06:40:41.54ID:w5hbs5qX
>>435
Paginator の話だろ。
CakePHP, RoR などのフレームワークを使う

>>447
>$total = $total + 1

文法なんて、単なる取り決めに過ぎない。下なら理解しやすいかい?
$total ← $total + 1
0457デフォルトの名無しさん2016/04/20(水) 06:52:36.18ID:hNTaWlcr
>>453

少なくとも、イコールではないけど、PHPで行う範囲の中に、
WordPressは含まれるよ。
WordPressで作成したコンテンツの改修は、PHPの理解が薄いと限界があるわけだし。
0458デフォルトの名無しさん2016/04/20(水) 06:56:48.91ID:hNTaWlcr
>>402
PHPはバッチ処理の実行やシェルスクリプトような使い方もできるので、
Apache上では、いろいろ動けますよ。
とはいえ、そういうところは、基本的に表にでないし、動作確認がログファイルだけになるので、
そういう使い方があるという知識と実例をみないと結びつきにくいです。
0459デフォルトの名無しさん2016/04/20(水) 07:02:35.08ID:3t709hpA
PHPで行う範囲の中にってまるでPHPerにとってWPは必修みたいな言い方だなwww
それともWPはPHPで書かれてるっていう当たり前のことをドヤ顔でいってみたのか?
とりあえず専スレでやれ
0460デフォルトの名無しさん2016/04/20(水) 12:53:23.84ID:jyo5QKfK
>>451
何でその人にメールフォームじゃないよという話をしなかったのかがどうにも解せないんだけど
フォームはフォームであって、メールフォームは含まれるだけだ。
0461デフォルトの名無しさん2016/04/20(水) 15:14:06.00ID:spVU+LpI
PDOで、プレースホルダが展開されて
実行される直前のクエリを確認したいんだけど
どうしたらSQL文を見ることができますか?
0462デフォルトの名無しさん2016/04/20(水) 15:18:23.34ID:oXU9Jk7I
>>461
使用しているデータベースは?
データベースによっては、展開されない場合もあるし(こっちが多数派?)
0463デフォルトの名無しさん2016/04/20(水) 15:51:29.35ID:g9fYYFr2
展開の有無はエミュレーションのON/OFFで切り替えられるけど
どっちにしてもそのまま展開後のSQL文は取れないとは思う
0464デフォルトの名無しさん2016/04/20(水) 15:53:23.66ID:pQik9E63
これからPHPの基本からもう一度はじめるんだけど書籍は何がオススメ?
何年も前にweb制作の民間の職業訓練に行ったことがあって
xhtml1.0/css/Javascript/PHPを一通り勉強した。
xampp入れてphpmyadminから簡単なデータベースをGUIで作ってそれをphpからどうやって接続するのか?
どうやってデータベースからデータを取得するのか?
など本当に基本的なことをした。
ライブラリとフレームワークの違いも理解できてなくて、
当時は確かPEARってのを使ってた記憶がある。
ほんとにプログラミングド素人
0465デフォルトの名無しさん2016/04/20(水) 15:56:31.25ID:pQik9E63
その時に買わされた書籍は
基礎PHP (改訂3版) WINGSプロジェクトって本
これ今でもいい本なのかな?
0466デフォルトの名無しさん2016/04/20(水) 16:05:12.08ID:TcGBKumn
>>464
公式マニュアル読んどけ
0467デフォルトの名無しさん2016/04/20(水) 16:15:15.39ID:w5hbs5qX
山田祥寛(よしひろ)、翔泳社
10日でおぼえる jQuery 入門教室 第2版
10日でおぼえる PHP 入門教室、第4版、2012

この2冊は、必須
0468デフォルトの名無しさん2016/04/20(水) 16:47:04.98ID:pQik9E63
今の開発環境
NetBeans IDE 8.1 (PHPバンドル)
notepad++
Xampp5.6.19 (PHP5.6.19)

本番環境(自宅サーバ/CentOS6.7)
Apache 2.2.15
MySQL 5.1.73
PHP 5.3.3※レンタルサーバも5.3
0469デフォルトの名無しさん2016/04/20(水) 16:48:15.76ID:pQik9E63
>>467
ありがとう!
0470デフォルトの名無しさん2016/04/20(水) 16:56:38.76ID:TcGBKumn
PHP5.3とかサポート終わっとるやんけ
0471デフォルトの名無しさん2016/04/20(水) 17:50:24.79ID:pQik9E63
>>470
レンタルサーバは5.6利用可能たった。
自宅サーバーCentOS6.7はyum updateしても5.3.3が最新ですってなる。
0472デフォルトの名無しさん2016/04/20(水) 18:12:22.87ID:W+moKoI4
tarとってきてコンパイルして使えよ
0473デフォルトの名無しさん2016/04/20(水) 18:28:17.08ID:XJ2suwVk
リポジトリ追加すりゃいいだろ
epelとかrpmforgeとか
0474デフォルトの名無しさん2016/04/20(水) 18:48:27.95ID:pQik9E63
epelを追加してphp56をインストール中です。
今までphpのバージョンとか全く気にきにしていませんでした。
5.3,3が最新って出るからそれでいいやって使ってました。
5.5以上じゃなきゃ使えないもの(使えない関数?)ってあるんですね。今までそういうのに遭遇した事がなかったので。
0475デフォルトの名無しさん2016/04/20(水) 19:13:53.26ID:spVU+LpI
>>462-463
マジすかDB依存でしたか

MyちゃんSQL使ってるけど、DB側でPDOでもクエリログ取れるかどうか
ちょっと実験してくるわ
0476デフォルトの名無しさん2016/04/20(水) 19:27:34.85ID:1zVoxsrg
セキュリティがよくわからんからFuelphpとやらを使ってみることにしたけど面倒だね
0477デフォルトの名無しさん2016/04/20(水) 22:19:53.77ID:vRaGgTgt
phpの初歩的な質問が2つあります。

外部phpファイルをincludeし、HTMLタグの出力を行いたいのですが、
直接アクセスされた時に表示を防ぐ、スマートな方法はありますか?
先頭でif( empty(変数) ){ exit; }というのは考えました。

また、テンプレートを使って作れるようなページを、
わざわざphpの1ファイルずつにHTML展開しているソースがあるのですが、
あまりに冗長なので、何か将来的な個別変更を想定している意図があるように見えたのですが、
PHPの界隈の人たちには当たり前の事なのでしょうか?
0478デフォルトの名無しさん2016/04/20(水) 22:20:23.71ID:vRaGgTgt
ageさせていただきます
0479デフォルトの名無しさん2016/04/20(水) 22:40:53.37ID:c8GcwH6R
>>477
includeしただけで表示するのではなくて、出力部分を関数化やクラス化して
関数(メソッド)実行をしなければ表示されないようにするのも一つの手法。

下の質問は、単に横着してコピペした結果だと思う。
当然、PHPでもバッドノウハウだよ。
0480デフォルトの名無しさん2016/04/20(水) 22:46:29.32ID:1rGPQiSA
>>477
include対象のphpファイルは、外部からアクセスできない所においても大丈夫だよ
0481デフォルトの名無しさん2016/04/20(水) 22:52:58.88ID:vRaGgTgt
>>479
回答ありがとうございます。
関数で括る事は考えたのですが、PHPを読めない人にもHTML編集しやすい方法が良いと思いまして、
PHPコードの少ない方法を求めてました。

もう一つの方は、明らかにコピペの手間の方がかかっているような内容で、
コード冗長化に伴う労力の増加が一見してわかるようなコードでしたので、
もしかしたら、コードの水増しをする意図があったのかも知れません。
0482デフォルトの名無しさん2016/04/20(水) 23:00:30.46ID:vRaGgTgt
>>480
それは知りませんでした。しかし現在の環境ではDocRootより上にファイルを置くのが無理ですね。
でも他の時にかなり有効に使えそうです。ありがとうございます。
ところで、PHPプロセスの権限ってhttpdとは別になっているんですか?
0483デフォルトの名無しさん2016/04/20(水) 23:02:13.50ID:59Aeov/b
httpdの一部として動かしてるなら、基本的にはhttpdじゃねぇの
0484デフォルトの名無しさん2016/04/20(水) 23:05:00.33ID:W+moKoI4
httpd使ってるならば、いっそmod_rewriteとかでメイン以外へのアクセスをメインに飛ばしてしまうとか
0485デフォルトの名無しさん2016/04/20(水) 23:06:18.70ID:qspjNJo7
>>477
a. 拡張子を変えて、サーバの設定で見られなくする
b. includeされるファイルをサブディレクトリに入れて、そのディレクトリを見られなくする

おれは a と b の合いの子みたいなやり方だな。
templates みたいなディレクトリ作って .htaccess 置いてアクセス禁止にして、そこにファイル名も form.tpl みたいにして置いてる。
0486デフォルトの名無しさん2016/04/20(水) 23:27:33.87ID:hJ4omFpR
昨日質問した>>435です。
皆さんから色々なアドバイスを頂きなんとか形になりました。
ありがとうございます。

また質問で申し訳無いのですが、
CSVでデータを取得したところにデータを書き込みたいのですがどうやればできるでしょうか?
行数は分かっているので、CSVのn行目のデータを書き換えると考えてください。
0487デフォルトの名無しさん2016/04/20(水) 23:37:29.80ID:vRaGgTgt
>>483
ということはwww系に読み込ませる権限で置いておけば良いんですね。
何がリモート呼び出し的な物を使っているのかと思いました。

>>484
ググりました。ありがとうございました。
前にnginxで似たような事やったことあります。確かにこれもいいですね。

>>485
ものすごいわがままを言いますが、起動にothers権限が必要なのと、
運用が自分一人でないので、できれば.htaccessをも使わない方法を取りたいのです。
それでphp側で被includeを検出してくれるような物がないのかなと質問した次第です。

しかし、普段いわゆるフルスタック的な物を使ってるので、
どちらの設定方法も勉強になりました。ありがとうござました。
0488デフォルトの名無しさん2016/04/20(水) 23:39:48.31ID:aNm9/fCb
>>486
お前に付いた会社の教育担当に聞きなよ
0489デフォルトの名無しさん2016/04/20(水) 23:51:49.83ID:qspjNJo7
>>487
起動に others権限とかいまいち事情がわからんけど、例えばなんかの入力フォームを作ったとして、htdocs 配下の formX ディレクトリにそれを設置するとする。
で、/formX/form.php で一連のロジックを実装するとして、その画面は /formX/templates/ に nyuryoku.tpl、kakunin.tpl、kanryo.tpl として置くことにする。
で、この画面テンプレートを見えないようにするため、/formX/templates/.htaccess を置いてこんな内容にする。
order deny,allow
deny from all

というだけの話なんだけど、起動の話も複数人でやる話も何も関係ないように思うんだがどうだろう?
0490デフォルトの名無しさん2016/04/20(水) 23:53:29.77ID:hJ4omFpR
>>488
私の会社でPHPがデキる人は誰もいません。
私はJavaとか専門です。
ブログやってると言ったらHTMLができるならPHPもできるだろ?
という感じで私がやってるだけなのです。
0491デフォルトの名無しさん2016/04/21(木) 00:00:13.56ID:DGudhj+q
>>490
Javaでやれるなら、同じようなことを PHP でやればいいだけじゃない?
そうするに当たって何が分からないの?
0492デフォルトの名無しさん2016/04/21(木) 00:06:53.83ID:8VEbZp8D
>>489
私も正直よくわかりませんが、httpdプロセスそのものがothers扱いなのだと思います。

それと内容は理解しているつもりなのですが、
連携が疎なのと、権限の問題でこちらが自由に変更できないので、
.htaccessへの依存はできるだけ避けたいのです。
0493デフォルトの名無しさん2016/04/21(木) 00:09:41.62ID:8VEbZp8D
>>492
語弊がありますが、プロセスがothers扱いというのは、
もちろんOS上でという意味ではなく、抽象概念としての意味です。
0494デフォルトの名無しさん2016/04/21(木) 00:12:05.54ID:DGudhj+q
>>492
画面(>>489 で言うところの nyuryoku.tpl とか)は好きにいじるんでしょ?
.htaccess も同じ権限で好きにいじれると思うんだけど、なんか特別な制限でもあるの?ただのファイルだよ?
まあどうしても .htaccess は使いたくないというなら、画面を納めてるディレクトリ名を templates なんて安易な名前じゃなく、知ってないとわからないような名前にしちゃえばいいんじゃない?

つか、.htaccess 使わずに mod_rewrite 使うの?
そっちのがハードル高くね?
0495デフォルトの名無しさん2016/04/21(木) 00:22:07.96ID:DGudhj+q
あーもしかして、.htaccess って htdocs直下に置いてサイト全部の設定を書いて置いておくようなものだと思ってる?
別にそんな決まりはなくて、必要なディレクトリに必要な設定だけを書くこともできるよ。
>>489 で言ってるのも、画面開発チームの持ち物である templatesディレクトリに自分の持ち物として .htaccess を作り、自分の持ち物である templatesディレクトリについてだけのアクセスコントロールを書くんだよ。
0496デフォルトの名無しさん2016/04/21(木) 00:24:42.12ID:DGudhj+q
すまん紛らわしくなった
自分=画面開発チーム ね。
なんにしても .htaccess は必ずしも共有資産じゃないってことだ。
0497デフォルトの名無しさん2016/04/21(木) 00:37:05.85ID:0BsNpmsh
.htaccessは、フレームワークよっては標準的に付随するものもあります。
だから、必要に応じて、どこにでもおくことは可能です。
0498デフォルトの名無しさん2016/04/21(木) 00:45:44.53ID:8VEbZp8D
>>494-496
えーとですね、.htaccessは理解してないのではないですが、使えません。
そもそも画面開発者も別にいて、チームではなく、密な連携は取れません。

ロジック部分を変更できるのが恐らく自分だけなので、phpの方が安心なんです。
そもそも自分は運用保守担当じゃないので、誤って導入されなかったり、
削除したときでも普通に動いてしまう恐れがある時点で使えません。
0499デフォルトの名無しさん2016/04/21(木) 00:55:18.34ID:8VEbZp8D
それと誤解があるようですが、mod_rewriteも使えません。
サーバー設定を変更できない理由も知りません。
0500デフォルトの名無しさん2016/04/21(木) 00:56:55.82ID:tJ+xMH9p
>>498
それで mod_rewrite はおkなの??
意味ワカンネーw
.htaccess を置き忘れる心配はするけど、画面開発者にとって意味の無い if のオマジナイを忘れる心配は無いの??
マジ意味ワカンネーw
.htaccess なんてお前がロジックと一緒に置いてやればいいだろw
0501デフォルトの名無しさん2016/04/21(木) 01:00:50.80ID:OuYl89GW
まあhttpd.conf側だと他者が何のファイルかわからずに消去ってこたないな
一部で使わせると調子に乗ってあれこれやりたがったり俺も俺もも出てきやすいと危惧してるのかもしれん

ところで>>477後段はどんな感じなんだろう
includes/header.php includes/footer.php includes/menu.php とかでそれぞれ中身はベタhtmlとかだろうか
だとするとそれなりに利点はありそうだけど
0502デフォルトの名無しさん2016/04/21(木) 01:06:33.64ID:8VEbZp8D
>>500
もちろん同時に置くのはいいんですけど、それで足りません。
0503デフォルトの名無しさん2016/04/21(木) 01:08:53.97ID:DGudhj+q
>>499
あ、.htaccess を使いたくないというより、使えない環境を意識してるわけね。
だったら作業者だの権限だの言わずにそう言えばいいのに。
だったら推測されづらいディレクトリ式で充分じゃないかな。
画面側のスキルなんかを考慮してコードを分離してるにに、画面側にセキュリティーがらみのおまじないを要求するというのはナセンスだと思うよ。
サーバ設定で回避するのが一番確実だけど、事情を鑑みるにそれもやりづらいんだろうし。
0504デフォルトの名無しさん2016/04/21(木) 01:10:45.71ID:t1TQTu7E
DocumentRootの外にも置けない.htaccess程度のものも使えないっつうならおたくの環境で出来るように好きなようにやれば?って話なんだがな
そんなまともじゃない環境でやるならまともじゃない方法採るしかないんだし
0505デフォルトの名無しさん2016/04/21(木) 01:15:03.61ID:OuYl89GW
要は誰が判断するかの問題だなあ
httpdに判断させるか、.phpなり.htmlなり自身に判断させるか、クライアントに判断してもらうか
原理的にhttpd判断以外はどうしても <?php if(empty($var)) exit; ?>的な記述の追加は避けられない

jsにやってもらってもコード書き忘れたらNG&クライアント側の処理を外せるわけじゃない
httpdだと組織的なあるいは立場的な制約がありうる
画像とか.datとかに拡張子を変えておく手もあるけど確か今でもIEにはhtmlとして表示される

自身判断だと例えばheader();で転送させたりmeta http-equiv="refresh"で飛ばすなどしつつ、
本来の読み込み時にincludeではなくfile_get_contentsする手もある 読み込みは煩雑になるけど混入コードは減る
0506デフォルトの名無しさん2016/04/21(木) 01:15:36.58ID:DGudhj+q
>>501
よくやるよ
header やら footer なんてバンバン include するし、その画面表現の為だけの関数定義なんかもしちゃったりする。
例えば数値はカンマ区切りでマイナスの値は ▲ で表示する、みたいな特定数画面でしか使わないけど多用するルールとか。
0507デフォルトの名無しさん2016/04/21(木) 01:19:31.32ID:OuYl89GW
あ、includeするファイル自体をドットファイルにしてしまうって手もあるか(.htaccess同様の .filename 形式)
特に変えてなければhttpd.conf標準状態で通信対象外になるから
「設定変更」じゃないってことで場合によっては有効
0508デフォルトの名無しさん2016/04/21(木) 01:23:49.82ID:DGudhj+q
>>507
そのファイル名を端的に扱えない作業環境(windows とか)もあるから、画面みたいに量産するやつだと面倒この上ないかも。
.htaccess はがんばってひとつ作って、あとはコピーして使い回すw
編集だけはそのファイル名のままできるからな。
■ このスレッドは過去ログ倉庫に格納されています