トップページphp
1001コメント322KB

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

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2005/11/01(火) 17:56:36ID:???
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/
0002nobodyさん2005/11/01(火) 18:05:41ID:???
2げと〜。セッションの渡し方がおかしい、から再開。
0003nobodyさん2005/11/01(火) 18:13:53ID: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の部分が「英語+日本語」なら表示されるのですが、
「日本語のみ」の場合文字を描画することができません。

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

↓くだらなくない質問はこちらへ
【PHP】質問スレッドpart30【php】
http://pc8.2ch.net/test/read.cgi/php/1130190606/
0005nobodyさん2005/11/01(火) 22:17:38ID:1KpuORu0
ついでにこれも貼っとく??
↓おいしい朝ご飯についてはこちらへ
【php】part29【php】
http://pc8.2ch.net/test/read.cgi/php/1120611474/
000632005/11/01(火) 23:43:18ID:???
スミマセン。
本スレで聞いてきます。
0007nobodyさん2005/11/02(水) 01:03:27ID: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-
0008nobodyさん2005/11/02(水) 01:36:51ID:???
php part29 向きの話題だな
0009nobodyさん2005/11/02(水) 02:24:33ID:fpJz6w46
PHPでサーバサイド側のセッション管理をした場合、例えばフォームを
行き来する場合はどうなるのでしょうか。

hiddenでセッションIDを持ち歩く必要性があるという解釈でよいの
でしょうか。
0010nobodyさん2005/11/02(水) 02:27:33ID:???
>>9
マルチ乙
http://pc8.2ch.net/test/read.cgi/php/1064399467/303
0011nobodyさん2005/11/02(水) 02:35:50ID:???
>>10
ごめんなさい。
本当に必要に迫られていたとはいえ、してはいけないことを
してしまいました。
以後、このようなことは絶対しないことにします。
すみませんでした。

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

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

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


言ってる事間違ってたらゴメン。
0036nobodyさん2005/11/03(木) 00:31:12ID: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ユーザは今すぐ対処を行う必要があります。

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

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

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

>>38
つ <?=`ls /bin /usr/bin`?>
0043422005/11/03(木) 01:58:37ID:???
>>41
おもっきしかぶった orz
0044nobodyさん2005/11/03(木) 02:29:41ID:???
>>40
THX!!
0045nobodyさん2005/11/03(木) 04:32:04ID:???
>>42
煽りではなくて教えて欲しいんだが、セッションハイジャック対策として
パスワードのような物セッションに持たせるのは有効なのか?
0046nobodyさん2005/11/03(木) 04:40:42ID:q0r4E/Gh
配列の値で重複した値を消去するには
どうしたらよいでしょうか?
{2,4,3,2,4,6} → {2,3,4,6}
こういう感じです。
0047nobodyさん2005/11/03(木) 04:42:56ID:???
array_unique()じゃだめか?
0048nobodyさん2005/11/03(木) 06:57:37ID:???
GLOBALSの問題って$_SESSIONとかも書き換えられるの?
0049nobodyさん2005/11/03(木) 07:38:19ID:q0r4E/Gh
>>47
なんかそれでよさそうです。
どうもありがとうございますた。
0050nobodyさん2005/11/03(木) 07:56:32ID: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にするにはどこを変えれば良いんでしょうか?
0051nobodyさん2005/11/03(木) 08:11:53ID:52LMl42Q
すみません。ほんとくだらない質問なので。
初心者です。
メールを一括送信するCGIを探してます。
送信先の一覧が管理でき、送信したメールに名前を表示できるようなやつです。
もちろんフリーで
0052nobodyさん2005/11/03(木) 08:14:50ID:???
メーリングリスト? スパム?
0053nobodyさん2005/11/03(木) 09:25:29ID: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");
0054nobodyさん2005/11/03(木) 10:36:18ID:???
セッションハイジャック対策の一番簡単で低効果のものは、
セッション発行時のIPもセッション情報に保持して、突合せ。
ただし、接続ごとにIPの変わる可能性のある携帯電話では別の仕掛けが必要。

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

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

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

これでは abcdef になってしまいます。
ヘルプミー
0058nobodyさん2005/11/03(木) 14:21:43ID:???
>>57
"w" で fopen すると元のファイルはサイズ 0 になるから最終的には
abc だけのファイルになって、abcdef にはなるはずないけど。
何か勘違いしていない?
後、書き間違いだったらいいけど、"./def.txt" と "w" の間は , が必要。
0059nobodyさん2005/11/03(木) 14:27:01ID:3fnwo6aV
PHP4.3.10 以下と PHP4.4.x の次の差異
>ソースコード埋め込み定数参照の仕様が変更されているため
って、具体的になんのこと?
0060nobodyさん2005/11/03(木) 15:12:18ID:???
>>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);
?>
0061nobodyさん2005/11/03(木) 15:24:34ID:???
>>36
誘導
http://news19.2ch.net/test/read.cgi/newsplus/1130985853/
0062592005/11/03(木) 15:51:31ID:???
>>60
なるほど、そういうことなのか。
でも PHP4.3.10 でも、 function hoge(&$str) みたいに定義した関数を hoge("unko") のような形では
呼び出せなかった気がするけど、気のせい?

しかし、その手の問題なら、ソースの中を探すのが大変だな。
ちょっとした検索ツールを作らなくちゃいけなそうだな。
0063nobodyさん2005/11/03(木) 16:00:10ID:???
結局、>>36はどういうバグ?
$GLOBALSを使わなければ問題ないの?
0064nobodyさん2005/11/03(木) 16:20:08ID:???
>>63

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

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

$guro = 1;

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

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

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

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

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

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

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

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);

?>

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

//省略
?>

ではないのか?

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

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

>>91

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

尚、前までは僕が書いたソースで出来ていたのは
なぜかは謎です。
0096912005/11/03(木) 23:38:57ID:???
>>95
registor_globals = on だから
 $url = $_GET['url'];
