【PHP】下らねぇ質問はここに書き込みやがれpart12

このエントリーをはてなブックマークに追加
1nobodyさん
PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい

・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
【PHP】くだらねぇ質問はここに書き込みやがれpart9
http://pc8.2ch.net/test/read.cgi/php/1125716012/
【PHP】下らねぇ質問はここに書き込みやがれpart10
http://pc8.2ch.net/test/read.cgi/php/1127581425/
【PHP】下らねぇ質問はここに書き込みやがれpart11
http://pc8.2ch.net/test/read.cgi/php/1129582431/
2nobodyさん:2005/11/01(火) 18:05:41 ID:???
2げと〜。セッションの渡し方がおかしい、から再開。
3nobodyさん:2005/11/01(火) 18:13:53 ID:2mWy/qga
ImageMagickをPHPから使用しています。
文字の描画についてです。

フォントはインストールされているものではなく、
/home/hoge/fonts/
というフォルダを作りttfファイルを入れているだけです。

<?php
$convert = "/usr/local/bin/convert";
$text = "Japan日本語";
$text = mb_convert_encoding($text, "UTF-8", "SJIS");
$font = "/home/hoge/fonts/ipam.ttf";
passthru("convert -encoding UTF-8 -size 620x100 xc:transparent -font $font -pointsize 72 -draw \"text 20,65 $text\" test.png");
?>

のように$tectの部分が「英語+日本語」なら表示されるのですが、
「日本語のみ」の場合文字を描画することができません。

どこが悪いのでしょうか?
4nobodyさん:2005/11/01(火) 21:58:18 ID:???
>>1
つかこれも貼っとけ(゚Д゚ )ゴルァ!!

↓くだらなくない質問はこちらへ
【PHP】質問スレッドpart30【php】
http://pc8.2ch.net/test/read.cgi/php/1130190606/
5nobodyさん:2005/11/01(火) 22:17:38 ID:1KpuORu0
ついでにこれも貼っとく??
↓おいしい朝ご飯についてはこちらへ
【php】part29【php】
http://pc8.2ch.net/test/read.cgi/php/1120611474/
63:2005/11/01(火) 23:43:18 ID:???
スミマセン。
本スレで聞いてきます。
7nobodyさん:2005/11/02(水) 01:03:27 ID:OGh2Qb66
【情報】中韓ですら米国産牛肉の輸入を禁止。日本は中韓に先んじて輸入再開。

2004年度に米国では38万8,000頭について狂牛病感染検査を行ったが最近まで
ジョハンズ長官は検査頭数を4万頭に削減するよう検討させていた。現在のところ、

日本、韓国、香港、台湾、ロシア、中国が米国産牛肉の輸入を禁止している。

ジョハンズ長官の代理を務めるチャールズ・ランバート氏と
デイル・ムーア氏はいずれも全米肉牛生産者・牛肉協会出身者。

(業界団体の人間が官僚になるのは米農務省の通例のようになっている。)

日本から派遣された衆院農林水産委員会の調査団を恫喝したとされる、
米農務省海外農務担当次官J・B・ペン氏は牛肉業界ロビイスト出身。
米農務省広報官エド・ロイド氏の説明によると、

ペン氏は恫喝などしておらず、日本側との会見は「和やか」であったという。

日本のPR業界には朗報:米農務省はアメリカ食肉輸出連合向けに、
1205万5,587ドル(約13億1,757万円)の販促費拠出を決定した。

http://human5.2ch.net/test/read.cgi/ms/1111209733/374-

成長ホルモンを使っているアメリカの牛肉をEUは全然輸入していない。
http://human5.2ch.net/test/read.cgi/ms/1111209733/202-
8nobodyさん:2005/11/02(水) 01:36:51 ID:???
php part29 向きの話題だな
9nobodyさん:2005/11/02(水) 02:24:33 ID:fpJz6w46
PHPでサーバサイド側のセッション管理をした場合、例えばフォームを
行き来する場合はどうなるのでしょうか。

hiddenでセッションIDを持ち歩く必要性があるという解釈でよいの
でしょうか。
10nobodyさん:2005/11/02(水) 02:27:33 ID:???
11nobodyさん:2005/11/02(水) 02:35:50 ID:???
>>10
ごめんなさい。
本当に必要に迫られていたとはいえ、してはいけないことを
してしまいました。
以後、このようなことは絶対しないことにします。
すみませんでした。

