△▲ WebProg 初心者の質問 Part19 ▼▽
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/03/06(金) 00:11:17ID:???質問したいけど、どうしたら良いか分からない。
そんなときは、ここに書き込んでください。
板の住人や、その他が、けなしながら、厳しく教えてくれるかも。
質問する前に、まずはここを読んでね。
【注意事項】
・質問する前にGoogleで検索してみましょう
http://www.google.co.jp/
・環境(ソフトウェアのバージョンなど)は、必ず書いてください。できるだけ詳しく。
後から情報を書き足す、いわゆる情報の小出しは極力避けてください。
・何がしたくて、何ができて何ができないのかを書きましょう
・マルチポスト(複数のスレッドで質問する行為)は絶対に禁止です。
・過去ログは必ず読みましょう。あなたと同じ質問をしてる人がいるかも知れません。
2ch 総合ガイド
http://www.2ch.net/guide/
お願い。
適切な、板、スレ、を発見した場合、誘導してあげましょう。
スレの性質上 age 進行でお願いします。
関連情報は
>>2-3辺り
☆前スレ☆
△▲ WebProg 初心者の質問 Part18 ▼▽
http://pc11.2ch.net/test/read.cgi/php/1219842559/
0581nobodyさん
2009/04/18(土) 14:26:07ID:???0582580
2009/04/18(土) 14:40:59ID:7woKrGtiEUCの場合、「猫.JPG」は「%c7%ad.JPG」、「馬.JPG」は「%c7%cf.JPG」でアクセスしています。
しかし、猫は表示されるのに馬は404です。熊も同様にやってますが、やはり404です。
先ほど別のサーバー(Apache/2.2.8 (Ubuntu))で試してみたのですが、
そちらではEUCでも猫・馬・熊ともうまく表示されました。
となると最初のサーバー(Apache/2.0.51 (Turbolinux))で
何か設定が違うのだと思うのですが、見当が付かずに困っています。
何か心当たりがあればアドバイス頂けると助かります。
0583nobodyさん
2009/04/18(土) 14:52:40ID:???0584nobodyさん
2009/04/18(土) 15:03:10ID:???0585580
2009/04/18(土) 15:12:09ID:???ファイルアップロードのプログラムを使うので、日本語も通したいと思います。
>>584
404なので、エラーログはFile does not existと出るだけです。
0586nobodyさん
2009/04/18(土) 15:31:09ID:???ls -1 *.jpg | od -cx とかしてファイル名のバイナリが期待どおりか
このへんは確認済み?
0587nobodyさん
2009/04/18(土) 15:31:21ID:???0588nobodyさん
2009/04/18(土) 15:31:43ID:???SetServerEncoding EUC-JP
てしたらどうだ?
0589nobodyさん
2009/04/18(土) 15:41:54ID:???0590nobodyさん
2009/04/18(土) 17:30:59ID:???0591nobodyさん
2009/04/18(土) 18:23:14ID:???URLエンコードって入門書読むとたまに
出てくるんだけど、別に無視しても
動くんだけど、もしかしてPHPの古いバージョンでだけ
気にしなければならない設定?
0592nobodyさん
2009/04/18(土) 18:26:53ID:???0593nobodyさん
2009/04/18(土) 18:32:25ID:???アップローダが出来上がらないことを祈る。
0595580
2009/04/19(日) 00:41:36ID:4BUZ2qormod_encodingを設定しても状況は変わりませんでした。
色々試したところ、どうもApacheが常にUTF-8でファイルを探しにいっているようです。
「馬.JPG」をEUCでURLエンコードし、「%c7%cf.JPG」としてアクセスした場合、
サーバー上に、ファイル名の文字コードをEUCとして保存した「馬.JPG」があっても404になります。
しかし、UTF-8で保存した「馬.JPG」がある場合、画像が表示されました。
EUCでURLエンコードしてアクセスしているにもかかわらず、
UTF-8で名前が付けられたファイルが呼び出されていることになるので、
Apacheが内部で勝手に変換しているようです。
この変換をさせないためには、Apacheのどの設定を変えればよいでしょうか?
0598580
2009/04/19(日) 15:52:32ID:???文字コードを変更するなら、>>580で書いてる通りUTF-8が通るのでそれを使います。
ただ、今回はEUCの日本語ファイル名を使用したいので、
UnicodeもUTF-8も使用できません。あくまでEUCが対象なのです。
0599nobodyさん
2009/04/19(日) 16:10:07ID:???0601nobodyさん
2009/04/19(日) 20:00:48ID:???jcode.plとかいうものがひんぱんに
出てきていたのですが、
PHPを学びはじめてから
まったく出てきません。
なぜでしょうか?
0604nobodyさん
2009/04/19(日) 23:03:19ID:???ちうか、perl界隈でもjcode.plを使わないのがトレンド。だいたい2000年ごろくらいまでか、使われてたのは。
jcode.plが出て来たら、問答無用で時代遅れと見なしていい。コードが古いのか書いてる奴が古いのかは知らんが。
Perlのライブラリであるjcode.plがPHPに登場しないのは当然の話だな。
お前が今まで書いたPerlのコードだって、PHPで動かそうとしたって動かないだろ。
0605nobodyさん
2009/04/19(日) 23:21:40ID:???0608nobodyさん
2009/04/19(日) 23:39:16ID:???0609nobodyさん
2009/04/19(日) 23:53:28ID:???「クエリーストリング」
という用語がしつこく出てきましたが、
PHPの教科書にはほとんど出てきません。
なぜでしょうか?
0610nobodyさん
2009/04/20(月) 00:20:53ID:???感謝されるやつと感謝されないやつがいるっていう現実がすべてだろ。
悔しかったら感謝されるようなレスしろよ。
0611nobodyさん
2009/04/20(月) 01:01:45ID:???fileテーブル
id,name,type,size,blob
こんなかんじのテーブルなのですが、
select id,name,type,size from file
のように、取得するフィールドを指定すれば無駄にblobがselectされるのを防げるのでしょうか?
それとも、
file_bin
id,file_id,blob
のように、blob型だけ別テーブルに分けたほうが良いのでしょうか?
よろしくお願いします。
0612nobodyさん
2009/04/20(月) 01:15:49ID:???0613nobodyさん
2009/04/20(月) 01:32:34ID:???後者のように分割する意味はほとんどないし、無駄にJoinが必要になる
ファイルが何GBもあるようなときはInsert/Update中にFileテーブルがロックされるのを防げることがあるかも?ないかも
0614nobodyさん
2009/04/20(月) 03:13:26ID:???そもそも板違いだな。DB関係の板で質問してみたら?
0615611
2009/04/20(月) 11:51:13ID:???>>612-613
きちんとselectで指定すれば、無駄に読み込まれることはないようですね。
>>ファイルが何GBもあるようなときはInsert/Update中にFileテーブルがロックされるのを防げることがあるかも?ないかも
これは気がつきませんでしたが、
今回はそこまでアップロードに時間がかかるようなファイルはアップロードしないと思うので、問題ないと思います。
OpenPNE3などのテーブル構造を見てみたら、
fileとfile_binなどに分けられていたので、
なにか意味があるのかなと思い質問したのですが、
それほどメリットはないという認識でよいのでしょうか?
>>614
処理系というのは、ここではデータベースのことでしょうか?
書き忘れてしまったのですが、今回使っているのはMySQLです。
板違いということについては申し訳なく思っています。
しかし、WebProgに関係ないわけでもないので、どうかご容赦ください・・・
0616nobodyさん
2009/04/20(月) 21:04:45ID:???どこのBlogでもそうですが、以下のような形式で、ユーザIDを含むURLにアクセスすると、そのユーザのページにアクセスできます。
例)
http://<ユーザID>.example.com/index.html
http://example.com/<ユーザID>/index.html
新規登録で、ユーザを作成、DBに格納→DBにあるユーザIDを上記形式でそのユーザのページにアクセスできるようにするテクニックを教えていただけませんか?
0618nobodyさん
2009/04/20(月) 21:14:01ID:???0619616
2009/04/20(月) 21:35:07ID:???web.xmlからどうにかできないか考えていたんですが、やりかたが思い浮かばないですし、
まず、これを実現するにあたる基となる何かが必要だと思うのですが、
今のところ、考えてみたのは、
ユーザ登録後、OSレベルでDir(ユーザID)掘って、
Request側) 指定Dir配下を検索→ヒット
Response側) http://<ユーザID>.example.com/→アクセス可
たぶんできると思うのですが、これ以外にやりかたあるのでしょうか?
上記のやり方は格好わるいし。
0620nobodyさん
2009/04/20(月) 21:38:34ID:???ほい
http://httpd.apache.org/docs/2.2/ja/mod/mod_userdir.html
0621nobodyさん
2009/04/20(月) 21:56:38ID:???0622616
2009/04/20(月) 22:02:49ID:???ありがとう。
全くその通りです。
Apache modにこんなのあるんですね。(常識?
大変助かります。
やっぱり、ユーザ登録後、mkdirしないとダメかな。
希望としては、ユーザ毎のDirectory無しで。。。(・ω・`)
0623nobodyさん
2009/04/20(月) 22:05:20ID:???0624nobodyさん
2009/04/20(月) 22:18:05ID:???www.example.com/hoge/username/fuga.html
hoge.cgiとかを動かして、拡張子をmultiviewとかで隠蔽すれば、上記のURLでアクセスさせられる。
username/fuga.htmlはPATH_INFOで受け取ってアプリケーション側でなんとかする。
やった事無いけど、DirectoryIndexも併用すればexample.com/username/でアクセスさせられると思う。
mod_rewriteを使っていいなら、パスはなんでもアリになる。
リクエストURLを正規表現で書き換えられるから、事実上なんだってできる。
独自ドメインは流石にDNSとかバーチャルホストをどうにかしないといけないと思うのだが、その辺は良く分からん。
0625nobodyさん
2009/04/21(火) 04:55:48ID:TMA0XNZYわざわざ上書きせずに、最初からhttpヘッダに書いておいた方がよくないですか?
何でわざわざmetaタグを書かなければいけないのですか?
0626nobodyさん
2009/04/21(火) 05:33:53ID:???ローカルに保存された場合とかProxyに削られちゃ場合とかには役に立つかもってことかな
また、コンテンツ内のスクリプトタイプ等をデーモンが調べてヘッダを生成するってのは、
やってできないことはないが100人いたら100人にやめろと言われる実装だと思う
で、metaタグとはその名の通りコンテンツのメタレベルに言及するためのタグだから
コンテンツがやり取りされた状況(HTTPなりなんなり)について干渉する方法があることに
特に不思議な点はないと思う
UAに対する通知の仕組みをあたらしく作らずにHTTPヘッダを流用したのは
俺は悪くない選択だと思うけど、その辺どういう議論があったんだろうね
0627nobodyさん
2009/04/21(火) 05:55:10ID:???$a[0]=2;
どっちが正式な書き方?
0628nobodyさん
2009/04/21(火) 06:03:59ID:???あと言語は何?
0630nobodyさん
2009/04/21(火) 07:39:04ID:???0631nobodyさん
2009/04/21(火) 11:00:11ID:???0632nobodyさん
2009/04/21(火) 11:18:14ID:???0633nobodyさん
2009/04/21(火) 12:16:37ID:???example($sample, $sample2, $sample3);
function example($sample, $sample2, $sample3){
require_once 'test.php';
}
test.phpの中に同様に$sample 〜 $sample3があるのでtest.phpに引数として
渡したいのですが上記をどのようにすればtest.phpに$sample〜$sample3を渡すことで出来ますか?
functionに引数として渡せていることは確認しているのですが、そこから先のtest.phpへの引き渡し方が分かりません。
ご存じの方いらた是非ともアドバイスいただきたいです。
0634nobodyさん
2009/04/21(火) 12:29:51ID:???変数名のバッティングは検出しづらいバグの温床だからかぶらないようにするべきだとおもうけど
0635nobodyさん
2009/04/21(火) 12:33:02ID:???0637nobodyさん
2009/04/21(火) 15:57:53ID:???インスタンスなしの場合
test::hogehoge( $sample, $sample2, $sample3 );
インスタンスのコンストラクタに渡す場合
$test = new Test( $sample, $sample2, $sample3 );
インスタンスのメソッドに渡す場合
$test = new Test();
$test->hogehoge( $sample, $sample2, $sample3 );
0638nobodyさん
2009/04/21(火) 16:09:32ID:???0639nobodyさん
2009/04/21(火) 18:42:48ID:???0640nobodyさん
2009/04/21(火) 19:59:49ID:???(1)PHP
(2)javascript
(3)MySQL
の3つ?
0641nobodyさん
2009/04/21(火) 20:04:34ID:???0643nobodyさん
2009/04/21(火) 22:59:06ID:???PHPはウンコだから文字列と数値を区別できない。同じ意味なので、どちらが正しいという事も無い。
PHPでそう書くと、前者の代入結果は後者で上書きされ、なかった事になる。
常識的な他の言語では、両者は別のものなので、どちらが正しいという事は無い。
$a['0']=1;
$a[0]=2;
echo $a['0']; // PHPだと2。ふつうは1。
echo $a[0]; // 2
echo count($a); //PHPだと1。ふつうは2。
>640
PHPで何をしたいかによる。
0644nobodyさん
2009/04/22(水) 16:58:14ID:???textareaに記入後はheader('Location: ./index.html');でトップ画面に
飛ばすようにしてますが、Locationの記述行数で下記のエラーが発生します。
Warning: Cannot modify header information - headers already sent by (output started at D:\xampp\htdocs\memo\memo.php:1) in D:\xampp\htdocs\memo\memo.php on line 20
headerの構文には問題ないと思うのですがどのような原因が考えられるのでしょうか。
0645nobodyさん
2009/04/22(水) 17:09:14ID:???0646644
2009/04/22(水) 17:29:09ID:???こんなヘタレ質問に速攻で答えてもらってありがとうございます。
ヘッダの前にはfopenでファイルを開いて書き込みをしているだけなんですが
それがダメということでしょうか。
ヘッダより下に書いたら実行されないのでどうしてもヘッダの前で処理を行う必要があるのですが
出力の意味を間違ってますか?
0647nobodyさん
2009/04/22(水) 17:34:17ID:???ってphpの場合<?php ?>で囲まれた部分以外が先にあっても駄目だけど
0648644
2009/04/22(水) 17:49:39ID:???たびたびの素早い回答ありがとうございます。
それは困りましたね。
phpの内容は
1.フォームからデータ受け取り
2.受け取ったデータを適すとファイルに追記
3.フォームに戻る ← ここでLocation
という構造になってます。
3のファイルに追記してるというのが標準出力になると思うんですが、
この場合はどうやれば元のフォーム画面に戻す事が出来るんでしょうか。
0649nobodyさん
2009/04/22(水) 17:53:26ID:???ファイル始まり
<?php
ファイル出力とかの処理
header();
?>
ってやればいいっしょ
0651644
2009/04/22(水) 18:07:05ID:???回答ありがとうございます。
試しにmemo.phpを
<?php
header('Location: ./index.html');
?>
の3行だけにしてみたのですが、それでも下記のエラーが出てきました。
Warning: Cannot modify header information - headers already sent by (output started at D:\xampp\htdocs\memo\memo.php:1) in D:\xampp\htdocs\memo\memo.php on line 2
何か別の問題がありそうな気がしますが、思い当たる部分がないです。
0652nobodyさん
2009/04/22(水) 18:15:01ID:???何かヘッダの前に送出されているはずだから、それを確認してみたら
ありがちなのはメモ帳で編集しててBOMがくっついてるパターンとか
しかしiniでoutput_bufferingが指定されていれば、出力しても4kb程はバッファにたまるから大丈夫なはずなんだけどね
0653nobodyさん
2009/04/22(水) 18:17:15ID:???0655nobodyさん
2009/04/22(水) 18:28:40ID:???0656nobodyさん
2009/04/22(水) 18:29:16ID:???0657nobodyさん
2009/04/22(水) 18:45:24ID:???0658nobodyさん
2009/04/22(水) 19:16:10ID:???0659nobodyさん
2009/04/22(水) 19:38:21ID:???ナイワwwwwwwwwwwwwwwwww
0660nobodyさん
2009/04/22(水) 19:53:50ID:???「標準出力」という言葉の意味がようやくわかった気がする。
「○○が標準出力です」
って説明よりも、
「XXは標準出力ではありません」
っていう説明のほうが理解しやすい気がする。
0661nobodyさん
2009/04/22(水) 20:04:27ID:???0663nobodyさん
2009/04/22(水) 23:22:22ID:???ファイルが標準出力じゃない ということを理解したんだよ
まあ、それで
>「標準出力」という言葉の意味がようやくわかった気がする。
というのはちょっとどうかと思うが
0664nobodyさん
2009/04/22(水) 23:37:49ID:???0665nobodyさん
2009/04/23(木) 01:49:32ID:???0666nobodyさん
2009/04/23(木) 08:18:13ID:???ファイルをUnicodeで保存しているのなら、
一度、試しにEUCで作ってみるといい。
そうすると、>>655の意味が判るかもしれない。
0667nobodyさん
2009/04/23(木) 10:04:50ID:???標準入出力=ファイル だと信じて疑わないと躓く要因になる。
0668nobodyさん
2009/04/23(木) 10:50:05ID:???0669nobodyさん
2009/04/23(木) 11:25:56ID:???0670nobodyさん
2009/04/24(金) 20:17:21ID:???pearのフロントエンドっていうのは、
public_htmlの外にインストールしなければいけないの?
でもそれだとブラウザでアクセスできなくない?
だからpublic_htmlの中にインストールして、
そこのディレクトリにパスワードでアクセス制限をかけるの?
0671nobodyさん
2009/04/24(金) 20:41:30ID:???0672nobodyさん
2009/04/24(金) 20:44:21ID:???0674nobodyさん
2009/04/24(金) 23:42:03ID:???0676nobodyさん
2009/04/25(土) 00:06:23ID:???0677nobodyさん
2009/04/26(日) 19:46:22ID:HwIYAsBtPHPと一緒に使うために必要なバージョンはかわらないんでしょうか?
0678nobodyさん
2009/04/26(日) 21:35:32ID:???PHP、javascript、MySQL
この3つは、デフォルトでガチ。さらに、それプラス、
XML,PDF、FLASH(actionscript)
も必要だと思う。さらに
ubuntu
の知識も必要だよね。他にも何かある?
0679nobodyさん
2009/04/26(日) 23:37:21ID:???0680nobodyさん
2009/04/26(日) 23:52:36ID:???同じく、UbuntuじゃなくてLinux一般の知識。つうかUnix系OSの知識。
XMLにはそもそも学ぶ事はほとんど無い。
PDFは果てしなくどうでもいい。
他に必要なのは
各ブラウザの特徴。
Apache。
PHP以外の言語なにか最低ひとつ。
■ このスレッドは過去ログ倉庫に格納されています