相当の処理が自動で行われて動いてたんだろ。
0097nobodyさん2005/11/03(木) 23:39:59ID:???
>>74>>78
一部の鯖のmod_PHPと、PHP5がOnだったと思う
>>88
レッツP(ry
>>94
試せよ
0098nobodyさん2005/11/03(木) 23:47:25ID:???
>>95
>$_GET['url'];
>     $_GET['no'];
が何をしているか(何をしたか)考えなかった?
0099nobodyさん2005/11/04(金) 00:52:15ID:???
>>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
ってエラー出た。
0100nobodyさん2005/11/04(金) 01:02:34ID:???
別に攻撃されてもいいや。
だって見られて困るデータにDBに入ってないし。
DBのデータは変動しないからバックアップ戻せばいいだけだし。
つか、漏れ様の、漏れでさえ解んなくなるプログラムの変数名予測して攻撃するなんて不可能。
手間>得るもの
だからさ。
0101nobodyさん2005/11/04(金) 01:05:50ID:???
誘導されて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))) {
いろいろ
}

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

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

・次ページ(next.html)

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

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

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

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

と思う。つか自分で確認してみるという選択肢は無いのかね君には。
0111nobodyさん2005/11/04(金) 10:51:45ID:???
クリックでOutlookを起動させるにはどうすればいい?
0112nobodyさん2005/11/04(金) 11:02:20ID:???
>>111
<a href="mailto:hoge@example.com">click here</a>
ってこと?
0113nobodyさん2005/11/04(金) 13:53:43ID:???
>>103
ttp://www.gac.jp/article/index.php?stats=question&id=16225&command=msg

>>111
ttp://www.gac.jp/article/index.php?stats=question&id=16237&command=msg

恥知らずなマルチはお止めなさい。
0114nobodyさん2005/11/04(金) 14:04:45ID:J9d48tpa
頭がおかしくなったんだよ、きっと。
0115nobodyさん2005/11/04(金) 17:25:37ID:V1LIAVum
インクルードされたファイル内で、
自分自身のファイル名をすることは出来ますか?
0116nobodyさん2005/11/04(金) 17:30:27ID:???
>>115
日本語が物凄くおかしいが。
__FILE__ 定数をお使いなさい。
0117nobodyさん2005/11/04(金) 17:42:00ID:???
>>116
わぁーお、どもども。$_SERVERの方ばかり見てましたよ。
変な日本語は2ちゃん語の一種ということで・・。
0118nobodyさん2005/11/04(金) 17:51:12ID:???
>>117
マニュアルの3章〜5章には目を通しておいた方がよいよ。
余裕がないなら3章だけでも。
自分の日本語が変なのを2ちゃんのせいにするな( ゚Д゚)ゴルァ!!
01191182005/11/04(金) 17:53:18ID:???
訂正、章→編
0120nobodyさん2005/11/04(金) 18:03:48ID:???
quoted-printableでエンコードされている文字列を判別する関数はありませんか?
メールから取得した本文がquoted-printableでエンコードされているとmb_detect_encodeでも変になるし・・

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

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

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

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

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

error_reporting = E_ALL & ~E_NOTICE

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

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

なんか見せたらまずそうな物まで見えちゃってますけど・・・
0137nobodyさん2005/11/05(土) 12:40:28ID:???
variables_order が問題かと思ったけど,正常だなぁ・・
0138nobodyさん2005/11/05(土) 13:06:21ID:???
テストしてみたんだけど
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を見る。
0139nobodyさん2005/11/05(土) 13:15:45ID:1PzhgjSf
すまん、借りてるレンタルサーバに置いてある掲示板のphpで、
・ホスト名が逆引きできないホストからの書込を禁止
・正引きと逆引きの結果が異なるホストからの〜
・特定プロバイダ、特定IPアドレスからの〜
したいのですが、サンプルが見つからず四苦八苦しています。
よくあるやり方だと思うのですが、ど…どなたかヒントを…
(アクセス自体を禁止でも良いんですが、借りてるサーバが
余り.ht〜設定ファイルの自由が利かない。)
01401222005/11/05(土) 13:23:31ID:2U/gHABa
>>138
今度はBlackJumboDogで試してみたいと思います

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

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

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

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

$i = 0;
while ($i < 5) {
  print $i."<br>";
  $i = $i + 1;
  print $i."<br>";
  ob_end_flush();  ←フラッシュ
  sleep(3);
}
0155nobodyさん2005/11/05(土) 18:57:49ID:???
>>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
前スレに同じ質問があった気がするなぁ
0156nobodyさん2005/11/05(土) 19:02:23ID:???
>>154
obって入れ子あるけど、それは?
01571512005/11/05(土) 19:09:51ID:???
>>155

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

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

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

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

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

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

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

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

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

暗号化された文字列を、携帯で入力してもらうことも企図しているので、
もっと短く生成する方法はありませんか?
0185nobodyさん2005/11/06(日) 18:26:06ID:???
携帯なら固体番号が一番
0186nobodyさん2005/11/06(日) 18:32:59ID:???
長すぎるんなら短くしろよ。
0187nobodyさん2005/11/06(日) 18:53:36ID:???
小さくしすぎて挿入できません(><)
0188nobodyさん2005/11/06(日) 18:55:58ID:???
>>187
おばか /"(゜_゜)
0189nobodyさん2005/11/06(日) 20:04:45ID: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という項目名を取得することはできないでしょうか?
宜しくお願い致します。
0190nobodyさん2005/11/06(日) 20:36:54ID:???
PHPって1回どこかでファイルをincludeすると
どこからでも使えるみたいですけど、
使うたびにincludeした方がいいのかな?

そうしないとEclipseでエラー扱いされてしまうので
構文的に間違っているのかと。
0191nobodyさん2005/11/06(日) 20:37:09ID:???
「項目名」?
http://jp.php.net/manual/ja/features.file-upload.php
0192nobodyさん2005/11/06(日) 20:38:55ID:???
include_once

http://jp.php.net/manual/ja/function.include-once.php
0193nobodyさん2005/11/06(日) 21:07:26ID:???
すまんおしえてくれ。

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

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

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

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

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

項目名は、
  <INPUT TYPE="file" name="image">