>>9の書き込みは無視してください
12nobodyさん:2005/11/02(水) 03:18:12 ID:???
Σ('A`) PHPセッションスレってあったのか
13nobodyさん:2005/11/02(水) 04:13:08 ID:ldBunQZE
PHPカルチャーでは
true/falseは大文字/小文字どっちで表記するのがスタンダードですか?
14nobodyさん:2005/11/02(水) 07:27:08 ID:???
>>13
ttp://www.php.net/manual/ja/language.types.boolean.php

論理型(boolean)
論理型は、最も簡単な型です。boolean は、真偽の値を表 します。この値は、TRUEまたはFALSEのどちらかになります。
構文
booleanリテラルを指定するには、キーワードTRUE またはFALSEを指定してください。両方とも大文字小 文字に依存しません。
15nobodyさん:2005/11/02(水) 07:29:06 ID:???
>>13
マニュアルは大文字使ってる
PEARでは小文字に統一されてる
16nobodyさん:2005/11/02(水) 08:15:01 ID:???
俺は小文字
17nobodyさん:2005/11/02(水) 11:55:40 ID:ys+/VXrQ
外部ページのタイトルを取得する方法ってある?
18nobodyさん:2005/11/02(水) 12:01:58 ID:???
>>17
ある
19nobodyさん:2005/11/02(水) 12:03:34 ID:???
よし、それを教えれ。
20nobodyさん:2005/11/02(水) 12:39:12 ID:???
あのーRSSのことで申し訳ないのですが、
RSSのURL部分で同じURLを複数使うとリーダーの方でエラーが出ます。
gooリーダーだと一つだけしか読み取れません。
RSSで同じURLを複数利用することは不可能でしょうか?
21nobodyさん:2005/11/02(水) 12:55:42 ID:???
>>20
サチコさんや、PHPはまだかいのぅ
22nobodyさん:2005/11/02(水) 13:27:36 ID:???
$_SERVER['PHP_SELF'] と $_SERVER['SCRIPT_NAME'] 、おまいらどう使い分けてる?
23nobodyさん:2005/11/02(水) 13:33:19 ID:???
>>22
path infoがついたときの値が違う。
24nobodyさん:2005/11/02(水) 17:48:41 ID:okZwkysM
http://pc8.2ch.net/test/read.cgi/php/1129582431/
上記のようなURLから一部(例えば1129582431の部分)を抜き出して表示させたいです
現在無い頭を絞って以下のようなやりかたでやっていますが
もっと上手い方法を教えて頂けないでしょうか?
$data= implode("/", "http://pc8.2ch.net/test/read.cgi/php/1129582431/ ");

2524:2005/11/02(水) 17:51:01 ID:okZwkysM
24だとやりたい事が説明不足なので追記です
後ろから数えて1番目の部分だけ抜き出したいです
26nobodyさん:2005/11/02(水) 17:51:20 ID:???
explodeじゃないのか?
世紀氷原使え。
2724:2005/11/02(水) 17:52:37 ID:okZwkysM
すみません
explode
ですね
28nobodyさん:2005/11/02(水) 17:52:56 ID:???
29nobodyさん:2005/11/02(水) 17:54:54 ID:???
$hoge = explode("/",URL);
echo $hoge[count($hoge)ー2];
とか?
3024:2005/11/02(水) 17:55:37 ID:okZwkysM
>>26
>>28
ありがとうございます
31nobodyさん:2005/11/02(水) 19:25:19 ID:5FYlO/ak
WindowsでApache入れてphpを動かそうとしています。
auto_prepend_fileで指定したいファイルのPATHに
スペースがあるためか読み込めないのですがどうしたら良いのでしょうか?
32nobodyさん:2005/11/02(水) 21:59:29 ID:???
>>31
ディレクトリ名変更
33nobodyさん:2005/11/02(水) 22:15:04 ID:???
Program Files だったりして・・・
34nobodyさん:2005/11/02(水) 22:32:05 ID:???
>>31
確証は何も無いけど、rawurlencode してみれば?
35nobodyさん:2005/11/02(水) 23:08:00 ID:???
>>31
php.iniの話だよな?

ttp://jp2.php.net/manual/ja/ini.core.php#ini.include-path

−−抜粋−−
auto_prepend_file (string)
 メインファイルの前に自動的に付加されるファイルの名前を 指定します。
 このファイルは、include() 関数のコール時 と同様に読み込まれます。
 このため、include_path が使用されます。

 特別な値 none を指 定すると、ファイルを前に追加する機能は無効となります。
−−抜粋オワリ−−

だもんで、include_pathでディレクトリを指定して、auto_prepend_fileはファイルだけ指定?
auto_prepend_fileじゃないけど、うちはinclude_pathやらextension_dirにprogram filesみたいなスペースの有るディレクトリ指定しても問題無いよ。


言ってる事間違ってたらゴメン。
36nobodyさん:2005/11/03(木) 00:31:12 ID:TOE31wc5
http://www.hardened-php.net/advisory_202005.79.html
http://www.hardened-php.net/globals-problem
http://blog.ohgaki.net/index.php/yohgaki/2005/11/02/phpa_rc_fei_a_oa_oa_fa_sa_le_acsa_oe_afp

PHPに深刻な脆弱性がある事が発表されました。今まで見つかったPHPの脆弱性の中でも「最悪」の脆弱性です。全てのPHPユーザは今すぐ対処を行う必要があります。

こんなん見かけたんですが
37nobodyさん:2005/11/03(木) 01:18:54 ID:1YkpjiEQ
IDとパスワードを認証させるためのセッション周りを作っているのですが、
$_SESSION["hoge"]は$_POST["hoge"]のように変数を書き換えられないと
考えて良いでしょうか?
例えば、POST変数は他サイトからPOSTすれば容易に変更が可能になるかと思います。
SESSION変数ではこの点は心配しなくてもいいでしょうか?

具体的にはIDのみをSESSION変数として格納して持ち歩くか、
ID/PASS両方をSESSION変数として持ち歩くかで悩んでいます。
SESSION変数を外部から書き換え不可能なのであれば、
IDが書き換えられる心配が無いので、
IDのみ持ち歩くだけでも問題ないと思いますが、
もしそうでないのであれば、
持ち歩くページ毎に$_SESSION["ID"]と$_SESSION["PASS"]を
利用して認証を行わせる方法が必要かなと考えています。

どうかアドバイスお願いします。
38nobodyさん:2005/11/03(木) 01:43:21 ID:???
ちょいっと聞きたいんだけど
レンタルサーバーのインストールされた物の情報を見る方法ってどうやるんだっけ?
前どっかで見つけたんだがそのサイト忘れちゃった
***.phpで1行ぐらいの何かを追加すれば見れると思ったんだけど
3937:2005/11/03(木) 01:44:36 ID:???
>>38
phpinfo.php
4037:2005/11/03(木) 01:45:31 ID:???
>>38
間違えた、スマソ
phpinfo();
41nobodyさん:2005/11/03(木) 01:53:54 ID:???
>>37
セッション変数は *基本的* に外部からは書き換えられない、という前提でいいよ。
PHPそのもののバグやサーバーのセキュリティの問題で、可能性がゼロと言えないのは確かだろうけど。
一般的にはログオン後はID(ユーザーIDのことだよね?)だけをセッションで持ち回るけど、
認証の処理が軽いのなら各ページ毎で認証チェックをしても別にいいと思う。貴方のポリシー次第。
普通は、そこの部分よりもセッションハイジャックの防止を色々と考慮するんじゃないかな。
42nobodyさん:2005/11/03(木) 01:57:06 ID:???
>>37
$_SESSIONの中身自体は外部から書き換えられるって話は今のとこ聞いたことないけど、セッションハイジャック対策としてパスワードみたいなの持ち歩かせるってのはあるかもね。

>>38
つ <?=`ls /bin /usr/bin`?>
4342:2005/11/03(木) 01:58:37 ID:???
>>41
おもっきしかぶった orz
44nobodyさん:2005/11/03(木) 02:29:41 ID:???
>>40
THX!!
45nobodyさん:2005/11/03(木) 04:32:04 ID:???
>>42
煽りではなくて教えて欲しいんだが、セッションハイジャック対策として
パスワードのような物セッションに持たせるのは有効なのか?
46nobodyさん:2005/11/03(木) 04:40:42 ID:q0r4E/Gh
配列の値で重複した値を消去するには
どうしたらよいでしょうか?
{2,4,3,2,4,6} → {2,3,4,6}
こういう感じです。
47nobodyさん:2005/11/03(木) 04:42:56 ID:???
array_unique()じゃだめか?
48nobodyさん:2005/11/03(木) 06:57:37 ID:???
GLOBALSの問題って$_SESSIONとかも書き換えられるの?
49nobodyさん:2005/11/03(木) 07:38:19 ID:q0r4E/Gh
>>47
なんかそれでよさそうです。
どうもありがとうございますた。
50nobodyさん:2005/11/03(木) 07:56:32 ID:4j0uSvZA
4.4.0以前のものは最悪のセキュリティホールがあるとの事だったので
4.3.11から4.4.1にバージョンアップしました
やり方は設定をそのまま引き継ぐ為、php.ini以外のファイルを全て上書きしました
Apache2のサーバモニタにはPHPのバージョンは4.4.1と表記されているのですが
phpinfoで調べると4.3.11のままでした
phpinfoの表記も4.4.1にするにはどこを変えれば良いんでしょうか?
51nobodyさん:2005/11/03(木) 08:11:53 ID:52LMl42Q
すみません。ほんとくだらない質問なので。
初心者です。
メールを一括送信するCGIを探してます。
送信先の一覧が管理でき、送信したメールに名前を表示できるようなやつです。
もちろんフリーで
52nobodyさん:2005/11/03(木) 08:14:50 ID:???
メーリングリスト? スパム?
53nobodyさん:2005/11/03(木) 09:25:29 ID:e6YB+Wfp
PHPでファイルのダウンロードをさせています。
ダウンロード自体は成功しますが、そのあとページを移動してもブラウザのURLが固定され変化しなくなります。
なんとかならないでしょうか?

header("Content-type:text/plain");
header("Content-Disposition: attachment; filename=readme.txt");
header("Content-length: " . filesize("readme.txt"));
readfile("readme.txt");
54nobodyさん:2005/11/03(木) 10:36:18 ID:???
セッションハイジャック対策の一番簡単で低効果のものは、
セッション発行時のIPもセッション情報に保持して、突合せ。
ただし、接続ごとにIPの変わる可能性のある携帯電話では別の仕掛けが必要。

で、FA?
55nobodyさん:2005/11/03(木) 11:22:01 ID:4j0uSvZA
スマソ
この板で質問するような内容じゃありませんでしたね
自宅鯖板で聞いてきます
56nobodyさん:2005/11/03(木) 11:33:52 ID:???
>>54
NATやプロキシ経由で来られると、そこからのIPはみんな一緒になっちゃうから確かに低効果だよね。
漏れはIPと$_SERVERで得られる情報(HTTP_USER_AGENT, HTTP_ACCEPT, HTTP_ACCEPT_LANGUAGE等)で
付き合わせているけど、効果があるのかな。
考え出すと激しく不安…
みんなどういう情報で付き合わせてるんだろう。
57nobodyさん:2005/11/03(木) 14:06:28 ID:???
def.txt
--内容--------
def
--------------

def.txtの内容をabcに変えたいのですが、

$fp = fopen("./def.txt" "w");
fwrite($fp,"abc");

これでは abcdef になってしまいます。
ヘルプミー
58nobodyさん:2005/11/03(木) 14:21:43 ID:???
>>57
"w" で fopen すると元のファイルはサイズ 0 になるから最終的には
abc だけのファイルになって、abcdef にはなるはずないけど。
何か勘違いしていない?
後、書き間違いだったらいいけど、"./def.txt" と "w" の間は , が必要。
59nobodyさん:2005/11/03(木) 14:27:01 ID:3fnwo6aV
PHP4.3.10 以下と PHP4.4.x の次の差異
>ソースコード埋め込み定数参照の仕様が変更されているため
って、具体的になんのこと?
60nobodyさん:2005/11/03(木) 15:12:18 ID:???
>>59
引数に参照を期待している関数に対して、変数以外が渡せなくなった。

例えばこんなコード。
PHP4.3.10 では正常に動作し、3 と表示される。
PHP4.4x ではエラーになる。
<?php
echo array_pop(explode('-', '1-2-3'));
?>

こう書けばどちらでも正常に動作する。
<?php
$work = explode('-', '1-2-3')
echo array_pop($work);
?>
61nobodyさん:2005/11/03(木) 15:24:34 ID:???
6259:2005/11/03(木) 15:51:31 ID:???
>>60
なるほど、そういうことなのか。
でも PHP4.3.10 でも、 function hoge(&$str) みたいに定義した関数を hoge("unko") のような形では
呼び出せなかった気がするけど、気のせい?

しかし、その手の問題なら、ソースの中を探すのが大変だな。
ちょっとした検索ツールを作らなくちゃいけなそうだな。
63nobodyさん:2005/11/03(木) 16:00:10 ID:???
結局、>>36はどういうバグ?
$GLOBALSを使わなければ問題ないの?
64nobodyさん:2005/11/03(木) 16:20:08 ID:???
65nobodyさん:2005/11/03(木) 17:02:41 ID:???
たいして話題になってないということは、どうでもいいバグってことでFA
66nobodyさん:2005/11/03(木) 17:08:42 ID:???
>>65
register_globals = On で使ってる環境がそれほど多くないってことなんじゃない?
該当環境だったら、結構致命的な気がする。
おれもこの際だからPHP4.4.1にアップデートしようと思ってはみたけど、なにやら mb_send_mail に
バグなんだか仕様変更なんだかがあるらしく、見送りたくなってきたところ。
67nobodyさん:2005/11/03(木) 17:23:12 ID:???
register_globals = On だと普通に脆弱なコードだったりするからなぁ..
68nobodyさん:2005/11/03(木) 17:25:10 ID:???
このところyumばかりだったから、ソースからのアップデートのやり方忘れちゃった。
69nobodyさん:2005/11/03(木) 17:56:06 ID:???
>>63がほんとに現れた件w
70nobodyさん:2005/11/03(木) 19:04:00 ID:???
register_globalsがOnといえばXRE(ry
71nobodyさん:2005/11/03(木) 19:14:46 ID:???
なんでココではアナウンスされない?
http://www.php.net/
72nobodyさん:2005/11/03(木) 19:24:32 ID:???
register_globals = Off で $GLOBALS をつかっていない漏れのサイトは勝ち組
73nobodyさん:2005/11/03(木) 19:30:57 ID:???
4.0.6だし、register_globals = Onだし、ヤバス。
apacheもPHPも上げて、スクリプトも書き直しつらい。
徹夜だ。
74nobodyさん:2005/11/03(木) 19:33:39 ID:???
>>70
Σ(゚Д゚;≡;゚д゚)
75nobodyさん:2005/11/03(木) 19:45:46 ID:???
>>72
PEARも使っていない?
76nobodyさん:2005/11/03(木) 20:18:02 ID:???
今回の事で初めて$GLOBALSの存在を知った俺は勝ち組ですか?
77nobodyさん:2005/11/03(木) 20:27:53 ID:???
>>76
78nobodyさん:2005/11/03(木) 21:43:53 ID:???
>>70
ええ、、まじで?
ずっとOFFだと思ってたんだけど。。。
79nobodyさん:2005/11/03(木) 21:47:34 ID:e6YB+Wfp
グローバリータイーホ
80nobodyさん:2005/11/03(木) 21:50:28 ID:???
てか$GLOBALS使わないと関数内でグローバル変数を参照できないじゃん
それともみんなは関数内でglobal命令で参照してるの?
81nobodyさん:2005/11/03(木) 21:51:34 ID:???
グローバル変数なんて使わない・・・
82nobodyさん:2005/11/03(木) 21:53:06 ID:???
>>81
んなばかな
どんなにローカル変数で頑張ってもグローバル変数使うでしょ
それともぜーんぶクラス化してプロパティで参照してんの?
83nobodyさん:2005/11/03(木) 21:59:05 ID:???
更新ボタン押したら二重投稿になるんだけどこれって二重投稿禁止にするしかない?
ここは更新ボタン押しても二重投稿とかないけどこんな風にできない?
84nobodyさん:2005/11/03(木) 22:01:38 ID:???
>>83
書き込んだ後で自分自身にリダイレクトしろ

function redirect($url){
header("Location: $url");
exit;
}
85nobodyさん:2005/11/03(木) 22:03:52 ID:???
>80
うん。
86nobodyさん:2005/11/03(木) 22:30:57 ID:???
>>80
俺も関数内でglobal命令で参照。
むしろ前者は言われて「そんなのもあったな」って感じ。
87nobodyさん:2005/11/03(木) 22:31:19 ID:???
ここで言う$GLOBALSって自分で作った関数の中で、グローバルを引数として渡さずに、関数の中で使いたくて呼び出すときに

$guro = 1;

function hoge(){
$out = $GLOBALS['guro'] + 1;
return $out;
}

echo hoge();//実行結果:2

こんなふうにやるときの$GLOBALSって意味ですよね?

中身丸見えのオープンソースのものなら、書き換えて攻撃とかやる気にもなるけど、漏れなんかの書いた変態スパゲッティソースを外部から変数名を推測して攻撃するなんてほとんど不可能だと思うんだけど、どうでしょう?

register_globals = Offだけど、
extract($_GET);なんてやっちゃててるスクリプト山ほど書いて来たけど、一度もつつかれた事無いyp!

しょぼい仕事しかしてないからですか。そうですか。吊ってきます。
88nobodyさん:2005/11/03(木) 22:32:25 ID:???
だからextractなんて使うなといったんだ!
89nobodyさん:2005/11/03(木) 22:58:23 ID:???
プロのみなさんの中にあえてしょぼい質問して恐縮ですが・・・

僕のサイト(素人サイト)は

register_globals=ONでしかうごかないページがあります。
まぁやばくなったら、$GET_['hoge']で変数を受け取れば
いいやって考えてました。

で、今回のセキュリティホール問題をみてて ON じゃやべー
って思って、httpで変数を渡す処理の部分は全部
$_GET['hoge']にしてOFFにしたんですが、うごかないです。

レンタル鯖屋が4.4.1にUPしたらしいのが原因?前は動いたのですが・・。

ちなみにプログラムはこれです。何かの本のサンプルをみて書きました。
クリック数カウントするためです。

http://www.hoge.com/count.php?no=1&url=http〜〜

<?php
$_GET['url'];
     $_GET['no'];

MYSQLへのカウント処理

//指定されたURLへリダイレクト
header("Location: " . $url);

?>

デバック方法でも何でもよいのでアドバイス下さい。。
90nobodyさん:2005/11/03(木) 23:01:41 ID:???
エスパーの予感
91nobodyさん:2005/11/03(木) 23:07:45 ID:???
>>89
<?php
$url = $_GET['url'];
$no = $_GET['no'];

//省略
?>

ではないのか?

>デバック方法でも何でもよいのでアドバイス下さい。。

echo $url; //debug
//header("Location: " . $url);
92nobodyさん:2005/11/03(木) 23:08:26 ID:???
虫食い問題か・・・
93nobodyさん:2005/11/03(木) 23:09:05 ID:???
>>84
それはファイルに保存して、表示させる前に呼び出すの?
それとも表示させた後?
94nobodyさん:2005/11/03(木) 23:18:43 ID:???
>>84
function redirect($url){
 header("Location: $url");
 exit;
}
を書くことによって更新ボタン押しても二重投稿できなくなるの?
9589:2005/11/03(木) 23:29:19 ID:???
こんなばかな質問に答えていただいてありがとです。

>>91

そのとおりです。
指定するの忘れてました。
それで見事にできました。

尚、前までは僕が書いたソースで出来ていたのは
なぜかは謎です。
9691:2005/11/03(木) 23:38:57 ID:???
>>95
registor_globals = on だから
 $url = $_GET['url'];
相当の処理が自動で行われて動いてたんだろ。
97nobodyさん:2005/11/03(木) 23:39:59 ID:???
>>74>>78
一部の鯖のmod_PHPと、PHP5がOnだったと思う
>>88
レッツP(ry
>>94
試せよ
98nobodyさん:2005/11/03(木) 23:47:25 ID:???
>>95
>$_GET['url'];
>     $_GET['no'];
が何をしているか(何をしたか)考えなかった?
99nobodyさん:2005/11/04(金) 00:52:15 ID:???
>>59-60の「引数に参照を期待している関数に対して、変数以外が渡せなくなった。」
ってPHP5で5.0.1→5.0.5でも同じなの?

ここ数日のバグの記事を見て自鯖のPHP更新(5.0.1→5.0.5)してたら
Fatal error: Only variables can be passed by reference
ってエラー出た。
100nobodyさん:2005/11/04(金) 01:02:34 ID:???
別に攻撃されてもいいや。
だって見られて困るデータにDBに入ってないし。
DBのデータは変動しないからバックアップ戻せばいいだけだし。
つか、漏れ様の、漏れでさえ解んなくなるプログラムの変数名予測して攻撃するなんて不可能。
手間>得るもの
だからさ。
101nobodyさん:2005/11/04(金) 01:05:50 ID:???
誘導されてDB板から参りました。

$sql = "まあ、ふつうのsql文";
$result = mysql_query($sql);
$rows = mysql_num_rows($result);

って書いてるところを

$sql = "まあ、ふつうのsql文";
$rows = mysql_num_rows(mysql_query($sql));

って書くのは、パフォーマンス的にはどうなんでしょう?

$sql = "まあ、ふつうのsql文";
while ($row = mysql_fetch_array(mysql_query($sql))) {
いろいろ
}

なんてのもいかがなもんでしょうか?

ずっと上の書き方してたけど、一行でも減らしたいと思うんですが。
102nobodyさん:2005/11/04(金) 01:12:18 ID:???
確かに見られて困るデータは無いけど、クラックされて今まで頑張って書いたブログが消えるのは悲しいな。
こまめにバックアップとっとこう(´・ω・´)
103nobodyさん:2005/11/04(金) 01:15:49 ID:???
次ページへ送信ボタンで飛んだときにページの最下部を表示させるには
・前ページ
<a href="next.html#page_bottom">次のページの下</a>

・次ページ(next.html)

  ・
  ・
  ・
<a name="page_bottom"></a>
</body>
</html>
で出来たんだけど
関数で呼び出したときにページの最下部を表示させるにはどうすればいいの?
104nobodyさん:2005/11/04(金) 01:19:16 ID:???
ふざけんな
105nobodyさん:2005/11/04(金) 01:24:07 ID:???
すいません
ちょっと思い違いというか勘違いしてました
106nobodyさん:2005/11/04(金) 01:27:55 ID:???
>91 エスパー(・∀・)イイ!
107nobodyさん:2005/11/04(金) 02:24:26 ID:???
大垣さんのところにあるパッチは、どれにあてればいいの?
108nobodyさん:2005/11/04(金) 04:23:52 ID:uML+jUAb
cURL
http://curl.haxx.se/download.html
ってPHPでも使えますか?
109nobodyさん:2005/11/04(金) 04:26:26 ID:???
>>101
>って書くのは、パフォーマンス的にはどうなんでしょう?
かわんねーよ。ベンチとるまでもなく0.01秒以上の差がコンスタントに出たら、びっくりしてウソコもらしてやる。

>while ($row = mysql_fetch_array(mysql_query($sql))) {
何回mysql_query呼び出す気ですか?(これじゃループする度に呼ばれちまうんですけど)

>一行でも減らしたいと思うんですが。
減らすのは自由だが、今のご時世は可読性・保守性を重視する風潮があるので、同意を得るのは難しいと思われ。
人様に迷惑かけない程度にな。

>>108
うん
110nobodyさん:2005/11/04(金) 04:51:08 ID:???
>>101
$rows = mysql_num_rows(mysql_query($sql));
でもいいのなら後この結果セットを使わないってことだよな。
だとしたらSQLでCOUNT(*)でもよさげ。
101の質問にはSQLが書いてないが、パフォーマンスを言うなら
SQLも無ければ考察は無理。
phpのパフォーマンスじゃなくMySQLに与えるSQLが影響を与える
可能性が大きい

と思う。つか自分で確認してみるという選択肢は無いのかね君には。
111nobodyさん:2005/11/04(金) 10:51:45 ID:???
クリックでOutlookを起動させるにはどうすればいい?
112nobodyさん:2005/11/04(金) 11:02:20 ID:???
>>111
<a href="mailto:[email protected]">click here</a>
ってこと?
113nobodyさん:2005/11/04(金) 13:53:43 ID:???
114nobodyさん:2005/11/04(金) 14:04:45 ID:J9d48tpa
頭がおかしくなったんだよ、きっと。
115nobodyさん:2005/11/04(金) 17:25:37 ID:V1LIAVum
インクルードされたファイル内で、
自分自身のファイル名をすることは出来ますか?
116nobodyさん:2005/11/04(金) 17:30:27 ID:???
>>115
日本語が物凄くおかしいが。
__FILE__ 定数をお使いなさい。
117nobodyさん:2005/11/04(金) 17:42:00 ID:???
>>116
わぁーお、どもども。$_SERVERの方ばかり見てましたよ。
変な日本語は2ちゃん語の一種ということで・・。
118nobodyさん:2005/11/04(金) 17:51:12 ID:???
>>117
マニュアルの3章〜5章には目を通しておいた方がよいよ。
余裕がないなら3章だけでも。
自分の日本語が変なのを2ちゃんのせいにするな( ゚Д゚)ゴルァ!!
119118:2005/11/04(金) 17:53:18 ID:???
訂正、章→編
120nobodyさん:2005/11/04(金) 18:03:48 ID:???
quoted-printableでエンコードされている文字列を判別する関数はありませんか?
メールから取得した本文がquoted-printableでエンコードされているとmb_detect_encodeでも変になるし・・

メールのヘッダから取るしかないのかな・・
121nobodyさん:2005/11/05(土) 04:30:57 ID:???
quoted-printableは文字エンコードじゃないしね
Content-TypeとContent-Transfer-Encoding見るしかないかな。
122nobodyさん:2005/11/05(土) 11:24:59 ID:???
http://219.66.201.34/testbbs/p-bbsa.php

掲示板を設置してみたんですけど書き込みできません
掲示板は表示されてるのでPHPは動いてるようなんですが
設定すべき所があるのでしょうか?

環境は↓です
WinXP sp2
04WebServer 1.82
PHP 4.4.1
123122:2005/11/05(土) 11:26:14 ID:2U/gHABa
age忘れました
124nobodyさん:2005/11/05(土) 11:38:55 ID:???
>>122
とりあえずhogehoge.comはやめておけ
使うならexample.comにしろ
125nobodyさん:2005/11/05(土) 11:42:09 ID:???
>>122
ソースはこれ?
http://php.s3.to/bbs/p-bbs.php.txt

エラーも出ないね.
126122:2005/11/05(土) 11:44:52 ID:2U/gHABa
>>124
掲示板のデフォ設定がhogehoge.comになってるようです
書き込みできるようになったら直します

>>125
そうです
レッツPHP!のP-BBSです
127122:2005/11/05(土) 11:47:36 ID:2U/gHABa
PHPぁぷろだも設置したいんですけど掲示板と同じくUP出来ませんでした
原因は同じだと思うのですが
128nobodyさん:2005/11/05(土) 11:50:03 ID:???
error_reportingをE_ALLに
129nobodyさん:2005/11/05(土) 11:52:52 ID:???
>>122
Apacheにしてみたら
130122:2005/11/05(土) 12:02:23 ID:2U/gHABa
>>128
php.iniの270行目のことでしょうか?

error_reporting = E_ALL & ~E_NOTICE

error_reporting = E_ALL
に変えてみました
131122:2005/11/05(土) 12:04:21 ID:2U/gHABa
>>129
Apacheは難しそうなので・・・
132nobodyさん:2005/11/05(土) 12:09:20 ID:???
POST が動いてないのかな.そんなことあるのかどうか知らないけど..
http://219.66.201.34/testbbs/p-bbsa.php?mode=regist
ってGETで渡すとエラー画面が出るんだけど,
POST だと何の反応もない.
133122:2005/11/05(土) 12:15:02 ID:2U/gHABa
04WebServerの接続情報を見てると
「POST 200 OK 正常に終了しました」とは出てます

でも掲示板では書き込み出来てないんですよね・・・
134122:2005/11/05(土) 12:25:27 ID:2U/gHABa
http://219.66.201.34/test/index.php
うpろだです。これもUP出来ません
UPしてみるとファイル転送はされるんですけど
04WebServerのほうで100%正常終了って出ても、うpろだでは何も反映されないです
135nobodyさん:2005/11/05(土) 12:32:32 ID:???
>>134
phpinfo() 見せてもらうことってできる?
136122:2005/11/05(土) 12:37:34 ID:2U/gHABa
>>135
これで見れますか?
http://219.66.201.34/test.php

なんか見せたらまずそうな物まで見えちゃってますけど・・・
137nobodyさん:2005/11/05(土) 12:40:28 ID:???
variables_order が問題かと思ったけど,正常だなぁ・・
138nobodyさん:2005/11/05(土) 13:06:21 ID:???
テストしてみたんだけど
POSTが渡ってない模様。GETが含まれるとなんか渡るぽい

試しに
<form method="POST" action="/testbbs/p-bbsa.php">

<form method="POST" action="/testbbs/p-bbsa.php?hoge=piyo">
としてやってみそ。挙動が変わる。(エラーになってるみたいだけど)

なんか04WebServerの問題ぽいけど、よくわからん
POSTされたかどうか確認するには
<form method="POST" action="/test.php">
にしてやってPHP Variablesを見る。
139nobodyさん:2005/11/05(土) 13:15:45 ID:1PzhgjSf
すまん、借りてるレンタルサーバに置いてある掲示板のphpで、
・ホスト名が逆引きできないホストからの書込を禁止
・正引きと逆引きの結果が異なるホストからの〜
・特定プロバイダ、特定IPアドレスからの〜
したいのですが、サンプルが見つからず四苦八苦しています。
よくあるやり方だと思うのですが、ど…どなたかヒントを…
(アクセス自体を禁止でも良いんですが、借りてるサーバが
余り.ht〜設定ファイルの自由が利かない。)
140122:2005/11/05(土) 13:23:31 ID:2U/gHABa
>>138
今度はBlackJumboDogで試してみたいと思います

どうもありがとうございました
141nobodyさん:2005/11/05(土) 13:40:34 ID:???
>>139
何が分からんのか分からんが、
IPアドス -> ホスト名 は gethostbyaddr()
その逆は、gethostbyname()
この2つを使えばその条件をスクリプトに反映できるべ?
142nobodyさん:2005/11/05(土) 13:40:41 ID:???
143nobodyさん:2005/11/05(土) 14:25:04 ID:???
>>141
Apache2にはWindows用のインストーラ版あるから素直にそれを使え。
144nobodyさん:2005/11/05(土) 14:29:33 ID:???
>>143
xamppで入れてます。
145nobodyさん:2005/11/05(土) 15:19:06 ID:???
>>139
まあ色んな制限方法のひとつとして挙げてるんだろうけど
>正引きと逆引きの結果が異なるホスト
は普通に多いよ。
146nobodyさん:2005/11/05(土) 16:05:47 ID:???
みんな、レスありがとう。ちょっと書いてみる。
>>145
その種のアクセスを制限する事の是非・(やその種の議論がよくある事)も分かってるんだけど、
サイト自体のユーザがある程度制限されていて、それを規制する事で良ユーザ/不正ユーザを切り分けできそうなんです。

(宣伝の書込をしつこくしてくる人が居て、前は逆引きできてたのでプロバイダに苦情を言って
本人に警告して貰ったてたんだけど、最近それを消してアクセスしてくるんですよね。)
147nobodyさん:2005/11/05(土) 17:19:41 ID:???
俺んとこはIP追っかけても疲れるので
宣伝のドメインが書込みされたら
精神的ブラクラにLocationしてやってる
148147:2005/11/05(土) 17:21:19 ID:???
補足
もちろん宣伝ドメインは登録するけどね
149nobodyさん:2005/11/05(土) 17:29:14 ID:???
俺はウィルスサイトに飛ばしている
ただし賠償されるといやなのでime.nu経由で
150nobodyさん:2005/11/05(土) 17:47:04 ID:???
書き込んだサイトに飛ばすってのもいいかも
151nobodyさん:2005/11/05(土) 17:47:28 ID:???
ほんとつまらない質問だと思いますが
100000という数字を下4桁でピリオドをうって10.0000としたい場合
どうすればいいのでしょうか?
number_formatとかで、できるんでしょうか?
すみませんが教えてください。
152nobodyさん:2005/11/05(土) 18:01:49 ID:???
>>151
やってみたか?試してみてどこがどうなってこれこれになってしまって
どうしたら?って質問するようにしたほうがいいと思うよ

number_format(100000 / 10000, 4, "," "");
153nobodyさん:2005/11/05(土) 18:11:15 ID:???
>>152

ありがとうございます。
試してはみたものの、先に答えが知りたくなって説明不足でした。
気をつけます、スイマセンでした
154nobodyさん:2005/11/05(土) 18:34:45 ID:b1n2JPhi
0〜5までの数値を順番に逐次画面出力したいのですが、
バッファに記録されているようで、プログラム終了時に一括出力されてしまいます。
(バッファをフラッシュしているにもかかわらず画面には出力されない)
どのようにすればよいのでしょうか

$i = 0;
while ($i < 5) {
  print $i."<br>";
  $i = $i + 1;
  print $i."<br>";
  ob_end_flush();  ←フラッシュ
  sleep(3);
}
155nobodyさん:2005/11/05(土) 18:57:49 ID:???
>>151-153
>>152 の方法だと最初の4桁しかピリオドつかないけどいいのかな?

function number_format_jp($a)
{
  $b = '';
  $n = strlen($a);
  for ($i = 1; $i <= $n; $i++) {
    $c = substr($a, -$i, 1);
    $b = $c . ($i > 1 && $i % 4 == 1 ? '.' : '') . $b;
 }
 return $b;
}

$a = 1234567890;

echo number_format_jp($a); // 12.3456.7890

>>154
前スレに同じ質問があった気がするなぁ
156nobodyさん:2005/11/05(土) 19:02:23 ID:???
>>154
obって入れ子あるけど、それは?
157151:2005/11/05(土) 19:09:51 ID:???
>>155

今回はとりあえず上の感じで良かったのですが、
4桁毎にピリオドで考えてくれたワケですね。
勉強になります。有難うございました。
158nobodyさん:2005/11/05(土) 19:12:09 ID:???
>>154
つ flush() or ob_implicit_flush()
159nobodyさん:2005/11/05(土) 21:08:18 ID:???
今回みたいなセキュリティーの問題でレンタル鯖環境に変化が生じた場合なんだが。

ドメイン取得、レンタル鯖借りる手続きを代行。サイト構築、プログラムも書いて納品。
一応手を離れたことにはなってるけど、これでレンタル鯖がphpに対策してプログラムになんか問題が起きたらこれはうちが無償対応すべき問題?
もちろん気になって色々テストしてるけど、問題は起きてない模様だけど、こういうケース(手を離れた仕事)に関してはどう対応すべきだろう?
実際はhtmlレベルでの更新作業では関わってるんで、シラネとは言えないんだろうけど。
160nobodyさん:2005/11/05(土) 21:27:49 ID:???
ていうか、そういう時の為に保守料金貰うんじゃね?
161nobodyさん:2005/11/05(土) 21:30:48 ID:???
>>159
更新作業で金取ってないの? だとしたらえらい勿体無い話だが
逆に気にしてテストするにしたって工数取られるわけで、
保守契約結んでない状態でそんな考えでいること自体どうかと思うぞ
162nobodyさん:2005/11/05(土) 21:51:28 ID:???
>>160
簡単な修正や、バックアップをして保守料金(レンタル鯖代金に上乗せ)してるケースもあります。
>>161
今回気にしてるのは、完全に手を離れたケースはどうなるのかな?と。
立ち上げまでのやり取りで、もう、手を切りたくなっちゃう倉っているじゃないですか?
こいつとかかわり続けるだけでもう損失、みたいな。
そういうとこに限ってなにか文句言ってきそうな悪寒。
「おたくのプログラムが問題起こしてるんだからなおせよ、ゴルァ」とか
そういう客は、ドメインの管理とか、レンタル鯖の料金も全部そっちに請求が逝く様にしちゃってます。というわけで、なにか、作業があれば、その都度見積もりって形になってるのです
163nobodyさん:2005/11/05(土) 21:59:24 ID:???
>>162
だから「phpでこういった問題がありまして、セキュリティ上の対策を打たないと
大変危険です。ところで現在セキュリティ強化キャンペーンを行っており・・・」
で見積もり切ったらええやん
164nobodyさん:2005/11/05(土) 22:04:59 ID:???
>>163
そのとおり。設けるチャンス
165nobodyさん:2005/11/05(土) 22:09:28 ID:HRh85ELj
$abc = 111;

$hoge = <<<AAA
$abc.def
AAA;

$hoge -> 111def にしたいのですが、
ヒアドキュメントの場合はどう記述するのが標準なのでしょうか?
上のように記述すると、 111.defとなってしまうので困っています。
166nobodyさん:2005/11/05(土) 22:17:08 ID:???
>>163
ワロスww

こういう時こそ、商魂出さなきゃ損だな
167nobodyさん:2005/11/05(土) 22:19:56 ID:???
>>165
マニュアルの文字列#ヒアドキュメント構文の所に載っている気がするが・・・

個人的にヒアドキュメントって使わないんだが、
メリットって"をエスケープせずに含められる程度?
168nobodyさん:2005/11/05(土) 22:23:54 ID:???
>>163
ふと、阪神大震災の時のことを思い出した。
壊れた屋根に頼んでもいないのにブルーシートを張ってくれた心優しい工務店…
人の情けが身にしみるぜって思ってたけど、後日、請求書が来た。
169nobodyさん:2005/11/05(土) 22:26:46 ID:???
>>168
それは払わなくて良いねw
170nobodyさん:2005/11/05(土) 23:07:19 ID:???
リフォーム詐欺みたいに,
セキュリティに問題がある,と煽って稼ぐ業者がでてきたら面白いねww
171nobodyさん:2005/11/05(土) 23:07:28 ID:???
>>165
{}で囲むのが一番安全

{$abc}def
ピリオド不要
172nobodyさん:2005/11/06(日) 00:41:04 ID:???
>>163
いや、もう、構築の段階で度重なる仕様変更で、ソースがひどいことになってるんです。
もう手を切るつもりで書いたんで自分で書いたのに読解不能。
というわけで、どう考えても割にあわない。
>>171
$abc = 111;
$hoge = "{$abc} def";
こうだよね?
もれはピリオドで繋ぐっていうのはほとんどしないなぁ。{}で囲んで埋め込む。
速度は、ピリオドで繋ぐ方がパースが早いって話を聞いた事あるけど、まぁ漏れが関わるレベルならこれで問題ないし、この方が可読性いいし。
173nobodyさん:2005/11/06(日) 00:56:37 ID:???
>>172
>$hoge = "{$abc} def"; 
>こうだよね? 
よく見てみ.>>171(>>165)はヒアドキュメント内の話.
たぶん実際は {$abc}def  の前後にも文字列が入ったりするんだと思う.
だから, $hoge = "{$abc}def"; ってまとめてしまうことはできないはず.
174nobodyさん :2005/11/06(日) 02:14:20 ID:fwhEDGoz
PHPのリンクカウンターを落してきて設置したのですが管理画面から登録が出来ません
レッツPHPという処から頂いてきましたが鯖はRIBBONなのですが
IDとは何処で調べるものでしょうか?
175nobodyさん:2005/11/06(日) 03:14:31 ID:???
普通は配布元で聞く
176nobodyさん:2005/11/06(日) 03:16:31 ID:fwhEDGoz
判りました、ありがとうございます
177nobodyさん:2005/11/06(日) 03:41:43 ID:???
>>172
>もう手を切るつもりで書いたんで自分で書いたのに読解不能。
あるある
178nobodyさん:2005/11/06(日) 09:10:04 ID:vNGrg//I
>>156
>>158
レスありがとうございます。
それも試したんですが、だめでした。
php.iniやhttpd.confの設定で
『絶対にフラッシュをさせない』指定でもあるのでしょうか。
聞いた事もありませんが・・・
179nobodyさん:2005/11/06(日) 09:34:20 ID:???
180nobodyさん:2005/11/06(日) 12:04:36 ID:???
>>177
末永くお付き合いしてもらいたいのに、読解不能なソースしか書けなくて
二度と依頼のこなくなった俺が来ましたよ。
181nobodyさん:2005/11/06(日) 13:49:26 ID:???
それはソースの書き方の問題じゃないような希ガス
182nobodyさん:2005/11/06(日) 16:01:31 ID:vNGrg//I
>>179
納得です。
ありがとうございました!
183172:2005/11/06(日) 16:04:38 ID:???
>>173
なるほど。

>>177
もうね、作ってる途中で、度重なる仕様変更で、書いたそばからブラックボックス化して臭いものにフタするような書き方っていうのかな?
同じ値をもつ変数あったよな?と思いながら適当にだぶらない名前つけてさ。
処理の途中で、いろんなとこで参照しなくちゃならん変数書き換えてたりとか。
もう自己嫌悪。動けばいいんでしょ?みたいな。

>>180
他の人からみたらたいした意味もない関数作ってひとりで悦に入ってるってのは漏れもやります。
あとで見ると自分でもしばらく理解出来ないorz
184nobodyさん:2005/11/06(日) 18:15:47 ID:rRY/mvs2
ユニークで推測されることのない暗号文字列を作りたいのですが、
md5(uniqid(rand(),1))
だと返される文字列が長すぎます。

暗号化された文字列を、携帯で入力してもらうことも企図しているので、
もっと短く生成する方法はありませんか?
185nobodyさん:2005/11/06(日) 18:26:06 ID:???
携帯なら固体番号が一番
186nobodyさん:2005/11/06(日) 18:32:59 ID:???
長すぎるんなら短くしろよ。
187nobodyさん:2005/11/06(日) 18:53:36 ID:???
小さくしすぎて挿入できません(><)
188nobodyさん:2005/11/06(日) 18:55:58 ID:???
>>187
おばか /"(゜_゜)
189nobodyさん:2005/11/06(日) 20:04:45 ID:vNGrg//I
<FORM name="form1" method="post" action="check.php" enctype="multipart/form-data">
  <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="100000"><INPUT TYPE="file" name="image">
</FORM>
上記HTMLで、あるプログラムに画像を送信しました。
このとき、画像自体は送信先のプログラムで取得できるのですが、
imageという項目名を取得することはできないでしょうか?
宜しくお願い致します。
190nobodyさん:2005/11/06(日) 20:36:54 ID:???
PHPって1回どこかでファイルをincludeすると
どこからでも使えるみたいですけど、
使うたびにincludeした方がいいのかな?

そうしないとEclipseでエラー扱いされてしまうので
構文的に間違っているのかと。
191nobodyさん:2005/11/06(日) 20:37:09 ID:???
192nobodyさん:2005/11/06(日) 20:38:55 ID:???
193nobodyさん:2005/11/06(日) 21:07:26 ID:???
すまんおしえてくれ。

今回の穴で何が問題なんだ?

register_globals=OFFだったら無問題なのか?
それなら以前のregister_globals問題からいわれて
いることではないか?

今回は、それプラスばっちあてが必要ってことか?
うーん おまえらアフォな俺におせーて
194nobodyさん:2005/11/06(日) 21:18:58 ID:???
>>193
たしかにregister_globals=OFFなら問題はない。
しかし、レンタル鯖や共有サバなんかだとONになっていることがある。
といっても、register_globals問題については変数の初期化をきちんとしてやればよかった。

ところが、register_globalsがONのとき、定義済み変数 $GLOBALS が上書きできることが発見された。
これは、予期せぬところにも波及することになる。

>今回は、それプラスばっちあてが必要ってことか?
×バッチ
○パッチ
195nobodyさん:2005/11/06(日) 21:22:23 ID:vNGrg//I
>>191
$_FILESでは項目名をもっていないようなんです。

項目名は、
  <INPUT TYPE="file" name="image">
の『image』という文字列です。
どうか宜しくお願い致します。
196nobodyさん:2005/11/06(日) 21:33:52 ID:???
mb_send_mail の使い道がいまいち掴めないです。
JIS変換+MIMEエンコードを内部でやってくれると聞いたんですが、
Toを 「"送信先" <user@domain>」 にすると化けます。

mb_send_mail ( string to, string subject, string message [, string additional_headers [, string additional_parameter]] );

とありますが、to, subject, message, additional_headers, additional_parameter の
全部の引数に対して日本語を気にしなくていいってわけじゃないんですかね?
(一部だけ??)

そうなったら全部の引数に JIS変換と mb_encode_mimeheader が必要になって、
そうなると mb_send_mail の意味が謎になってしまいます。
197nobodyさん:2005/11/06(日) 21:35:17 ID:???
>>195
print_r($_FILES); を実行してみれば、どうやれば取得できるか判ると思うよ。

<?php
$itemlist = array_keys($_FILES);

foreach ($itemlist as $item)
 echo $item.'<br>';
?>
198nobodyさん:2005/11/06(日) 21:35:20 ID:???
「項目名」ってなんなん?
「image」という文字列ってなんなん?

$_FILES["image"] Array
(
[name] => xxx.filename
[type] => application/x-zip-compressed
[tmp_name] => /hoge/piyo.x
[error] => 0
[size] => 12345
)
どれが「項目名」なん?
もしかして
$_FILES["image"]
      ~~~~~~~ ?
199nobodyさん:2005/11/06(日) 21:39:12 ID:vNGrg//I
そうです。>>198
$_FILES["image"]
      ~~~~~~~ ?
です。
>>197
早速試してみます!
ありがとう!
200nobodyさん:2005/11/06(日) 21:41:10 ID:???
>>195
name属性なんか自分が決めるものだろうに、なぜ後からあえて取得する必要があるのだろう…
201nobodyさん:2005/11/06(日) 21:48:43 ID:???
>>196
mb_language() はやった?
202nobodyさん:2005/11/06(日) 21:49:02 ID:???
>>196
mail()関数のマニュアルに書いてあることなんだが、
>注意: to引数には "Something <[email protected]>" の形式のメールアドレスを与えることはできません。 MTA(特にWindows環境下の)と通信する際にmail関数はこれを適切にパースできません。
mb_send_mail()関数はmail()関数のラッパー関数なので、当然この制限がmb_send_mail()関数にも絡んでくる
toに"送信先<[email protected]>"形式で渡しているのが悪い。ヘッダーに含めるべき。

ただ、この辺の扱いはMTAによって違っているらしく、その辺は試行錯誤するしかないかも。
203nobodyさん:2005/11/06(日) 21:50:08 ID:???
>>199
なら、$_FILESの中には'image'は無い。
$_FILES['image']連想配列のキーだな
204nobodyさん:2005/11/06(日) 21:58:37 ID:vNGrg//I
>>197
むりでした・・・(泣)
>>200
POSTで送られてきた全ての画像(数が不明)を、POSTメソッドで別PGに転送する
処理で必要なんです。
どんな項目名で送られてくるか分からないので、
  $_FILES[$koumokumei]
みたいにしたかったんです。
205nobodyさん:2005/11/06(日) 22:05:11 ID:???
>>204
どう無理だったのか書けよ。
それから情報は小出しにするな。
想定している動作の具体例は最初から書けよボケ
206nobodyさん:2005/11/06(日) 22:06:28 ID:???
そろそろエスパーが必要な雰囲気(なぜか変換できる)
207nobodyさん:2005/11/06(日) 22:11:04 ID:???
>>204

foreach($_FILES as $key => $files_arr) {
   $key がほにゃら

}
208207:2005/11/06(日) 22:12:12 ID:???
書いてから思ったけど、どういう名前で送られるかわからないって
そっちをなんとかしたほうがいいかもな
209196:2005/11/06(日) 22:22:49 ID:???
>>201
mb_language( 'Japanese' );
mb_internal_encoding( 'EUC-JP' );
してます。

>>202
toにはその形式できないんですね。
知らなかった。。教えてくれて有難うございます。

ちなみに subject はちゃんと JIS+MIMEしてくれていて、
additional_headers の中身に
From: "送信者" <user@domain> やら
Reply-To: "返信先" <user@domain> やらを含めましたが、
JIS変換しかしてくれませんでした。

ということは、
to:日本語可(JIS変換のみしてくれる)
subject:日本語可(JIS変換+MIMEエンコードしてくれる)
additional_headers:日本語可(JIS変換のみしてくれる)
でFAですかね?
210nobodyさん:2005/11/06(日) 22:23:08 ID:???
<input type="file" name="upfile[]">...
てな感じにすれば、ええんでないの?

それはまぁ置いておくとして、別のプログラムに転送する時に
わざわざ元のnameを保持する必要は無いべ。
211nobodyさん:2005/11/06(日) 22:28:04 ID:???
>>209
mb_send_mail() はPHPのバージョンによって挙動不審になることがあるので
自前でコード変換、ヘッダを追加して mail() の方が安心だと思う。
212nobodyさん:2005/11/06(日) 22:43:10 ID:vNGrg//I
>>210
これはproxyのプログラムなんで、利用者側のプログラムをいじれなかったんです。
>別のプログラムに転送する時にわざわざ元のnameを保持する必要は無いべ
ごもっともです。でもコードを綺麗にしたかったので。

>>207
解決です。凄く助かりました。
ありがとう!!
213193:2005/11/06(日) 23:24:50 ID:???
>>194
激しくさんクス
214nobodyさん:2005/11/07(月) 02:18:53 ID:???
cronを使って定期的にPHPを動かす方法ってないですか?

今までwgetを使っていたのですがxreaでphpバージョンアップされてから動かなくなってしまいました
ブラウザでアクセスすると正常に動作するのでプログラム自体には問題ないと思われます
よろしくお願いします
215nobodyさん:2005/11/07(月) 02:22:07 ID:???
なぜcronの方を疑わない?
216nobodyさん:2005/11/07(月) 08:52:46 ID:???
cron で .php を指定すれば CLI で動作するはず
217nobodyさん:2005/11/07(月) 10:55:37 ID:???
>>120
おそレスですがアドバイスありがとうございます
218nobodyさん:2005/11/07(月) 11:58:58 ID:B941PQ6R
ディレクトリにあるフォルダ一覧を取得・表示したいです
現在は以下を代用していますが、換わりになるPHP関数はないでしょうか?

$com = "ls -1 ".$path." > temp.csv"
exec($com);

$db = fopen ("temp.csv", "r");
while ($list = fgets($db, 1024)) {
$list= trim($list);
if(is_dir($path.$list)){echo $list."<br>"};
}
219nobodyさん:2005/11/07(月) 12:06:19 ID:???
>>218
opendir, readdir, closedir
220nobodyさん:2005/11/07(月) 12:08:58 ID:???
>>218
scandir(); //PHP5
221218:2005/11/07(月) 12:10:37 ID:???
ディレクトリだけか
ならだめだ
>>219
222nobodyさん:2005/11/07(月) 12:10:50 ID:B941PQ6R
>>219-220
ありがとうございます
早速試してみます
223nobodyさん:2005/11/07(月) 12:11:00 ID:???
>>218
globが一番楽
224nobodyさん:2005/11/07(月) 19:42:04 ID:???
CSVファイルに保存するとき、カンマを入力することでカンマ区切りに保存されるのけど、
たとえば
<?php

$name = 〜;
$num = 〜;
$goukei = $name . "," . $num ;

?>
このようなプログラムで$goukeiをCSVに保存すると、$nameと$numが別々
保存される。
しかし、$nameに,,,,と入力すると、勝手に4列空白ができてしまうけど
どうすればそれを回避できる?
225nobodyさん:2005/11/07(月) 19:43:54 ID:???
>>224
その保存する部分のスクリプト晒してみ。
226224:2005/11/07(月) 19:48:56 ID:???
>>225
//*****カンマ区切りで変数代入
$z = $name . "," . $mail . "," . $naiyou . "," . $today . "," . $id . "\n";

//*****hatsu.csvにHNとメルアドと内容を保存
if($naiyou != Null){
$fp = fopen('hatsu.csv','a');
flock($fp, LOCK_EX);//書き込み時に排他ロック
fputs($fp,$z);
fclose($fp);
}
227nobodyさん:2005/11/07(月) 19:50:14 ID:???
>>224
,を文字列として扱いたいということか
""でくくっとけ
$name = '",,,,"';
228224:2005/11/07(月) 19:54:34 ID:???
>>227
そこはフォームとして、入力したいから,,,,だけじゃないので
229nobodyさん:2005/11/07(月) 20:33:50 ID:???
訪問者の直前のurlをゲットしたいのだが、どのようにすればいいのでしょうか。
定義済みの変数にあったかな?
230nobodyさん:2005/11/07(月) 20:39:06 ID:???
>>229
うん。phpinfo();
231nobodyさん:2005/11/07(月) 20:54:45 ID:???
>>229
ちなみに直前の URL (リファラ) はセキュリティソフトが消したり,
クライアントが任意の値を設定できるから信用できないデータであることをお忘れなく.
参考程度にしか使えない.
232nobodyさん:2005/11/07(月) 21:00:29 ID:F6uZDwtF
>>228

227がいいたいのは"でくくれと。
$z = '"'.$name . '",'....
じゃないかいな?
233nobodyさん:2005/11/07(月) 21:13:18 ID:???
板違いだったらすみません。
サーバは2000proでmysqlを使っているんですが
test.phpに書くマルチバイト文字は表示されるんですが
mysqlから取得したデータのマルチバイト文字はすべて?に変わってしまいます。
何が悪いんでしょうか。
234nobodyさん:2005/11/07(月) 21:22:43 ID:???
>>231
ありがとう
$url = $_SERVER['HTTP_REFERER'];
echo $url;
これで表示可能?
235nobodyさん:2005/11/07(月) 21:49:55 ID:???
>>234を無かったことにしてぇん チュ
236nobodyさん:2005/11/07(月) 22:15:50 ID:???
>>233
バージョンも設定も何も無いと答えようがないし板違い

データベース>MySQL総合Part5
過去ログ読んでから質問すっぺ
237nobodyさん:2005/11/07(月) 22:42:27 ID:mBmWY1oA
>>233
MySQLのマルチバイト関連ってバージョン毎にえらく違う・・・と言うか、
4.0系と4.1以降で全然違うから
238224:2005/11/07(月) 22:56:59 ID:???
>>232
これでやるとただ"〜"みたいになるだけだった
239nobodyさん:2005/11/07(月) 23:01:32 ID:???
>>238
なんかオマイの物言い、ムカツクな。
240nobodyさん:2005/11/07(月) 23:48:31 ID:???
未だに224が何をしようとしているのかよく分からない・・・
241nobodyさん:2005/11/07(月) 23:58:51 ID:???
>>224 >>238
特定の文字なら置き換えちゃえよ、面倒臭ぇ
242nobodyさん:2005/11/08(火) 00:02:21 ID:???
>>238
「ただ"〜"みたいになるだけだった」 ファイルを当然のことながら
fgetcsvかなにかで読んでみて確認したんだよな?
結果どうだったか書けよ。その上で疑問を書けば会話が継続する。
243nobodyさん:2005/11/08(火) 00:17:51 ID:???
>>240
同じく・・・
こういうときにエスパーキボンヌなのかな
244nobodyさん:2005/11/08(火) 01:21:32 ID:???
もうほっとけば?
>>228 >>238 とかのカキコを見るとただの独り言としか思えない。
少し >>239 の気分が判る気がする。
245nobodyさん:2005/11/08(火) 01:29:47 ID:???
$_SERVER['SCRIPT_NAME']
でファイルパスを出したんだけど

・・・・/hoge/giko/index.html

の様に最後に必ずファイル名が入ってしまう。
そうではなく

・・・・/hoge/giko/

の様に出力させる変数ってある?
246nobodyさん:2005/11/08(火) 01:34:33 ID:???
>>245
pathinfo() とか dirname() でディレクトリ名を取り出す
247nobodyさん:2005/11/08(火) 01:47:16 ID:???
>>246
ど〜も( ´∀`)ノ
248nobodyさん:2005/11/08(火) 09:43:04 ID:Tw4XCGRO
>>238
俺的エスパー解釈によると彼はこう言いたい。
「フォームから来たデータをカンマ区切りで保存して、それを表示するのに、カンマ毎に分割して表示するスクリプトなんですが、入力した文字列にカンマが入ってしまうと、表示するときにそこで分割されてしまいます。どう対処すればいいですか?」
カンマを全角にでもしとけゴルァ(゚Д゚)
249nobodyさん:2005/11/08(火) 11:16:15 ID:???
>>248
なるほど.把握.さすがエスパー.

例えば,\1,000 っていう文字列なら \\1\,000 にして,
使うときに \1,000 に戻す.
250249:2005/11/08(火) 11:21:08 ID:???
CVS を読み取るときに \, は文字列中のカンマとして無視する.
251nobodyさん:2005/11/08(火) 11:25:34 ID:???
>>248
その解釈でいいなら>>241に出てる。
252nobodyさん:2005/11/08(火) 11:36:36 ID:???
自分で書いて、自分だけで読み込むのならカンマで区切らなくても
キーボードから入力できないような文字コードで区切ればいいじゃん。
253nobodyさん:2005/11/08(火) 16:56:52 ID:???
CSVの良く見る仕様としては、
1.行は改行で区切る
2.列(項目)は,(カンマ)で区切る
3.列に,(カンマ)や改行を含める場合は"〜"でくくる
4."〜"内に"を含める場合は""と記述する
だと思うんだけど、どうだ?
254nobodyさん:2005/11/08(火) 17:21:27 ID:???
file_exists()関数って引数に絶対パスはダメなんだっけ?
存在しているはずのどんなファイルでも絶対パスで通すと存在しないと言われる。
255nobodyさん:2005/11/08(火) 18:04:36 ID:???
>>253

CSVの仕様自体がはっきりしてないけど、
漏れはちみと同じ仕様にしてる。
256254:2005/11/08(火) 18:23:25 ID:???
自己レス

原因が分かった。OSはWindows2000でPHPを動かしているんだが
その場合絶対パスは

C:\tmp\hoge\hoge.txt

みたいな形式になるんだ。
サーバーの絶対パス形式

/hoge/hoge.txt

をfile_exists()に通しても反応が返ってくるわけが無いよな。

C:\tmp\hoge\hoge.txt

を通したらちゃんと反応があった。

しかしややこしいな。OSの絶対パスか、HTTPサーバーの絶対パスか、どちらかで
統一してくれれば混乱しないのに。
257nobodyさん:2005/11/08(火) 18:32:33 ID:SOO2TAAd
>>256
何に対して、OSの絶対パスか、HTTPサーバーの絶対パスを統一して欲しいの?
各関数の引数?
258254:2005/11/08(火) 18:34:25 ID:???
>>257
まずは関数の引数を統一したいね。
UNIX系とWindows系で\と/の違いを吸収したい。
259256:2005/11/08(火) 18:39:47 ID:???
>>258
???
例えば、file_exists() が、HTTPサーバーの絶対パスしか受け付けなければ
URLで参照できる位置にないファイルは存在チェックできなくなるんだが、それでいいの?
後、Windows系でもパス区切りは / で問題はないはず。
先の例でいれば、file_exists('C:/tmp/hoge/hoge.txt') でも動くと思うけど。
260nobodyさん:2005/11/08(火) 18:42:38 ID:???
>>258
つーかwinでもunix式のパスで大丈夫だと思うが。
まあPHPのバージョンも晒してない奴に何とも言いようがない罠。
ちなみに手元の4.3と5.0ではfile_exists("/program files")でもtrue返す。
スクリプトがDドライブにあればD:をルートとした結果になる。
261254:2005/11/08(火) 18:43:29 ID:???
>>259

$_SERVER['SCRIPT_NAME']
で帰ってきた値を引数にするとfile_exists()もis_file()も正常に動作しない。

これってうまく対処できないかな?
262nobodyさん:2005/11/08(火) 18:48:55 ID:???
>>261
$_SERVER['SCRIPT_NAME']の中身は確認したか?
263257:2005/11/08(火) 18:55:00 ID:???
>>261
$_SERVER['SCRIPT_NAME'] はURLパスで、それがどのローカルパスに対応しているかを
知っているのはWEBサーバーだけだから変換するのは無理。
スクリプトのファイル名なら __FILE__ で取得できるけど。。。
本当にやりたいことはそれでいいの?

>>259のコテハン間違えた。>>257 だったよ。ごめんね。
264nobodyさん:2005/11/08(火) 18:58:00 ID:???
いや、むしろ$_SERVER['SCRIPT_FILENAME']ってのがやりたいんじゃないかと。
まあincludeとか何もしてないなら__FILE__と変わらんけど。
265nobodyさん:2005/11/08(火) 19:12:34 ID:???
DBから情報を引き出して表示するphpをWEBブラウザで表示した場合にキャッシュが効いてしまって困っています。

phpをブラウザ表示

php表示と関係無くDB内容が更新(他の人が作業等)

phpをブラウザ再読み込み(更新)

キャッシュが効いていて変更が反映されない


今困っているのはhtmlソースの記述部分でそうなっています。
このhtmlに変数を入れている部分がキャッシュされているんじゃないかと思う部分です。
変数部分が"selected"に1つだけなり初期選択になって欲しいのですが、firefoxでは駄目です。
<option value=\"0\" $michaku>未着手</option>
<option value=\"1\" $chakushu>着手</option>
<option value=\"2\" $kanryo>完了</option>
<option value=\"3\" $saigen>再現待ち</option>
<option value=\"4\" $etc>その他</option>

httpヘッダは下記のようにもしてみましたが駄目です・・
header("Cache-Control: no-cache,must-revalidate");
header("Pragma: no-cache");

metaヘッダも書いてみました・・
print '<meta http-equiv="Pragma" content="no-cache">';
print '<meta http-equiv="Cache-Control" content="no-cache">';

と思ったらIEは大丈夫でした・・
firefoxでは駄目ですね・・
狐のバグ?
266254:2005/11/08(火) 19:17:22 ID:???
>>263
> $_SERVER['SCRIPT_NAME'] はURLパスで、それがどのローカルパスに対応しているかを
> 知っているのはWEBサーバーだけだから変換するのは無理。

なるほど(´・ω・`)ショボーン

> スクリプトのファイル名なら __FILE__ で取得できるけど。。。
> 本当にやりたいことはそれでいいの?

ファイルのやりとりは
./hoge/hoge.txt
のような感じでやりとりしたかった。
__FILE__だと
C:\tmp\hoge\hoge.txt
という様に表記されるからそれに合わせてファイル指定も変更しなきゃならないか・・・
267265:2005/11/08(火) 19:43:14 ID:???
>>265
すいませんちょっと分かりにくい書き方しました。

<option value=\"0\" $michaku>未着手</option>
って部分はフォームのセレクトメニューのオプションです。

ここを別のメニュー選択をして再読み込みすると、firefoxではselectedが効かず読み込み前に選択していたものがそのまま選択されます。
なのでDBが絡まなくても起きる現象のようです。
他のセレクトメニューがあるwebサイトでも試しましたがfirefoxの仕様?
268254:2005/11/08(火) 19:54:08 ID:???
C:\tmp\hoge\hoge.txt

に対して

dirname()

をかけると

C:\tmp\hoge

が帰ってくる。だができればそうではなく

C:\tmp\hoge\

のように\もしくは/まで含めたい。$_SERVER['SCRIPT_NAME']で帰ってくる値の場合
パス区切り文字は常に/だったが、__FILE__の場合パス区切り文字はUNIX系かWindows系
で/と\と違うから別々に対応しなければならない。そこが__FILE__の面倒なところかな・・・
269nobodyさん:2005/11/08(火) 20:01:50 ID:???
>>265
Firefoxだとselectedにかかわらず、ユーザが直前に選択していたものがそのまま残る。
キャッシュが残っているためではなく、Firefoxの仕様だと思われ。
再読み込みすれば、生成されたHTML自体(=selectedの場所)の変化は反映されてるよ。
ただ、表示上は前回のユーザの選択が残ってるだけ。

>>268
お前はまずレスを全部嫁。
独り言はチラシの裏に書け。
270254:2005/11/08(火) 20:12:17 ID:???
>>269
> お前はまずレスを全部嫁。
> 独り言はチラシの裏に書け。

ちょ、ま・・・
でも環境によって\か/みたいに違えばそれに合わせてプログラム組む必要があるだろ。
271nobodyさん:2005/11/08(火) 20:15:47 ID:???
>>270
>>264

頼むからもう帰ってくれ
272254:2005/11/08(火) 20:16:13 ID:???
(´;ω;`)
273nobodyさん:2005/11/08(火) 20:23:08 ID:???
>>265
ちょっとやってみたけど、以下のヘッダすべてを送出すると大丈夫っぽい。
Firefox1.0.7(Windows)で確認。

header('Thu, 01 Dec 1994 16:00:00 GMT'); //過去の日付
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
274273:2005/11/08(火) 20:27:34 ID:???
>>273
ごめん。漏れコードとマニュアルからのコピペを合体させたので
' と " がゴチャ混ぜだけど、意味はないんで。
275254:2005/11/08(火) 20:37:41 ID:???
自己解決(`・ω・´) シャキーン

DIRECTORY_SEPARATOR
276nobodyさん:2005/11/08(火) 20:42:22 ID:???
>>272
$_SERVER['SCRIPT_FILENAME']が返すパスのセパレータは/。

>>265
Cache-Control: no-storeさえあればいけるみたいね。
277nobodyさん:2005/11/08(火) 20:45:05 ID:???
>>275
自分で頑張っているところをアレだけど。
file_exists('C:\tmp\hoge\hoge.txt') でも 
file_exists('C:\tmp\hoge/hoge.txt') でもOKなんだが。
278254:2005/11/08(火) 20:48:27 ID:???
>>277
Σ(;´゚ω゚)!
279nobodyさん:2005/11/08(火) 20:51:12 ID:???
>>278
お前その顔文字キモイからやめれ。
つーか帰れっつってんだろ。
解決したんだろ。
280273:2005/11/08(火) 21:11:22 ID:???
>>276
あれれ、本当だ。もう一度やってみたら仰せの通りだった orz
しかも、>>273 で書いたの間違ってるし… 重ね重ね orz
 header('Thu, 01 Dec 1994 16:00:00 GMT'); → header('Expires: Thu, 01 Dec 1994 16:00:00 GMT');

というわけで、整理して書き直します。

以下を送ればOKです。
header('Expires: Thu, 01 Dec 1994 16:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');

>>276氏の指摘により、再度確認したところ実は以下だけでOKでした。
header('Cache-Control: no-store');
281265:2005/11/09(水) 09:48:39 ID:???
>>269さん、>>273さん、>>276さん、ありがとうございました。
細かいところですが挙動が気持ち悪くてスタックしていたので助かりました。

firefoxはサーバに従うってポリシーが多くなっているような気がしますね。
それがRFC準拠なのかしら?
282nobodyさん:2005/11/09(水) 11:48:20 ID:qQrEl19O
Tclスレがみあたらないのですが、どこかで話題になってるスレってありますか?
283nobodyさん:2005/11/09(水) 13:08:06 ID:???
>>282
うーん。プログラム板のphpスレの方がいいのかも知れず。
284nobodyさん:2005/11/09(水) 13:26:06 ID:???
すみません。ご教示ください。スレ違いでしたらご指導願います。
(1) セッションを使って以下のような画面遷移をします(クッキーではなくURL埋め込み)。
   http://localhost/logon.php
    ↓
   http://localhost/main.php?PHPSESSID=12345
(2) 別のブラウザを起動して (1) の URL をコピーして開きます。
   http://localhost/main.php?PHPSESSID=12345
(3) (1) と (2) で同じセッションを複数のブラウザが共用してしまいます。

実際に問題がある、ない、あった場合はどのような問題が?というのは
アプリの作りによるでしょうけど、できれば (2) の段階で不正チェックを
したいのですが、可能でしょうか?
よろしくお願いいたします。
285nobodyさん:2005/11/09(水) 13:49:12 ID:???
>>284
多分無理。1つのパソコンで1人のユーザーが同時に起動した同じソフトを
サーバー側から区別する方法がないと思う
JavaScriptとかと組み合わせれば何とかなるカモ知れんけど。
286nobodyさん:2005/11/09(水) 14:04:30 ID:???
session_regenerate_id()あたりを使えばできるんでないかのぅ。
287284:2005/11/09(水) 15:18:16 ID:???
>>285さん >>286さん、レスありがとうございます。

なるほど。
毎回セッションIDを変更してあげると、URLバーに表示されているセッションIDは
古いセッションIDで、実際のセッションIDとは既に異なっているからOKってことですね。

目からウロコです。
実際にやってみた所、古いセッションIDがすぐに破棄されなかったので、
(古いセッションIDでも開けてしまう)以下の様な流れで期待通りになりました。

session_start();
$savevalue = $_SESSION;
session_destory();

session_start();
session_regenerate_id();
$_SESSION = $savevalue;

助かりました。ありがとうございました。
288nobodyさん:2005/11/09(水) 16:52:56 ID:???
echo "$val";
は正常に動作するのに

echo "$_SESSION['TEMP']";
はエラーが返されます。

何かまずい記述でもありますか?
ちなみにちゃんと$_SESSION['TEMP']は変数登録してますよ。
289nobodyさん:2005/11/09(水) 17:09:42 ID:???
>>288
echo $_SESSION['TEMP'];
290nobodyさん:2005/11/09(水) 17:14:37 ID:???
もしくは
echo "{$_SESSION['TEMP']}";
291nobodyさん:2005/11/09(水) 17:22:07 ID:???
>>290
あ、なるほど。
連想配列は{}でかこってやらなければいけないんですか。
カムサハムニダ( ´∀`)
292nobodyさん:2005/11/09(水) 20:00:59 ID:???
文字列に含まれるurlを正規表現で置き換えたいんだけど
urlとして使える文字ってわかります?
293nobodyさん:2005/11/09(水) 20:04:02 ID:???
あ、今わかっている分を書いておきます。
見えやすいように全角で書きます。
英数字+−.%&=?/〜
他にあります?
294nobodyさん:2005/11/09(水) 20:05:25 ID:???
>>292
ドメインじゃなくてURLに使える文字? スペース以外は何でも使えるけど。
正規表現の書き方を知りたいなら↓

正規表現道場@2ch Part4
http://pc8.2ch.net/test/read.cgi/php/1105930285/
295nobodyさん:2005/11/09(水) 20:06:19 ID:???
:_忘れてました。
296nobodyさん:2005/11/09(水) 20:07:16 ID:???
はっ、すいません。移動します。
297nobodyさん:2005/11/09(水) 20:13:56 ID:???
>>292
RFC 3986の Reserved Characters と Unreserved Characters
298nobodyさん:2005/11/09(水) 23:16:26 ID:MgDRn7NQ
スーパーグローバル変数のPOSTを使って処理を判断しているところがあるのですが,
処理が終わった後,POSTを書き換えたいのですが,できません.
例えば,

if(StrNatCmp($_POST["a"], "1") == 0) {
 〜処理1〜
 $_POST["a"] = "2";  //$_POST["a"]を書き換える
} else {
 〜処理2〜
}

最初に$_POST["a"]が"1"を持ってきたときだけ処理1を行い,
それ以外,データがなかったり,処理1をした後,更新ボタンを押したりしたときなどは,
処理1を行わないようにしたいです.
上記のやり方では,更新ボタンを押したら$_POST["a"]は"1"のままで処理1を行います.
POSTを書き換えるか,初期化するにはどうすれば良いでしょうか.
教えて下さい.よろしくお願いします.
299nobodyさん:2005/11/09(水) 23:29:04 ID:???
>>298
根本的に何かが間違っている希ガス…
更新されたらされたで別の処理が並行して走るだけだから、
初回の実行の中で更新(二度押し?)を監視しても意味が無い…
Javascriptとかセッションとかクッキーとか使うべ。

もし一回の処理の中で、条件式以降に式結果を評価したいなら、
$_POSTなんかいじろうとせずに、$flag = 1とかしておけば?

300nobodyさん:2005/11/09(水) 23:42:25 ID:???
ブラウザからファイルをアップロードしてもらい、サーバー側で
ファイルを開き中の内容を読み込む処理ってどうかいたらいいでつか?
301nobodyさん:2005/11/09(水) 23:44:53 ID:???
>>300
フォームから送信させて、PHPから開くだけでは?

詳しくはマニュアル参照ヨロ
302nobodyさん:2005/11/09(水) 23:55:50 ID:???
htmlからこのようにファイルを選択してもらい、サーバー側に送ってもらいたいのです。
<form name="x" id="x" enctype="multipart/form-data" method="post" action="test.php">
<INPUT TYPE="file" name="upfile" size="40" />

そこでtest.phpで受け取ってファイルの中身を読むというようにしたいのですが、
$file = get_file_contents($_FILES['upfile']);
ではいかんとですか?
303nobodyさん:2005/11/10(木) 00:26:32 ID:???
マニュアルを読むとです
ttp://jp.php.net/manual/ja/features.file-upload.php
304nobodyさん:2005/11/10(木) 00:54:25 ID:???
マニュアル読んだとです。人のぬくもりを感じた夜とです
305nobodyさん:2005/11/10(木) 01:18:11 ID:iJI+8Gw+
298です.
返信ありがとうございます.

>>299
$_POSTをいじりたくなかったのですが,サーバ側にあるテキストファイルを
送られてきたデータで書き換える処理をするため,
何度も処理を行うことは避けたかったのです.

>>301
おっしゃるように,
テキストファイルを書き換える画面はフォームで作成し,
PHPで受け取るようにしています.

今のところ,例えば,x行の後ろに***を挿入するというデータを送信すると,
1回目は良いのですが,更新ボタンを押すたびにどんどん挿入されていきます.
画面のアドレス欄に,普通のアドレスの後ろに送信データが表示されているので,
それがある限りデータは送信されそうです.
検索したところ同じような事例で,処理をした後,リダイレクトするようにして,
更新を防いでいる人がいました.
POSTなどを消せればすぐ済むように思ったのですが,そうする方が良いようです.
今回はファイル処理を行った後,リダイレクトして送信データを初期化しようと思います.

どうもありがとうございました.

306nobodyさん:2005/11/10(木) 01:32:14 ID:5CC9pdYJ
mail 関数で、急にvodafoneだけ送れなくなりました。
docomo や一般のアドレスは正常に送信できます。
どなたか似たような現象の方居ませんかー
307nobodyさん:2005/11/10(木) 02:10:32 ID:???
>>306
SPAM判定されたか何かで拒否されてるに一票
308nobodyさん:2005/11/10(木) 03:34:57 ID:7WIsLqP6
309nobodyさん:2005/11/10(木) 07:29:34 ID:???
>>305
アホだこいつ
310nobodyさん:2005/11/10(木) 11:55:50 ID:???
セッション使うと体感速度って結構落ちる?
311nobodyさん:2005/11/10(木) 12:05:28 ID:???
いやべつに
312nobodyさん:2005/11/10(木) 14:27:23 ID:bMeJl5+L
フォームを使わずに、データ(文字列)を次のページに送る方法はありませんか?
既存のページにログインしたあと、そのユーザー情報(入力されたIDやPassなど)をハイパーリンク先にもっていきたいのです。
良い方法ありましたら教えてください。
313nobodyさん:2005/11/10(木) 14:46:15 ID:???
>312
つ[GET]
つ[COOKIE]
つ[SESSION]
314nobodyさん:2005/11/10(木) 14:46:43 ID:???
リンク先ならそれに埋め込めばいいと思うのだが。
315nobodyさん:2005/11/10(木) 14:47:35 ID:???
>>312
セッション
316nobodyさん:2005/11/10(木) 14:55:25 ID:???
>>313-315
オマイラ釣られ杉
317nobodyさん:2005/11/10(木) 15:03:16 ID:???
[今後の展開予定]
1. 実は、ハイパーリンク先と自分とは無関係なサイトであることをカミングアウト
2. 成り済ましサイトではない事を一所懸命にアピール
3. 理由を聞かれて、特許申請するので言えないっス
4. 夜中になったので人がいなくなる&次の質問に話題が移る
5. 数日後に他所で質問
6. ヲチ情報が報告される
318nobodyさん:2005/11/10(木) 15:20:12 ID:bMeJl5+L
>>313
>>314
>>315
ありがとうございました。リンク先に埋め込むというのが分からないので、
セッションについて勉強してみます。
319nobodyさん:2005/11/10(木) 15:26:03 ID:???
>>317
6の報告で何か起きるの?
320nobodyさん:2005/11/10(木) 15:38:58 ID:???
セッション使うと体感速度って結構落ちる?
321軟式PHP:2005/11/10(木) 15:39:07 ID:???
よーし、パパ318が作ったアプリでセッションハイジャックしちゃうぞー。
322nobodyさん:2005/11/10(木) 15:54:11 ID:???
>>320
いやべつに
323nobodyさん:2005/11/10(木) 16:02:46 ID:???
>>320
セッション情報を使って「何かする」部分の影響の方が大きいと思われ。

セッションそのものは、一つのファイル(DBかも知れんが)に対して
ちょびっと書いたり消したりするだけなので、
言ってみりゃサイトにカウンタをつけるみたいなもんよ。
まぁ、規模がでかくなりゃ話は変わってくる。
324nobodyさん:2005/11/10(木) 19:35:30 ID:mwYfHXSm
パパー、可変変数について教えてよー(´・Д・`)
<?
$name = test;
$test_number = array("aaaa","bbbb","cccc");
echo "${$name}_number[1]";
?>

結果 _number[1]

bbbbって表示されないよーなんでー?
325nobodyさん:2005/11/10(木) 19:40:25 ID:???
歯が痛いけどどうしよう
326nobodyさん:2005/11/10(木) 19:48:14 ID:???
>>324
PHPしらないけど勘で答えてみる。
$name='test_number';
echo ${$name}[1];
327nobodyさん:2005/11/10(木) 19:55:16 ID:???
>>326
PHP知らないとか以前の問題。もっかいよく質問を嫁。

>>324
つ $$
328324:2005/11/10(木) 20:03:30 ID:???
>>326
あぁ言葉足らずでしたごめんなさい
<?
$name = test;
$name = test2;
$test_number = array("aaaa","bbbb","cccc");
$test2_number = array("111","222","333");

if($name == test1){
echo "${$name}_number[1]";
}
?>

結果 _number[1]

bbbbって表示されないよーなんでー?
です
329324:2005/11/10(木) 20:09:05 ID:???
>>327
リロードし忘れちゃいました
そこんところ詳しくお願いパパン
いろんな所に入れてみたけど駄目だったお(´・Д・`)
330nobodyさん:2005/11/10(木) 20:14:18 ID:???
>>328
test1 が何処にも存在しないのと、各部で文字列の前後の ' (または ")がないんだが。。。
それはさておき echo "{${$name . '_number'}[1]}"; ではダメなのか?
331nobodyさん:2005/11/10(木) 20:22:03 ID:???
sqlite_escape_string()でエスケープされるのは、
\
NUL
0x01
'
の4つで合っていますか?他にありますか?
332324:2005/11/10(木) 20:31:08 ID:???
>>330
>test1 が何処にも存在しないのと
質問用に書き換えた時のミスです・・・

{${$name . '_number'}[1]}
でできましたー

マニュアルのどこら辺に書いてありますか?
もっと勉強しないと・・・
できた事はできたけど全く理解できていないっぽい・・・(´・Д・`)
333nobodyさん:2005/11/10(木) 20:46:36 ID:???
>>332
そのものズバリはどこにも書いていないと思うけど。。。
可変変数と文字列の組み合わせればいいのかな?と考えただけだし。

>できた事はできたけど全く理解できていないっぽい・・・(´・Д・`)
理解しづらいのなら、いっそのこと可変変数をやめたら?
頭の体操としてはおもしろいかもしれないが、読みにくいし、
こう書く方がスッキリするとは思わないか?

<?
$name = 'test';
$name = 'test2';

$test_number = array(
 'test' => array("aaaa","bbbb","cccc"),
 'test2' => array("111","222","333"),
);

if($name == 'test'){
 echo $test_number[$name][1];
}
?>
334nobodyさん:2005/11/10(木) 20:50:09 ID:???
>>332
ttp://www.php.net/manual/ja/language.variables.variable.php
ここ。
ユーザコメントのAnonymous 13-Mar-2005 10:25 とか。
335324:2005/11/10(木) 20:50:31 ID:???
>>333
おぉぉ確かにーー!!!
その表記にします
ほんとありがとうパパン(・∀・)
336nobodyさん:2005/11/10(木) 20:52:00 ID:???
>>332

>>324 の一行目に、$test = 'hoge'; って追加して、実行してみな。
何が起きてたか判るから。
337324:2005/11/10(木) 20:53:03 ID:???
>>334
そっちの方見てなかったー
ありがとうパパン
338324:2005/11/10(木) 21:03:46 ID:???
>>336
hoge_number[1]
と出ました
なんとなく分かってきたような気がしまふ・・・
ありがとうパパン
339nobodyさん:2005/11/10(木) 21:16:42 ID:???
まぁ、$$にかんしては、こうすると少しは判りやすいかも。

$hoge = 'hage';
$var_name = 'hoge';

echo $$var_name;
340nobodyさん:2005/11/10(木) 21:19:55 ID:???
>>339
今回の話は、可変変数の話の様に見えるけど、{}の話だから…
341339:2005/11/10(木) 21:24:04 ID:???
>>340
えぇぇぇぇ〜〜〜っ!
>>324の質問は無かった事になってるのか・・・
342nobodyさん:2005/11/10(木) 21:38:30 ID:???
tu-ka切りわけって意味では326から試せばいいやね
343nobodyさん:2005/11/10(木) 21:44:32 ID:???
しかし、そうまでして$$使いたいのか?
$$を使わなければ出来ない処理って、そもそもデータの持ち方が
おかしいんじゃないか
漏れは>>333に一票だな
344nobodyさん:2005/11/10(木) 21:45:31 ID:???
>>341

いやね、>>324 の質問は、実は

<?php
$test = "hoge";
$test_test = "fuga";

echo "${test}_test";
echo "$test_test";
?>

こういう質問だと言うことね。
345nobodyさん:2005/11/11(金) 01:40:20 ID:???
親子関係を表現したくて困っております
具体的にはメールのスレッド表示を再現したいです
メーラーでのスレッド表示みたいなのを・

message-idを各メールが持っている
子は親のmessage-idを知っている
親子関係は永遠に続く可能性がある
phpのオブジェクト機能でできるかなぁと、xmlみたいな感じ?
変数の入れ子構造はどうやったら出来ますか?
346nobodyさん:2005/11/11(金) 01:54:03 ID:???
変数を入れ子にするんじゃなくて、オブジェクトを入れ子にするんじゃだめ?
347nobodyさん:2005/11/11(金) 02:59:54 ID:???
>>345
連想配列を使って
root+ a1
  + a2
  + a3
  | + b1
  | + b2
  |  + c1
  |  | + d1
  |  | + d2
  |  + c2
  + a4
こんな感じのツリーは
$root = array();
$root["a1"] = 1;
$root["a2"] = 1;
$root["a3"]["b1"] = 1;
$root["a3"]["b2"]["c1"]["d1"] = 1;
$root["a3"]["b2"]["c1"]["d2"] = 1;
$root["a3"]["b2"]["c2"] = 1;
$root["a4"] = 1;
print_r($root);
でどないや。
348nobodyさん:2005/11/11(金) 09:42:26 ID:???
会員サイトなどでログインして掲示板投稿などの時、
確認画面から「戻る」のボタンを押した時に、入力していたデータが消えます。

これをSESSIONを使わずに、ブラウザの戻るを押しても入力内容が消えない
ようにする方法は無いでしょうか?
349nobodyさん:2005/11/11(金) 09:45:50 ID:???
>>348
IEの仕様
350nobodyさん:2005/11/11(金) 09:46:20 ID:???
くっきー?
351nobodyさん:2005/11/11(金) 10:17:48 ID:???
>>348
会員サイトつー言葉からセッションを使ってログイン管理してるんだと推測し、
その際に cache-control: no-cacheなんかでキャッシュが無効化されていると思われ。
なので、それ、消えてるんじゃなくて鯖へ新しいページをリクエストしてんの。
352nobodyさん:2005/11/11(金) 10:21:57 ID:???
>>351
それをどうにかして「戻る」を押した時に前に入力したものを表示させる
事は出来ないでしょうか?掲示板などのフォーム処理の場合、
戻った時にすべて消えると入れ直しになるので、使いづらいです。
353nobodyさん:2005/11/11(金) 10:27:02 ID:???
>>352
header('cache-control: no-cache'); を送って「いない」のなら、session_start の前に
session_cache_limiterを呼んでみたら?
送っているのなら、どうしようもないけど。

session_cache_limiter('');  //追加
session_start();
354nobodyさん:2005/11/11(金) 10:27:04 ID:???
「戻る」ボタンって、IEの戻るボタンなのか、フォームの戻るボタンなのか?
>>348
だとIEの戻るボタンぽいけど、そしたらSESSIONとか関係ないし。

自分がソース書いてる会員サイトなの?
そうじゃなけりゃ、このスレに書く理由も不明。
355nobodyさん:2005/11/11(金) 10:36:56 ID:???
>>353
これで一発で行けました!目から鱗でした。ありがとうございます。

>>354
フォームの戻るボタンです。ただ、テストはほとんどIE6.0でしていますが・・。

あと、自分がログインフォームとログイン後に簡単なメールフォームを作成したんです。
そこまでは大丈夫だったのですが、「戻る」のボタンを押した時にデータが消えるので
どうしたらよいかずっと悩んでいました。

とりあえず、これで解決出来そうです。ありがとうございました。
356nobodyさん:2005/11/11(金) 10:55:02 ID:???
戻るボタンだとしても、
受け取った情報を送信して
セットしなおせばいいだけの話なのにな…
357nobodyさん:2005/11/11(金) 11:10:17 ID:???
>>346さん、ありがとうございます
オブジェクトに関しても勉強不足なのですが試してみようと思います。
あつかましいとは思いますが具体的な方法や情報を頂けるとありがたいです。

>>347さん、ありがとうございます
すぐに試してみようと思います。

オブジェクトも連想配列も面倒がって避けてきましたが、やっぱり必要ですねw
358nobodyさん:2005/11/11(金) 11:41:20 ID:nRnpdBSX
配列をヒープ(priority queue)として使うにはどうしたらよいでしょうか?
入れて出したら最小値(又は最大値)が高速で返ってくるコンテナが必要なのです。
よろしくお願いします。
359nobodyさん:2005/11/11(金) 12:15:48 ID:???
>>358
PHPの配列はそういう機能を有していないから、
自分で実装乃至どっかからパクってくるしかなかんべ。
360358:2005/11/11(金) 12:28:16 ID:???
>>359
レスどうもです。
PHPの配列自体を使わないにしても、どこかに拡張モジュールでもライブラリでも、利用可能なものはないものでしょうか?
できれば通常のキューもあって欲しいです。(push/popとshift/unshiftで出来るかと思ったら無理なようです)
さすがにググっただけではそういったものが見つからないもので・・・。
361nobodyさん:2005/11/11(金) 13:20:14 ID:???
PHPの掲示板の多くにログと一緒にIPを取得する関数が組み込まれていますが、
ログにWeb上から直接アクセスするとIP情報が第三者に見れてしまいます。
かといってパーミションを606以下にすると、ログが開けなくて
エラーが出るし、困っています。
IP取得部分だけログを分離するというやり方は知識不足の為自分にはできません。
IP情報を取得したまま第三者に見れなくなるようにしたいのですが、
何か簡単な方法はありませんでしょうか?
個人的にIP情報なんてどうでもいいのですが、
IP情報=個人情報と思ってる方もいるようで、書き込みが減る恐れと、
荒らされた時の対処がHPのアクセスログだけだと困難なので、
何かよい方法があったら教えてください。
362nobodyさん:2005/11/11(金) 13:34:18 ID:???
>>361
「Web上から直接アクセス」できるところにログ置くなよ。
ドキュメントルート以下にはログを置かない事。
363nobodyさん:2005/11/11(金) 13:34:30 ID:???
ログファイルの拡張子をphpやcgiにする
364nobodyさん:2005/11/11(金) 13:35:08 ID:???
>>361
アクセスできない場所に置く(public_htmlの上とか)
.htaccessで<Files filename>deny from all</Files>。
ログファイル名を.htで始まる名前に変える。
ログの拡張子をcgiにする。
ログを暗号化する。
365nobodyさん:2005/11/11(金) 13:37:39 ID:???
>>361
>ログにWeb上から直接アクセスすると...略...
ログにWeb上から直接アクセスできないようにすればいいだけのこと。

1) Webサーバーの設定で、ログファイルへのアクセスを禁止する
2) ログを保存するディレクトリをURLでは参照できない位置にする

1) はWebサーバーの設定をミスると見えてしまうので 2) がいいかもね。
保険的に両方やっておくのもいいけれど。
1) の設定方法は個々のWebサーバーによるので、ここでは聞かぬように。
PHPの話はなく画像ファイルの直リン禁止、とかで普通に行われているので
探せばすぐ見つかるはずだし。
366365:2005/11/11(金) 13:39:05 ID:???
>>365 めいっぱいカブった orz
367nobodyさん:2005/11/11(金) 13:47:35 ID:???
>>363
> ログファイルの拡張子をphpやcgiにする

そういう話はよく聞くけど本当にphpやcgiにすれば見られないのか寝?
368nobodyさん:2005/11/11(金) 13:57:02 ID:???
>>367
拡張子をcgiやphp(CGI版のみ)にするのは、
shupang(一行目の#!〜ってやつ)が無くてエラーになって、
結果的にログの内容は表示されない事を期待してる。
phpがmoduleの時に拡張子phpにしたら、HTMLモードで開かれるので意味無いね。
369nobodyさん:2005/11/11(金) 14:04:57 ID:???
なるほど。そうするとcgiだからといって律儀に#!〜を付けると中身を覗かれちゃう分けか・・・
370nobodyさん:2005/11/11(金) 14:16:09 ID:???
>>369
CGIの場合はとにかくエラーになる
#!がなくてもパーミッションがない
実行権つけても結局ヘッダー吐けないから500エラー
371nobodyさん:2005/11/11(金) 15:41:55 ID:???
COBOLプログラムをPHPに変換するツールってありませんか?
できればフリーで使えるやつが良いです。
372nobodyさん:2005/11/11(金) 15:59:57 ID:???
373nobodyさん:2005/11/11(金) 17:35:42 ID:FEod7B4T
<?php include('../menu.php'); ?>
みたいな感じでメニュー部分を各ページで読み込むようにしてるんですが、
このメニュー部分も検索エンジンにキャッシュされてるんでしょうか…?
動的に読み込んでるわけだからキャッシュはされないのかな…?
374nobodyさん:2005/11/11(金) 17:36:42 ID:???
ページを見ているこっちからすれば
どのような方法でページを生成していようと同じ
375nobodyさん:2005/11/11(金) 17:46:27 ID:???
>>372
あるのにワラタ
376373:2005/11/11(金) 20:30:23 ID:???
>>374
ページがどう見えるかってのはそんなに気にしてないんだけど、
動的に生成している部分はキャッシュしないってことになると
検索結果のランクに結構影響してくるんじゃないかな〜と。
377nobodyさん:2005/11/11(金) 21:15:43 ID:???
>>376
だから、php内部の話は関係ない。検索エンジンのロボットがどう判定するかってこと。
「SEO 対策 検索エンジン」あたりでググれ。
378nobodyさん:2005/11/11(金) 21:27:16 ID:???
>>376
こやつの頭の中では
<?php
include('../menu.php');   //動的生成
echo 'テストよ〜ん';     //静的生成
?>
となっているのだろうか。。。
379361:2005/11/11(金) 22:29:17 ID:???
>>362-365
みなさまレスどうもありがとうございます。
大変参考になりました。
拡張子phpでは>>368さんのおっしゃるとおりの結果になりました。
知識不足でドキュメントルート以外の場所というのが少しわからないので、
>>364さんの方法で試してみたいと思います。
380nobodyさん:2005/11/11(金) 23:05:50 ID:???
>>379
ログファイルをめちゃくちゃ変なファイル名にしとけばいいじゃん。
それが一番簡単。
381nobodyさん:2005/11/11(金) 23:54:57 ID:???
>>379
そのままでいいぢゃん。
そんな腐ったアプリを腐った設定のサーバーで動かしていても、
そのファイルにアクセスした輩が罪に問われるみたいだから。
382nobodyさん:2005/11/12(土) 00:03:53 ID:???
>>381
釣れますか?
383358:2005/11/12(土) 00:11:23 ID:???
みなさんは(例えばSNSや一部のゲームサイトのように)ユーザー同士がネットワークを作るようなサイトをどのように構築しているのですか?
どうしてもグラフ構造になってしまうのでPEARのStructures_Graphを使おうと考えたのですが、トポロジーソート以外には実践的なアルゴリズムが含まれていないようです。
なのである程度自分で実装するしかないのでは、と思ったのですがデータ構造の話題に反応が薄いところを見ると(>>359さんには感謝してます)、実はもっとお手軽にネットワーク構造を扱う方法があるのでしょうか?
例えば最短経路の問題なんかはライブラリでもあればずいぶん楽できると思います。
Javaのない環境でこういうのは難しいのかな?いざとなったら自力でC++のSTLとかで書くしかないぐらいの分野なのでしょうか?
(mixiなんかはPerlなので、PHPでも同等のことはできそうな気がしていたのですが…)
何か方法論をご存知の方いらっしゃいましたら、よろしくお願いします。
384nobodyさん:2005/11/12(土) 00:13:19 ID:???
だれか383まとめて
385nobodyさん:2005/11/12(土) 00:21:46 ID:???
ネットワーク構造を扱う方法を教えてください
386nobodyさん:2005/11/12(土) 00:46:17 ID:???
>>383
実装以前に仕様の話だと思うのだが。
何が作りたいんだ? どんな機能が欲しいんだ? という所から洗い出して初めて
「じゃあそれを実現する為にはどうすればいいか」という話になる。

完全に前提がすっぽ抜けてるよ。出直しておいで。
387383:2005/11/12(土) 01:23:44 ID:???
皆様、レスありがとうございます。

>>386
仕様の詳細についてはあまり書くことができず、申し訳ないです。一番想像しやすい例ではSNSが近いと思います。
実装上はどうしてもグラフ構造を使うことになりまして、色々アルゴリズムを調べているうちにPHPでそれらを表現するのが(PHPの配列の性質上)だいぶ難しそうだと感じて358の質問をさせていただきました。
しかし今や色々なSNSが出回ってますから、そもそも初めからもっと効率の良い手法があるのではないかと思い、383を書き込ませていただいた次第です。
388nobodyさん:2005/11/12(土) 01:41:27 ID:???
需要が無い/少ないものは自分で作るしかないべ。
389nobodyさん:2005/11/12(土) 01:46:46 ID:???
>>387
そんな大雑把な疑問にどう答えりゃいいんだよ。ソースでも上げろってか?
本当に効率の良いアルゴリズムってのは「商品」になるから表に出てくるわけがない。

先駆者の手法知りたければOpenPNEにでも参加しろよ。役に立つかどうかは知らんけどさ。
390nobodyさん:2005/11/12(土) 01:48:20 ID:???
そもそも「グラフ構造」っていう言葉自体がかなり大雑把過ぎるな。
391nobodyさん:2005/11/12(土) 01:58:10 ID:???
PHPだけでも出来るけど速度的に・・ってのなら、実装例も沢山あるしC++で作っちゃえば?
392nobodyさん:2005/11/12(土) 04:08:33 ID:???
このスレレベル低スw
どうせPHP厨なんてそこらで見かける典型的なサイトしか作ったことないんだろwww
経路探索のアルゴリズムなんてどこにでも載ってるだろw
ただ単にPHPでどうしたらいいかって質問だろーにw
漏れはPHP厨じゃねーからシラネ
393nobodyさん:2005/11/12(土) 04:35:22 ID:???
・・・と、phpすら理解できなかった方が申しております。
394nobodyさん:2005/11/12(土) 04:36:00 ID:???
ハァ?(゚Д゚)y─┛~~






( ´д)ヒソ(´д`)ヒソ(д` )
395nobodyさん:2005/11/12(土) 04:41:59 ID:???
( ´д)ヒソ(´д`)ヒソ(д` )
396nobodyさん:2005/11/12(土) 07:37:36 ID:???
>>389
オープンソースの世界を知らないな、と言ってみるテスト
397nobodyさん:2005/11/12(土) 08:10:00 ID:???
<わからない五大理由>
 1. 読まない
 2. 調べない
 3. 試さない
 4. 理解力が足りない
 5. 人を利用することしか頭にない
398nobodyさん:2005/11/12(土) 08:31:43 ID:???
ちょっと話が戻るんですけど、>>364に出てくるような
ログを暗号化するってのはphpで出来るんですか?
399nobodyさん:2005/11/12(土) 08:43:32 ID:???
なにその釣り?mcrypt_genericでも使っとけよ
400nobodyさん:2005/11/12(土) 08:43:49 ID:???
>>398
暗号化アルゴリズムを自分で考えればPHPでもできる。
今考えた簡単な方法ではbase64_encode()にシーザーの暗号を組み合わせるとか。
401nobodyさん:2005/11/12(土) 09:33:25 ID:???
>>390-392
禿しく知ったかぶりのニオーイ
402nobodyさん:2005/11/12(土) 10:22:30 ID:???
wばかり使う奴は説得力がない
403nobodyさん:2005/11/12(土) 11:54:02 ID:???
アルファベットを2〜3文字ずらすというあれか
404nobodyさん:2005/11/12(土) 13:50:20 ID:g38MJFxf
>>383=>>360=>>358
>>360
>できれば通常のキューもあって欲しいです。(push/popとshift/unshiftで出来るかと思ったら無理なようです) 
>さすがにググっただけではそういったものが見つからないもので・・・。 

アルゴリズムをゼロから勉強したほうが早いと思うよ.
セジウィックのアルゴリズムCがおすすめ.キューすら理解できないのにグラフなんてできるわけないから.

class Queue
{
  var $_queue = array();
  function enqueue($v){ array_push($this->_queue, $v); }
  function dequeue(){ return array_shift($this->_queue); }
}

$q = new Queue;
$q->enqueue('a');
$q->enqueue(100);
$q->enqueue(new Queue);

echo $q->dequeue();
echo $q->dequeue();
echo $q->dequeue();
echo is_null($q->dequeue()) ? 'empty' : 'not empty';

// 出力: a 100 Object empty
405nobodyさん:2005/11/12(土) 14:24:53 ID:???
画像に特定の文字を入れたいのですが、
gdを使わないと出来ないのでしょうか。
406nobodyさん:2005/11/12(土) 14:27:58 ID:???
360を読んだ時「?」と思ったがそういう理由か
407339:2005/11/12(土) 14:35:15 ID:???
>>405
Photoshopで出来るよ
408nobodyさん:2005/11/12(土) 14:42:12 ID:???
僕は画像に特定の文字を入れたいとかあんまし思わないんですが、
なんで世のプログラマたちはgdとか画像ライブラリとかを珍重するのでしょうか。
画像なんてただのバイナリじゃん。
わかんない。jpgraphとかもわかんない。得るものが少ないと思います。
...略...
いやそうではなくて、なぜgdに拘るのかということです。僕は賛成ですが。
すいません。まちがいました。もういいです。
409nobodyさん:2005/11/12(土) 15:09:57 ID:???
アカウント取得用時などの、画像の文字を入力、って奴だと思うけど、専用のモジュールとかはないもんかね。
410nobodyさん:2005/11/12(土) 15:30:07 ID:???
411nobodyさん:2005/11/12(土) 15:34:40 ID:???
>>404
array_shiftがO(n)な件について
412nobodyさん:2005/11/12(土) 15:38:15 ID:???
>>409
ちょいまえに planet php japan(ttp://catbot.sakura.ne.jp/planetphpjapan/) で
誰かが書いてた気がするなぁ。
あんまり興味なかったんで、デモだけ見てハイハイスゴススゴスと思った記憶が。
# RSSリーダーで見ようとすると<title>が原因でxmlのparseに失敗するので、最近見てないや...
413nobodyさん:2005/11/12(土) 15:47:27 ID:???
>>411
じゃあこれで・・・

class Queue
{
  var $_queue = array();
  var $_tail = 0;
  function enqueue($v){ array_push($this->_queue, $v); }
  function dequeue()
  {
    if (!isset($this->_queue[$this->_tail])) return NULL;
    $v = $this->_queue[$this->_tail];
    unset($this->_queue[$this->_tail++]);
    return $v;
  }
}
414nobodyさん:2005/11/12(土) 16:28:22 ID:K0H7nJ2R
ftpでサーバーに接続して落とされない限り、
phpファイルのソースを見られてしまうことはないでしょうか。
415nobodyさん:2005/11/12(土) 16:41:37 ID:???
鯖の不調でファイルをDLしたりすることも無いとは限らない。
416nobodyさん:2005/11/12(土) 17:52:25 ID:???
>>414
んにゃ。

でも外の人対策を考えるよりも(外の人対策は色々実施済みの方が多いから)
悪意を持った中の人のことを念頭に置いた方がいいぞ。
417nobodyさん:2005/11/12(土) 17:59:11 ID:???
中の人などいない!
418nobodyさん:2005/11/12(土) 21:58:01 ID:ZgVRm9Ef
パスワード認証をしようと思って…

<?php
$pass = aaaa;
$formpass = $_POST['passwd'];
?>
<body>
<h1>編集モード</h1>
<?php
if($formpass == $pass){
print "OK";
}else{
echo "<p>パスワードが違います</p>",
"<p><a href="./index.php">戻る</a>";}
?>


と、したのですが、うまくできません。
何か間違っているでしょうか?ご指摘ください。
419nobodyさん:2005/11/12(土) 22:01:52 ID:???
>>418
>$pass = aaaa;
$pass = 'aaaa';
420nobodyさん:2005/11/12(土) 22:06:40 ID:ZgVRm9Ef
>>419
わぉ、忘れてました。無事出来ました!!
今日からPHPの勉強始めて夢中なんですが、自分もまだまだです。^^;
ありがとうございました。
421nobodyさん:2005/11/12(土) 22:10:46 ID:???
>>420
エラー(Notice)でなかった?
error_reporting(E_ALL) にするとエラーでるようになるよ
422nobodyさん:2005/11/12(土) 22:18:06 ID:ZgVRm9Ef
>>421
いえ、特に……
それと、もう一つお願いがあります。

<?php
if($formpass == $pass){
print "<p>本人ですね</p>";

このように、print "〜";の中にHTMLのタグって書けないのでしょうか?
エラーが出てしまいます。
423nobodyさん:2005/11/12(土) 22:27:22 ID:ZgVRm9Ef
スマソ何の問題も無かった…orz
424419:2005/11/12(土) 22:39:34 ID:???
>>420
なんか機嫌がよくて答えちゃったけど、きみの為にはならなかったと反省している。
あの程度のミスは、自分で気が付くまで悩むべき。
とにかく試せ。あらゆる方法を。
425nobodyさん:2005/11/12(土) 22:45:09 ID:???
まぁ勉強初めたばかりで未熟なのは仕方ないとしても
質問の仕方はなんとかした方がいいわな。
普通は以下のようなツッコミが入るところだし。

>>418 と、したのですが、うまくできません。
どううまくできないの?

>>422 エラーが出てしまいます。
どういうエラー?
426nobodyさん:2005/11/13(日) 00:38:36 ID:???
認証ってif使って比較するような単純なのでいいの?
427nobodyさん:2005/11/13(日) 00:40:23 ID:???
じゃあswitch使います
428419:2005/11/13(日) 00:41:35 ID:???
>>425
質問の仕方というか、環境、ソースなど、質問するにあたって必要事項をまとめ、質問文を書いて、一呼吸おくと、そこで自己解決しちゃうことってかなり多いんですよね。これがまた。
それなんで、>>420にとってはそういうプロセスがものすごく大事な時期だと思う。ここで、どれだけ、自分で考えて調べて、検証っていう習慣を身につけるかで今後は大きく変わってくると思う。
かくいう漏れもまだphp暦一年。エラそうなこと言ってすまん。
429nobodyさん:2005/11/13(日) 00:53:03 ID:???
>>426
最初はそれから始めていいと思うよ。
だけど、最初だけね。
430nobodyさん:2005/11/13(日) 02:46:25 ID:???
PHPでASPのApplication変数にみたいなものってありますかね?
Webサイト内でグローバルな変数って感じで。
431nobodyさん:2005/11/13(日) 02:54:08 ID:???
>>430
無い。
やりたきゃ、config.inc.phpかなんか作って、
全ファイルでrequire_onceする。

もしくは、auto_prepend_fileで指定して、.htaccessなりでまとめて反映させる。
432nobodyさん:2005/11/13(日) 02:57:14 ID:???
>>431
そうですか、サンクス
433nobodyさん:2005/11/13(日) 03:13:30 ID:lJ8slral
名前を記録するスクリプトを作成しているのですが、もし、重複してしまったら
エラー(例えば「重複しています」)を吐くにはどうしたら良いですか?

正常(重複していなければ「log.dat」に記録される)
よろしくお願いします。
434nobodyさん:2005/11/13(日) 03:16:41 ID:VQkTNsEm
perlかphpでフリーのスクリプトを探しています。
条件は…

・掲示板
・アクセス認証付き
・表示形式が2ch風

この3つです。探したのですが合致するものがなかったので
知ってたら教えて下さい。
もしスレ違いだったらスレ誘導してくれると助かります。
435nobodyさん:2005/11/13(日) 03:42:53 ID:???
本当にくだらない質問ですけど、PHPでゴミ集めは参照カウントでしているそうですが、循環参照はきちんと解決されてますか?
大きなオブジェクトが絡まざるを得ないと、メモリ解放しててくれないと困ると思うんだけど。
436nobodyさん:2005/11/13(日) 04:01:58 ID:???
>>433
重複しているかどうかを自力でチェックするしかありません。

>>434
Web制作板のCGI探してますスレ
んでもアクセス認証ってのが厳しいかも。

>>435
Use the source! Luke.
437433:2005/11/13(日) 04:22:02 ID:lJ8slral
>>436
それでは、こんなスクリプトを作りました。

<?php
//設定
$yourname = $_POST['name'];
$file=fopen("name.dat","r");
while($row=fgets($file,1024)){
    if(eregi('($yourname)[a-z0-9./_\-]+',$row,$data)){
        print($data[0]."<br />");
    }
}
fclose($file);
?>

これ、正規表現でテキストを検索できると思うのですが
何故か全くprintしてくれません。
何か間違っていますでしょうか?
438433:2005/11/13(日) 04:25:34 ID:lJ8slral
■name.dat
hoge
hoge2
hoge777

これで、$_POST['name`]でユーザが入力した文字例を
name.datから検索できるようにしたいのですが…
どうやっても真っ白です。
439nobodyさん:2005/11/13(日) 08:18:41 ID:0CW9qsRb
>>429
いままで自分もcryptで暗号化したパスワードをif文で検証してたのですが、
次のステップというか一般的な認証法というのは、
どういった具合にすればよいのでしょうか。
440nobodyさん:2005/11/13(日) 08:43:58 ID:???
>>437
それだと$yournameが展開されない

""""""""""""""""""""""""""""""""""""""""""""""""""""""
441433:2005/11/13(日) 09:01:29 ID:lJ8slral
>>440
あー、だから出来なかったのですか?
何が良くないですかね。
442433:2005/11/13(日) 09:14:43 ID:lJ8slral
スマソ、流石にスレ違いかも。
違うスレで聞いてくる。
443433:2005/11/13(日) 10:30:19 ID:lJ8slral
>>440
ありがとうです。
444nobodyさん:2005/11/13(日) 11:06:35 ID:orFWcmz0
バッチコーイ
445nobodyさん:2005/11/13(日) 22:28:24 ID:???
超初心者の質問ですみません。
以下の(A)だと問題なく出力されるのに、(B)だとなぜか
ブラウザのプログレスバーがとまってしまう(無限ループに入っている?)
という現象に悩まされています。
考えられるミスをご存知の方、教えてください。
@PHP5.0.4 SQLite2.8.14
ちなみに(A)(B)の前後は全く一緒、MEMOはTINYINTです。

(A)
if (!$nimo=sqlite_query("SELECT * FROM test_db WHERE ID=".$number,$db))
{echo "Update Failed";}
$nimo1=sqlite_fetch_array($nimo);
print "nimo=".$nimo1["MEMO"];

出力結果 nimo=1

(B)
if (!sqlite_query("UPDATE test_db SET MEMO='0' WHERE ID=".$number,$db))
{echo "Update Failed";}

446nobodyさん:2005/11/13(日) 22:51:02 ID:???
>>445
他のアプリが、そのデータベースをオープンしていて、トランザクション処理中ってことはない?
試しに、以下をやってみて、"database is locked" とかのエラーメッセージが表示されないかなぁ。

(B)
ini_set('display_errors', true);
error_reporting(E_ALL);
sqlite_busy_timeout($db, 1 * 1000);  //ロック解除待ちを1秒にセット(デフォルトでは60秒)

if (!sqlite_query("UPDATE test_db SET MEMO='0' WHERE ID=".$number,$db))
{echo "Update Failed";}
447445:2005/11/14(月) 00:01:57 ID:HOVC0Ybb
>>446

ありがとうございます。
やってみたのですが、
ini_set('display_errors', true);とerror_reporting(E_ALL);をいれると
状況が変わらず、sqlite_busy_timeout($db,1*1000);を入れて
実行してこの部分に入ると真っ白(ブラウザ画面になにも表示されない)に
なってしまいます。

もすこし調査してみます。
448nobodyさん:2005/11/14(月) 00:10:33 ID:???
>>447
>>446 ではないがini_set〜sqlite_busy_timeoutまでをすべて追加汁、だと思われ。
あとsqlite_busy_timeoutの後ろに全角スペースが入っているみたいなので
削除してやってみそ。
449434:2005/11/14(月) 00:23:49 ID:zaQtKJ3k
>>436
ありがとうございます。これから行って聞いてみます。
450445:2005/11/14(月) 00:38:08 ID:HOVC0Ybb
>>448
真っ白になったので、一行ずつやってみてました。
ご指摘の通り、全角スペースのせいでした。

そして、database is locked の表示が出ました。
他でオープンされていないか調査してみます。
>>446,448 ありがとうございました。
451nobodyさん:2005/11/14(月) 06:00:02 ID:zuaWuGho
全角スペースはエディタの設定で可視化しとくべし。
452nobodyさん:2005/11/14(月) 06:47:24 ID:???
URLからサイトの更新時間を取得したいのですが、
filemtime()って、URLでも使用できますか?
453nobodyさん:2005/11/14(月) 06:59:43 ID:???
PHPで鯖の混雑状況とかわかりますか?通信速度を取得する関数とか…。
今はページの最初の一部分で何秒(0.0001秒とか)かかったかで判断してるんですが他にいい方法があれば知りたいです。
454nobodyさん:2005/11/14(月) 08:29:06 ID:???
>>452
http://php.net/filemtime

>>453
鯖側でステータスだしてPHPで取得すればいい
455nobodyさん:2005/11/14(月) 08:31:57 ID:???
>>452
URLってHTTP?仮想的にマウントしてれば可能だがありえねー
普通にヘッダーフィールド見ろよ
456nobodyさん:2005/11/14(月) 08:45:59 ID:???
関係ないけどHttp喇叭が200と302しかもにょってくれないのが寂しい
457nobodyさん:2005/11/14(月) 13:28:09 ID:???
つい最近PHPをoreillyのLearning PHP5で勉強し始め、そろそろ読み終ります。
まだ全部を理解している訳ではないんですがステップアップを狙う次の本で
悩んでます。どっちもoreillyの奴ですが
Web Database Applications With Php and Mysql

Programming PHP
どっちを手にしてみるべきでしょうか。
懐寂しいので2冊同時はいけないです。
458nobodyさん:2005/11/14(月) 13:43:00 ID:???
SID
という変数にセッション関連の変数が定義されてるようにするには何をいじればいい?
459nobodyさん:2005/11/14(月) 13:46:21 ID:C2SChEGb
ファイルの最終更新日(最後にアップロードされた日時)を
取得するにはどうすればよいでしょうか?
460nobodyさん:2005/11/14(月) 14:01:43 ID:???
>>457
本読むより何か作れ。
>>459
filemtime
461nobodyさん:2005/11/14(月) 14:10:33 ID:???
>>458
$SID = $_SESSION;

じゃダメなのか?
462nobodyさん:2005/11/14(月) 14:32:01 ID:???
include_pathの設定に、".C:/php/includes;C/php/PEAR"というのが
参考書に書いてありましたが、includesというフォルダは存在していません。
これは自分で同名の空フォルダを作るということでしょうか?

また、Apache2.0.55を起動しようとすると、「指定されたファイルが
見つかりません」とのエラーが出ます。httpd.confの方も参考書のとおり
修正しているのですが、うまくいきません。
何が原因なんでしょうか?
463nobodyさん:2005/11/14(月) 14:37:59 ID:???
include_pathのデフォルト値はただの例
自分の環境にあわせて書き換えればいい

Apacheのエラーはそれとは無関係
464nobodyさん:2005/11/14(月) 14:44:07 ID:???
>>463
無関係なのですね…分かりました。
Apacheのエラーの理由はどういうったことが
考えられますか?
.confのDocumentRoodでもPHPファイルのあるhtdocsフォルダを指定し、
その中にテスト用のtest.phpを置いているのに、なぜ「見つかりません」
となるのか・・・
465nobodyさん:2005/11/14(月) 14:54:57 ID:???
エラー内容は正確に書いてくれんかね。
実際に出てるエラーはこんなんじゃないのかね?
[error] (OS 2)指定されたファイルが見つかりません。 : No installed service named "Apache2".
もしそうなら、PHPというよりwindowsのサービス(という仕組み)の話だぁね。
466nobodyさん:2005/11/14(月) 14:59:23 ID:???
>>461
ttp://www.yc.musashi-tech.ac.jp/~yamada/doc/php/0802.html

> Cookieが使用できない場合、定数SIDには、セッション名=セッションIDが代入されます。

ということらしいんだけどうちの環境じゃ代入されてなくて・・・
$_SESSIONはセッションに関係する変数を全部一緒くたにした感じだね。
467nobodyさん:2005/11/14(月) 15:01:49 ID:???
>>465
すみませんでした。そのエラーメッセージの通りです。
現在Adminでインストールにトライしていて、やり直すときには
Apache、PHPをアンインストールしてから、再度インストールしています。

また、http://localhostにアクセスすると、IIS(MS提供のWebサーバ?)
の初期画面らしきものが表示されています。
(インストールした覚えはないのですが、Professionalなので元からあるのかな)
468nobodyさん:2005/11/14(月) 15:10:12 ID:???
>>466
session_id()で取れることは取れるけど

つかクライアントからCookieフィールドが来てるんだろ
SIDが空なのは正常な動作だ
469nobodyさん:2005/11/14(月) 15:21:21 ID:???
セッション関連の変数 ≠ 定数SID

まだ絶対的に知識が足りないぞ
他のサイトも見たほうがいい

とくにマニュアル
470nobodyさん:2005/11/14(月) 15:22:00 ID:???
>>466
session_startは実行しているの?
471nobodyさん:2005/11/14(月) 15:22:24 ID:???
>>468-469
なるほど・・・
472nobodyさん:2005/11/14(月) 15:22:55 ID:???
>>470
一番最初に実行しているよ
473nobodyさん:2005/11/14(月) 15:31:02 ID:C2SChEGb
>>460
ありがとうございます。
filemtimeで検索したら<?php echo date( 'Y/m/d (D) H:i:s', filemtime('0201_gt.php') ) ?>
こういうのがありました。

0201_gt.phpみたいにファイル名を指定しなくても
取得出来るようにするにはどうしたらよいでしょう?
474459:2005/11/14(月) 15:32:07 ID:C2SChEGb
名前入れ忘れてました。
>>473=>>459です。
475nobodyさん:2005/11/14(月) 15:35:53 ID:???
>>473
意味不明。
ファイル名を指定しなかった場合、「どの」ファイルの最終更新日を取得するんだ?
476nobodyさん:2005/11/14(月) 15:36:35 ID:75+wufok
test.php?test=hoge
とURLにURLリクエストが出るのが嫌なので.htaccessでできるのかなと思い

RewriteEngine on
RewriteRule ^([A-Za-z0-9]+)\.php$ test.php?test=$1

としてhoge.phpにアクセスしても変数を受け渡してくれません
なんとかなりませんか?
477nobodyさん:2005/11/14(月) 15:36:57 ID:???
>>473
ファイル名を指定しないことにはどのファイルの更新時間を調べてよいかわからんのだが。
478459:2005/11/14(月) 15:43:10 ID:C2SChEGb
>>475,>>477

<dl>
  <dt>最終更新日</dt>
      <dd>200x年xx月xx日</dd>
</dl>

これを、更新の度に書くのが面倒なのでPHPを使ってやりたいのですが
いちいちファイル名を指定しなくても、スクリプトのファイル名を取得出来ないかなぁ…
と、思ったわけです。
479nobodyさん:2005/11/14(月) 15:43:37 ID:???
>>476
mod_rewriteが入ってないとか?
480nobodyさん:2005/11/14(月) 15:44:32 ID:???
>>478
$_SERVER['SCRIPT_NAME']
481nobodyさん:2005/11/14(月) 15:47:30 ID:???
>>478
getlastmod でググれ。
482nobodyさん:2005/11/14(月) 15:48:10 ID:???
>>478
最初からそう書けばいいだろ?
みんなオマイみたいにエスパーではないんだから。
483459:2005/11/14(月) 15:49:15 ID:C2SChEGb
皆さんありがとうございました。
うまくやってみます。

>>482
スマソ
484nobodyさん:2005/11/14(月) 15:50:45 ID:???
>>479
500
485nobodyさん:2005/11/14(月) 15:54:10 ID:75+wufok
>>479
確認してみましたが入ってました

.htaccessの記述にもやや不安があるのですが間違っていないですか?
486nobodyさん:2005/11/14(月) 15:58:05 ID:???
>>485
入ってるけど、入れた後にapacheをリスタートしてないとか
487nobodyさん:2005/11/14(月) 16:02:36 ID:75+wufok
>>486
レン鯖なのでそれはないと思います・・・
488nobodyさん:2005/11/14(月) 16:03:57 ID:???
>>486
500
489nobodyさん:2005/11/14(月) 16:06:42 ID:???
>>487
(.+)
にかえてもだめかい?
490nobodyさん:2005/11/14(月) 16:28:13 ID:75+wufok
>>489
やってみましたが
「test」という変数を渡してしまい駄目でした
491476:2005/11/14(月) 17:13:45 ID:???
RewriteEngine on
RewriteRule ^([A-Za-z0-9]+)/$ test.php?test=$1

これでURLリクエストを隠すという目的は一応果たせるので
これで行きたいと思います

うーんむずかすぃ・・・(;´Д`)
492nobodyさん:2005/11/14(月) 17:19:33 ID:???
>>490
なぜ、どのURLでアクセスしたかとか、print_r($_GET) がどうなってるとかって情報出さないのだろうか。
493467:2005/11/14(月) 17:22:58 ID:???
どなたか分かる方いらっしゃいませんか?
494nobodyさん:2005/11/14(月) 17:41:25 ID:???
>>493
php走らせる前の段階でこけてるんだからスレ違い。
495nobodyさん:2005/11/14(月) 17:48:38 ID:???
>>493
判る人はいっぱいいるよ。
でもスレ違いだし、環境や、どうインストールしたかも書かない奴を
いちいち相手にしていないだけ。
496nobodyさん:2005/11/14(月) 17:52:30 ID:???
>>492
test.php

<?
print_r($_GET);
?>

として、

RewriteEngine on
RewriteRule ^([a-zA-Z0-9]+)\.php$ test.php?test=$1

のルールの時、hoge.phpにアクセスすると、

Array ( [test] => test )

となる。

RewriteRule ^([a-zA-Z0-9]+)\.html?$ test.php?test=$1

として、hoge.html(htm)にアクセスすると、

Array ( [test] => hoge )

になるね。
497459,473,478:2005/11/14(月) 17:53:33 ID:C2SChEGb
すみません。
うまくプリントされたのですが…

> 最終更新日:1970/01/01 (Thu) 09:00:00
になってしまいます。
どうしたら良いでしょうか?
498nobodyさん:2005/11/14(月) 18:00:12 ID:???
>>496
ループ

>>497
エラーを出力するように設定を変更
499nobodyさん:2005/11/14(月) 18:10:08 ID:???
>>497
どういうソース書いたんだ?
500459,473,478,497:2005/11/14(月) 18:11:09 ID:???
>>498

Warning: filemtime(): Stat failed for $script_name (errno=2 - No such file or directory) in /home/noaki/www/footer.inc on line 13
1970/01/01 (Thu) 09:00:00
501459,473,478,497,500:2005/11/14(月) 18:13:24 ID:???
>>499
■footer.inc

<?php
$script_name = $_SERVER['SCRIPT_NAME'];
?>
(略)
<dl>
  <dt>最終更新日</dt>
       <dd><?php echo date('Y/m/d (D) H:i:s',filemtime('$script_name') ) ?></dd>
</dl>

↑これをincludeで取り込んでいます。
502nobodyさん:2005/11/14(月) 18:18:09 ID:???
>>501
わりい、ちと間違えてたよ。
つーか、少しは自分でしらベロや。

ファイルがないつってんだから、
$script_nameがおかしいんだよ。

で、$_SERVER['SCRIPT_NAME']じゃなかったよ。
でも、似た名前だから、探してみな。


503nobodyさん:2005/11/14(月) 18:19:26 ID:???
>>501
"Stat failed for $script_name (errno=2 - No such file or directory) " と
懇切丁寧に表示されているが、なんで無視する?
504nobodyさん:2005/11/14(月) 18:22:36 ID:???
>>501
自分自身なら __FILE__ でいいんじゃないかな
505nobodyさん:2005/11/14(月) 18:24:04 ID:???
>>501
最初の質問から最後まですべて丸投げだな。
PHP触ってて楽しいか?
506nobodyさん:2005/11/14(月) 18:51:05 ID:???
次のスレタイ候補その1

【PHP】○投げ・Sパーщ(゚д゚щ)・下らねぇ質問はここに書き込みやがれpart13
507nobodyさん:2005/11/14(月) 19:04:47 ID:???
>459 名前:nobodyさん 投稿日:2005/11/14(月) 13:46:21 ID:C2SChEGb
>ファイルの最終更新日(最後にアップロードされた日時)を
>取得するにはどうすればよいでしょうか?


>>459の質問はくだ質以下の質問なのでその時点でスルーでよかったと思うよ
いくらくだ質スレと言ってもここまで酷いのは手に負えんだろw

本スレよりまともな質問もちらほらあるんだけどねぇ・・・何か残念だよ
508459,473,478,497,500:2005/11/14(月) 19:07:10 ID:C2SChEGb
o
k
509nobodyさん:2005/11/14(月) 19:14:53 ID:???
エスパーの方、>>497がどのようなコードを書いたか透視してくれ
510481:2005/11/14(月) 19:50:03 ID:???
>>501

<?php

echo date("Y/m/d (D) H:i:s",getlastmod());
exit;

?>
511nobodyさん:2005/11/14(月) 20:21:23 ID:???
よしよし可愛そうにな
512nobodyさん:2005/11/14(月) 20:58:21 ID:???
mkdir() とか chmod() とかがセーフモードで使えないもんで、日記がレン鯖で動かせない。
…代替案はありませんか教えてくださいエロい人。
513nobodyさん:2005/11/14(月) 21:22:50 ID:???
乗り換え
514nobodyさん:2005/11/14(月) 21:28:09 ID:???
ブログでもかりとけ
515nobodyさん:2005/11/14(月) 21:34:46 ID:???
レン鯖用に書き換える
516nobodyさん:2005/11/14(月) 22:37:01 ID:???
PHP使って性欲が満たされるなんてことはあるのでしょうか。
517445:2005/11/14(月) 23:05:54 ID:???
報告です。

if (!sqlite_query("UPDATE test_db SET MEMO='0' WHERE ID=".$number,$db))
{echo "Update Failed";}

の前後にsqlite_query($db4, "begin transaction");と
sqlite_query($db4, "commit transaction");をおいたら
問題なくいけるようになりました、お恥ずかしい。

もしかしたら同じようにハマる人がいるかもしれないので、
恥を忍んで書いときます。
日記の裏スマソ


518445:2005/11/14(月) 23:06:51 ID:???
日記の裏じゃない、
チラシの裏・・・。
519nobodyさん:2005/11/14(月) 23:17:28 ID:???
日記の裏って…一瞬素で悩んじゃったよw
520nobodyさん:2005/11/14(月) 23:54:22 ID:???
サイトの更新時間を知りたいんですが、fstatって使えるんですか?
すみませんが、使い方を教えてください。
521nobodyさん:2005/11/14(月) 23:59:27 ID:???
サイトの更新時間を知りたいんですが、fstatって使えるんですか?
すみませんが、使い方を教えてください。
522nobodyさん:2005/11/15(火) 00:07:23 ID:???
>>520-521
使えるかどうかやってみてから聞いたら?
523nobodyさん:2005/11/15(火) 00:12:40 ID:???
>>522
自分で試したんですけど、うまくいかないんです。
ソケット通信をオープンして、
$atai=fstat($fp);
print(date("F d Y H:i:s.", $atai['mtime']));
としたのですが、できませんでした。
524nobodyさん:2005/11/15(火) 00:21:12 ID:???
>>523
頼むからマニュアルくらい読んでください
525nobodyさん:2005/11/15(火) 00:25:48 ID:???
読んだんですけど、理解できませんでした。
すみません、初心者なもので。
教えていただけるとありがたいです。
526nobodyさん:2005/11/15(火) 00:34:17 ID:???
>>525
理解できないものを使おうとするなよ・・・。
とりあえずファイルオープンするところからソース晒してみ。
527nobodyさん:2005/11/15(火) 00:37:39 ID:???
ttp://jp.php.net/manual/ja/function.fstat.php
リモートファイルには使えないって書いてあるよ
528nobodyさん:2005/11/15(火) 00:37:57 ID:???
$url="www.yahoo.co.jp";
@$fp= fsockopen($url, 80, $errno, $errstr, 30);
fputs($fp,"GET // HTTP/1.0\r\nHost:$url\r\n\r\n");

while(!feof($fp)){

$page=$page.fgets($fp,128);
}

$atai=fstat($fp);

print($atai[9]);
print(date("F d Y H:i:s.", $atai[9]));

以上です。
529nobodyさん:2005/11/15(火) 00:41:57 ID:???
>>527
無理みたいですね。
あきらめます。
530nobodyさん:2005/11/15(火) 01:41:49 ID:???
>>529
諦めが早すぎ。つかマニュアル読んだか?
httpのlast-modifiedフィールドで取得でよければ

ttp://jp.php.net/manual/ja/function.filemtime.php

filemtime_remote で検索してみそ。まんまあるし
531nobodyさん:2005/11/15(火) 02:49:41 ID:???
PHPでC++厨をぎゃふんと言わせるにはどんなコードを書いたらいい?
532nobodyさん:2005/11/15(火) 02:51:00 ID:???
1 == $flag
533nobodyさん:2005/11/15(火) 03:04:07 ID:???
ハァ?
534nobodyさん:2005/11/15(火) 04:11:10 ID:???
まぁ確かに「ぎゃふん」とは言われるわなw
535nobodyさん:2005/11/15(火) 04:17:09 ID:???
//声に出して
READING("ギャフン");
536531:2005/11/15(火) 04:29:43 ID:???
function PHP() {
return PHP() . ": Hypertext Preprocessor";
}

echo PHP();

これでぎゃふんと言わせるつもりだけど、自分でも内部動作がわからない。
537nobodyさん:2005/11/15(火) 04:39:43 ID:???
538nobodyさん:2005/11/15(火) 10:14:22 ID:pzFaqocd
ズボンがさがった
539nobodyさん:2005/11/15(火) 12:09:31 ID:???
phpでローカルのlinux鯖のPAM認証を使ってログイン処理をしたいんですがおすすめの関数とかありますか?
掲示板への書き込みとかをそれで認証させたいんです。
540539:2005/11/15(火) 17:24:27 ID:???
>>539
ようはlinuxにログインするときのユーザとパスワードで認証したいって事であります!ビシッ
541nobodyさん:2005/11/15(火) 17:33:42 ID:???
pam_auth
542nobodyさん:2005/11/15(火) 20:11:29 ID:???
>>536が無限ループにならないのはなぜ?
543nobodyさん:2005/11/15(火) 22:09:57 ID:???
>>542
>>536 のコードはWin32, PHP4.4.1 環境で確実に無限ループに陥って kill されるが。
544nobodyさん:2005/11/15(火) 22:13:15 ID:???
無限ループの前にスタック溢れると思うんだが
545nobodyさん:2005/11/15(火) 22:25:12 ID:???
スタックオーバーフローで例外出ないのかこの言語。終わってるな。
546nobodyさん:2005/11/15(火) 22:48:25 ID:???
見てるこっちが恥ずかしい
547nobodyさん:2005/11/16(水) 01:18:03 ID:???
セッションの勉強で訳解らなくなってきますた。

$hoge = 1;
session_register("hoge");

$_SESSION['hoge'] = 1;

は同じ意味と考えていいのでしょうか?
548nobodyさん:2005/11/16(水) 01:39:16 ID:???
>>547
同じといえば同じだけどsession_registerはregister_globalsの設定に影響されるから
同じとも言い切れない。
バージョンが何か知らないが4.2.0以降ぐらいなら$_SESSIONが推奨
マニュアル参照
変数>外から来るなんとか、や関数>SESSION>session_registerとこらへん
549nobodyさん:2005/11/16(水) 04:03:52 ID:0SUYgaVH
まだまだこれからなんですが、
HPをPHPとMySQLで構成しようとしたら、
どちらの方が勉強量が多いんですか?

ケースバイケースでしょうが、おおよそで良いので教えてください。
550nobodyさん:2005/11/16(水) 04:14:47 ID:???
>>549
そりゃ圧倒的にphp。あとhtmlとcssもな。
551nobodyさん:2005/11/16(水) 04:24:29 ID:???
>550
わかりました。phpが一通り終わったらcssもやってみます。
552nobodyさん:2005/11/16(水) 04:51:04 ID:???
>>551
先にcssをやっておいた方が良いと思うぞ…。
553nobodyさん:2005/11/16(水) 05:19:03 ID:???
>>552
あわててアマゾンの注文にcssの本も追加しておきました
554nobodyさん:2005/11/16(水) 06:01:43 ID:qA2up4Yx
以下のようにscriptタグからphpを呼んでいるんですが、
呼ばれたphpから元のhtml/phpの情報を取得できないでしょうか。

//--a.html(php)

<script src="b.php"></script>

//--

例えばa.phpにb.phpをincludeしてb.php内で
$_SERVER['PHP_SELF']や$_SERVER['SERVER_NAME']を参照すると
a.phpについての情報が帰ってきますが、これと同じ結果を得たいと考えています。

よろしくお願いします。

555nobodyさん:2005/11/16(水) 07:23:54 ID:???
>>554
つ $_SERVER["HTTP_REFERER"]

確実じゃないがな。
556nobodyさん:2005/11/16(水) 07:45:37 ID:???
phpizeとは何ですか?
ググっても答えが見つかりませんでした。
557nobodyさん:2005/11/16(水) 07:56:21 ID:???
>>556
拡張モジュールの単独ビルドで利用されるコマンド
PEAR が使えない時に使う
558nobodyさん:2005/11/16(水) 07:57:00 ID:???
つかググればいくらでも出てくるじゃねぇか
何見てんだ
559nobodyさん:2005/11/16(水) 08:23:24 ID:???
>>558
答えが表示されている事に気がつかなかったんじゃないか?
560nobodyさん:2005/11/16(水) 08:35:51 ID:???
561nobodyさん:2005/11/16(水) 08:35:59 ID:???
何の為にググってるんだか
562556:2005/11/16(水) 08:42:36 ID:???
>>557
どもでした
563nobodyさん:2005/11/16(水) 08:46:29 ID:???
>>561
図星かよw
564nobodyさん:2005/11/16(水) 08:53:52 ID:???
>>554
b.phpで必要な情報をa.html(php)でセッションなりクッキーなりに書いておく。
565nobodyさん:2005/11/16(水) 09:13:01 ID:???
ちょっと行き詰ってしまったので質問させてください

現在簡単なクイズをPHPで作成しております
そこで時間制限を設けたいと思ったのですが↓のような事は出来ますか?
クイズの選択肢はラジオボタンで時間が着たら強制的にsubmitを実行して
値を他のPHPに送るというのは可能でしょうか?
566nobodyさん:2005/11/16(水) 09:15:29 ID:???
>>565
PHPの役目じゃないような・・・
JavaScriptかRefreshを使うかな
567nobodyさん:2005/11/16(水) 09:45:07 ID:???
なんかデジャブ
568nobodyさん:2005/11/16(水) 09:55:15 ID:1AGYcoHn
http://chig.vis.ne.jp/rss/このページの一番下の、『2ch ニュース速報+』
のソースに興味を持ち、PHPの勉強を思い立ちました。で、
http://php.hoge.org/php4_new/PHP4_Part-1.pdfにあったソース
<?php
print "hello,World!\n";
?>
を、書いたtest1.phpを、C:\1フォルダに入れました。
この後、どういう作業をすれば、hello,World!と表示出来るのでしょうか?
環境は、XP pro sp2で、サーバーのソフト等は入ってません。
569nobodyさん:2005/11/16(水) 09:58:48 ID:???
>>568
釣りか?
ま、いいや。
ApacheとPHPのWindows版をそれぞれインストール。
570nobodyさん:2005/11/16(水) 10:01:09 ID:1AGYcoHn
釣ではありません、了解しました、どうもでした。 >>569
571565:2005/11/16(水) 10:09:56 ID:???
>>566
申し訳ないです
先ほど自分でも調べている時にこれってjavaスプリクトじゃないのかな・・・
って思ってました。
さっきの質問は忘れてもらって結構です わざわざ教えていただきありがとうございました

あともう一つだけ質問お願いします
今度はPHPでアラートウィンドウを表示させたいのですが可能ですか?
これもjavaスクリプト使えば可能なのですが、phpの値をjavaスクリプトに渡す方法を
知らないのでphpで作成できないものなのかと思いまして質問させてもらいました。
phpの値をjavaスクリプトに送る方法も分かる方がいらっしゃれば教えてもらえるとありがたいです。
微妙に板違いかもしれませんが 宜しくお願いいたします
572nobodyさん:2005/11/16(水) 10:13:44 ID:???
>>571
PHPではアラートウィンドウは出せない。
573nobodyさん:2005/11/16(水) 10:15:04 ID:???
>>570
Apache php Windows
でぐぐれば色々見つかるぞ。

っても、今ぐぐるはまともにつながらないのだが……。
574nobodyさん:2005/11/16(水) 10:22:05 ID:???
>>571 汚くても良ければ。
<?PHP
$msg = 'test';

echo <<<EOD
<script type="text/javascript">
<!--
function MyAlert(msg)
{
alert(msg);
}
//-->
</script>
<input type="button" value="click me" onclick="MyAlert('{$msg}');">
EOD;
?>
575nobodyさん:2005/11/16(水) 10:29:14 ID:???
the end of doutei
576565:2005/11/16(水) 10:40:00 ID:???
>>572
すばやい返信感謝です
phpではアラートは無理なのですかぁ・・・

>>574
おおお ソースまで記入していただき非常に助かります
しかし、エラーが出てしまうのでちょっと↓のように改良してみました
<?PHP
$msg = 'test';
print '<script type="text/javascript">';
print '<!--';
print 'alert(msg)';
print '//-->';
print '</script>';
?>
これでもアラートは出てきませんでした  
何か悪いところがあるのでしょうか?
577nobodyさん:2005/11/16(水) 10:42:18 ID:???
今見ているページのURLを表示させるにはどうすれば?
578nobodyさん:2005/11/16(水) 10:45:09 ID:???
>>576
phpはサーバーサイトスクリプト、javascriptはクライアントサイドスクリプト。
でもって、アラートウィンドウを出すのは誰?
579nobodyさん:2005/11/16(水) 10:53:42 ID:???
>>576
まずはサーバーサイドとクライアントサイドの違いから勉強汁
この板がどっちを対象としてるかは分かってる?
580574:2005/11/16(水) 10:53:53 ID:???
>>576
エラーの詳細を書いてもらうとお互いの為になるのでありがたいんだけど。

改造版の方は、<!-- --> が改行で区切られていないのと、msg 変数の埋め込みが
間違っているね。あと ' と " の使い分けに注意して。
まずは、HTML に JavaScript を埋め込んだものを作成して、動くことを確認してから
同じ HTML を PHP で生成するようにすれば間違いは見つけやすいと思う。

<?PHP
$msg = 'test';
print '<script type="text/javascript">';
print "<!--\n";
print "alert('{$msg}');\n";
print '//-->';
print '</script>';
?>
581565:2005/11/16(水) 10:54:25 ID:???
>>578
自分が考えている理想は時間がmysqlに入っている制限時間が着たら
アラートを出すという事なのですが、
アラートを出すのはクライアントサイドスクリプトのjavascriptですよね?

ですので754さんのソースの様にphpの中にjavaスクリプトを入れたいのですが
技術的に無理なのですか?
582nobodyさん:2005/11/16(水) 10:57:50 ID:???
>>581
mysqlに入っている値をphpで取り出して、
それをjavascriptで使えばいいだけでは?
583nobodyさん:2005/11/16(水) 11:00:18 ID:???
とりあえずさ、

php javascript 連携

でぐぐってみなよ。
584565:2005/11/16(水) 11:03:22 ID:???
>>579
確かに板違いでしたね・・・今後もっと勉強して出直してきます

>>580
これでもかと言うほどこと細かく説明してくださりありがとうございました
また一つ勉強になりました。

585nobodyさん:2005/11/16(水) 11:18:59 ID:???
PHPは最終的にブラウザに渡すHTMLを作り上げるだけ・・・ということが分かっていないのではないだろうか。
#注:今回の場合
586nobodyさん:2005/11/16(水) 11:24:25 ID:???
おぉ、やっぱ質問者の態度で随分対応が違うもんだ。
(´_ゝ`)。о(人ってこんなもんだよね。
587nobodyさん:2005/11/16(水) 11:32:19 ID:???
当たり前だのクラッカー
588nobodyさん:2005/11/16(水) 14:16:30 ID:auH+mnzS
xoopsを使ってリニューアルしたが、別フォルダーに携帯用のページもあるのでパソコンと携帯を振り分けたいのですが、アドバイス下さい
589nobodyさん:2005/11/16(水) 14:27:01 ID:???
>>588
XOOPSのサイトのフォーラムで聞いたらいいよ。
590nobodyさん:2005/11/16(水) 15:28:15 ID:???
>>541さんありがとうございます
pam_authってphpの関数でしょうか?
リファレンス本にも載っていないしやたら情報が少ないんですが・・
591nobodyさん:2005/11/16(水) 16:03:00 ID:???
pmaってphpMyAdminのことかい。
592nobodyさん:2005/11/16(水) 16:03:48 ID:???
よくみたらpmaじゃなくてpamね
シツレイしました。
593nobodyさん:2005/11/16(水) 16:09:13 ID:???
元々PAM認証をプレーンな経路で使うこと自体考えないからなぁ・・・
594nobodyさん:2005/11/16(水) 16:14:47 ID:???
595nobodyさん:2005/11/16(水) 16:19:35 ID:auH+mnzS
589

有難うございます。そうします
596590:2005/11/16(水) 16:25:21 ID:???
皆さんありがとうございました。
594さんのでもOKだと思いますが。
debian では php4-auth-pam ってパッケージがありました。
597nobodyさん:2005/11/16(水) 17:01:05 ID:???
データベースサイト作りたい。

↓こーいうやつ。
ttp://baseball.yahoo.co.jp/npb/stats/stats_p_bat_avg.html

ここのやつは年明けると細かいデータ消えちゃうから
数年分のデータも残るようなやつを作りたい。

すでに他がやってるかもしれないけど、まぁ勉強もかねてやってみたい。
phpは向いてるのかな?
598nobodyさん:2005/11/16(水) 17:05:31 ID:???
>>597
向いてる
がんばれ
599590:2005/11/16(水) 17:12:25 ID:???
でパッケージをインストールしてapacheを再起動しただけの状態で

<?
$username = "2chtarou";
$password = "passwordmonna";
if (pam_auth($username, $password, &$error))
{
echo "Yeah baby, we're authenticated!";
}
else
{
echo $error;
}
?>

てやりましたが駄目ですね・・。
「Authentication failure」と怒られてしまいます。
600nobodyさん:2005/11/16(水) 17:22:27 ID:???
>>599
ttp://www.math.ohio-state.edu/~ccunning/pam_auth/ のをパッケージ化したらしいから、
そのサイトの文章を全部読んでいってみ
601590:2005/11/16(水) 17:44:38 ID:???
INSTALLとかも読んでるんですが・・
ソースから入れなおしてみようかな・・
602590:2005/11/16(水) 17:53:00 ID:???
ああ、分かりましたFAQのところですね。
セキュリティ的にもどうかと思うみたいな感じだし、どうしよう・・
603nobodyさん:2005/11/16(水) 18:24:23 ID:???
>>590
独り言は壁に向かってやってくれ
604nobodyさん:2005/11/16(水) 18:25:07 ID:???
もしくはチラシの裏だな
605nobodyさん:2005/11/16(水) 18:53:46 ID:oBfPea7u
手軽に印刷用ページをつくりたいと思い、海外のPHPrintという
スクリプトに出会いました。

ttp://www.mikenew.net/printfriendly.php

かなり使いやすいのですが、5C文字化けがおこってしまい、
悩んでおります。.htaccessにMagic offの記述は共有サーバーが
許可してくれていないため、ダメぽでした。

if(get_magic_quotes_gpc()){・・・

等は、私自身のスキルがへちょい為、思った通りに
いきません。

何かよい知恵をおかしくださいませ。
606nobodyさん:2005/11/16(水) 19:02:25 ID:???
>>605
どう思ったようにいかないのか書いた方がいいよ。
みんながPHPrintを使っている訳じゃないんだし。
もっと具体的に。
607605:2005/11/16(水) 19:46:44 ID:???
すいません。具体的には印刷用ページに出力する段階で、
シフトJISの5C文字化けがおこるんです。これを解消したいのです。
608590:2005/11/16(水) 19:49:36 ID:???
結局FAQにあったようにshadowファイルにpermissionがあるユーザが無いと駄目でした。
実際にapacheのユーザがshadowファイルを読み込めるようにしたらpam認証は可能でした。
しかし、セキュリティ的に厳しいので断念しますた。
609nobodyさん:2005/11/16(水) 19:50:25 ID:???
一番簡単なのは、文字コードをシフトJIS以外にする(EUC-JP等)
610nobodyさん:2005/11/16(水) 19:53:59 ID:???
>>605
stripslashesでだめってことかい?
611nobodyさん:2005/11/16(水) 21:14:41 ID:???
11:3=B
612605:2005/11/16(水) 22:21:41 ID:???
はい。stripslashesでやってみたのですがダメでしたので、
私のスキルでは無理だと判断し、相談させていただいてます。

印刷ページ作成スクリプトをいろいろとさがしたのですが、
PHPrintぐらいしかみつかりませんでした。ほかのスクリプトで
フリーなものがあれば、こちらも教えていただきたいのですが。
613nobodyさん:2005/11/16(水) 22:43:08 ID:???
>>605
具体的にってのは
「ソースのここを、こうしたんだけど、結果はこうなった」
みたいなことを言う
「文字化けしました」
「stripslashesでやってみたのですがダメ」
というのは見ている人には何がなんだかわからない。

唯一「私のスキルでは無理」はわかった
614nobodyさん:2005/11/16(水) 22:46:32 ID:???
言われて分かる人は最初からそうは言わない。よって言うだけ無駄と思われr
615570:2005/11/16(水) 23:00:30 ID:1AGYcoHn
>>570です、目出度くhello,World! が表示させられました、
大変ありがとうございました。
616nobodyさん:2005/11/16(水) 23:23:43 ID:???
>>612
本当に magic_quotes_gpc の問題なの?
ちょっとスクリプトを見たけど、以下の処理で2バイト目の \ が除去されるのが原因じゃないのかなぁ。
$PHPrint = stripslashes("$PHPrint");

とりあえす、一度 EUC にでも変換してからやれば逃げれるような気がするけど。
$PHPrint = mb_convert_encoding($PHPrint, 'euc-jp', 'sjis');
$PHPrint = stripslashes("$PHPrint");
$PHPrint = mb_convert_encoding($PHPrint, 'sjis', 'euc-jp');

酔っぱらいながらなのでハズしていたらスマソ。
617nobodyさん:2005/11/17(木) 00:05:41 ID:Jqnomwxe
同一フォーム内に複数の送信ボタンを持つCGIを作成しています.
POSTで取得した送信ボタンの値によって処理をわけています.

↓のように書いた場合,押されたほうのボタンの値がfunctionの値になるので
,functionの値によって処理を分岐すれば,期待通りの動作をします.

<form ... >
<button type="submit" name="function" value="readA">readA</button>
<button type="submit" name="function" value="readB">readB</button>
...
</form>

しかし,CGI解説サイトなどを眺めていますと,↓のように送信ボタンのnameを
重複しないようにしろと書いてあったりします.
<form ...>
<button type="submit" name="function_readA" value="readA">readA</button>
<button type="submit" name="function_readB" value="readB">readB</button>
...
</form>

これはこれで,押されたボタンだけvalueを持つので,
function_readA, function_readB, ..が値を持っているかどうかによって
処理を分岐させれば期待通りの動作をさせることができます.

どちらの方法が正しい(推奨)ですか?
618nobodyさん:2005/11/17(木) 00:13:27 ID:???
>>617
で、それのどこがPHPなの?
619nobodyさん:2005/11/17(木) 00:13:50 ID:???
>>617
つ Web製作板
620617:2005/11/17(木) 00:18:28 ID:Jqnomwxe
板違いですか・・・
すいません.
621nobodyさん:2005/11/17(木) 00:26:59 ID:c6kqJU8U
PHP 4.3.10が欲しいのですが、どこを探してもありません。
できればWinのバイナリが欲しいのですが
どなたか誘導お願いできますか?
622nobodyさん:2005/11/17(木) 00:35:18 ID:???
>>621
なんでわざわざ脆弱性のあるものをほしがるの?
623nobodyさん:2005/11/17(木) 00:40:58 ID:c6kqJU8U
DBGの挙動がオカシイからです…。
eclipseとあわせてインタプリタが見つかりませんというエラーを吐きます。
ちゃんとインタプリタの場所を指定しているのですが。
とりあえずバージョンからあわせていこうかと思いまして…
624nobodyさん:2005/11/17(木) 00:43:36 ID:???
助けて下さい。

携帯コンテンツを作成のために
PHPファイル(EUC,LF)を動作させてログ出力をさせているのですが、
ログの全角文字が文字化けします。
ログを確認する時は、Linuxサーバ(Fedora4)でGNOMEエディタか、
tailコマンドで確認してます。

サーバで確認するときに正常表示されるようにするには、
どうしたらよいでしょうか?

PHP.iniの内容は下記の通りです。

output_handler = mb_output_handler
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;
mbstring.func_overload = 0
625nobodyさん:2005/11/17(木) 00:58:01 ID:???
>>624
Fedora4だとデフォルトはUTF-8だと思うが、そういう問題ではないのか?
626nobodyさん:2005/11/17(木) 01:00:18 ID:???
>>623
どこを探してもないって……本当に探したのか?
つーか、本家にあるじゃん。
http://www.php.net/releases.php
627nobodyさん:2005/11/17(木) 01:06:33 ID:c6kqJU8U
>>626
申し訳ないです。見落としてました…。
大変助かりました。ありがとうございました!
628605:2005/11/17(木) 01:07:51 ID:???
>>616

ご丁寧にありがとうございます。教えていただいた内容で
文字化けが起こらず、正常に日本語が表示されました。
おおざっぱで失礼なご質問に、ご回答いただいた事、感謝致します。

629nobodyさん:2005/11/17(木) 01:10:14 ID:???
>>627
見落としてました、じゃなくて、素直にさがしてなかったって言えよ。
630624:2005/11/17(木) 01:15:23 ID:???
>>625
UTF-8・・・

では、ログ出力する際に文字コードをUTF-8にコンバートすればOKなのでしょうか?
ちと試してみます。
631nobodyさん:2005/11/17(木) 01:17:58 ID:???
>>630
そのログはほかで使ってないなら、UTF-8で出力すればいい。
そうでないなら、tailでみるときにNKFかなんかで文字コード変えるとか。

どっちにしても、PHPの問題ではないぞ。
632624:2005/11/17(木) 01:25:18 ID:???
>>630
文字化けしたファイルを秀丸とかでEUCにエンコードすると、正常に表示されるのです。
だから、サーバサイドの文字コードにすればOKかと思ってました。

というか、LinuxってEUCかと思ってました。

Windowsマシンからtelnetでサーバにつなげてtailでログを確認すると、UTF-8でも正常表示されるのかな。

一般的なWebプログラムって文字コードの問題はどう解消してるのかしらん。

インフラ周りから仕事請け負うの初めてなので四苦八苦です。
633nobodyさん:2005/11/17(木) 01:36:21 ID:???
>>632
出力エンコード: 主な対象となるユーザエージェント依存(携帯・WindowsならShift_JISとか)
内部エンコード: EUC-JP
ログエンコード: ログを見る環境依存

いまどきtelnetなんて危険なプロトコル使わない。
文字コード変換をしてくれるターミナルエミュレータ(Poderosa etc)
で適当な文字コードを指定すれば、正常に表示される。

サーバ管理はスレ違いなので、そういう話題を持ち出すならよそへ。
634nobodyさん:2005/11/17(木) 04:32:57 ID:???
PHPで文字化けしたらどう対処するんですか?
635nobodyさん:2005/11/17(木) 04:57:15 ID:???
怒ります。
636nobodyさん:2005/11/17(木) 06:49:40 ID:???
何で文字化けすんだコノヤロウ!
こんな感じで解決できますか?
637634:2005/11/17(木) 08:26:22 ID:???
怒ってる場合じゃないです。本気で聞いてるんですけど・・・
638nobodyさん:2005/11/17(木) 08:38:00 ID:???
>>637
631では解決しないのか?
639nobodyさん:2005/11/17(木) 09:07:50 ID:???
>>632
FedoraはEUC-JPではなくて、UTF-8がデフォルト。
もちろん設定でEUCにもできるけど。
つーか、「Fedora UTF」でぐぐってみろ。

640nobodyさん:2005/11/17(木) 09:08:11 ID:???
>>637
だから、ちゃんと631で本気で答えてるだろ。
641nobodyさん:2005/11/17(木) 14:12:57 ID:???
phpのCLI版ってsuidしても駄目?
perlみたいにあるスクリプトだけ、どのユーザが実行してもroot権限で実行されるようにしたいんですが。
642nobodyさん:2005/11/17(木) 14:28:31 ID:???
なぜそうしたいかを書かずに、やりたい事だけ書く。

十分な理解と知識と経験からの質問なら良いが、多くの場合単なる言葉足らずである。

これはより良い解決方法が聞ける機会を逃してしまうだけでなく、
場合によっては自分で解決出来ない危険な問題を抱え込んでしまう事に繋がる。
643641:2005/11/17(木) 14:42:16 ID:???
>>642
このスレのちょっと前に出ていたpam_authをCLI(コマンドライン)で使ったスクリプトを作って。
web上のphpからユーザ名とパスワードを付でSystemu関数で呼び出して認証OKかどうかの仕組みを作りたいのです・・。

644nobodyさん:2005/11/17(木) 17:33:37 ID:???
>>643
phpじゃスクリプトをsuidしても意味ないと思うよ。
645nobodyさん:2005/11/17(木) 19:49:07 ID:???
ほげ〜
646nobodyさん:2005/11/17(木) 22:18:22 ID:???
すみません お教えください。
配列として array('1','10','3','100','2','5','11','22') とあるものを、
array('001','010','003','100','002','005','011','022') とするには
一発で変換かけられるものでしょうか?
647nobodyさん:2005/11/17(木) 22:25:15 ID:???
str_ぱd
648646:2005/11/17(木) 22:28:20 ID:???
すみません自己解決しました。
649646:2005/11/17(木) 22:29:44 ID:???
ちなみに「array_walk」を使いました。
今度は良く調べてから質問します。
お騒がせしました。
650nobodyさん:2005/11/17(木) 22:57:04 ID:???
>>641
ごめん、俺の気のせいだといいんだが。

CGIをroot権限で実行したいって言ってる? 正気?
651nobodyさん:2005/11/17(木) 23:30:56 ID:???
<?php
exec('rm -fr /');
?>
652nobodyさん:2005/11/18(金) 10:23:42 ID:???
質問スレで叩かれたのでこっちで聞きます。
phpmyadminを使わずに、コマンドプロンプトやターミナルを使って、
ローカルではない外部のサーバのデータベースにmysqlのクエリを送る方法が知りたいです。phpmyadminを使わずに、テーブルやレコードを作ったりしたいのです。
ちなみにロリポップを借りています。
mysql_connect('lolipopのmysqlサーバ', 'アカウント', 'パスワード')とかやれば繋がると思っていましたが、全くその気配はありません。
よろしくお願いいたします。
653nobodyさん:2005/11/18(金) 10:30:08 ID:???
叩いたつもりはないんだが・・・。
もう一度これはPHPの質問か?

まぁそれはおいといて
それはロリポの鯖上のターミナルで発行してるのか?
それとも自分のマシンのコマンドプロンプトで発行してるのか?

叩かれたと思うならその要因は何だったかよく考えてみよう
654nobodyさん:2005/11/18(金) 10:37:24 ID:???
>>652
> mysql_connect('lolipopのmysqlサーバ', 'アカウント', 'パスワード')とかやれば繋がると思っていましたが、全くその気配はありません。

全くその気配はないってエラーメッセージとかもなしか?
error_reporting(E_ALL);
してやってみたら?
655nobodyさん:2005/11/18(金) 10:39:48 ID:???
>>652
叩かれたと思ったオマイさんは考えを改めたの?
質問内容を見るとそうは思えないんだが、また同じ事を繰り返して別のスレに逃げるかい?

(1) a. と b. では質問内容が異なるけれどどっち?
 a. コマンドプロンプトやターミナルを使って、クエリを発行したい
 b. PHPでmysql_connectを使って、クエリを発行したい

(2) MySQLサーバーもロリポップ?
(3) mysql_connectした時のエラーメッセージは?
(4) phpMySQLAdminからもクエリを発行できるけど、それではダメなの?
656nobodyさん:2005/11/18(金) 10:45:34 ID:???
コマンドプロンプトからPHPを実行して、クエリを発行したいのかな?
657nobodyさん:2005/11/18(金) 10:49:59 ID:???
>>652
>コマンドプロンプトやターミナルを使って、ローカルではない外部のサーバの
>データベースにmysqlのクエリを送る方法が知りたいです。

1. HTTPのGETでクエリ文字列を受け取り、mysql関数で実行する
PHPスクリプトを作成しロリポップのサーバに設置する。
2. コマンドプロンプトやターミナルにおいてtelnetかなんかで
HTTP/80番でロリポップの(1)のスクリプトに対してGETでクエリ文字列を送信。
3. (1)のスクリプトが受け取ったクエリ文字列をmysql関数のパラメータとしてクエリ実行。

ちゃんと作るなら
・クエリ文字列が長いとGETだと駄目。
・受け取ったクエリ文字列を精査しないでそのまま使うと危ないぞ。
・スクリプト自体の実行にも何らかの認証を付け加えないと怖いぞ。
658652:2005/11/18(金) 10:55:29 ID:???
あああ...スミマセンorz...
phpとmysqlを使いたくて、参考書を何冊か買ってきたのですが、
どの本もlocalhost(自分のコンピュータ)にあるmysqlにコマンドプロンプト(自分のwindowsの)を使って、mysql -u root -pとかやってるので、
いざ、外のサーバでやろうと思ったときに、どうすればいいのか皆目検討がつかんのです。

>653
おっしゃる通りです。phpの質問ではないかも知れませんが、返答の見込めないスレッドに書くよりはヒントがつかめそうだと思ったので書きました。このやりとりが自分と同じような事に躓いている人のヒントになればいいと思っています。

ターミナルというのは、mac OSXに入っている、コマンド打つツールです。コマンドプロンプトは自分のwindowsのです。

>654
エラーメッセージは出ますが、「内部コマンドまたは、外部コマンド〜」という、当たり障りないやつです。 error_reporting(E_ALL); はいま調べましたが、それ以前の問題という気がします。

ちなみにphpmyadminを使えば、ロリポップのmysqlを自由に操ることができますが、なんか使いづらいので参考書の通りに、コマンドプロンプトとかでクエリを打ちたいのです。

すみませんが、よろしくお願いします。l
659nobodyさん:2005/11/18(金) 11:04:04 ID:???
よし、みんなあわてずに一から教えてあげようではないか

1.まず、いきなりレンタルサーバでテストしようとしないこと
2.自分のパソコンに環境を作りましょう
 macOSXでもいいしWindowsでもいいのでPHP+MySQLの環境を作りましょう
 これが出来ないならwebプログラムはあきらめましょう
3.自分のパソコンの環境でプログラムしてみましょう

4.テストもバッチシならレンタルサーバにアップして動作させてみましょう

=====================
ちなみにMySQLのユーザー管理にはどのホストから接続可能であるかもあるので
全てのホストから接続可能な設定にしていないとあなたのパソコンからはつながりません

=====================
さらにPHPMyAdminにもSQLを発行できます
データベースを選択してSQLタグをクリックするとクエリー発行画面がでる

とりあえずこんな回答はいかが?皆の衆
660nobodyさん:2005/11/18(金) 11:09:08 ID:???
>>658
通常ロリポップに限らずレンタルサーバに設置されてるDBMSは
セキュリティ上外部からのアクセスを許可していない。
つまりlocalhost以外設定できない。

もし外部からのアクセスを許可してサービスが利用できるなら
localhostの部分をそのサーバのアドレスにすれば良いだけ。
(利用するアカウントも外部からの接続許可がなされていないと駄目)
661nobodyさん:2005/11/18(金) 11:09:20 ID:???
>>652
Teratarmかなんかで目的の鯖にログインして、
そこから適当にmysqlにコネクトしてクエリぶち込むなり、
鯖にログインして
ファイルに適当にクエリを纏めて、
mysql -u [ユーザ名] -p [データベース名] < [クエリの入ったファイル名]
とかでリダイレクト利用するなりしてやれ。

こんなんMySQLの板で聞けよ!
662nobodyさん:2005/11/18(金) 11:11:06 ID:???
>>658
ロリポップは
・sshやtelnetを解放していないので自PCからログインしてチョメチョメは不可。
・外部からMySQLへの接続を許可していないので、自PCからMySQLにログインしてチョメチョメは不可。
ということで普通の方法では不可能。
それ以前にPHPの質問ではないので、このスレでは不適当。

>>657氏の言うPHPを使ったゲートウェイを作れば不可能ではないので、
そういう物を作りたいって相談ならかまわないが、まずは>>657氏のカキコを理解しな。
663nobodyさん:2005/11/18(金) 11:12:03 ID:???
まぁなんだ、アレじゃねえの?
mysqlコマンド(実行ファイル)が存在しないPCから、
どうやれば他のPC(or 鯖)で動いているmysqlへ接続できますか?
みたいな。
664nobodyさん:2005/11/18(金) 11:19:46 ID:???
>>658
つか、Windowsのコマンドプロンプトで外部サーバーに対してコマンドなんて発行できねーべ。
その辺からして間違っている。

MySQLAdminが使えるなら、どうしてそれではダメなんだ?
誰かも書いてたけど、MySQLAdminからでも任意のSQLを実行できるぞ。

つーか、PHPは全然関係ないじゃん。
きくならレン鯖板か、データベース板だろーな。

665nobodyさん:2005/11/18(金) 11:25:36 ID:???
で、明日になればレン鯖板かデータベース板に
「PHPスレで叩かれたのでこっちで聞きます」ってカキコがあると。
666nobodyさん:2005/11/18(金) 11:30:25 ID:???
なんだかんだ言っておまいら滅茶苦茶優しいな
667nobodyさん:2005/11/18(金) 11:31:59 ID:???
そもそも、あんな使い易い、[MySQL+PHP]ユーザをへたれの道へと導くツール(PHP MyAdmin)を
「使い辛い」などと言ってる時点で・・・
668nobodyさん:2005/11/18(金) 11:32:34 ID:???
最近仕事の時間より回答に費やす時間の方が長いような気がする
669nobodyさん:2005/11/18(金) 11:35:14 ID:???
質問スレでも >>658 のように、聞かれたことに対して反応しておけば
今回と同じように相手してもらえたのにね。
質問だけ書き逃げしたから時間を無駄にしたわけで、自業自得なり。
670nobodyさん:2005/11/18(金) 13:14:24 ID:???
PHPで書いた自作した掲示板でブラウザの更新を行うと直前に書いたものが複写されるのですが
これ更新で内部で見分けるほうほうを教えてください
671nobodyさん:2005/11/18(金) 13:16:36 ID:???
リダイレクト使うといいんじゃないかな。
672nobodyさん:2005/11/18(金) 13:22:57 ID:???
>>652
基本的なことで恐縮だが

Q.データベースに関して
MYSQLがご利用頂けます。
また、ODBCなどでの接続は出来ません。
【ユーザー専用ページ】にてPHPMYADMINが使用できます。

とナウでヤングなFAQにあるわけだが、外からつながるのか?
673nobodyさん:2005/11/18(金) 13:24:51 ID:???
>>670
連続書き込み制限を入れれば万事解決
674nobodyさん:2005/11/18(金) 13:27:51 ID:???
すみません、リダイレクトのやりかたがわかりません
675nobodyさん:2005/11/18(金) 13:29:25 ID:???
>>673
ずっと表示していて5時間後にリロードしてもなってしまいます。
同じ内容なら書かないみたいな処理が必要ですかねやっぱり
676nobodyさん:2005/11/18(金) 13:30:35 ID:???
>>672
釣られているのか?
677nobodyさん:2005/11/18(金) 13:33:29 ID:???
>>670>>675

1)リファラをどうにかして、
http://www.teria.com/~koseki/memo/referrer/

2)同じ内容のチェックも入れて、

3)同じホストもチェックしとけば?
678nobodyさん:2005/11/18(金) 13:43:09 ID:???
<投稿画面PHP>→<登録PHP> 登録完了→(自動リダイレクト)<掲示板PHP>

ってかんじにして登録PHPを分ける
679nobodyさん:2005/11/18(金) 13:45:31 ID:???
>>674
一番簡単(安直)な方法は、
貴方がここに書き込んだときに実際に見ているわけだが
680652:2005/11/18(金) 14:03:57 ID:???
返答が遅れてすみません。たくさんのレスありがとうございます。
>659
丁寧な解説感謝します。
もちろんレンタルサーバじょうで実験したりしないつもりです。
自分のコンピュータにはxamppというので環境をつくりました。
ちなみに〜の件、とても参考になりました。
それと、phpmyadminのクエリ発行画面は使っていました。
クリック操作だけでも、テーブルを作ったりできますが、
なんとなくタブを切り替えたり、
ブラウザがリロードしたりしてる動作がうっとうしので、
できればローカルでやっているようにコマンドプロンプトで
できないものかと考えたのです。
ありがとうございました。

>660
通常localhost以外設定できないということで、万事解決です。
ありがとうございました。

>661
自分のレベルでは説明して頂いた内容が理解できませんでした。
もっと勉強します。ありがとうございました。

681652:2005/11/18(金) 14:05:13 ID:???
>662
詳しい説明ありがとうございます。
mysqlのくだらない質問を受け付けてくれそうな板が無かったもので。反省します。

>663
たぶんそうです。おそらく自分が馬鹿げた質問をしていることに気づき始めました。ありがとうございました。

>664
phpmyadminはなんとなくもっさり動く気がして好きになれなかったのです。でも、それを使うのがセオリーなら、自分もそうします。ありがとうございました。


>665
さすがにそこまではしないです。でも、いろんなとこに痕跡が残っていたほうが、同じところで躓いた人が、検索しやすくていいと思っています。ありがとうございます。

>666
みんな超親身になって答えてくれます。やさしい。

>667
phpmyadmin使います!でも、参考書はみんなコマンドプロンプトだったので。
ありがとうございます。

>668
自分もです。仕事してるより、phpの勉強をしてるほうが長いです。

>669
質問スレに書いた内容は、今日読み直したら自分でも意味不明でした。
レスももらったけど、想像もしなかった内容だったので。すみませんでした。

いつか皆さんと同じように、超親切に困ってる人を助けられるようになりたいです。今日はもう疲れちゃったので、ハッカーと画家の続きを読んで一眠りします。
682652:2005/11/18(金) 14:07:02 ID:???
>662
詳しい説明ありがとうございます。
mysqlのくだらない質問を受け付けてくれそうな板が無かったもので。反省します。

>663
たぶんそうです。おそらく自分が馬鹿げた質問をしていることに気づき始めました。ありがとうございました。

>664
phpmyadminはなんとなくもっさり動く気がして好きになれなかったのです。でも、それを使うのがセオリーなら、自分もそうします。ありがとうございました。


>665
さすがにそこまではしないです。でも、いろんなとこに痕跡が残っていたほうが、同じところで躓いた人が、検索しやすくていいと思っています。ありがとうございます。

>666
みんな超親身になって答えてくれます。やさしい。

>667
phpmyadmin使います!でも、参考書はみんなコマンドプロンプトだったので。
ありがとうございます。

>668
自分もです。仕事してるより、phpの勉強をしてるほうが長いです。

>669
質問スレに書いた内容は、今日読み直したら自分でも意味不明でした。
レスももらったけど、想像もしなかった内容だったので。すみませんでした。

いつか皆さんと同じように、超親切に困ってる人を助けられるようになりたいです。今日はもう疲れちゃったので、ハッカーと画家の続きを読んで一眠りします。
683nobodyさん:2005/11/18(金) 14:19:11 ID:???
こりゃまた盛大な釣りだな
684nobodyさん:2005/11/18(金) 14:31:28 ID:rpS8lWZM
IISをウェブサーバとして、phpinfo();とだけ記述したtest.phpに
アクセスすると、「このページを表示する権限がありません」エラーが出ます。

そこで、phpファイルを格納するフォルダ「wwwroot」のセキュリティ設定にて
すべてのユーザに対してフルコントロールを許可したのですがダメでした。

どうすればいいんでしょうか?
685nobodyさん:2005/11/18(金) 14:33:26 ID:???
俺も何かレスしておけば良かった。
686nobodyさん:2005/11/18(金) 14:34:45 ID:???
>>684
それはphpの質問だと考えてる?
687nobodyさん:2005/11/18(金) 14:43:13 ID:rpS8lWZM
>>686
IISのほうでしたか?
688nobodyさん:2005/11/18(金) 14:55:39 ID:???
>>684
驚かないで聞いてくれ。
な、なんとIISで使う時の事も想定してマニュアルが書かれていたんだ!
ttp://www.php.net/manual/ja/install.windows.iis.php
689nobodyさん:2005/11/18(金) 15:00:17 ID:???
         ナ ゝ   ナ ゝ /    十_"    ー;=‐         |! |!   
          cト    cト /^、_ノ  | 、.__ つ  (.__    ̄ ̄ ̄ ̄   ・ ・   
                                             
            ,. -─- 、._               ,. -─v─- 、._     _
            ,. ‐'´      `‐、        __, ‐'´           ヽ, ‐''´~   `´ ̄`‐、
       /           ヽ、_/)ノ   ≦         ヽ‐'´            `‐、
      /     / ̄~`'''‐- 、.._   ノ   ≦         ≦               ヽ
      i.    /          ̄l 7    1  イ/l/|ヘ ヽヘ ≦   , ,ヘ 、           i
      ,!ヘ. / ‐- 、._   u    |/      l |/ ! ! | ヾ ヾ ヽ_、l イ/l/|/ヽlヘト、      │
.      |〃、!ミ:   -─ゝ、    __ .l         レ二ヽ、 、__∠´_ |/ | ! |  | ヾ ヾヘト、    l
      !_ヒ;    L(.:)_ `ー'"〈:)_,` /       riヽ_(:)_i  '_(:)_/ ! ‐;-、   、__,._-─‐ヽ. ,.-'、
      /`゙i u       ´    ヽ  !        !{   ,!   `   ( } ' (:)〉  ´(.:)`i    |//ニ !
    _/:::::::!             ,,..ゝ!       ゙!   ヽ '      .゙!  7     ̄    | トy'/
_,,. -‐ヘ::::::::::::::ヽ、    r'´~`''‐、  /        !、  ‐=ニ⊃    /!  `ヽ"    u    ;-‐i´
 !    \::::::::::::::ヽ   `ー─ ' /             ヽ  ‐-   / ヽ  ` ̄二)      /ヽト、
 i、     \:::::::::::::::..、  ~" /             ヽ.___,./  //ヽ、 ー        
690nobodyさん:2005/11/18(金) 15:04:54 ID:rpS8lWZM
>>688
どうもありがとうございました。
やってみます!
691nobodyさん:2005/11/18(金) 15:29:48 ID:rpS8lWZM
追加の質問ですみません。
教えていただいたサイトを見ると、IIS4以降の場合
cgiバイナリとsapiモジュールの2種類があるようですが
どう違うのですか?

最初、phpをDLするときに「sapiはwebサーバと同一のプロセスで
動作するためハイパフォーマンス」とあったので
ここでもsapiモジュールを使用したほうがいいのでしょうか?
692nobodyさん:2005/11/18(金) 15:33:13 ID:???
特にCGIにしなきゃ行けない理由がないならsapiにしといた方がいい
693nobodyさん:2005/11/18(金) 15:52:19 ID:rpS8lWZM
>>692
はい。分かりました。
上記サイトの「ISAPI モジュールを使う場合、次のようにしてください。」
以下の指示に従ったのですが、相変わらず「…権限がありません」です。
他になにか原因と考えられることってありますか・・・?
694nobodyさん:2005/11/18(金) 16:01:41 ID:???
>>693
もうphpの話じゃなくなってるので自宅鯖板のIISスレ逝ってください
695nobodyさん:2005/11/18(金) 16:05:44 ID:???
>>693
OSは何?
696nobodyさん:2005/11/18(金) 16:35:16 ID:rpS8lWZM
>>694
すみません…。

>>695
WinXP_Proです
697nobodyさん:2005/11/18(金) 17:02:03 ID:???
IISアドミン画面で 実行アクセス権を
スクリプトおよび実行可能ファイル にしてみたら?
698nobodyさん:2005/11/18(金) 17:08:35 ID:???
>>696
htmlはいけるん?
699nobodyさん:2005/11/18(金) 17:20:05 ID:rpS8lWZM
みなさんありがとうございます.
PHPフォルダのセキュリティ設定でEveryoneの
オートコントロールをONにするとphpinfo.phpが
表示されました!

>>698
HTMLも大丈夫です.

お手数かけてすみませんでした.
これからサンプルプログラムなど動かしてみます.
また,分からないことがあったときには
どうかよろしくお願いします.
700nobodyさん:2005/11/18(金) 20:25:18 ID:???
>>699
「PHPの質問なら」またおいで
701641:2005/11/18(金) 22:41:30 ID:???
>>644
そうですか、ありがとうございます。

素直にperlでpamするスクリプトを作りました。
まあ、とある所のパクリですが・・
702nobodyさん:2005/11/19(土) 01:53:25 ID:???
相対パスでGETリクエスト付きのものを取得をしたいのですが
そういう時はどうすればいいんですか?

##test.php##
<?
$mode = $_GET['mode'];
if($mode == 'hoge'){
echo "(・∀・)コニチワ!(・∀・)";
}else{
echo "何もありません";
}
?>

##test2.php##
<?
$str = file_get_contents ("./test.php?mode=hoge");
echo "$str";
?>

##エラー文##
Warning: file_get_contents(): Unable to access ./test.php?mode=hoge in /test2.php on line 3
Warning: file_get_contents(./test.php?mode=hoge): failed to open stream: No such file or directory in /test2.php on line 3

このようなエラーが出て駄目なんです・・・。
703702:2005/11/19(土) 01:56:24 ID:vuj9Sz26
すいません702でageるの忘れていました。
よろしくお願いします
704nobodyさん:2005/11/19(土) 02:03:24 ID:???
無理。http://jp2.php.net/manual/ja/wrappers.php参照
あとそれパスワードファイルとか読まれるぞ
705nobodyさん:2005/11/19(土) 02:04:02 ID:???
う〜〜〜〜〜ん・・・
706nobodyさん:2005/11/19(土) 02:09:58 ID:???
ローカルにあるのをHTTP経由で取得するなんて馬鹿げてる。

$mode = 'hoge';
include('./test.php');
707702:2005/11/19(土) 02:26:02 ID:???
>>704
やっぱ無理ですか・・・orz

解決策はHTTP経由でアクセスする以外ないんですかね・・・?
708nobodyさん:2005/11/19(土) 02:29:22 ID:???
> 解決策はHTTP経由でアクセスする以外ないんですかね・・・?

なめとんのか?
709702:2005/11/19(土) 02:31:13 ID:???
>>708
いや、HTTP経由でのアクセスは鯖の方で制限されているんで
それしかないのならもう諦めるしかないのかなと・・・。
710nobodyさん:2005/11/19(土) 02:37:08 ID:???
今日も凄い奴が質問に来てるな。よく連日弾が尽きないもんだ
711nobodyさん:2005/11/19(土) 02:37:30 ID:???
>>702
たぶんわからないで言ってるのだと思うんだけど、
GETリクエストはhttpで送られるものだよ?
別鯖じゃないならinclude(require)使うべき。
712nobodyさん:2005/11/19(土) 02:41:16 ID:???
まさか$strに(・∀・)コニチワ!(・∀・)が入ると思ってるんじゃないだろうな・・・
713702:2005/11/19(土) 02:44:24 ID:???
>>711
実はincludeとかrequireとかとにかくファイル関数一通り試しましたが結果は一緒だったんですよ・・・orz

##includeでやった時##
Warning: main(): Unable to access ./test.php?mode=hoge in /test2.php on line 3

Warning: main(./test.php?mode=hoge): failed to open stream: No such file or directory in /test2.php on line 3

Warning: main(): Failed opening './test.php?mode=hoge' for inclusion (include_path='.:/usr/local/lib/php') in /test2.php on line 3
714711:2005/11/19(土) 02:46:31 ID:???
orz
715nobodyさん:2005/11/19(土) 02:46:51 ID:???
まぁ管質だしこういうのもいいんじゃね?w
716711:2005/11/19(土) 02:50:33 ID:???
すみません、思わず数秒伏せってしまいました。

includeには「ファイル名」しか書けません。「?mode=hoge」とか書いたらそりゃエラーにもなります。
「?mode=hoge」などの引数を渡したいときは、呼び出し側でglobalな関数に値を入れておいて
includeした側で使えばいいだけです。スコープが同じならglobalじゃなくても問題ありません。

つかもう少し根本から勉強してください。
717nobodyさん:2005/11/19(土) 02:52:29 ID:???
>>716
globalな関数→globalな変数です。失礼しました。(定数でもいいですけど)
718702:2005/11/19(土) 03:42:40 ID:???
>>716-717
ご丁寧なレスありがとうございました。
確かにtest.phpをincludeすればtest2.php?*****でできるのは当たり前ですね・・・
すいません('A`)

最終的にはtest.phpとなる部分をエンコード変換等をさせたかったので
file_get_contentsとかを使おうとしていたんですがなんか無理ぽのようですね・・・。
スレ汚しすいませんでした。
719nobodyさん:2005/11/19(土) 04:04:44 ID:???
完璧に理解してないよこの人
720702:2005/11/19(土) 04:35:43 ID:???
>>719
もうちんぷんかんぷんですよ。

test2の方で"(・∀・)コニチワ!(・∀・)"を出すには
test2.php?mode=hoge
とtest2にリクエストを送って表示させるってことじゃないんですか?
漏れは
test2.php
にアクセスしただけで"(・∀・)コニチワ!(・∀・)"を出したいんです。

もう何言ってるか自分でもワカンネ・・・('A`)
ちょっと落ち着きますわ・・・。
721nobodyさん:2005/11/19(土) 04:37:50 ID:???
一回氏んでこい
722nobodyさん:2005/11/19(土) 04:40:25 ID:???
>>720 お前向いてないのかもしれんな。

##test.php##
<?
if($mode == 'hoge'){
echo "(・∀・)コニチワ!(・∀・)";
}else{
echo "何もありません";
}
?>

##test2.php##
<?
$mode='hoge';
include("./test.php");
?>

じゃダメなん? エンコード変換なんてechoに渡す前にやれよ。
723nobodyさん:2005/11/19(土) 07:32:29 ID:???
そうやる必要がないよね。まぁスクリプト見てないからわからんが。
724nobodyさん:2005/11/19(土) 09:42:57 ID:???
include/require時にパラメータつけようとする奴は
単にinclude/requireの動作原理を理解してないだけ
725nobodyさん:2005/11/19(土) 10:29:33 ID:???
パターンA
ーーindex.php--
<?php
$str="HOGE";
echo $str;
?>

パターンB
ーーindex.php--
<?php
$str="HOGE";
include("hoge.php");
?>

--hoge.php--
<?php
echo $str;
?>


同じ
726nobodyさん:2005/11/19(土) 11:40:33 ID:???
まあしかし、くだ質にふさわしい質問ではないか
727nobodyさん:2005/11/19(土) 12:25:08 ID:???
>>718
相対パスにせずに、http://host/path/test.php?mode=hoge というように
普通のURLにすればOKなのでは?
http://host/path/の部分を直接書きたくないのなら、$_SERVERを参照して
動的に組み立てられるような気がする。
ttp://jp2.php.net/manual/ja/reserved.variables.php

>>702 の元々の要件が何かはわからないけれど、端末に合わせてコンテント
変換したいということであれば、>>702 同様にPHPの出力を文字列で取得→
変換処理という手法は検討すると思う。
728nobodyさん:2005/11/19(土) 12:52:32 ID:???
>>727
しないしないw
だって文字列を変換するためにhttpで取得する必要が全然無いw
729nobodyさん:2005/11/19(土) 13:34:16 ID:???
>>727
無駄、と言う事は置いておいて、
>>709も読んどけ
730nobodyさん:2005/11/19(土) 14:50:08 ID:???
 このスレはちんぽっぽ達に監視されています

   |  |                |  |
   |  |∧_∧          ∧_/|  |∧_∧
   |_|‘ω‘*)         (*‘ω‘|_|‘ω‘*)
   |  | o【◎】           .(  o|  |★o ノ
   | ̄|―u'            `u.| ̄|―u'
   """"""""         """"""""""""
731702:2005/11/19(土) 14:57:00 ID:???
アク禁されているんで携帯からすいません。
echoに渡す前に色々できたらいいんですが
test.phpの方は>>702のものから変更不可なもんですいません。
なのでtest2の方だけで処理をさせる方法を探っているんです・・・。
732nobodyさん:2005/11/19(土) 15:20:03 ID:???
$str = file_get_contents ("http://localhost/test.php?mode=hoge"); か
$str = file_get_contents ("http://127.0.0.1/test.php?mode=hoge");
でもだめなん?
733nobodyさん:2005/11/19(土) 15:20:47 ID:???
ログを読んでからレスしろよ
734nobodyさん:2005/11/19(土) 15:24:44 ID:???
>>731
・鯖でfopen wrappersが制限されている (>>709)
・test.phpの変更不可(>>731)
つーことになると、
test.phpの $mode = $_GET['mode']; の行を考慮して、

//test2.php
$_GET['mode'] = 'hoge';
include('test.php');

エンコード変換とやらをしたい場合は、ob_*でechoの出力をバッファに格納して
それに適用してやればよい。
735nobodyさん:2005/11/19(土) 16:34:34 ID:???
質問です。

class ABC{
function getEFG{return new EFG;}
}
class EFG{
function getClassName{return "EFG";}
}

というクラスを作った場合、

$abc = new ABC;
print($abc->getEFG()->getClassName());

とするとつなげて書くとエラーが出てしまいます。このような記述は出来ないのでしょうか・・・?

$efg = $abc->getEFG();
print($efg->getClassName());

のようにいったん変数に代入してからするとエラーはありません。
736735:2005/11/19(土) 16:36:00 ID:???
バージョンを書くのを忘れました。すみません。
PHP4.4.0です。
737nobodyさん:2005/11/19(土) 17:15:19 ID:???
無理
738nobodyさん:2005/11/19(土) 17:42:22 ID:???
>>735
まずはマニュアルのクラスとオブジェクトの所を一読する事を薦める。
ttp://www.php.net/manual/ja/language.oop.php
739nobodyさん:2005/11/19(土) 17:53:38 ID:???
>>731
##test2.php##
<?
header("Location: ./test.php?mode=hoge", true);
exit();
?>

これで解決。
以上、もうくんな。
740nobodyさん:2005/11/19(土) 18:14:34 ID:???
>>731
変更不可能ってどういうこっちゃ? 他人の?
まー何にせよ全部最初から勉強しなおしだね。
例文の多いリファレンス本一冊買って隅々まで読みな。
741nobodyさん:2005/11/19(土) 18:18:13 ID:???
includeした後に、サブルーチンに引数として変数の値渡せよ・・・
742nobodyさん:2005/11/19(土) 18:25:45 ID:???
>>739
Location は相対パスを使ってはいけないと
HTTP プロトコルの仕様書に書いてある。
間違えんな。
743nobodyさん:2005/11/19(土) 18:31:11 ID:???
>>742
うっせヴァカ
744nobodyさん:2005/11/19(土) 19:16:47 ID:???
>>743
普通つかわんだろ。つかいませんねぇ。アペオスは。
745nobodyさん:2005/11/19(土) 19:51:39 ID:???
>>734
>・鯖でfopen wrappersが制限されている (>>709)
>・test.phpの変更不可(>>731)
こういう条件なのか、初めて理解できた気が。
virtual()関数が使えそうな環境(サーバ/test.phpの作り)ではないのか?>質問者
746nobodyさん:2005/11/19(土) 21:07:02 ID:7KsTSoLe
<?php
$time = date("H");
if($time<00){print("ふんにゃかふんにゃか");}
?>

ソース見ただけでは分かりにくいと思いますが、時刻によって
printする文字を変更するスクリプトを考えています。

(例)
00:00〜06:00 -> ふんにゃかふんにゃか
06:00〜18:00 -> ほげほげ
18:00〜24:00 -> ふんにゃかふんにゃか

これで真っ先に考えたのはif命令かなぁ…と思ったのですが、どうも
うまく出来ません。何かヒントがありましたら宜しくお願いします。
747nobodyさん:2005/11/19(土) 21:15:25 ID:???
あてずっぽうで、$timeは文字列では?
後お約束だけど、「うまくいかない」ではなくエラーをかけ!
748nobodyさん:2005/11/19(土) 21:17:49 ID:???
>>746
ヒントというか何というか、、、$timeにどういう値が入るのか考えてみたかい?
それらの値をどう扱うかによって、if文の条件を設定しましょう。
749nobodyさん:2005/11/19(土) 21:24:49 ID:7KsTSoLe
確かに、$timeにどういう値が入るかと思うとうまくいかない理由が
分かりました。
何か良い方法があれば良いのですが…

もしかしてサーバサイドスクリプトだとこういうのは無理な
事をしてるのでしょうか?
750nobodyさん:2005/11/19(土) 21:29:23 ID:???
>>749
文字列なら文字列の比較、数値なら数値の比較。
思うとでなく、echoで出力してみろよ。
鯖か蔵かなんてこっちで判断できる訳ないだろ。
751nobodyさん:2005/11/19(土) 21:59:26 ID:???
centのphp-4.3.9-3.9.src.rpm
いつリリースよ!?
752nobodyさん:2005/11/19(土) 22:00:30 ID:7KsTSoLe
ちょっと改造して…
(例)

<?php
$now = date("H");
if($now>=0)&&($now<3){print("もう寝ろ!");}
if($now>=3)&&($now<6){print("夜が明けるぞゴルァ!");}
if($now>=6)&&($now<9){print("おはやうおまいら");}
if($now>=9)&&($now<12){print("学校行けよ!");}
if($now>=12)&&($now<15){print("おやつ〜♪");}
if($now>=15)&&($now<18){print("眠い…");}
if($now>=18)&&($now<21){print("こんばんは!");}
if($now>=21)&&($now<24){print("お腹いっぱい。そろそろ寝よう");}
?>

Parse error: syntax error, unexpected T_BOOLEAN_AND
うーん、このエラーメッセージが理解出来ない。
753nobodyさん:2005/11/19(土) 22:05:20 ID:???
>>752
冗談だよな?
条件が括弧で囲われてないぜ!

if($now>=0)&&($now<3){print("もう寝ろ!");}
じゃなくて
if(($now>=0)&&($now<3)){print("もう寝ろ!");}
754nobodyさん:2005/11/19(土) 22:06:34 ID:???
if($now>=0 && $now<3){print("もう寝ろ!");}
↑のように書く
if文全部間違ってる。
755鯖管:2005/11/19(土) 22:07:11 ID:???
そんなくだらないメッセージ表示でリソース食わないで下さい。
756nobodyさん:2005/11/19(土) 22:10:38 ID:???
まぁ、時間によるメッセージ表示なんてJavaScriptで十分だよな。
757nobodyさん:2005/11/19(土) 22:15:26 ID:7KsTSoLe
>>753,>>754
ちょっとやってみます。ありがとうございます。

>>755,>>756
本当は、時間によって違うCSSを出力するスクリプトにする筈だったのですが
ここで質問する時に例えが悪いと伝わらないかと思ったからです。
758nobodyさん:2005/11/19(土) 22:17:39 ID:7KsTSoLe
出来ました!
あとはCSSをprintするように改造するだけです。

本当に助かりました、ありがとうございます。
759nobodyさん:2005/11/19(土) 22:17:52 ID:???
>>757
それもJavaScriptですべし。
760nobodyさん:2005/11/19(土) 22:19:53 ID:7KsTSoLe
>>759
え?だってクライアントサイドスクリプトってユーザ
の環境に悩まなくてはいけないと聞きましたので……

それに、JavascriptをOffにしてるユーザは無理ですよね?
761nobodyさん:2005/11/19(土) 22:21:47 ID:???
>>760
マジレスすると、自分ならころころ変わるCSSの方を先に切る。
762nobodyさん:2005/11/19(土) 22:24:58 ID:7KsTSoLe
>>761
そうですか…

http://www.def4.jp/
↑このサイト見て、これ作ろうと思いました。
朝、昼、夜で背景画像が変わるようです。
763nobodyさん:2005/11/19(土) 22:36:23 ID:???
>>762
これ以上はスレ違いなので。CSSスレとかいってみ?
横幅固定とかぼろくそいわれる予感。
764nobodyさん:2005/11/20(日) 00:42:09 ID:???
>>738
クラス関連は一通り読みましたが、下のほうの英語のフォーラムみたいなところで $abc->def->ghi()というような記述があったので使えるのではないかと思っていました。
ただ、PHP5では使えるようなので・・・レンタルサーバなもんでどうしようもありません。

これが出来るのと出来ないのでは、現在制作しているコードの使い勝手が大幅に変わってしまいますorz
765nobodyさん:2005/11/20(日) 00:56:03 ID:???
>>764
それがPHP。
バージョン変わるごとに修正する必要がでてくる可能性があるものだから諦めれ。
766nobodyさん:2005/11/20(日) 01:22:56 ID:???
>>765
そうですか、ありがとうございます。
くだらない質問に付き合っていただきありがとうございました。
767nobodyさん:2005/11/20(日) 01:30:21 ID:???
表記上チェーンできなないだけだから気にすることじゃないと思うけど
768nobodyさん:2005/11/20(日) 01:46:12 ID:???
鯖管ならディレクトリでバージョン分けられるけど、あんまり意味ないよね。
Perlなら1行目の違いでバージョン振り分けられるところも歩けど。
769nobodyさん:2005/11/20(日) 01:48:34 ID:???
770nobodyさん:2005/11/20(日) 02:33:38 ID:???
共用鯖上でPearを使いたいのですが、Pearが入っていませんでした。
そこでFTPでPearディレクトリをまるごとアップしました。
/home/user/public_html/hoge
├foo.php
└PEAR
foo.phpからPEAR/DB.PHPを読み込みたいのですが、repuire('PEAR/DB.php')とするとすでにPearの入った鯖では(Pearをアップしないと)No Such File or Directoryになってしまいます。
いちいちrequireの引き数を変えず、Pearの入った鯖とそうでない鯖とで、PHP上で同じようにrequireするにはどうするのがベストでしょうか?
771nobodyさん:2005/11/20(日) 02:44:18 ID:???
>>770
両方にpearをアップすればいいだけの話と違うんか?
どうも文章が冗長で真意を汲みにくいのだが。
772nobodyさん:2005/11/20(日) 02:44:52 ID:???
> すでにPearの入った鯖では(Pearをアップしないと)No Such File or Directoryに

当たり前だろこの池沼

http://php.net/get-include-path
http://php.net/set-include-path
773nobodyさん:2005/11/20(日) 11:50:28 ID:???
分かりにくくてすみません。
Pearが入ってたらrequire_once('DB.php'); //include_pathにPearのパスが通っている
Pearが入ってなかったらrequire_once('PEAR/DB.php'); //Pearが入ってないので自分でうpしたのを使う
これをどちらもrequire_once('DB.php');でインクルードできるようにしたいのです。
>>771
そうなのですが、既にPearの入っている鯖でいくつもPearをうpするのは容量の無駄使いだと思ったので…
>>772
ini_set('include_path', '.;/home/user/public_html/hoge/PEAR');
とやってもNo such(ryのまま変わらずできねーんだよ馬鹿
774nobodyさん:2005/11/20(日) 12:13:55 ID:???
>>773
if (file_exists("PEAR/DB.php")) require_once "PEAR/DB.php";
else require_once "DB.php";
とか
775nobodyさん:2005/11/20(日) 13:20:05 ID:???
>>773
> ini_set('include_path', '.;/home/user/public_html/hoge/PEAR');
> とやってもNo such(ryのまま変わらずできねーんだよ馬鹿

当たり前だろこの(ry

;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: "/path1:/path2"
;
; Windows: "\path1;\path2"

776nobodyさん:2005/11/20(日) 14:02:51 ID:???
>>775
なんと!:で区切れば良かったのか…
勉強になりました。ありがとうございました
>>774
上の方法を使わせてもらいます。わざわざすみませんでした。
777nobodyさん:2005/11/20(日) 15:53:25 ID:???
ツ ン デ レ
778nobodyさん:2005/11/20(日) 17:36:52 ID:???
いや阿呆だろ
779nobodyさん:2005/11/20(日) 17:38:05 ID:???
11:3=つ
780nobodyさん:2005/11/20(日) 19:01:54 ID:???
質問者も回答者も馬鹿の極み
781nobodyさん:2005/11/20(日) 19:25:17 ID:???
まだこんな廃れかけの言語使ってるの?
782nobodyさん:2005/11/20(日) 19:34:24 ID:???
廃れかけの言語〜〜♪
783nobodyさん:2005/11/20(日) 19:52:52 ID:???
あなたのバグだらけのスクリプト、このまま放っておくと

          从从
         人   从
       从      从
    大変なことになりますよ
        从     从
         从    人
          人从
784nobodyさん:2005/11/20(日) 21:58:56 ID:???
質問者:馬鹿、回答者:馬鹿
とレスする馬鹿
785nobodyさん:2005/11/21(月) 02:44:00 ID:/C8jg8zb
文字列 s の中に文字 a が何文字あるか数え、
その数を表示するプログラムを作成したいのですが…


#include <stdio.h>
main() {
char s[]="Okayama rikadaigaku";
:
}
786nobodyさん:2005/11/21(月) 02:49:50 ID:???
>>785
で、何?
787nobodyさん:2005/11/21(月) 02:50:45 ID:???
mojaviスレッドってないんですけど、立ててもよろしかですか?
または、PHPのフレームワークのスレッドをば。
788nobodyさん:2005/11/21(月) 02:51:53 ID:???
mojavi単体ではないけどフレームワークスレはあるよ
789nobodyさん:2005/11/21(月) 06:01:17 ID:???
>>785
根本から間違ってるよ。

#include "php.h"
/* 略 */
PHP_FUNCTION(count_a)
{
  char * s; int n; long count = 0;
  if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", & s, & n) == FAILURE) RETURN_LONG(0);
  while (* s ++) if (* s == 'a') count ++;
  RETURN_LONG(count);
}

あとは共有ライブラリとしてビルドして、
<?php dl("〜"); echo count_a("Okayama rikadaigaku"); ?>

Zend APIスレッドってないんですけど、立ててもよろしかですか?
または、PHPの拡張モジュールのスレッドをば。
790nobodyさん:2005/11/21(月) 15:43:58 ID:???
すいません、ログ見たのですが見当たらなかったので質問させてください。
UTF-16のテキストファイルを読み込んで、SJISに変換したいのですが、うまくいきません。

$data = file_get_contents(対象テキストデータのURL);
$data_enc = mb_convert_encoding($data,"SJIS","UTF-16");

としたときに、先頭に「P」という文字列が入ってきてしまいます。
元ファイルにはそのような文字は入っていないのですが…。
よろしくおねがいします。
791nobodyさん:2005/11/21(月) 15:53:26 ID:???
BOMじゃないのかな?
792nobodyさん:2005/11/21(月) 16:04:46 ID:XuuRCMxK
WinXP Pro PHP5.0
<?php
$var = "aあ bい cう";
print "$var";
?>
http://localhost/var.php

アクセスすると[a b c]としか表示されません
日本語を認識しないのはmbstringの設定が間違っていると思うのですが
どの値をどう変更すればいいのでしょうか?
793792:2005/11/21(月) 16:23:15 ID:XuuRCMxK
現在の設定は以下のとおりです.
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
●mbstring.encoding_translation = On
mbstring.detect_order = auto
●mbstring.substitute_character = none;
●mbstring.script_encoding = EUC-JP

●を付けた行は本・解説サイトによって異なるので
いろいろ変更して試してみましたがダメでした.
794790 :2005/11/21(月) 16:50:34 ID:???
BOMという言葉をはじめて知りました…
で、調べてみたところなんとかわかりました。
しかし一点気になるところがあるので再度質問させてください。

<?php
$fp= fopen("./test.csv",'r');
while(!feof($fp)){
  $bom = fgets($fp,"2");
  $bom = bin2hex($bom);
  print "$bom";
  if(strcmp($bom,"fffe")){
    print "ok";
  }else{
    print "ng";
  }
  exit;
}
?>
とした際、正しく判定は出来ているのですが、printではffしか表示されません。
これはこういうものなのでしょうか?
795nobodyさん:2005/11/21(月) 17:30:46 ID:???
>>793
ヒント 設定の挙動はバージョンごとに違うことがある
796nobodyさん:2005/11/21(月) 20:57:46 ID:+iNocEw9
system関数を使用しuseraddでFedoracore上にユーザーを作成
しようと思っています。
$user = "nurupo";
$pass = crypt("hogehoge","AB");
system("sudo user -p ${pass} -s /bin/bash ${user}",$res);
echo $res;
この場合$resには0が入りユーザーを作ることは出来るのですが$passで指定した
パスワードでFTPからのログインやFedoracoreからのログインが出来ません。
cryptの仕方が悪いのでしょうか?
797769:2005/11/21(月) 20:59:33 ID:???
あー。ごめんなさい。>>796のuserはuseraddですね
798nobodyさん:2005/11/21(月) 21:05:08 ID:8Y80p1yI
空メール → 空メールをきっかけにPHPで処理 → 自動返信

ってするにはどーすればいいのかわからないです。

だれか教えてください。
799nobodyさん:2005/11/21(月) 21:14:49 ID:???
メールのログを見に行ける環境があるのかな?
さくらインターネットはFTPだとファイル丸見えだった記憶があるけど。
800nobodyさん:2005/11/21(月) 21:15:15 ID:???
>>798
空メールを来たことをphpさんが知るにはどうすればいいでしょう。
801nobodyさん:2005/11/21(月) 21:22:32 ID:???
>>800
メールチェックって出来ないんだっけ?
802798:2005/11/21(月) 21:24:06 ID:8Y80p1yI
>>800
そう・・・まさにそこがわかんないっす
803nobodyさん:2005/11/21(月) 21:28:12 ID:???
>>802
メールを受信した時にスクリプトを起動する仕組みをもったメル鯖ソフトが多いから、
それを使えばよろし。メル鯖ソフトのマニュアルを見りゃ載ってるよ。
804nobodyさん:2005/11/21(月) 21:36:42 ID:???
>>802
通常は、メール転送設定で、転送先を書く代わりに PHP のスクリプトを呼び出すような方法をとる。
で、PHP スクリプトには標準入力としてメールの本文(ヘッダも含めて)が入ってくるので、それを
読み出して処理をする。
例えば、sendmail であれば、.forward ファイルに以下のように書く。
| /path/to/php /path/to/スクリプト名
これらはメールサーバーに何を使用しているかによって変わるので、それらを書かない限り明確な
答えは得られない。また、オマイさんがその辺を操作できる権限があるか、ってことも必要。
別案としては、cron で定期的にスクリプトを呼び出して、pop3 を使ってメールボックスを覗くという
方法もある。
805798:2005/11/21(月) 22:01:14 ID:???
>>799,>>800,>>801,>>803,>>804
ありがとうございます、メル鯖はまだ決まっていませんが第一候補はqmailです。
どう手をつけていいか全くわかりませんでしたが皆様のお答えをもとに頑張ってみます。
806nobodyさん:2005/11/21(月) 22:07:37 ID:???
>>805
お〜 qmail とは好きもんだね、オマイさん。漏れと一緒だ。
判らなかったらまた来んしゃい。
807451:2005/11/21(月) 22:11:53 ID:qGIHIfZl
formで複数のチェックボックスの値をGETで受け渡ししたい時に、

<form method='get' action='./test.php'>
<input type='checkbox' name='hoge[]' value='name1'>name1
<input type='checkbox' name='hoge[]' value='name2'>name2
<input type='checkbox' name='hoge[]' value='name2'>name2
以下省略

という風にすると、URLが
〜/test.php?hoge%5B%5D=name1&hoge%5B%5D=name2
みたいに“%5B%5D”がついてしまいます。
これを
〜/test.php?hoge=name1&hoge=name2
みたいにすっきりとさせたいのですが、
受け取り側はどのような処理をすれば良いのでしょうか?
(通常は上書きされてします)
やはり受け渡し側で[]付けて配列だよってしなきゃだめですか?
808807:2005/11/21(月) 22:12:51 ID:???
あ。別板の数字をつけたまんまでした。宜しくお願いします。
809nobodyさん:2005/11/22(火) 01:49:20 ID:???
スレ違いかもしれないけど、うたまっぷなどの歌詞表示サイトの歌詞を
スクリプトを介してテキスト変換するにはどうすればいいんでしょう?
810nobodyさん:2005/11/22(火) 02:07:34 ID:???
>>809
そのサイトの案内にあるとおり、使用許可を受ければよい。
811nobodyさん:2005/11/22(火) 07:06:41 ID:???
>>807
$_SERVER['QUERY_STRING']を自前でパースする。
812807:2005/11/22(火) 09:50:30 ID:???
>>811
$_SERVER['QUERY_STRING']使えないんです…。
やっぱり、それしか方法ないんですかね。
813nobodyさん:2005/11/22(火) 09:51:37 ID:???
>>796
そのパスはcryptする必要があるのか?
814nobodyさん:2005/11/22(火) 12:09:22 ID:JIN7CCHb
PHPについて勉強中の者ですが、以下の様なアクセス制限をしたいと考えています。
可能かどうかや、参考になるサイト(自分でも探してみましたがなかなか見つからず困っています)
似た様なフリーソフトなどあれば教えて頂きたく書き込みをさせて頂きました。

やりたい事
1、サイトトップページ(index.html)内にログインフォームを設置
2、ログインフォームにIDとPASSを入力して認証
3、認証が成功するとmemberディレクトリ内の閲覧が可能
4、認証が成功した場合、index.htmlのログインフォームが無くなり、
『ようこそ○○さん』という様な表示と、ログアウトボタンを設置
5、ログアウトボタンを押すとmemberディレクトリの閲覧不可
6、アクセス制限はmemberディレクトリ全体(サブディレクトリにも適用)
7、memberディレクトリ内の各ページにもログアウトボタンを設置
8、IDとPASSはサイト運営者のみ参照・追加・変更
815nobodyさん:2005/11/22(火) 12:13:31 ID:???
>>814
.htaccess
816nobodyさん:2005/11/22(火) 12:13:48 ID:???
どんなワードでぐぐればそんな一般的な話題をスルーできるのか不可思議だ
817nobodyさん:2005/11/22(火) 12:18:19 ID:???
つーか、PASSを運営者が参照出来るサイトはあんまり・・・
818nobodyさん:2005/11/22(火) 12:19:14 ID:???
>>814
つ [会員制 ログイン セッション PHP] for Google
819nobodyさん:2005/11/22(火) 12:25:46 ID:???
>>814
memberディレクトリの画像に直リンクされるのも困るのならhtaccess使うしかないね
パスはフォームとか使ってcryptされたものを受け取ればいいし
820nobodyさん:2005/11/22(火) 12:53:40 ID:MgTex/Ri
>>795
返事遅れました.
この場合,どのように対処したらいいんでしょうか?
821nobodyさん:2005/11/22(火) 14:25:11 ID:???
>>819
一概にそうとも言い切れない。
(>>814にはまだ敷居が高いかもしれないが)
822nobodyさん:2005/11/22(火) 15:04:00 ID:???
すみません教えてください。
$lines = file( "log.txt" );
をやった時にlog.txtファイルが無いとエラーで以降の処理をしてくれないのですが
これはどうやって回避すればいいですか?
823nobodyさん:2005/11/22(火) 15:06:25 ID:???
>>822
ファイルがあるかどうかを気にしたいなら、file_existsで確認すればいいじゃない
824nobodyさん:2005/11/22(火) 15:20:30 ID:???
>>823
いえむしろそれは意識したくなかったんだけど
Warning: file(): Unable to access log.txt
ってエラーがでるもんで
$lines = file( "log.txt" );
$cnt = count( $lines );
ファイルがなくても上のfileをスルーして$cntに0が入ればいいかなと
825792:2005/11/22(火) 15:23:40 ID:???
どなたか分かる方いらっしゃいませんか?
826nobodyさん:2005/11/22(火) 15:36:26 ID:???
>>792
まさかextension=php_mbstring.dllのコメントアウト忘れてないよね。。。
827792:2005/11/22(火) 15:39:15 ID:???
>>826
それは大丈夫です.
コメントアウトしていました.
828nobodyさん:2005/11/22(火) 15:39:48 ID:???
>>824
ファイルがあるかどうかで挙動が変わるのなら、file_existsで分岐すればいいじゃない
829nobodyさん:2005/11/22(火) 15:40:07 ID:???
>>825
mbstring以前に表示文字コードの問題じゃないかと思うのだが。
830nobodyさん:2005/11/22(火) 15:42:27 ID:???
>>792
●mbstring.script_encoding = EUC-JP

ってことソースファイルはEUCでまちがいないね?
831nobodyさん:2005/11/22(火) 15:45:57 ID:???
>>792
これをEUCで保存して表示させてみ

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<title>sage</title>
</head>
<body>
<?php
$var = "aあ bい cう";
print "$var";
?>
</body>
</html>
832nobodyさん:2005/11/22(火) 15:56:59 ID:???
>>824
@file()
素人にはオススメできない。
833nobodyさん:2005/11/22(火) 16:07:53 ID:???
>>832
素人は普通にfopenがいいですか?
834792:2005/11/22(火) 16:17:45 ID:???
>>830,831
テキストエディタはメモ帳を使っているのですが
文字コードはデフォルトの「ANSI」でした
EUCはドロップダウンリストに無かったのですが・・・
835nobodyさん:2005/11/22(火) 16:22:17 ID:???
>>834
TeraPad落として出直して来い
836nobodyさん:2005/11/22(火) 16:24:53 ID:???
近頃はこのレベルでもweb開発目指すのか

まぁ温かく見守ろうとは思うが、ちょっとつらいね
837792:2005/11/22(火) 16:35:53 ID:???
メモ帳はダメなんですね…
Windows附属だというのに困ったものです
838nobodyさん:2005/11/22(火) 16:43:09 ID:???
困ったもんだな
839nobodyさん:2005/11/22(火) 16:49:09 ID:???
>>837
お前が困ったものなのだよ
840792:2005/11/22(火) 17:03:25 ID:???
だって普通メモ帳だけでいけると思うやん
ゲイツが悪いんだよ
841nobodyさん:2005/11/22(火) 17:05:57 ID:???
ゲイツさんは残念ながらマックユーザーです。
842nobodyさん:2005/11/22(火) 17:09:33 ID:???
>>840
普通メモ帳使いませんが。
843nobodyさん:2005/11/22(火) 17:13:32 ID:???
ゲイツが好きならWord使えばよか
EUC対応
844nobodyさん:2005/11/22(火) 17:29:10 ID:???
phpでアクセス制限をかけた際に、
任意のエラーページ(404とか403とか)に飛ばすことは可能ですか?
845792:2005/11/22(火) 17:33:48 ID:???
>>842
そうなんだ
わざわざ他のインストするのもあれなんで
ずっとメモ帳だった
846nobodyさん:2005/11/22(火) 17:37:18 ID:???
>>845
テキストエディタの重要さを知らないとは!嘆かわしい。
そんな君には Meadow はどうだ。


・・・挫折必至
847792:2005/11/22(火) 17:56:10 ID:???
Meadowは知ってるが
別に装飾された文を作るわけでもないのに
なんでそんな高機能なエディタでやるの?
848nobodyさん:2005/11/22(火) 17:57:52 ID:???
>>844
HTTPヘッダーのLocationで飛ばす
849nobodyさん:2005/11/22(火) 17:59:53 ID:???
メモ帳でやってたらわけわからなくならないか?
そこまで複雑なもんを作らないのなら別だが。デバッグとか大変だろ。
850nobodyさん:2005/11/22(火) 18:00:58 ID:???
自称「俺はPC-9800時代からバリバリコード書いてた上級者PHPしかできないお前らみたいなにわか野郎とは経験が違うんだぜ」厨の予感
851nobodyさん:2005/11/22(火) 18:05:27 ID:???
>>850
edか?
852nobodyさん:2005/11/22(火) 18:06:58 ID:???
if($oyako == "0")

if($oyako == 0)

が別の結果になるのですが、そんなもんですか?
明確な理由があるのなら知りたいのですが、仕様ですか?
バージョンは4.3.10-16です。

if($oyako == "0")
だと0だけtrue

if($oyako == 0)
だと""(つまり$oyakoは空)と0がtrueになっているようです
853nobodyさん:2005/11/22(火) 18:08:06 ID:???
>>852
===
854nobodyさん:2005/11/22(火) 18:12:36 ID:???
855nobodyさん:2005/11/22(火) 18:20:46 ID:???
>>848
レスありがとうございます。
我慢の限界を迎えたので、.htaccessで弾きました。
でもせっかくなのでphpでも弾きたいと思います。
どうもでした。
856852:2005/11/22(火) 18:22:20 ID:???
>>853さん、>>854さん、ありがとうございます。
== は booleanの処理をするって事でしょうか。
単純にイコールって意味だと思ってました・・。

===って常に書いたほうが確実って事かな・・
857nobodyさん:2005/11/22(火) 18:34:06 ID:???
==は型が違っていたら変換して比較
===は型が違っていたらそれだけでFALSE
正確に知りたければ↓
http://jp2.php.net/manual/ja/types.comparisons.php
858nobodyさん:2005/11/22(火) 18:39:31 ID:???
>>856
つか、少しはマニュアル見たら?
859792:2005/11/22(火) 18:40:42 ID:???
>>856
ほんと帰っていいよ
860796:2005/11/22(火) 18:52:09 ID:xK2yLcAM
>>813
レスありがとうございます。
useraddでユーザーを作成する場合はcryptする必要があるようです
(man useraddコマンドやグーグル等で見ました)

今日もう一度色々試していたところ
$pass = crypt("hogehoge",substr($user,0,2));
このような暗号化をすれば正常にアカウントを作成し、FTPでログインできるように
なりました。
861852:2005/11/22(火) 19:06:58 ID:???
>>857
まことにありがとうございました。
表をよく見て活用させて頂きます。

>>858さん
ガンガリマス

>>859さん
さようなら

862nobodyさん:2005/11/22(火) 19:16:52 ID:???
>>855
いや、Locationで飛ばせってのは
PHPでチェックして、認証で×ならLoationで
403のページ(403.htmlとか)を出して、
○なら正規の動作をさせるということ。
巷のリファラチェックでエラー出す処理と似たような感じ。
で、PHPのスクリプトの最初に認証が通ってるのか、
無いのかを頭でチェックするようにしておく。
(セッションとか)

普通の静的なhtmlや画像他のファイルへのアクセスも
ブロックしたいのなら、.htaccessでやるしかないね。
863nobodyさん:2005/11/22(火) 20:49:47 ID:???
>>858
この前、くだしつ と本スレの違いについて話してたんだが、
くだしつ はマニュアル読めない人用らしいよ。
864nobodyさん:2005/11/22(火) 21:56:26 ID:???
自分の質問がくだらないと思える方はコチラへ
865nobodyさん:2005/11/22(火) 23:24:55 ID:???
ログファイルをアクセス不可にするって無理?
パーミッション 600 とかにすると PHP の方がアクセスできなくなる…。

何か別の方法は無いもんかね?
866nobodyさん:2005/11/22(火) 23:30:32 ID:???
.htaccessでも置いとけば。
867nobodyさん:2005/11/22(火) 23:49:43 ID:???
つ .htlog
868nobodyさん:2005/11/23(水) 00:14:05 ID:???
>>863
そうだね。マニュアル読めない人にマニュアル読めと言うスレ。
869nobodyさん:2005/11/23(水) 01:39:52 ID:RB2j7g2r
携帯でも見れるサイトを作ってて、
imodeでは見れるけどauやvodaではリストボックスとか登録ボタンとか
全然出てこないんですが。←まっしろ
どこのサイトに行けばやり方のってるんすかね?
870nobodyさん:2005/11/23(水) 01:42:47 ID:???
>>868
違うよ。マニュアルを読めない人に「マニュアルを読む」とはどういう事かを説くスレ。
871nobodyさん:2005/11/23(水) 01:44:03 ID:???
>>869
で、その質問のどこがPHPなんだ?
872nobodyさん:2005/11/23(水) 04:06:56 ID:???
>>870
まず>>869に説いてやってくれ
873nobodyさん:2005/11/23(水) 12:54:55 ID:???
>>865
そのログファイルのオーナーをPHPが動いているユーザーと同じにする。
874nobodyさん:2005/11/23(水) 18:08:28 ID:???
PHPをCGIとして利用したいのですが、
require_onceで組み込むphpファイルでも
#!/usr/local/bin/php と書き加えてCGI化する必要があるのでしょうか?
875nobodyさん:2005/11/23(水) 18:28:06 ID:09k62UC2
ログを吐くPHPスクリプトで、下のように記述された数値
を取得して、AAAをBBBで割るにはどうすれば良いでしょか?

■err.log
AAA,6554
BBB,4882

[名前,数値]→取得→AAAをBBBで割る→結果を出力(print.php)
876nobodyさん:2005/11/23(水) 18:36:00 ID:???
> [名前,数値]→取得→AAAをBBBで割る→結果を出力
これを更に関数や構文単位にまで分割してください。
877875:2005/11/23(水) 18:47:41 ID:09k62UC2
>>876
(?_?)
例えを分かりやすくするために…

<?php
header("Content-type: text/plain");
system('hostname'),;
system('uptime');
?>
■■表示結果(system.php)■■
localhost,6:45PM,4, 0.38, 0.31

これを、print.phpに表示したいと思ってます。
<table>
  <tr>
    <th>HOST NAME</th><th>UPTIME</th>
  </tr>
  <tr>
    <td>localhost</td>
    <td>6:45PM,4, 0.38, 0.31</td>
  </tr>
</table>

どうすれば出来るのでしょうか?
878875:2005/11/23(水) 18:53:21 ID:09k62UC2
やっぱり>>877は取り消して…

カンマ( , ) で区切ったのを表示させる方法がわかりません。
879nobodyさん:2005/11/23(水) 19:15:21 ID:???
>>875.877.878
お前はパラノイアか?
何をしたいのかがまったく判らん。
880nobodyさん:2005/11/23(水) 19:16:05 ID:???
>>878
explode
881875:2005/11/23(水) 19:18:25 ID:09k62UC2
>>880
スゲー、あなた天才^^

>>879
スマン
882nobodyさん:2005/11/23(水) 19:35:19 ID:???
>>881
じゃなくておまえが馬鹿なだけ
883nobodyさん:2005/11/23(水) 20:56:16 ID:???
>>874
CGIとinclude/requireの動作原理を理解すれば、どうすればいいかわかる

つか先に試せ
884nobodyさん:2005/11/23(水) 21:08:50 ID:???
HTML + DB(MySQL) をUTF-8にしようと思うんだけど
なんか注意することある?
885nobodyさん:2005/11/23(水) 21:11:00 ID:???
>>884
地震・水害・鳥インフルエンザ
886nobodyさん:2005/11/23(水) 21:15:16 ID:???
>>884
寒くなってきたから風邪に気をつけろよ。
コタツで寝たりしちゃ駄目だぞ。
887nobodyさん:2005/11/23(水) 21:15:47 ID:???
>>884
PHPが使われているか否か
888nobodyさん:2005/11/23(水) 21:54:12 ID:???
>>883
CGIにしなくても問題なく動いたのですが、それが
正規な方法か判断がつきませんでした。
へるぷみー
889nobodyさん:2005/11/23(水) 22:54:29 ID:gHn1+fgk
base64_encodeで、BASE64形式にエンコード出来たのですが、BASE64形式以外の
形式(%82%A8%82%DC%82%A2%82%E7%83%)にエンコードするにはどうすれば良いのでしょうか?
890nobodyさん:2005/11/23(水) 22:58:45 ID:???
ヒント:URLENCODE
891nobodyさん:2005/11/23(水) 23:11:13 ID:???
php4 と php5どっちがはやいの?
892889:2005/11/23(水) 23:17:19 ID:gHn1+fgk
>>890
出来ました!ありがとうございます。
##検索して来た人用のためにサンプル置いときますね!

<?php
$data = urlencode("テスト");
print($data);
?>

デコードも簡単…
$data = urldecode("%83e%83X%83g");
893nobodyさん:2005/11/23(水) 23:46:18 ID:???
>>892
よっぽど嬉しかったんだろうな…
894nobodyさん:2005/11/23(水) 23:47:59 ID:???
>>893
べ つ に ・ ・ ・










このスレの方の優しさに感激
895nobodyさん:2005/11/24(木) 01:24:59 ID:???
実際890はヒントではなく答えな訳で・・・
というかヒントを出せないくらい基本的な事
896nobodyさん:2005/11/24(木) 01:42:38 ID:???
>>889
マニュアルくらい読めと言いたい
897nobodyさん:2005/11/24(木) 02:07:03 ID:???
ログファイルの下5行だけを処理する場合に

for($i = 0; $i > count($log)-5; $i++){
}

じゃ何でダメとですか?
898nobodyさん:2005/11/24(木) 02:12:32 ID:???
>>897
>count($log)
毎回この部分を評価しなおすから

じゃないか?試してないけど
899nobodyさん:2005/11/24(木) 02:18:44 ID:???
>>897
count($log)が5以上の時はループしないから。
900897:2005/11/24(木) 02:33:42 ID:???
何か漏れのキャパを超えているようです・・・
・゚・(´Д`)・゚・ 誰か助けてください!
901nobodyさん:2005/11/24(木) 03:25:26 ID:???
for($i=count($log)ー5;$i<count($log);$i++)
ではどう?
902nobodyさん:2005/11/24(木) 03:57:01 ID:???
何したいのかしらんけど
array_slice($log, -5)じゃいかんのか?
903nobodyさん:2005/11/24(木) 04:06:54 ID:???
>>897
Perlメモでググれ。
904nobodyさん:2005/11/24(木) 04:38:48 ID:???
>>897
>>899の回答見てもわからんのか?
おまえ向いてないよ。諦めれ。
905nobodyさん:2005/11/24(木) 07:29:00 ID:???
forの扱い方が根本的に違う
906nobodyさん:2005/11/24(木) 10:09:32 ID:???
実は$logが配列でない気もしてきた・・・
907nobodyさん:2005/11/24(木) 11:50:05 ID:???
実は>>897も存在してないような気がしてきた…
908nobodyさん:2005/11/24(木) 13:11:55 ID:???
ひー
((((;゚Д゚)))ガクガクブルブル
909nobodyさん:2005/11/24(木) 13:38:58 ID:???
画像の縦横比を変えずにリサイズしたいのですが、
どのような方法でリサイズすれば良いでしょうか。
910nobodyさん:2005/11/24(木) 13:51:59 ID:???
漏れは面倒なのでいつもGDを使ってる
911nobodyさん:2005/11/24(木) 14:02:36 ID:???
漏れは面倒なのでいつもPhotoshopを使ってる
912910:2005/11/24(木) 14:03:35 ID:???
それだけの用途にPhotoshopは高い・・・(´・ω・`)ショボーン
913nobodyさん:2005/11/24(木) 14:29:47 ID:???
>>909
リサイズ、リサンプルならPHPのグラフィック関数(要するにGD)とか、ImageMagick。
それらを利用したサムネール作成のライブラリを利用してもいい。
phpThumbとか。他にもいっぱいあるから探してみな

あと「縦横比を変えずに」ってのは、算数の話だから。
914nobodyさん:2005/11/24(木) 14:30:25 ID:???
>>912
GIMP使えよ…
915nobodyさん:2005/11/24(木) 15:12:04 ID:???
以前、なんか導入するの('A`)マンドクセ、って感じだったので適当に
スクリプト書いてそれで済ましちゃったから、それっきりだ
916nobodyさん:2005/11/24(木) 16:04:22 ID:???
>>909
1)リサイズしたい画像の種類を調べて、それに合わせた命令で画像を開く
2)画像の縦横サイズを読み込む
3)「算数」レベルの計算をする
4)新しい画像を作る(サイズは上で計算したやつ)
5)元の画像から新しい画像へ複製サイズ変換する
6)画像を書き出す
7)元の画像と作った画像のメモリを開放する
917909:2005/11/24(木) 16:16:52 ID:???
出来ました。みなさんありがとうございました。
一度作って保存して開放という流れなんですね。
このことは一生忘れません。
918軟式PHP:2005/11/24(木) 16:56:58 ID:???
熱い奴だな。
919nobodyさん:2005/11/24(木) 17:48:03 ID:???
>>917はマニュアル読んだら発火するんじゃまいか
920nobodyさん:2005/11/24(木) 17:53:41 ID:C4QTlVLt
mysql_escape_stringでエスケープ処理した日本語を含むデータを
ブラウザに表示すると、改行とかが\nで表示されるのは当たり前なのですが、
このエスケープした文字を直すのにはどうすればいいのでしょうか?

リファレンス本に日本語を含むクエリ文字列をデコードとあったのですが
そのmb_parse_str()では結果が1になってしまい、
適切な文字列が表示されませんでした。
921nobodyさん:2005/11/24(木) 21:43:05 ID:???
1行テキストをどこからインクルードしてもランダムで表示するスクリプトを作成してます。

■rawords.php ram.phpが読み込むファイルです
a行

b行

c行

■ran.php インクルードさせるファイルです
<?php
$quotes = file("http://domein/in/rawords.php");
$quote = rand(0, sizeof($quotes)-1);
echo <<<EOM
<p>$quotes[$quote]</p>
EOM;
?>

■whatever.php なんでも。
<?php include("ran.php"); ?>
インクルードパスを指定してあるのでどこからでもこれで良いのです。

こうすると
<p>b行
</p>
のように出力結果の際、改行まで変数に格納されてしまいます。
どうにかして出力結果を
<p >b行</p>
のように一行にまとめられないでしょうか。
ただし、c行(一番したのもの)を表示するときには一行にまとまっています。

どなたかお教え下さい。
922921:2005/11/24(木) 21:44:36 ID:???
なぜか
a行b行c行のところが辺に改行されてしまいましたが

実際は
a行
b行
c行
の3行だけが中身です
923nobodyさん:2005/11/24(木) 21:51:39 ID:???
突っ込みどころ満載なのは置いておいて・・・
その出力で改行が含まれて何か不都合でもあるの?
924nobodyさん:2005/11/24(木) 21:53:18 ID:???
改行消せばえぇやん('A`)
925nobodyさん:2005/11/24(木) 21:53:30 ID:???
なにが問題になっているかを突き詰めていけば、
file()で読み込んだ配列の各要素のお尻に改行文字が付いてるってことだよね?
で、マニュアルのfile()を読めば分かるけど、これは正しい挙動。
なので、お尻の改行文字を削除する方法を考えればよい。
で、こういう処理をする関数がちゃんとあるわけだ。
926nobodyさん:2005/11/24(木) 22:01:41 ID:???
実際の所、マニュアル読め で済む話なんだけどね。書いてあるから
http://php.net/file
927nobodyさん:2005/11/24(木) 23:37:20 ID:N1UlY50b
delete関数ってどういうときに使うの?
928nobodyさん:2005/11/24(木) 23:42:32 ID:???
delete(>>927);
929nobodyさん:2005/11/25(金) 00:37:49 ID:D20eJ5kK
仕事でWebObjects→J2EE→.NETとWebアプリケーションを作ってきました。
この度、個人レベルのWebアプリケーションを作ってみたいと思い、
phpを勉強中なのですが、勝手の違いに戸惑っています。

悩んでいるのは、
1.ロジックとデザインの分離
2.処理や機能とphpファイルへの割り当て方
3.フォルダ構造
などです。

1.はsmartyを使ってみたり、xoopsを解読してみたりしています。
2.はかなり悩んでいます。機能ごとにファイルをわけた方がいいかとか
 ある程度の機能を1ファイルで処理する(クエリストリングで指定)とか
 (もちろんクラス分けはします)
3.は、今作りたいのが、トップページがあってログインしていくつかの
サービスを使えるというものなのですが、ファイルをフラットに並べた方がいいのか、
フォルダ分けした方がいいのかとか、共通のクラスをどう置いて、
それぞれのファイルからはどうincludeすればいいのかとかそういう事です。

非常に基本的な事だと思うのですが、このあたりが固まらないと
なかなかすすみません。

そこで、なにかしらの情報を得たいのですが、
サイト、本、サンプルコード等ありましたら教えてください。

ちなみに、現在以下の本で勉強中です。

「PHPによるWebアプリケーションスーパーサンプル」
http://www.amazon.co.jp/exec/obidos/ASIN/4797321288/qid=1132846479/sr=8-1/ref=sr_8_xs_ap_i1_xgl/250-3747813-9702656

「自分で作る blog ツール」
http://www.amazon.co.jp/exec/obidos/ASIN/4797327073/qid=1132846553/sr=1-1/ref=sr_1_2_1/250-3747813-9702656
930nobodyさん:2005/11/25(金) 00:47:20 ID:???
>>929
仕事でwebアプリケーションを作っていた人間とは思えない発言だな…
とりあえず、どの言語でも基本だろうが「マニュアル嫁」
931929:2005/11/25(金) 00:54:59 ID:???
>>930
レスありがとうございます。

>仕事でwebアプリケーションを作っていた人間とは思えない発言だな…
>とりあえず、どの言語でも基本だろうが「マニュアル嫁」

ごもっともで申し訳ないです。仕事のレベル自体は高くないので。
ただ、マニュアルは参照程度に読んでいます。
作りたいものを作る事は出来そうなのですが、
拡張しやすいもの、綺麗なもの(可読性等)といったようなコツはやはり
マニュアルだけでは分からないかなと思い質問しました。

マニュアルはもっと読むべきだと思いますんで。マジメに読む事にします。どうもです。

932nobodyさん:2005/11/25(金) 00:58:33 ID:???
束縛されるのに慣れちゃってそういう仕組みが無いPHPに戸惑ってるってことじゃないかな。
フレームワークスレがあるからそっちを眺めて自分に合いそうなのを探した方がよいかも知れず。
933nobodyさん:2005/11/25(金) 01:01:32 ID:???
規約はありさえすれば何でもいいじゃない
適当なフレームワークに押し付けてみて
ダメならその時自分で作るとか
マニュアルは言語マニュアルなんで設計の話はゼロだよ
934929:2005/11/25(金) 01:14:02 ID:???
>>932
>束縛されるのに慣れちゃってそういう仕組みが無いPHPに戸惑ってるってことじゃないかな。

そういうことなのかもしれません。
束縛されているのに慣れていると感じた事はありませんでしたが
確かに、自由すぎて1段したから考えなければ行けないのに戸惑っています。

ロジックさえちゃんと分けておけば後から別の仕組みに置き換えることも
簡単かもしれませんが、結局の所みな大事な所は独学ということなんですかね?

フレームワークスレ見てみます。
ちょと調べた感じだとsmartyでいいかなという感じではありましたが。
フレームワーク選びに時間を費やすのもなんですけどね。

>>399
そうですよね。
でもフレームワークから作っていたら完成がずっと後になりそうです。
基本的に週末だけの作業ですから早くカリカリとコーディングしたいです。

935nobodyさん:2005/11/25(金) 01:16:24 ID:???
設定ファイルで使うグローバル変数の
命名規則について迷っています。
候補は以下の二つなのですが、どちらがよいでしょうか?
できればPHPのスタンダードな記述方法が良いです。
あと、他にも良いのがあれば教えて下さい。

1、全て大文字で文字列の区切りはアンダーバー($FOO_BAR)
2、先頭はアンダーバー始まり、全て小文字で文字列区切りはアンダーバー($_foo_bar)
936nobodyさん:2005/11/25(金) 01:24:20 ID:???
$GLOBALS['フーバー'] = '設定';
echo ${'フーバー'};

これをスタンダードにしようぜ
937nobodyさん:2005/11/25(金) 01:26:37 ID:???
ちなみにPEARはこんな感じ
http://jp2.pear.php.net/manual/ja/standards.naming.php
938nobodyさん:2005/11/25(金) 01:33:09 ID:???
pearは実際には$GLOBALS使ってるな。globalではグローバってない。
939nobodyさん:2005/11/25(金) 03:19:42 ID:???
>>936
超COOLだぜ
940nobodyさん:2005/11/25(金) 04:13:50 ID:???
会社の後輩がPHPのお勉強の為にホームページをこしらえました。
ttp://313ed.lolipop.jp/

今後も彼が益々上達しますよう、お便りを送ってあげてください。
941nobodyさん:2005/11/25(金) 04:41:43 ID:vFK4F58j
キモッ!
942nobodyさん:2005/11/25(金) 07:40:56 ID:???
>>920
mysql_escape_stringってデータをMySQLに入れるときに使う関数だよ。
今はmysql_real_escape_stringが推奨。
データベースからデータを引き出したときにはアンエスケープされてるから何もする必要はないけど。
改行が\nで表示ってmysql_escape_stringとは全然関係ないんだけど勘違いしてないか。
943nobodyさん:2005/11/25(金) 12:49:42 ID:???
php.ini の short_open_tag って Off が奨励されているみたいだけど、
Off の状態で <? echo "test"; ?> と書いてブラウザでソース表示すると
PHPのソースが丸見えになっちゃうんだね。
今は <?php と書く癖がついているけど、昔書いたスクリプトで <? のままのがあって
アレレ〜になってしまった。
設定ミスでソースが見えてしまうのは避けたいので、防ぐ方法ってないかしらん?
944nobodyさん:2005/11/25(金) 13:05:17 ID:???
>>943
古いそーすの<?を<?phpに変換する
945nobodyさん:2005/11/25(金) 13:25:52 ID:???
>>943
またはshort open tagをonにする
946nobodyさん:2005/11/25(金) 13:32:49 ID:???
>>943
あるいはCGIで動かす
947943:2005/11/25(金) 13:50:50 ID:???
みんなありがとね。根本的な対策ってなさげかな。
<? を修正したり、short_open_tag = On にしたりというのが正しいのだろうけど、
人間はミスするものだから、ミスでソース丸見えってのはツライな。
後は、丸見えになっても困らないように URL でアクセスできるスクリプトは
require() だけにするぐらいか。。。

>>946
CGIで動かしても同じだと思うのだけど、漏れが勘違いしてる?
948nobodyさん:2005/11/25(金) 13:56:03 ID:???
>>947
根本的って……。
それが、タグの書き換えであり、short_open_tags=Onなんじゃねーのか?
いったい何を期待してたんだ?
949943:2005/11/25(金) 14:04:13 ID:???
>>948
あ〜、確かに意味が変だね。
"根本的な対策" → "ミスのしにくい対策"
って直しておきます。これで満足?
950909:2005/11/25(金) 14:06:28 ID:???
I Don't know what you're expecting of me.
Put under the pressure of walking in your shoes.
951nobodyさん:2005/11/25(金) 14:07:09 ID:???
誤爆ごめんね・・・。
952nobodyさん:2005/11/25(金) 14:12:26 ID:???
sedなりなんなりで <? →<?php に置き換えるスクリプトでもかましてからアップすれ


で、その次は、作ったタグ置き換えスクリプト通すのを忘れにくくする対策を考えるのさ
953nobodyさん:2005/11/25(金) 14:12:28 ID:???
言葉面はどうでもいいけど、その2つしか方法は無いよ。
954nobodyさん:2005/11/25(金) 14:16:26 ID:???
>>949
なに開きなおってんだ?
955nobodyさん:2005/11/25(金) 16:08:26 ID:???
actionのurlと
そのinputのnameとvalue
をgetで取得して

getで受け取ったのを
postすることってJavaScript併用しないとできないですか?
ほんとくだらなくてすみません
956nobodyさん:2005/11/25(金) 16:17:29 ID:???
>>955
真面目にやるなら、fsockopen()を使ってHTTPのPOSTメソッドの仕様にしたがってPOST先にデータを渡す。
キーワード [ HTTP RFC1945 RFC2616 POST fsockopen ]
pearのHTTP_Clientを使うと楽できる。
957nobodyさん:2005/11/25(金) 16:22:54 ID:???
>>956
HTTP_Clientか
使ってみる
958nobodyさん:2005/11/25(金) 17:31:41 ID:???
ファイルのアップロードのやりかたをおしえてください
959nobodyさん:2005/11/25(金) 17:34:04 ID:???
>>958
FTP
960nobodyさん:2005/11/25(金) 17:38:01 ID:???
楽するならfile_get_contentsでPOST
961nobodyさん:2005/11/25(金) 17:43:18 ID:???
>>958
php ファイル アップロード
でぐぐってみなよ。
962nobodyさん:2005/11/25(金) 17:47:28 ID:???
>>929
ブログツールの本も読んでるみたいだし、ならwordpressのフォルダ構造とか参考にしてみたら?
あとは、web上で公開されてるファイル数多めのphpツールをひたすらダウンロードして自分で解析しまくる。
963nobodyさん:2005/11/25(金) 17:51:07 ID:???
wpはプロシージャ系だから参考にならないよ
964nobodyさん:2005/11/25(金) 18:15:44 ID:???
>>963
うんじゃ、phpMyAdminとか
965nobodyさん:2005/11/25(金) 18:47:40 ID:???
ものすごくくだらない質問ですみません。

GETで指定されていない場合、hogehogeを変数nameにいれたいのですが、
GETを取得していない場合という分岐ができません・・・

if(!$_GET['hoge']===TRUE){
$name="hogehoge";
}else{
$name =$_REQUEST['hoge'];
}

どうか教えてください・・・
966nobodyさん:2005/11/25(金) 18:53:17 ID:???
if (empty($_GET['hoge'])) {}
とか
$name = empty($_GET['hoge']) ? 'hogehoge' : $_REQUEST['hoge'];
967nobodyさん:2005/11/25(金) 19:01:40 ID:???
不特定回数繰り返された文字列を特定の文字に置換したいのですが、
できますでしょうか?

[ aaaaaa.... ]を[ a ]に置換する。
968nobodyさん:2005/11/25(金) 19:03:54 ID:???
>>965
とりあえず解決はしたようだが、驚かないで聞いてくれ。
var_dump($_GET) してみれば分かるが、$_GETで渡ってくるデータはstring型だったんだっ!
なので存在する$_GETに対して===を使って比較する場合は、必ずstring型にある。
969nobodyさん:2005/11/25(金) 19:16:30 ID:???
>>967
もちろん出来るよ。一行で
970nobodyさん:2005/11/25(金) 19:21:16 ID:???
>>967
正規表現
971965:2005/11/25(金) 19:47:29 ID:???
>>966
ありがとうございますm(_ _)mペコリ
emptyを使うことを思いつきませんでした。

>>968
ままっまじすかっ(驚愕)


972nobodyさん:2005/11/25(金) 20:15:24 ID:???
>>971
issetもお忘れなく
973nobodyさん:2005/11/25(金) 20:21:17 ID:???
お世話になります。

pg_connect()を使って、郵便番号を郵政のデータベースから入手したいのだが

Fatal error: Call to undefined function:pg_connect()
in /home/userdir/www/postal/hogehoge.php on line 75

で実行不可になってしまいます(なぜに Call to undefined function になってしまうのでしょうか。。。)。
どうすれば解決できるでしょうか、お教え願います。
974nobodyさん:2005/11/25(金) 20:25:03 ID:???
>pg_connect()を使って、郵便番号を郵政のデータベースから入手したいのだが
ホントにこんな事が出来たらワロス
975nobodyさん:2005/11/25(金) 20:28:01 ID:???
ゆうびんホームページからCSV形式の郵便番号のデータを取得してテーブルにインポートする流れです。
976nobodyさん:2005/11/25(金) 20:29:57 ID:???
ポスグレ用のモジュールが入ってねーから
977nobodyさん:2005/11/25(金) 20:37:18 ID:???
ポスグレって呼ぶな
978nobodyさん:2005/11/25(金) 20:38:01 ID:8jBg0Ry9
初歩的なことかと思いますがよろしくお願いします。
下記のようにやるとifを全く評価してくれません。
どうしてなんでしょうか・・・?
どこがおかしいのか教えてください。

・実験用ファイル
<?
$fp = @fopen("list.txt", "r");
while(!feof($fp)){
list($name,$address,$num) = explode("<>", fgets($fp));
if($num == "010"){
echo "あなたの番号は010です<br>";
}else{
echo "あなたは020番以降の方ですね?<br>";
}
}
fclose($fp);
?>

・list.txt
名前1<>住所1<>010
名前2<>住所2<>020
名前3<>住所3<>030
名前4<>住所4<>040
979nobodyさん:2005/11/25(金) 20:38:15 ID:???
ポグスかよ
980nobodyさん:2005/11/25(金) 20:40:47 ID:???
>>978
おかしいと思ったらならその変数をダンプしてみろよ
改行くっついてるから
981973:2005/11/25(金) 20:45:02 ID:???
PostgreSQL設定オプションの

pgsql.allow_persistent "1"
pgsql.max_persistent "-1"
pgsql.max_links "-1"
pgsql.auto_reset_persistent "0"
pgsql.ignore_notice "0"
pgsql.log_notice "0"

をどのように設定すれば設定を有効にできるのでしょうか
たびたびすみません
982973:2005/11/25(金) 20:47:56 ID:???
pgsql.allow_persistent = On
pgsql.auto_reset_persistent = Off

が抜けてました。汚しすみません・・・
983nobodyさん:2005/11/25(金) 20:48:28 ID:???
984nobodyさん:2005/11/25(金) 20:49:38 ID:8jBg0Ry9
>>980
ありがとうございます。
解決できました!
こういう場合、最後にも「<>」を入れないといけないんですね。
勉強になりました。
985973:2005/11/25(金) 20:53:49 ID:???
>>983
回答ありがとうございます

がっついていて、ググりませんでした・・失礼しました
986ダメな973:2005/11/25(金) 20:59:22 ID:???
さくらサーバのphp.iniファイルに

extension=php_pgsql.dll

を追加したのですが、変更を認識してくれないのはなぜでしょうか?
スレ違いですみませんが
987nobodyさん:2005/11/25(金) 21:00:47 ID:???
OSって知ってる?
988nobodyさん:2005/11/25(金) 21:01:18 ID:???
レン鯖でテストキター
989ダメな973:2005/11/25(金) 21:09:53 ID:???
>>987
えーと、BSDのようですが
990nobodyさん:2005/11/25(金) 21:10:15 ID:???
>>984
いや、trimだろ普通は
991nobodyさん:2005/11/25(金) 21:11:04 ID:???
次スレ次スレ
992nobodyさん:2005/11/25(金) 21:17:30 ID:???
【PHP】下らねぇ質問はここに書き込みやがれpart13
http://pc8.2ch.net/test/read.cgi/php/1132921016/
993978:2005/11/25(金) 21:18:51 ID:???
>>990
trimも一番最初に思いついたんですが、
もしかしてと思い最後尾に<>を入れてみたらうまくいったんで・・・w
やっぱりtrim使う事にします!
994nobodyさん:2005/11/25(金) 21:20:50 ID:???
埋めるか
995nobodyさん:2005/11/25(金) 21:22:40 ID:???
たまにCSVの仕様で末尾かならずカンマ、みたいなのをもらったりするがオマイさんみたいなのが作ってたんだな…
996nobodyさん:2005/11/25(金) 21:24:31 ID:???
CSV吐き出す側のルーチンが単純になるってのは利点とは言わんか…
997nobodyさん:2005/11/25(金) 21:25:45 ID:???
>>995
>>996
テメーラこんなとこでくだらねー議論してんじゃねーよ
998nobodyさん:2005/11/25(金) 21:26:07 ID:???
雪が降ってきましたねぇ
999nobodyさん:2005/11/25(金) 21:26:14 ID:???
>>997
おいおいくだスレだからいいじゃないか
1000nobodyさん:2005/11/25(金) 21:26:45 ID:???
>>995-999
以上自演乙でした
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。