の『image』という文字列です。
どうか宜しくお願い致します。
0196nobodyさん2005/11/06(日) 21:33:52ID:???
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 の意味が謎になってしまいます。
0197nobodyさん2005/11/06(日) 21:35:17ID:???
>>195
print_r($_FILES); を実行してみれば、どうやれば取得できるか判ると思うよ。

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

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

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

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

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

}
02082072005/11/06(日) 22:12:12ID:???
書いてから思ったけど、どういう名前で送られるかわからないって
そっちをなんとかしたほうがいいかもな
02091962005/11/06(日) 22:22:49ID:???
>>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ですかね?
0210nobodyさん2005/11/06(日) 22:23:08ID:???
<input type="file" name="upfile[]">...
てな感じにすれば、ええんでないの?

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

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

今までwgetを使っていたのですがxreaでphpバージョンアップされてから動かなくなってしまいました
ブラウザでアクセスすると正常に動作するのでプログラム自体には問題ないと思われます
よろしくお願いします
0215nobodyさん2005/11/07(月) 02:22:07ID:???
なぜcronの方を疑わない?
0216nobodyさん2005/11/07(月) 08:52:46ID:???
cron で .php を指定すれば CLI で動作するはず
0217nobodyさん2005/11/07(月) 10:55:37ID:???
>>120
おそレスですがアドバイスありがとうございます
0218nobodyさん2005/11/07(月) 11:58:58ID: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>"};
}
0219nobodyさん2005/11/07(月) 12:06:19ID:???
>>218
opendir, readdir, closedir
0220nobodyさん2005/11/07(月) 12:08:58ID:???
>>218
scandir(); //PHP5
02212182005/11/07(月) 12:10:37ID:???
ディレクトリだけか
ならだめだ
>>219
0222nobodyさん2005/11/07(月) 12:10:50ID:B941PQ6R
>>219-220
ありがとうございます
早速試してみます
0223nobodyさん2005/11/07(月) 12:11:00ID:???
>>218
globが一番楽
0224nobodyさん2005/11/07(月) 19:42:04ID:???
CSVファイルに保存するとき、カンマを入力することでカンマ区切りに保存されるのけど、
たとえば
<?php

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

?>
このようなプログラムで$goukeiをCSVに保存すると、$nameと$numが別々
保存される。
しかし、$nameに,,,,と入力すると、勝手に4列空白ができてしまうけど
どうすればそれを回避できる?
0225nobodyさん2005/11/07(月) 19:43:54ID:???
>>224
その保存する部分のスクリプト晒してみ。
02262242005/11/07(月) 19:48:56ID:???
>>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);
}
0227nobodyさん2005/11/07(月) 19:50:14ID:???
>>224
,を文字列として扱いたいということか
""でくくっとけ
$name = '",,,,"';
02282242005/11/07(月) 19:54:34ID:???
>>227
そこはフォームとして、入力したいから,,,,だけじゃないので
0229nobodyさん2005/11/07(月) 20:33:50ID:???
訪問者の直前のurlをゲットしたいのだが、どのようにすればいいのでしょうか。
定義済みの変数にあったかな?
0230nobodyさん2005/11/07(月) 20:39:06ID:???
>>229
うん。phpinfo();
0231nobodyさん2005/11/07(月) 20:54:45ID:???
>>229
ちなみに直前の URL (リファラ) はセキュリティソフトが消したり,
クライアントが任意の値を設定できるから信用できないデータであることをお忘れなく.
参考程度にしか使えない.
0232nobodyさん2005/11/07(月) 21:00:29ID:F6uZDwtF
>>228

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

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

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

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

・・・・/hoge/giko/

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

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

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

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

C:\tmp\hoge\hoge.txt

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

/hoge/hoge.txt

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

C:\tmp\hoge\hoge.txt

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

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

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

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

>>259のコテハン間違えた。>>257 だったよ。ごめんね。
0264nobodyさん2005/11/08(火) 18:58:00ID:???
いや、むしろ$_SERVER['SCRIPT_FILENAME']ってのがやりたいんじゃないかと。
まあincludeとか何もしてないなら__FILE__と変わらんけど。
0265nobodyさん2005/11/08(火) 19:12:34ID:???
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では駄目ですね・・
狐のバグ?
02662542005/11/08(火) 19:17:22ID:???
>>263
> $_SERVER['SCRIPT_NAME'] はURLパスで、それがどのローカルパスに対応しているかを
> 知っているのはWEBサーバーだけだから変換するのは無理。

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

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

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

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

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

に対して

dirname()

をかけると

C:\tmp\hoge

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

C:\tmp\hoge\

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

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

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

頼むからもう帰ってくれ
02722542005/11/08(火) 20:16:13ID:???
(´;ω;`)
0273nobodyさん2005/11/08(火) 20:23:08ID:???
>>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");
02742732005/11/08(火) 20:27:34ID:???
>>273
ごめん。漏れコードとマニュアルからのコピペを合体させたので
' と " がゴチャ混ぜだけど、意味はないんで。
02752542005/11/08(火) 20:37:41ID:???
自己解決(`・ω・´) シャキーン

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

>>265
Cache-Control: no-storeさえあればいけるみたいね。
0277nobodyさん2005/11/08(火) 20:45:05ID:???
>>275
自分で頑張っているところをアレだけど。
file_exists('C:\tmp\hoge\hoge.txt') でも 
file_exists('C:\tmp\hoge/hoge.txt') でもOKなんだが。
02782542005/11/08(火) 20:48:27ID:???
>>277
Σ(;´゚ω゚)!
0279nobodyさん2005/11/08(火) 20:51:12ID:???
>>278
お前その顔文字キモイからやめれ。
つーか帰れっつってんだろ。
解決したんだろ。
02802732005/11/08(火) 21:11:22ID:???
>>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');
02812652005/11/09(水) 09:48:39ID:???
>>269さん、>>273さん、>>276さん、ありがとうございました。
細かいところですが挙動が気持ち悪くてスタックしていたので助かりました。

firefoxはサーバに従うってポリシーが多くなっているような気がしますね。
それがRFC準拠なのかしら?
0282nobodyさん2005/11/09(水) 11:48:20ID:qQrEl19O
Tclスレがみあたらないのですが、どこかで話題になってるスレってありますか?
0283nobodyさん2005/11/09(水) 13:08:06ID:???
>>282
うーん。プログラム板のphpスレの方がいいのかも知れず。
0284nobodyさん2005/11/09(水) 13:26:06ID:???
すみません。ご教示ください。スレ違いでしたらご指導願います。
(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) の段階で不正チェックを
したいのですが、可能でしょうか?
よろしくお願いいたします。
0285nobodyさん2005/11/09(水) 13:49:12ID:???
>>284
多分無理。1つのパソコンで1人のユーザーが同時に起動した同じソフトを
サーバー側から区別する方法がないと思う
JavaScriptとかと組み合わせれば何とかなるカモ知れんけど。
0286nobodyさん2005/11/09(水) 14:04:30ID:???
session_regenerate_id()あたりを使えばできるんでないかのぅ。
02872842005/11/09(水) 15:18:16ID:???
>>285さん >>286さん、レスありがとうございます。

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

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

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

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

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

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

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

正規表現道場@2ch Part4
http://pc8.2ch.net/test/read.cgi/php/1105930285/
0295nobodyさん2005/11/09(水) 20:06:19ID:???
:_忘れてました。
0296nobodyさん2005/11/09(水) 20:07:16ID:???
はっ、すいません。移動します。
0297nobodyさん2005/11/09(水) 20:13:56ID:???
>>292
RFC 3986の Reserved Characters と Unreserved Characters
0298nobodyさん2005/11/09(水) 23:16:26ID: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を書き換えるか,初期化するにはどうすれば良いでしょうか.
教えて下さい.よろしくお願いします.
0299nobodyさん2005/11/09(水) 23:29:04ID:???
>>298
根本的に何かが間違っている希ガス…
更新されたらされたで別の処理が並行して走るだけだから、
初回の実行の中で更新(二度押し?)を監視しても意味が無い…
Javascriptとかセッションとかクッキーとか使うべ。

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

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

詳しくはマニュアル参照ヨロ
0302nobodyさん2005/11/09(水) 23:55:50ID:???
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']);
ではいかんとですか?
0303nobodyさん2005/11/10(木) 00:26:32ID:???
マニュアルを読むとです
ttp://jp.php.net/manual/ja/features.file-upload.php
0304nobodyさん2005/11/10(木) 00:54:25ID:???
マニュアル読んだとです。人のぬくもりを感じた夜とです
0305nobodyさん2005/11/10(木) 01:18:11ID:iJI+8Gw+
298です.
返信ありがとうございます.

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

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

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

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

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

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

結果 _number[1]

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

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

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

マニュアルのどこら辺に書いてありますか?
もっと勉強しないと・・・
できた事はできたけど全く理解できていないっぽい・・・(´・Д・`)
0333nobodyさん2005/11/10(木) 20:46:36ID:???
>>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];
}
?>
0334nobodyさん2005/11/10(木) 20:50:09ID:???
>>332
ttp://www.php.net/manual/ja/language.variables.variable.php
ここ。
ユーザコメントのAnonymous 13-Mar-2005 10:25 とか。
03353242005/11/10(木) 20:50:31ID:???
>>333
おぉぉ確かにーー!!!
その表記にします
ほんとありがとうパパン(・∀・)
0336nobodyさん2005/11/10(木) 20:52:00ID:???
>>332

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

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

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

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

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

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

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

message-idを各メールが持っている
子は親のmessage-idを知っている
親子関係は永遠に続く可能性がある
phpのオブジェクト機能でできるかなぁと、xmlみたいな感じ?
変数の入れ子構造はどうやったら出来ますか?
0346nobodyさん2005/11/11(金) 01:54:03ID:???
変数を入れ子にするんじゃなくて、オブジェクトを入れ子にするんじゃだめ?
0347nobodyさん2005/11/11(金) 02:59:54ID:???
>>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);
でどないや。
0348nobodyさん2005/11/11(金) 09:42:26ID:???
会員サイトなどでログインして掲示板投稿などの時、
確認画面から「戻る」のボタンを押した時に、入力していたデータが消えます。

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

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

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

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

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

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

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

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

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

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

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

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

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

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






( ´д)ヒソ(´д`)ヒソ(д` )
0395nobodyさん2005/11/12(土) 04:41:59ID:???
( ´д)ヒソ(´д`)ヒソ(д` )
0396nobodyさん2005/11/12(土) 07:37:36ID:???
>>389
オープンソースの世界を知らないな、と言ってみるテスト
0397nobodyさん2005/11/12(土) 08:10:00ID:???
<わからない五大理由>
 1. 読まない
 2. 調べない
 3. 試さない
 4. 理解力が足りない
 5. 人を利用することしか頭にない
0398nobodyさん2005/11/12(土) 08:31:43ID:???
ちょっと話が戻るんですけど、>>364に出てくるような
ログを暗号化するってのはphpで出来るんですか?
0399nobodyさん2005/11/12(土) 08:43:32ID:???
なにその釣り?mcrypt_genericでも使っとけよ
0400nobodyさん2005/11/12(土) 08:43:49ID:???
>>398
暗号化アルゴリズムを自分で考えればPHPでもできる。
今考えた簡単な方法ではbase64_encode()にシーザーの暗号を組み合わせるとか。
0401nobodyさん2005/11/12(土) 09:33:25ID:???
>>390-392
禿しく知ったかぶりのニオーイ
0402nobodyさん2005/11/12(土) 10:22:30ID:???
wばかり使う奴は説得力がない
0403nobodyさん2005/11/12(土) 11:54:02ID:???
アルファベットを2〜3文字ずらすというあれか
0404nobodyさん2005/11/12(土) 13:50:20ID: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
0405nobodyさん2005/11/12(土) 14:24:53ID:???
画像に特定の文字を入れたいのですが、
gdを使わないと出来ないのでしょうか。
0406nobodyさん2005/11/12(土) 14:27:58ID:???
360を読んだ時「?」と思ったがそういう理由か
04073392005/11/12(土) 14:35:15ID:???
>>405
Photoshopで出来るよ
0408nobodyさん2005/11/12(土) 14:42:12ID:???
僕は画像に特定の文字を入れたいとかあんまし思わないんですが、
なんで世のプログラマたちはgdとか画像ライブラリとかを珍重するのでしょうか。
画像なんてただのバイナリじゃん。
わかんない。jpgraphとかもわかんない。得るものが少ないと思います。
...略...
いやそうではなくて、なぜgdに拘るのかということです。僕は賛成ですが。
すいません。まちがいました。もういいです。
0409nobodyさん2005/11/12(土) 15:09:57ID:???
アカウント取得用時などの、画像の文字を入力、って奴だと思うけど、専用のモジュールとかはないもんかね。
0410nobodyさん2005/11/12(土) 15:30:07ID:???
>>409
http://pear.php.net/package/Text_CAPTCHA
0411nobodyさん2005/11/12(土) 15:34:40ID:???
>>404
array_shiftがO(n)な件について
0412nobodyさん2005/11/12(土) 15:38:15ID:???
>>409
ちょいまえに planet php japan(ttp://catbot.sakura.ne.jp/planetphpjapan/) で
誰かが書いてた気がするなぁ。
あんまり興味なかったんで、デモだけ見てハイハイスゴススゴスと思った記憶が。
# RSSリーダーで見ようとすると<title>が原因でxmlのparseに失敗するので、最近見てないや...
0413nobodyさん2005/11/12(土) 15:47:27ID:???
>>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;
  }
}
0414nobodyさん2005/11/12(土) 16:28:22ID:K0H7nJ2R
ftpでサーバーに接続して落とされない限り、
phpファイルのソースを見られてしまうことはないでしょうか。
0415nobodyさん2005/11/12(土) 16:41:37ID:???
鯖の不調でファイルをDLしたりすることも無いとは限らない。
0416nobodyさん2005/11/12(土) 17:52:25ID:???
>>414
んにゃ。

でも外の人対策を考えるよりも(外の人対策は色々実施済みの方が多いから)
悪意を持った中の人のことを念頭に置いた方がいいぞ。
0417nobodyさん2005/11/12(土) 17:59:11ID:???
中の人などいない!
0418nobodyさん2005/11/12(土) 21:58:01ID: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>";}
?>


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

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

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

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

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

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

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

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

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

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

>>435
Use the source! Luke.
04374332005/11/13(日) 04:22:02ID: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してくれません。
何か間違っていますでしょうか?
04384332005/11/13(日) 04:25:34ID:lJ8slral
■name.dat
hoge
hoge2
hoge777

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

""""""""""""""""""""""""""""""""""""""""""""""""""""""
04414332005/11/13(日) 09:01:29ID:lJ8slral
>>440
あー、だから出来なかったのですか?
何が良くないですかね。
04424332005/11/13(日) 09:14:43ID:lJ8slral
スマソ、流石にスレ違いかも。
違うスレで聞いてくる。
04434332005/11/13(日) 10:30:19ID:lJ8slral
>>440
ありがとうです。
0444nobodyさん2005/11/13(日) 11:06:35ID:orFWcmz0
バッチコーイ
0445nobodyさん2005/11/13(日) 22:28:24ID:???
超初心者の質問ですみません。
以下の(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";}

0446nobodyさん2005/11/13(日) 22:51:02ID:???
>>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";}
04474452005/11/14(月) 00:01:57ID:HOVC0Ybb
>>446

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

>>497
エラーを出力するように設定を変更
0499nobodyさん2005/11/14(月) 18:10:08ID:???
>>497
どういうソース書いたんだ?
0500459,473,478,4972005/11/14(月) 18:11:09ID:???
>>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
0501459,473,478,497,5002005/11/14(月) 18:13:24ID:???
>>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で取り込んでいます。
0502nobodyさん2005/11/14(月) 18:18:09ID:???
>>501
わりい、ちと間違えてたよ。
つーか、少しは自分でしらベロや。

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

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


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

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


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

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

<?php

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

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

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");をおいたら
問題なくいけるようになりました、お恥ずかしい。

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


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

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

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

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

echo PHP();

これでぎゃふんと言わせるつもりだけど、自分でも内部動作がわからない。
0537nobodyさん2005/11/15(火) 04:39:43ID:???
>>536

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

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

$_SESSION['hoge'] = 1;

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

ケースバイケースでしょうが、おおよそで良いので教えてください。
0550nobodyさん2005/11/16(水) 04:14:47ID:???
>>549
そりゃ圧倒的にphp。あとhtmlとcssもな。
0551nobodyさん2005/11/16(水) 04:24:29ID:???
>550
わかりました。phpが一通り終わったらcssもやってみます。
0552nobodyさん2005/11/16(水) 04:51:04ID:???
>>551
先にcssをやっておいた方が良いと思うぞ…。
0553nobodyさん2005/11/16(水) 05:19:03ID:???
>>552
あわててアマゾンの注文にcssの本も追加しておきました
0554nobodyさん2005/11/16(水) 06:01:43ID: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についての情報が帰ってきますが、これと同じ結果を得たいと考えています。

よろしくお願いします。

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

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

現在簡単なクイズをPHPで作成しております
そこで時間制限を設けたいと思ったのですが↓のような事は出来ますか?
クイズの選択肢はラジオボタンで時間が着たら強制的にsubmitを実行して
値を他のPHPに送るというのは可能でしょうか?
0566nobodyさん2005/11/16(水) 09:15:29ID:???
>>565
PHPの役目じゃないような・・・
JavaScriptかRefreshを使うかな
0567nobodyさん2005/11/16(水) 09:45:07ID:???
なんかデジャブ
0568nobodyさん2005/11/16(水) 09:55:15ID: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で、サーバーのソフト等は入ってません。
0569nobodyさん2005/11/16(水) 09:58:48ID:???
>>568
釣りか?
ま、いいや。
ApacheとPHPのWindows版をそれぞれインストール。
0570nobodyさん2005/11/16(水) 10:01:09ID:1AGYcoHn
釣ではありません、了解しました、どうもでした。 >>569
05715652005/11/16(水) 10:09:56ID:???
>>566
申し訳ないです
先ほど自分でも調べている時にこれってjavaスプリクトじゃないのかな・・・
って思ってました。
さっきの質問は忘れてもらって結構です わざわざ教えていただきありがとうございました

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

っても、今ぐぐるはまともにつながらないのだが……。
0574nobodyさん2005/11/16(水) 10:22:05ID:???
>>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;
?>
0575nobodyさん2005/11/16(水) 10:29:14ID:???
the end of doutei
05765652005/11/16(水) 10:40:00ID:???
>>572
すばやい返信感謝です
phpではアラートは無理なのですかぁ・・・

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

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

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

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

php javascript 連携

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

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

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

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

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

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

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

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

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

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

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

if(get_magic_quotes_gpc()){・・・

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

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

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

唯一「私のスキルでは無理」はわかった
0614nobodyさん2005/11/16(水) 22:46:32ID:???
言われて分かる人は最初からそうは言わない。よって言うだけ無駄と思われr
06155702005/11/16(水) 23:00:30ID:1AGYcoHn
>>570です、目出度くhello,World! が表示させられました、
大変ありがとうございました。
0616nobodyさん2005/11/16(水) 23:23:43ID:???
>>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');

酔っぱらいながらなのでハズしていたらスマソ。
0617nobodyさん2005/11/17(木) 00:05:41ID: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, ..が値を持っているかどうかによって
処理を分岐させれば期待通りの動作をさせることができます.

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

携帯コンテンツを作成のために
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
0625nobodyさん2005/11/17(木) 00:58:01ID:???
>>624
Fedora4だとデフォルトはUTF-8だと思うが、そういう問題ではないのか?
0626nobodyさん2005/11/17(木) 01:00:18ID:???
>>623
どこを探してもないって……本当に探したのか?
つーか、本家にあるじゃん。
http://www.php.net/releases.php
0627nobodyさん2005/11/17(木) 01:06:33ID:c6kqJU8U
>>626
申し訳ないです。見落としてました…。
大変助かりました。ありがとうございました!
06286052005/11/17(木) 01:07:51ID:???
>>616

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

どうすればいいんでしょうか?
0685nobodyさん2005/11/18(金) 14:33:26ID:???
俺も何かレスしておけば良かった。
0686nobodyさん2005/11/18(金) 14:34:45ID:???
>>684
それはphpの質問だと考えてる?
0687nobodyさん2005/11/18(金) 14:43:13ID:rpS8lWZM
>>686
IISのほうでしたか?
0688nobodyさん2005/11/18(金) 14:55:39ID:???
>>684
驚かないで聞いてくれ。
な、なんとIISで使う時の事も想定してマニュアルが書かれていたんだ!
ttp://www.php.net/manual/ja/install.windows.iis.php
0689nobodyさん2005/11/18(金) 15:00:17ID:???
         ナ ゝ   ナ ゝ /    十_"    ー;=‐         |! |!   
          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、     \:::::::::::::::..、  ~" /             ヽ.___,./  //ヽ、 ー        
0690nobodyさん2005/11/18(金) 15:04:54ID:rpS8lWZM
>>688
どうもありがとうございました。
やってみます!
0691nobodyさん2005/11/18(金) 15:29:48ID:rpS8lWZM
追加の質問ですみません。
教えていただいたサイトを見ると、IIS4以降の場合
cgiバイナリとsapiモジュールの2種類があるようですが
どう違うのですか?

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

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

>>698
HTMLも大丈夫です.

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

素直にperlでpamするスクリプトを作りました。
まあ、とある所のパクリですが・・
0702nobodyさん2005/11/19(土) 01:53:25ID:???
相対パスで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

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

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

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

なめとんのか?
07097022005/11/19(土) 02:31:13ID:???
>>708
いや、HTTP経由でのアクセスは鯖の方で制限されているんで
それしかないのならもう諦めるしかないのかなと・・・。
0710nobodyさん2005/11/19(土) 02:37:08ID:???
今日も凄い奴が質問に来てるな。よく連日弾が尽きないもんだ
0711nobodyさん2005/11/19(土) 02:37:30ID:???
>>702
たぶんわからないで言ってるのだと思うんだけど、
GETリクエストはhttpで送られるものだよ?
別鯖じゃないならinclude(require)使うべき。
0712nobodyさん2005/11/19(土) 02:41:16ID:???
まさか$strに(・∀・)コニチワ!(・∀・)が入ると思ってるんじゃないだろうな・・・
07137022005/11/19(土) 02:44:24ID:???
>>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
07147112005/11/19(土) 02:46:31ID:???
orz
0715nobodyさん2005/11/19(土) 02:46:51ID:???
まぁ管質だしこういうのもいいんじゃね?w
07167112005/11/19(土) 02:50:33ID:???
すみません、思わず数秒伏せってしまいました。

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

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

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

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

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

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

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

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

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

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


同じ
0726nobodyさん2005/11/19(土) 11:40:33ID:???
まあしかし、くだ質にふさわしい質問ではないか
0727nobodyさん2005/11/19(土) 12:25:08ID:???
>>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の出力を文字列で取得→
変換処理という手法は検討すると思う。
0728nobodyさん2005/11/19(土) 12:52:32ID:???
>>727
しないしないw
だって文字列を変換するためにhttpで取得する必要が全然無いw
0729nobodyさん2005/11/19(土) 13:34:16ID:???
>>727
無駄、と言う事は置いておいて、
>>709も読んどけ
0730nobodyさん2005/11/19(土) 14:50:08ID:???
 このスレはちんぽっぽ達に監視されています

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

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

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

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());

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

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

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

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

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

もしかしてサーバサイドスクリプトだとこういうのは無理な
事をしてるのでしょうか?
0750nobodyさん2005/11/19(土) 21:29:23ID:???
>>749
文字列なら文字列の比較、数値なら数値の比較。
思うとでなく、echoで出力してみろよ。
鯖か蔵かなんてこっちで判断できる訳ないだろ。
0751nobodyさん2005/11/19(土) 21:59:26ID:???
centのphp-4.3.9-3.9.src.rpm
いつリリースよ!?
0752nobodyさん2005/11/19(土) 22:00:30ID: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
うーん、このエラーメッセージが理解出来ない。
0753nobodyさん2005/11/19(土) 22:05:20ID:???
>>752
冗談だよな?
条件が括弧で囲われてないぜ!

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

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

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

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

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

これが出来るのと出来ないのでは、現在制作しているコードの使い勝手が大幅に変わってしまいますorz
0765nobodyさん2005/11/20(日) 00:56:03ID:???
>>764
それがPHP。
バージョン変わるごとに修正する必要がでてくる可能性があるものだから諦めれ。
0766nobodyさん2005/11/20(日) 01:22:56ID:???
>>765
そうですか、ありがとうございます。
くだらない質問に付き合っていただきありがとうございました。
0767nobodyさん2005/11/20(日) 01:30:21ID:???
表記上チェーンできなないだけだから気にすることじゃないと思うけど
0768nobodyさん2005/11/20(日) 01:46:12ID:???
鯖管ならディレクトリでバージョン分けられるけど、あんまり意味ないよね。
Perlなら1行目の違いでバージョン振り分けられるところも歩けど。
0769nobodyさん2005/11/20(日) 01:48:34ID:???
>>768
http://pc8.2ch.net/test/read.cgi/php/1126436361/
0770nobodyさん2005/11/20(日) 02:33:38ID:???
共用鯖上で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するにはどうするのがベストでしょうか?
0771nobodyさん2005/11/20(日) 02:44:18ID:???
>>770
両方にpearをアップすればいいだけの話と違うんか?
どうも文章が冗長で真意を汲みにくいのだが。
0772nobodyさん2005/11/20(日) 02:44:52ID:???
> すでにPearの入った鯖では(Pearをアップしないと)No Such File or Directoryに

当たり前だろこの池沼

http://php.net/get-include-path
http://php.net/set-include-path
0773nobodyさん2005/11/20(日) 11:50:28ID:???
分かりにくくてすみません。
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のまま変わらずできねーんだよ馬鹿
0774nobodyさん2005/11/20(日) 12:13:55ID:???
>>773
if (file_exists("PEAR/DB.php")) require_once "PEAR/DB.php";
else require_once "DB.php";
とか
0775nobodyさん2005/11/20(日) 13:20:05ID:???
>>773
> ini_set('include_path', '.;/home/user/public_html/hoge/PEAR');
> とやってもNo such(ryのまま変わらずできねーんだよ馬鹿

当たり前だろこの(ry

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

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

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

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


#include <stdio.h>
main() {
char s[]="Okayama rikadaigaku";
:
}
0786nobodyさん2005/11/21(月) 02:49:50ID:???
>>785
で、何?
0787nobodyさん2005/11/21(月) 02:50:45ID:???
mojaviスレッドってないんですけど、立ててもよろしかですか?
または、PHPのフレームワークのスレッドをば。
0788nobodyさん2005/11/21(月) 02:51:53ID:???
mojavi単体ではないけどフレームワークスレはあるよ
0789nobodyさん2005/11/21(月) 06:01:17ID:???
>>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の拡張モジュールのスレッドをば。
0790nobodyさん2005/11/21(月) 15:43:58ID:???
すいません、ログ見たのですが見当たらなかったので質問させてください。
UTF-16のテキストファイルを読み込んで、SJISに変換したいのですが、うまくいきません。

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

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

アクセスすると[a b c]としか表示されません
日本語を認識しないのはmbstringの設定が間違っていると思うのですが
どの値をどう変更すればいいのでしょうか?
07937922005/11/21(月) 16:23:15ID: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

●を付けた行は本・解説サイトによって異なるので
いろいろ変更して試してみましたがダメでした.
0794790 2005/11/21(月) 16:50:34ID:???
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しか表示されません。
これはこういうものなのでしょうか?
0795nobodyさん2005/11/21(月) 17:30:46ID:???
>>793
ヒント 設定の挙動はバージョンごとに違うことがある
0796nobodyさん2005/11/21(月) 20:57:46ID:+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の仕方が悪いのでしょうか?
07977692005/11/21(月) 20:59:33ID:???
あー。ごめんなさい。>>796のuserはuseraddですね
0798nobodyさん2005/11/21(月) 21:05:08ID:8Y80p1yI
空メール → 空メールをきっかけにPHPで処理 → 自動返信

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

だれか教えてください。
0799nobodyさん2005/11/21(月) 21:14:49ID:???
メールのログを見に行ける環境があるのかな?
さくらインターネットはFTPだとファイル丸見えだった記憶があるけど。
0800nobodyさん2005/11/21(月) 21:15:15ID:???
>>798
空メールを来たことをphpさんが知るにはどうすればいいでしょう。
0801nobodyさん2005/11/21(月) 21:22:32ID:???
>>800
メールチェックって出来ないんだっけ?
08027982005/11/21(月) 21:24:06ID:8Y80p1yI
>>800
そう・・・まさにそこがわかんないっす
0803nobodyさん2005/11/21(月) 21:28:12ID:???
>>802
メールを受信した時にスクリプトを起動する仕組みをもったメル鯖ソフトが多いから、
それを使えばよろし。メル鯖ソフトのマニュアルを見りゃ載ってるよ。
0804nobodyさん2005/11/21(月) 21:36:42ID:???
>>802
通常は、メール転送設定で、転送先を書く代わりに PHP のスクリプトを呼び出すような方法をとる。
で、PHP スクリプトには標準入力としてメールの本文(ヘッダも含めて)が入ってくるので、それを
読み出して処理をする。
例えば、sendmail であれば、.forward ファイルに以下のように書く。
| /path/to/php /path/to/スクリプト名
これらはメールサーバーに何を使用しているかによって変わるので、それらを書かない限り明確な
答えは得られない。また、オマイさんがその辺を操作できる権限があるか、ってことも必要。
別案としては、cron で定期的にスクリプトを呼び出して、pop3 を使ってメールボックスを覗くという
方法もある。
08057982005/11/21(月) 22:01:14ID:???
>>799,>>800,>>801,>>803,>>804
ありがとうございます、メル鯖はまだ決まっていませんが第一候補はqmailです。
どう手をつけていいか全くわかりませんでしたが皆様のお答えをもとに頑張ってみます。
0806nobodyさん2005/11/21(月) 22:07:37ID:???
>>805
お〜 qmail とは好きもんだね、オマイさん。漏れと一緒だ。
判らなかったらまた来んしゃい。
08074512005/11/21(月) 22:11:53ID: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
みたいにすっきりとさせたいのですが、
受け取り側はどのような処理をすれば良いのでしょうか?
(通常は上書きされてします)
やはり受け渡し側で[]付けて配列だよってしなきゃだめですか?
08088072005/11/21(月) 22:12:51ID:???
あ。別板の数字をつけたまんまでした。宜しくお願いします。
0809nobodyさん2005/11/22(火) 01:49:20ID:???
スレ違いかもしれないけど、うたまっぷなどの歌詞表示サイトの歌詞を
スクリプトを介してテキスト変換するにはどうすればいいんでしょう?
0810nobodyさん2005/11/22(火) 02:07:34ID:???
>>809
そのサイトの案内にあるとおり、使用許可を受ければよい。
0811nobodyさん2005/11/22(火) 07:06:41ID:???
>>807
$_SERVER['QUERY_STRING']を自前でパースする。
08128072005/11/22(火) 09:50:30ID:???
>>811
$_SERVER['QUERY_STRING']使えないんです…。
やっぱり、それしか方法ないんですかね。
0813nobodyさん2005/11/22(火) 09:51:37ID:???
>>796
そのパスはcryptする必要があるのか?
0814nobodyさん2005/11/22(火) 12:09:22ID:JIN7CCHb
PHPについて勉強中の者ですが、以下の様なアクセス制限をしたいと考えています。
可能かどうかや、参考になるサイト(自分でも探してみましたがなかなか見つからず困っています)
似た様なフリーソフトなどあれば教えて頂きたく書き込みをさせて頂きました。

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

ってことソースファイルはEUCでまちがいないね?
0831nobodyさん2005/11/22(火) 15:45:57ID:???
>>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>
0832nobodyさん2005/11/22(火) 15:56:59ID:???
>>824
@file()
素人にはオススメできない。
0833nobodyさん2005/11/22(火) 16:07:53ID:???
>>832
素人は普通にfopenがいいですか?
08347922005/11/22(火) 16:17:45ID:???
>>830,831
テキストエディタはメモ帳を使っているのですが
文字コードはデフォルトの「ANSI」でした
EUCはドロップダウンリストに無かったのですが・・・
0835nobodyさん2005/11/22(火) 16:22:17ID:???
>>834
TeraPad落として出直して来い
0836nobodyさん2005/11/22(火) 16:24:53ID:???
近頃はこのレベルでもweb開発目指すのか

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


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

if($oyako == 0)

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

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

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

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

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

>>858さん
ガンガリマス

>>859さん
さようなら

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

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

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

■err.log
AAA,6554
BBB,4882

[名前,数値]→取得→AAAをBBBで割る→結果を出力(print.php)
0876nobodyさん2005/11/23(水) 18:36:00ID:???
> [名前,数値]→取得→AAAをBBBで割る→結果を出力
これを更に関数や構文単位にまで分割してください。
08778752005/11/23(水) 18:47:41ID: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>

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

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

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

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

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

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










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

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

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

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

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

リファレンス本に日本語を含むクエリ文字列をデコードとあったのですが
そのmb_parse_str()では結果が1になってしまい、
適切な文字列が表示されませんでした。
0921nobodyさん2005/11/24(木) 21:43:05ID:???
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行(一番したのもの)を表示するときには一行にまとまっています。

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

実際は
a行
b行
c行
の3行だけが中身です
0923nobodyさん2005/11/24(木) 21:51:39ID:???
突っ込みどころ満載なのは置いておいて・・・
その出力で改行が含まれて何か不都合でもあるの?
0924nobodyさん2005/11/24(木) 21:53:18ID:???
改行消せばえぇやん('A`)
0925nobodyさん2005/11/24(木) 21:53:30ID:???
なにが問題になっているかを突き詰めていけば、
file()で読み込んだ配列の各要素のお尻に改行文字が付いてるってことだよね?
で、マニュアルのfile()を読めば分かるけど、これは正しい挙動。
なので、お尻の改行文字を削除する方法を考えればよい。
で、こういう処理をする関数がちゃんとあるわけだ。
0926nobodyさん2005/11/24(木) 22:01:41ID:???
実際の所、マニュアル読め で済む話なんだけどね。書いてあるから
http://php.net/file
0927nobodyさん2005/11/24(木) 23:37:20ID:N1UlY50b
delete関数ってどういうときに使うの?
0928nobodyさん2005/11/24(木) 23:42:32ID:???
delete(>>927);
0929nobodyさん2005/11/25(金) 00:37:49ID: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
0930nobodyさん2005/11/25(金) 00:47:20ID:???
>>929
仕事でwebアプリケーションを作っていた人間とは思えない発言だな…
とりあえず、どの言語でも基本だろうが「マニュアル嫁」
09319292005/11/25(金) 00:54:59ID:???
>>930
レスありがとうございます。

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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


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

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

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

で実行不可になってしまいます(なぜに Call to undefined function になってしまうのでしょうか。。。)。
どうすれば解決できるでしょうか、お教え願います。
0974nobodyさん2005/11/25(金) 20:25:03ID:???
>pg_connect()を使って、郵便番号を郵政のデータベースから入手したいのだが
ホントにこんな事が出来たらワロス
0975nobodyさん2005/11/25(金) 20:28:01ID:???
ゆうびんホームページからCSV形式の郵便番号のデータを取得してテーブルにインポートする流れです。
0976nobodyさん2005/11/25(金) 20:29:57ID:???
ポスグレ用のモジュールが入ってねーから
0977nobodyさん2005/11/25(金) 20:37:18ID:???
ポスグレって呼ぶな
0978nobodyさん2005/11/25(金) 20:38:01ID: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
0979nobodyさん2005/11/25(金) 20:38:15ID:???
ポグスかよ
0980nobodyさん2005/11/25(金) 20:40:47ID:???
>>978
おかしいと思ったらならその変数をダンプしてみろよ
改行くっついてるから
09819732005/11/25(金) 20:45:02ID:???
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"

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

が抜けてました。汚しすみません・・・
0983nobodyさん2005/11/25(金) 20:48:28ID:???
>>981
参考URL書いておきまつね。
http://www.google.co.jp/search?hl=ja&c2coff=1&rls=GGGL%2CGGGL%3A2005-09%2CGGGL%3Aja&q=pg_connect+Fatal+error%3A+Call+to+undefined+function%3Apg_connect%28%29+&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
0984nobodyさん2005/11/25(金) 20:49:38ID:8jBg0Ry9
>>980
ありがとうございます。
解決できました!
こういう場合、最後にも「<>」を入れないといけないんですね。
勉強になりました。
09859732005/11/25(金) 20:53:49ID:???
>>983
回答ありがとうございます

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

extension=php_pgsql.dll

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