【PHP】下らねぇ質問はここに書き込みやがれ 61at PHP
【PHP】下らねぇ質問はここに書き込みやがれ 61 - 暇つぶし2ch2:nobodyさん
07/12/19 03:33:53
【簡易FAQ】 (1/3)
1.文字コードは何を使えばいいの?
 →1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
 → URLリンク(example.com)が例文などのために予約されている。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
 → Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
 → 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
  「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
 → {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
 → cronかタスクスケジューラを使え。
7.extractって危険なの?
 →変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「~.php?a=b&c=d」のようなパラメータをつけたい
 → URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
 → .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
10. そもそもインストールの時点でうまくいかない
 → 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
  Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり

3:nobodyさん
07/12/19 03:33:54
【簡易FAQ】 (2/3)
11. SQLの質問はどこで?
 → データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
 → ctype_~()が手軽。複雑なパターンはpreg_~()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
 → 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
 → よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
  URLリンク(www.faqts.com)
15. クッキーの情報をユーザから隠したい
 → セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
 → strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
 → まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
 → C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
  参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(http://~とか)を扱う際の限界
 → fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
  必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
 →19.を参照

4:nobodyさん
07/12/19 03:33:54
【簡易FAQ】 (3/3)
21. 画像処理一般 or GDの限界
 → ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
 → 好きにしてください

5:nobodyさん
07/12/19 03:33:55
関連リンク
■本家マニュアル   URLリンク(www.php.net)
■日本PHPユーザ会 URLリンク(www.php.gr.jp)
■PEARマニュアル  URLリンク(pear.php.net)
■メーリングリスト   URLリンク(ns1.php.gr.jp)
■ZFマニュアル    URLリンク(framework.zend.com)

(以下英語)
■Smarty       URLリンク(smarty.php.net)
■Zend本家      URLリンク(www.zend.com)
■Zend Framework  URLリンク(framework.zend.com)
■php | architect   URLリンク(www.phparch.com)
■Smartyマニュアル URLリンク(smarty.php.net)
■PECL本家(英語) URLリンク(pecl.php.net)

6:nobodyさん
07/12/19 03:33:56
■過去ログ
【PHP】下らねぇ質問はここに書き込みやがれ 60
スレリンク(php板)
【PHP】下らねぇ質問はここに書き込みやがれ 59
スレリンク(php板)
【PHP】下らねぇ質問はここに書き込みやがれ 58
スレリンク(php板)
【PHP】下らねぇ質問はここに書き込みやがれ 57
スレリンク(php板)
【PHP】下らねぇ質問はここに書き込みやがれ 56
スレリンク(php板)
【PHP】下らねぇ質問はここに書き込みやがれ 55
スレリンク(php板)
【PHP】下らねぇ質問はここに書き込みやがれ 54
スレリンク(php板)
【PHP】下らねぇ質問はここに書き込みやがれ 53
スレリンク(php板)
【PHP】下らねぇ質問はここに書き込みやがれ 52
スレリンク(php板)
【PHP】下らねぇ質問はここに書き込みやがれ 51
スレリンク(php板)
【PHP】下らねぇ質問はここに書き込みやがれ 50
スレリンク(php板)

7:nobodyさん
07/12/19 04:40:48
httpsのソースを取得したいです。
php5でwindowsです。
いろいろ探しましたが、
http_clientとか
--with-openssl でコンパイルするとか
php4ts.dllを差し替えるとか
どれもphp5でwindowsだと無理?と思われました。
本当に無理なのでしょうか?

8:nobodyさん
07/12/19 08:48:39
phpではhttpsは無理
rubyなら簡単に取得できる

9:nobodyさん
07/12/19 08:51:35
>>8
いや別に無理じゃないが…
面倒くさいけど。

10:nobodyさん
07/12/19 10:21:11
最短一致が2つあると思うように機能しません。

preg_match("/<p.*?NGWORD.*?<\/p>/", "<p id=A><p id=B><a >NGWORD</a></p></p>", $r);

結果:<p id=A><p id=B><a >NGWORD</a></p>

id=Aは余分です。こういうものなのでしょうか?
さくらで試したのでphp4だと思います。


11:nobodyさん
07/12/19 11:28:20
>>10
その正規表現だと当然のような
あとは正規表現スレで頑張ってね

12:nobodyさん
07/12/19 12:20:31 F1MTppUB
POSTしたデータを取得したいんですが、TEXTBOXに「'\'」(シングルコーテーション+\サイン+シングルコーテーション)
を入力してSUBMITすると、受け取ったPHPでは"\\'\\\\\\'"と入っています。
エンコードされないデータを取得するにはphp://inputを使うしかないんでしょうか?

13:nobodyさん
07/12/19 12:23:25
magic_quote_gpcをoffにすれ

14:nobodyさん
07/12/19 12:28:34
magic_quotes_gpcがonなんじゃないの?
URLリンク(jp.php.net)
ここみながら確認しる
onならoffへ変更してあげてね

15:nobodyさん
07/12/19 12:31:22
1000 名前:nobodyさん[sage] 投稿日:2007/12/19(水) 09:15:15 ID:???
1000だったら、php全滅

①一昔前はPerlの達人と恐れられたが、Rubyのクラスが分けわからず時代に乗り遅れた化石Perler
②JAVAの思想は素晴らしいのに周りに理解者が少なく、コストの問題でクライアントがPHPを指定してきて嫌々やらされているJAVAer
③周りはネット全盛なのに、未だにSoketプログラムが理解できずネットの海に出られない鎖国状態のVisualStudioer
④webデザイナーはPHPぐらいできないとゴミと言われて、いつの間にかPGにさせられてしまった自称webデザイナー
⑤プログラマーという職業に憧れているけど、PG的思考ができずに指をくわえて見ていることしかできないゲーマー

さあレッツ プロファイリング!

16:nobodyさん
07/12/19 12:36:47
設定変えると影響範囲がでかいから、自分は stripslashes 使ってる。 

17:nobodyさん
07/12/19 12:40:16
>>13-14
正にその通りでした。ありがとうございます!

18:nobodyさん
07/12/19 12:40:30
>>12
ところで、php://input って何?

19:nobodyさん
07/12/19 12:40:41 F1MTppUB
すいません。>>17=12です。

20:12
07/12/19 12:44:48
>>18
以下、URLリンク(phpspot.net)からの抜粋ですが、

php://input は、POST の生データの読み込みを 許可します。
これは $HTTP_RAW_POST_DATA に比べて メモリ消費量が少なく、特別な php.ini ディレクティブを設定する 必要がありません。
php://input は、 enctype="multipart/form-data" に対しては 使用できません。

21:nobodyさん
07/12/19 12:57:14
>>20
ありがとう。勉強になった。

22:教えて下さい
07/12/19 17:15:38 n596SeRo
URLリンク(www.phpweb.jp)
ここで配布されているファイルをUTF-8にソースコードを変えたんですが、

148行目ぐらいの
// 投稿処理
function send() {
$data = file("./lineboard/log.txt");
$newtime = time();

この投稿処理の項目がshift-jisでエラーコードが返されるのでUTF-8でエラー表示をかえしたいんですが
どこをいじってあげればいいのかアドバイスくれないでしょうか。
sjisコードをutf-8で置き換えたんですが、エラーの時の投稿処理される
メッセージが長すぎますなどがsift-jisで返されるので文字化けしていまいます。

23:nobodyさん
07/12/19 17:43:52
print "<html>\n";
print "<head>\n";
print "<meta name=\"robots\" content=\"index,follow\">\n";
print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n";
print "<meta http-equiv=\"Content-Style-Type\" content=\"text/css\" />\n";
print "<meta http-equiv=\"content-script-type\" content=\"text/javascript\" />\n";
print "</head>\n";

これでいけました
解決

24:nobodyさん
07/12/19 18:53:57 E60FAw4D
すみません。PHP4の本を読んでサンプル改変してるのですが、PHP4の本はレジスターグローバルをonにしてあるため
ちょっと迷っています。ちなみに可変変数を使っているので私にはむずかしく、、助言をお願いしたいしだいです。

原文は
$data = "FIELD_$j";
$data = $$data;
という2文です。ちなみにforループの中で$jをカウント変数で使っています。
FIELD_$jというのは、WEBページのテキストボックスに上からFIELD_0,FIELD_1...と
つけた名前です(<input type="text" name="FILED_0">という感じで)。

レジスターグローバルをオフにしているため、
$_POST['FIELD_$j']としなくてはならないのですが、そうするためには
$data = "_POST['FIELD_$j']";
$data = $$data;
で文法的に正解でしょうか?よろしくお願いします。


25:nobodyさん
07/12/19 20:30:00
なんて本だ?そんな糞コードのっけてる本捨てちまえ。

26:nobodyさん
07/12/19 21:30:31
>>24
捨てろ

27:nobodyさん
07/12/19 21:36:30
簡単なプログラムでもDBを導入したほうが効率が良いのでしょうか?

アクセスカウンタを例にしますと、
テキストのログファイルを読み込ませるほうがよいのでしょうか?
この程度でもDBと連携させたほうが効率が良いのでしょうか?
簡単なものはテキスト、中規模以上はDBって感じでしょうか?
小さくてもアクセス頻度が高い場合はDBのほうが安全なのでしょうか?

速度、鯖の負荷、その他ありましたら教えてください
よろしくおねがいします

28:nobodyさん
07/12/19 21:37:44
>>27
DB板で聞け

29:nobodyさん
07/12/19 21:42:39
>>24

$data = "_POST['FIELD_$j']";
$data = $$data;



$data = $_POST["FIELD_$j"];
この一行でOKでは

なんて本、それ

30:nobodyさん
07/12/19 22:08:24
>>27
好みの問題。好きにしろとしか言えない。
後々の拡張性とか考えるとDBのほうが楽ではあるが。

31:nobodyさん
07/12/19 22:14:57
>>27
>>30
URLリンク(pc11.2ch.net)


32:nobodyさん
07/12/19 22:29:41
>>30
知ったかはヤメロ。
アクセスログをDBなんかでやったら、
通常のレン鯖で1時間3000PVでコネクションオーバーでエラーが出る。

33:nobodyさん
07/12/19 23:51:11
>>32
カウンターの話をしてるのにおまいは何を言ってるんだ

34:nobodyさん
07/12/19 23:52:23
自分でCで作ったサーバにPHPからデータを渡したいんですが,良い方法ありますか?
今はとりあえずストリームソケット用いてやっています・・・

35:nobodyさん
07/12/19 23:56:55
>>32
>通常のレン鯖で1時間3000PVでコネクションオーバーでエラーが出る。
出ないし。
ていうか、DBより1時間に3000PVとか転送量のほうが問題だ。

36:nobodyさん
07/12/20 00:01:22
レベルひっくwww

37:nobodyさん
07/12/20 00:09:19
エサを与えないでください

38:nobodyさん
07/12/20 00:28:55
んでどれが正しいの?

39:nobodyさん
07/12/20 01:39:32
規模を考えるより使いやすいほうでやればいいんでないの?
簡単なものでテキストで処理したほうが楽だと思うならそうすればいいし
普段からDB使ってるしDBのほうが楽だと思うならそうすればいい

40:nobodyさん
07/12/20 02:17:17
1時間に3000PVって全然少なくないか?

41:nobodyさん
07/12/20 02:32:58
>>40
確かに少なすぎだね。俺のサイトで3000PVって言ったら1分で、それくらい行くから。

42:nobodyさん
07/12/20 02:36:41
個人サイトでは多い方だとは思うけど、そういうサイトは山ほどあるよな。
レンタルサーバだからといって、多少負荷がかかるにしろ、
その程度のリクエストでDBがパンクしてたらDBなんて許可しないし、
そんな簡単にダウンするほど信頼性の低いもんじゃない。
Googleなんて分散してるとはいえ、1台あたり1秒にどんだけこなしてると思ってるんだ?

43:nobodyさん
07/12/20 04:35:22
ぐぐるさんのDBは独自拡張だから比較対照にはならんな

44:nobodyさん
07/12/20 04:45:08
年賀状3枚入り買ったんだけど出す相手が一人しかいないので、2枚余りました。
年賀状欲しい人は、住所と名前を書いてもらえば出します。

45:nobodyさん
07/12/20 06:10:17 8BakDrsf
前スレのセッション談義見て不安になったんですが、
スレリンク(php板:814番)
今作ってる会員システムでは
1)ログインID,ログインPassを使って登録済み情報からユーザ名とidを抜き出す
2)それぞれセッションに入れて 
 ユーザ名は「○○さんの管理ページ」の表記に使う
 idはいろんな情報を登録・更新するときのキーに使う
という風にしています。これはまずいんでしょうか?

また、会員エリア内でフォーム記入→確認ページ という流れで、
修正時に記入ページに戻るときにもフォームに値を入れるためにセッション使ってます
これもまずいとすればこの部分はどうしたらいいんでしょうか?

46:nobodyさん
07/12/20 06:17:36
>>45
Webアプリのセキュリティについて調べろ

47:nobodyさん
07/12/20 08:21:04
分かんないひとはレスしないでください(>_<)

48:nobodyさん
07/12/20 09:07:38
まずい、ってのはどういう意味?

スレリンク(php板:814番)

これには「セッションなんてログインしたときだけ値を持たせる 」
とは書いてあるけど、

49:nobodyさん
07/12/20 09:10:35
セッション使わないでHIDDENで持ち回すほうがよっぽど…

50:45
07/12/20 09:26:29 8BakDrsf
>>46
どうもです あれこれサイト見て勉強します
>>48
どうもです まずい というのは上記の程度のセッションの利用でも、それをきっかけに
のっとりとかされてしまうのかなぁと、、
「修正シーン」に記入値をセッション引用して入れるのも、「ログインしたときだけ値を持たせる」の
ルールからすればダメなのかな、など気になります(別のやり方が思いつかない)

>>49さんの言うとおりhiddenでまわす方法があるのも調べてわかりましたが、
そしたら全部のリンクがpostになる?わけで、デザイン的にいやだしと、、

気が向いたときに回答いただけたら十分なのでよろしくお願いします
自分でも引き続き調べてみますので

51:nobodyさん
07/12/20 12:01:24
だれがログインしてるかって言う情報はサーバが管理すべきものだから、
セッションで管理すべきもの。

今画面に何を表示しているかについては、議論なり判断があって良いと思うけど、
これについては、個人的には hidden 推奨。


52:nobodyさん
07/12/20 12:04:00
同意。formタグ内で統一できて分かりやすいし、楽。

53:nobodyさん
07/12/20 12:11:34
こういう時はsessionだろ

54:nobodyさん
07/12/20 12:53:32
さあまた盛り上がってまいりました

55:45
07/12/20 14:09:16 8BakDrsf
>>51-52
え? つまりフォームの記入(修正)ページに入れる値は、hiddenですか?
てことは確認ページで
<input type="hidden" name="namae" />などしてキープして、
戻るボタンにjavascriptかなんかで修正ページに向けてsubmitするの?
ちょっと本屋で見てこよう、、

56:nobodyさん
07/12/20 14:12:30
ポカーン・・・

57:51
07/12/20 14:43:41
>>55
JavaScript使用可の前提で書くけど、どっちにするかといえば、Hiddenにする。

自分が作るなら、確認用ページはJavascriptで生成するようにする。
確認ページ表示に、サーバに問い合わせる情報が必要であればAjax的な方法で取得する。

携帯みたいな通信コストが無視できない場合は、セッションでの管理も考えるけど。


58:nobodyさん
07/12/20 14:49:48
会員の情報をサーバーに問い合わせるのにAjaxて怖くない?
サーバーサイドで完結してたほうがいいような気がするが。

59:nobodyさん
07/12/20 14:54:08
>>58
何で?
Ajaxでもセッション管理は出来るし、不要な情報はブラウザに返さなければ良いし。

60:45
07/12/20 21:21:17
>>57
なるほど 携帯とPCで使い分けするんですね、考えたこともありませんでした
あの、最後にひとつだけ聞きたいんですが
<input type=text name=namae>ってのが記入ページにあったとき、
確認ページは
<form action=kanryou.php>
<input type="hidden" name="namae" value="<? echo $_POST['namae']; ?>">
<input type="submit" value="完了ページへ">
</form>
ていう完了ページに飛ぶ用のフォームと
<form action="kinyu.php">
<input type="hidden" name="namae" value="<? echo $_POST['namae']; ?>">
<input type="submit" value="戻って修正">
</form>
という修正ページに飛ぶ用のフォーム2つを用意するんでしょうか?
フォームは一個で、クリックされたサブミットボタンに応じてactionの値を切り替えるの?
いい加減しつこいとは思うので、本当に暇な人、答えてくれれば結構です。sageます

61:nobodyさん
07/12/20 21:39:52
いくらなんでもスレ違い過ぎ…

62:nobodyさん
07/12/21 00:43:35
>>60
<input type="submit" name="action" value="確認">
<input type="submit" name="action" value="修正">
っていう風にすれば、$_POST["action"]を取得することでどの画面をだせば
いいかは分かるんで、確認画面にフォーム二つもいらない。
書き込みも確認も書き込み完了も、どの画面も全部同じひとつのPHPで扱うけどね。
わざわざ三つとかに分けたりしない。

フォーム入力値の受け渡しはセッションでやった方が楽だけど、既出の
通りブラウザ複製などの場合値が書き換わっちゃうのでやらない。
携帯ならこの問題がないけど、セッション使えないのもあるのでやっぱ
hidden使うかなあ。
セッション使うって言ってる人はこの問題にどう対応してるのか不思議。

63:nobodyさん
07/12/21 00:59:28 9upg4HjC
セッションというのは諸刃の刃だよ。
セッションを使うことによってセキュリティーは向上するけど、
多用しすぎることで、パフォーマンスが劣化し、結果的にセキュリティーが劣化するというジレンマ。

例えて言えば、医学が進歩して寿命が延びることで、不労人口が増えて、
結果的に人類が滅びるというジレンマだよ。

つまり、目先の良さにばかりいくと、長期的には全く逆の結果になるということ。

64:nobodyさん
07/12/21 01:03:49
セッション多用でセキュリティが低下ってのはわからんなー
セッション多用してメモリがいっぱいいっぱいになる可能性があるってーなら解るが

65:nobodyさん
07/12/21 01:04:23
>>63
意味不明
医学が発展することが人類が滅びることとどう結びつくんだよw

66:nobodyさん
07/12/21 01:12:13 9upg4HjC
>>65
想像力働かせろよ。
プログラマー脳の典型だよ、まぁ設計には一生なれないな、お前は。

200歳まで生きられる医術・薬品が開発される

生殖機能を持たない、エネルギーだけを消費する不労生体が増える

1人の若者が100人の老体を面倒見る。仕事している暇がない。

国家財政破綻、国力ゼロ、防衛能力ゼロ

発展途上国の台頭、テロリストの台頭

国際経済破綻、無政府状態

67:nobodyさん
07/12/21 01:15:58
>パフォーマンスが劣化し、結果的にセキュリティーが劣化する
何故に?

68:nobodyさん
07/12/21 01:17:05
>>66
君は朝鮮人並の誇大妄想脳だねww

69:nobodyさん
07/12/21 01:17:13
>>66 は無視して良い話だろうけど、メモリを消費しすぎて落ちやすくなれば ISMSで言うところの
可用性が低下するので、広義のセキュリティが低下したと言えなくも無い。


70:nobodyさん
07/12/21 01:19:51
>>66
65では無いがお前の方が想像力なく見えるぞ


71:nobodyさん
07/12/21 01:26:24 9upg4HjC
お前らw
人を批判する前に、原因と結果の繋がりを細かく検証しろよ。

セッション多用

メモリー消費、オーバーフロー

HDDへのスワップが多発

システムが不安定

HDDの中身が画面に表示される

セキュリティー劣化

72:nobodyさん
07/12/21 01:28:42 1HbS1x3e
PHPって配列を関数に渡すと、内容がコピーされるけど、このコストって意識すべき?
参照渡しすると、値が書き換えられて帰ってくることを期待してるようなソースに見えるのが嫌。

例えば、実は値を変更するまではマジックコピー的に処理してるとかだと気がラクになるんだけど。

73:nobodyさん
07/12/21 01:30:19
それはどちらかというとメモリの使用量とかをしてないのが問題なんだろ
多用してるのが解ってるならだいたいピーク時にどれぐらい消費してるとか
そういうのをチェックしてない時点でダメなんだろ

74:nobodyさん
07/12/21 01:31:37
>>72
基本的に参照渡しもそのまま渡すのも
関数内で変更しない限り内部的に一緒

75:nobodyさん
07/12/21 01:35:41 1HbS1x3e
>>74
ありがとう。気がラクになった。
面倒でなければ、情報ソースかヒントだけでも教えてくれるとありがたい。

76:nobodyさん
07/12/21 01:51:45
>>75
記事自体は凄く古いが
URLリンク(www.sound-uz.jp)
ここだったと思う

まぁphpのサイトにもパフォーマンスのためだけに使うなって書いてるし
URLリンク(www.php.net)

それでも気になるならmemory_get_usageとか使って
メモリの消費量をチェックしてみるといいかもね

77:45
07/12/21 02:41:08
>>62
本当にありがとうございます、感動しました
頑張ります

78:nobodyさん
07/12/21 04:34:35
>>62
>既出の通りブラウザ複製などの場合値が書き換わっちゃうのでやらない。
これなんか問題あんの?



79:nobodyさん
07/12/21 05:02:52 k3WWlkOg
質問です。
指定した数の乱数順列を生成する関数とかってありますか?
例えば10を指定した場合、
4,3,2,9,8,7,10,1,6,5
3,6,4,2,1,9,7,10,8,5
のような並びで配列とかに格納してくれるような感じで。
もし知っている方いましたら教えてください。
お願いします。

80:nobodyさん
07/12/21 06:01:09
>>79
shuffle()

81:nobodyさん
07/12/21 06:18:03
>>80
ありがとうございました。

82:nobodyさん
07/12/21 10:14:56 O7QmdYOi
質問です。
ローカルテストのためWindowsXPにApache/2.0.61(Win32) PHP/5.25をインストーラーでインストールしたのですが、
パスを指定してアクセスすると.phpのファイルだけHTTP500内部サーバーエラーが出て表示してくれません。
.htmlは表示されますし、.pqpとか適当な拡張子をつけたファイルも表示はしてくれました。

Apache MonitorではPHPのバージョン表記もされていて、
インストールは完了しているようなのですが、何か原因が分かればお願いします。

83:nobodyさん
07/12/21 11:07:39
>>76
なるほど。PHPよく出来てるな。
どうもありがとう。

84:nobodyさん
07/12/21 11:18:19
phpの開発に携わるには、どうしたらいいのかな?
こんな中で開発に携わっている人いる?

いや、一つのメソッドでもいいので実装したら、
それだけで経歴書に「phpの開発メンバー」とかって書けるかなぁ、って。
出来たら、自分が作ったメソッドに自分の名前の一部で使えたら最高なんだけど。

85:nobodyさん
07/12/21 11:19:19
>>82
自分は詳しくないけど、まずはApacheのエラーログ見たら?

86:nobodyさん
07/12/21 11:54:40
phpで500エラーってcgiとして動かそうとしてるのか?

87:nobodyさん
07/12/21 11:55:36
って、5.2.4以降はエラーをブラウザに返さないで500出すようになったのか

88:nobodyさん
07/12/21 11:59:36
マッピングされてないだけだったりして

89:nobodyさん
07/12/21 12:04:23
>>84
単にPHP自体の開発が出来るということを示したいだけなら、
野良モジュールをpeclにでも登録すれば?

あるいはメインストリームなモジュールのバグ一覧を見て、
未解決のバグのパッチを辛抱強く投げつづけるか。

そうでなければ、本家MLに参加して議論とパッチの応酬を繰り返すとか。


しかし経験からいわせてもらうと、PHPの開発がホイホイ出来る奴は
PHP言語を使う仕事にはなかなかつかせてもらえない罠


90:nobodyさん
07/12/21 12:10:20
ちと質問なんですが、
『排他ロック中には他のプロセスが割り込めないので
ロックは1つかければ十分』…と聞いたんですが
例えば…


$lock_fp = fopen("lock.txt","w");
flock($lock_fp,LOCK_EX);

$fl = fopen("data.dat","w");
if($fl){
 fwrite($fl,$write_data);
 fclose($fl);
}

fclose($lock_fp);


こうしておけば、data.datの方もlock.textがロック解除されるまでは
書き込んだりできないんでしょうか?

91:nobodyさん
07/12/21 12:29:26
>>89
なるほど、参考になるわ。ありがとう。もしかして、開発メンバー?
>しかし経験からいわせてもらうと、PHPの開発がホイホイ出来る奴は
>PHP言語を使う仕事にはなかなかつかせてもらえない罠
これは、どうして?
PHPを開発した人は守秘義務とかに縛られて、
PHPを使った開発はできないとか?

>>90
これ、ちょうど俺が実装したかったロジックだ。なんというタイミング。
俺が実装したいメソッドは、一つのメソッドで面倒なロックをやってくれるもの。

boolean write_data_with_safety_lock($file_name, $data)
ファイル名と書き込みデータを引数で渡せば、
ロック機構を実装したこのメソッドが安全に書き込めるというメソッド。

このメソッド作ったら、絶対php6.0とかに採用されると思っているんけど。ニーズも絶対あるし。

92:nobodyさん
07/12/21 12:47:28
phpはオープンソースです

93:nobodyさん
07/12/21 13:02:05 S3fUHMf0
pearだったかのコーディング規約で、PHPだけのファイルの場合、
<?php だけで、最後の ?> は付けないってのがあったと思うんだけど
これって個人的にはすごく気持ち悪いんですが、こんなもんなんでしょうか?

94:93
07/12/21 13:03:54
>>93
ああ、ZendFrameworkのコーディング規約でした。

95:nobodyさん
07/12/21 13:10:57
最後に?>を付ける事によって?>以降に書かれた文字列が表示される
表示される事による見つけにくーいバグを回避する事ができる

と俺は勝手に解釈
まぁ画像をphpで出力されてたりとか
携帯向けにHTML出力する時にこういうので苦労した事あったから
俺はつけないけど

96:nobodyさん
07/12/21 13:13:40
>>91
>>PHP言語を使う仕事にはなかなかつかせてもらえない罠
>これは、どうして?

単なる元野良モジュール作者だけど、
単純にCでマルチプラットフォームな開発が出来る奴ぁそれを仕事にした方がぶっちゃけ収入が良いのです。


97:93
07/12/21 13:52:16
>>95
ああ、なるほど。
改行コードとか目に見えにくい文字列もありますね。
ありがとでした、納得しました。

98:nobodyさん
07/12/21 14:35:20 J4pqu08c
童貞先輩が新人女子OLにアタックしてるwww何とかしてくれwww

99:nobodyさん
07/12/21 15:20:15
くだらねえwww

100:nobodyさん
07/12/21 15:46:33
おい上原ぁ!!お前が何とかしろ!

101:nobodyさん
07/12/21 15:53:53
""を含むhtmlタグ入り文章をechoやprintで表示、
変数に格納するにはどうしたらいいんでしょうか。
初心者質問スマソ。

102:nobodyさん
07/12/21 16:01:46
> ◆質問する時の注意
> ・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
> ・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
> ・ 己の行った操作、変更などを詳しく明記すること。
> ・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
> ・ 質問者として、態度をわきまえること。
> ・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

103:nobodyさん
07/12/21 16:03:59
>>101
URLリンク(www.php.net)

104:101
07/12/21 16:04:34
自己解決しました

<a href="index.html">2ちゃんねる</a>だったら

echo "<a href=\"index.html\">2ちゃんねる</a>";とするか
echo '<a href="index.html">2ちゃんねる</a>';とすることで解決しました。

君たちみたいなバカに聞いたのが間違いでした、ニートどもは黙って職安いきなさいクズ

105:nobodyさん
07/12/21 16:11:34 Bll92Vnt
Ethnaでのトランザクション処理について、
DB更新を処理ごとに複数の関数で作成する場合は
エラー時にロールバックするためにそれぞれの関数の頭に
 $db = $this->backend->getDB();
 $db->db->autocommit(false);
 $db->begin();
これを書く必要がありますか?
それとも
 $db = $this->backend->getDB();
だけでOKですか?

106:nobodyさん
07/12/21 16:13:00
最近>>1読まないやつ多いな

>・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ

107:nobodyさん
07/12/21 16:23:19
$db = $this->backend->getDB();
$db->begin();
のみでOK

108:101
07/12/21 16:40:25
>>103-104
ありがとう。専ブラなんでsageチェック外すの忘れてました。
>>104さん、他人を騙ってる割にはいい人ですね感謝。

109:90
07/12/21 16:57:32 mXpbsFrG
あれま、レスが無いと思いきや、同じくsageてました。失敬。

あらかじめロックファイルの方で排他ロックを制御できれば
処理が簡単でいいなぁ、と思ったんですが、>>90のやり方で
data.datに対しての同時書き込みは防げますでしょうか?

110:nobodyさん
07/12/21 17:00:05 mCAqxYSI
音楽(asxファイル)の再生数をカウントするスクリプトを作りたいのですが
PHPをどこにはさんでよいのかがわかりません。

一覧ページで再生する曲をチェックし、フォームで取得しています。

form actionで指定したページに

<OBJECT ID='Player' width='300' height='48'
CLASSID='CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6'>
<PARAM name='autoStart' value='true'>
<PARAM name='URL' value='file_name.asx'>
<embed src='file_name.asx' autostart='true' width=300 height=48></embed>
</OBJECT>
を記述しています。

PHP5.2.4 APACHE2

よろしくお願いいたします。

111:nobodyさん
07/12/21 17:00:17 bUxsI4En
ログイン画面から入る会員領域のトップページを作ってるんですが、
入力されたID・パスが違うときはエラー画面に飛ばす処理が上手くいきません

session_start();
/* ログイン情報問い合わせ-----------------------------------------*/
require_once 'config.inc.php';//DB接続関連の設定ファイルの読み込み
require_once 'adodb/adodb.inc.php';//ADOdbモジュール読み込み
$DB = NewADOConnection(_DB_TYPE);//接続の設定
$DB -> pconnect(_DB_HOST, _DB_USER, _DB_PASS, _DB_NAME);
if(!$DB){//接続エラー時
  header("Location: /system/index.html?ec=1");?//エラーページへ
  exit;
}
php部分は上記の記述だけですが、表示すらされません。リダイレクトもされません
//if文の中のheader;とexit;をコメントアウトすれば、省略されてる
<html>タグ以下のページデザイン部分が表示されます
headerはすべての出力よりも先に書くというルールは知ってるんですが
何も出力してないはずでわけがわかりません
低レベルですみません、教えてください

112:nobodyさん
07/12/21 17:01:30 bUxsI4En
すみません、間違えました
×入力されたID・パスが違うとき
○接続エラーのとき

113:nobodyさん
07/12/21 17:01:36
>>106
テンプレのスレなんてねーぞコラ

114:nobodyさん
07/12/21 17:02:43
自分で立てろカス

115:nobodyさん
07/12/21 17:15:35
>>113
あるだろボケ
スレリンク(php板)

116:105
07/12/21 17:35:04 Bll92Vnt
>>107
ありがとうございます。助かりました。

>>106
すいませんでした。Ethna固有の機能ではなかったので「Ethnaの環境でやってます」という意識でした。

117:nobodyさん
07/12/21 18:01:23
>>110
音楽ファイルを読み込む前か後ろにカウント処理

118:nobodyさん
07/12/21 18:02:09
>>111
headerの使い方をもう一度確認

119:110
07/12/21 18:42:10 mCAqxYSI
>>117
やってみたのですが、やっぱりページカウンターになってしまいました。
if(isset($_POST['maker'])) {
$db = new mysqli("*","*","*","*");
$stt = $db->prepare("select * from music_lank where url=?");
$stt->bind_param("s",$_POST['maker']);
$stt->execute();
if($stt->fetch()!==TRUE) {
$sql="insert into music_lank(url,count) values(?,1)";
}
else {
$sql="update music_lank set count=count+1 where url=?";
}
$stt->close();
$stt2 = $db->prepare($sql);
$stt2->bind_param("s",$_POST['maker']);
$stt2->execute();
$db->close();
print("
<OBJECT ID='Player' width='300' height='48'
CLASSID='CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6'>
<PARAM name='autoStart' value='true'>
<PARAM name='URL' value='ASX/{$_POST['maker']}.asx'>
<embed src='ASX/{$_POST['maker']}.asx' autostart='true' width=300 height=48></embed>
</OBJECT>
<br>
");
}
冒頭の「isset」が原因なのはわかるんですが
埋め込みのメディアプレーヤーの再生ボタンを
押した瞬間にPHPを発動できれば解決なんですが・・・。

120:nobodyさん
07/12/21 19:39:49
そりゃそんなところに仕込めばページカウンターになるw

121:110
07/12/21 19:49:36 mCAqxYSI
どこに仕込めばよいのかがわからないです・・。

122:nobodyさん
07/12/21 19:55:42
>>119
>埋め込みのメディアプレーヤーの再生ボタンを
>押した瞬間にPHPを発動できれば解決なんですが・・・。

むり。どうしてもやりたいならAjaxとかFlashつかえ

123:nobodyさん
07/12/21 19:57:20
1.再生ボタンを素材で用意して、そこを押すと再生ページに移動
2.FlashでActionScriptで組み込む

124:110
07/12/21 20:00:51 mCAqxYSI
>>122
無理でしたか。それが分かっただけで一歩進めました。

ありがとうございました。

>>123
ありがとうございます。

125:nobodyさん
07/12/22 00:11:25
windows, xammp な環境で
URLリンク(localhost)(UTF8なファイル名).html
のようにアクセスすると、ローカル上の
UTF8なファイル名.html
ではなく
SJISなファイル名.html
にアクセスしにいくんですが、これってどういう理屈かご存知の方いませんか?
firefox, ie7 共になります。
これって windows じゃなくて linux サーバ上だと
EUCなファイル名.html
を見にいったりすることになるんですかね?厄介。

126:nobodyさん
07/12/22 00:13:29
>>1
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

127:nobodyさん
07/12/22 00:15:38 YFLFW+ip
echo <<<EOF
~~
EOF
ってのがよくあるけど、この~~の部分で関数を実行できないの?
echo <<<EOF
<td>$hoge->gethoge(1);</td>
EOF
って感じ。関数でなく、変数を書いてその値を表示ならできたんだけど。。

128:nobodyさん
07/12/22 00:26:48
>>127
>>1
◆質問する時の注意 
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ) 
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。 
・ 己の行った操作、変更などを詳しく明記すること。 
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。 
・ 質問者として、態度をわきまえること。 
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。 

129:nobodyさん
07/12/22 00:45:03 VmEGw74T
教えて下さい。
よく、以下の表示を見るのですが、これはどのように制御しているのでしょうか?
セッション数を取得して閾値を越えたら、この表示を出すといった処理なのでしょうか?
私も作りたいとは考えているのですが、何を基準にしていいいのか分かりません。宜しくお願いします。

現在アクセスが集中しています。
現在アクセスが集中しており表示しにくい状態となっております。
申し訳ございませんが、しばらく時間を置いてからアクセスするようお願いいたします。

130:nobodyさん
07/12/22 00:49:58
>>129
httpのステータスコード見て判別すれ

131:nobodyさん
07/12/22 01:39:24
>>127
できるよ。ある関数を使うけどね

132:nobodyさん
07/12/22 01:40:47
>>129
考えられる方法
1.apacheの設定


セッション使うのはもったいないからapacheの設定だな

133:133
07/12/22 03:51:34 PQDDH9MU
レン鯖やヤフーメイルで仮登録
→メールが送られてきて、リンクをクリックすると本登録
→サーバスペースやメールboxが作られる

この一連の動作を自分のサイトで実現しようと思ったら何を勉強すればいいだろうか。
phpとDB系を組み合わせればできる?

134:nobodyさん
07/12/22 04:03:34
>>129
DB関連でエラー出たらそれ出してるんだと思ってた。。
セッションやApacheへの接続数より、DBがボトルネックになることが
多い気がするし、「現在アクセスが集中しています。」の表示が出るまで
ちょっと時間かかるサイトが多いし。

ただしDB接続エラーでこれ出すだけでもDBに負荷かかるんで、132の言う
通りApacheでやるのが一番いいかなあ。
Apacheの設定、PHPでセッション数、DBの接続エラー全部でそういう処理
入れといて、DBの接続エラー出る前にApacheの接続数の上限に達する
ようにうまく調整するのが一番よさそう。

135:nobodyさん
07/12/22 04:21:23
>>133
メールサーバとサーバOSもかな。Webサーバもね。

・仮登録メールを受信してPHPを実行する仕組みが必要。これはメールサーバ。
 本登録用のメールはPHPがメーラーの役割を果たして、メールサーバ利用して
 返信する。
・サーバスペースは物理的にHDDにフォルダ作ることになるから、PHPからシェル
 コマンド叩くとかの処理がいる。手動であらかじめ作っといて、空きがないなら
 登録拒否とかでもいいかもだけど。。
・メールボックス作成はやったことないんでよくわからん。
 コマンドラインでそういう処理ができるメールサーバはありそうだから、やっぱり
 PHPから実行することになるかな。これも手動であらかじめ、ってできるかもだけど。
・Webサーバの知識はWebアプリ作る以上当たり前。


その機能を実装するだけなら通り一遍の知識でも動くと思うけど、
サーバスペース貸与サービスってレンタルサーバでできるのかな?
できないなら自分でサーバたてて運用することになるんで結構大変。
特にメールサーバは下手に立てるとWebサーバ以上に迷惑をかけることになるので。

知り合いがそういうサービス個人でやってたけど、自宅にサーバ
置いてたしなあ。

136:127
07/12/22 05:00:56
自己解決しました
一旦外で実行してから読み込めばいいんですね どうもお騒がせしました

137:nobodyさん
07/12/22 05:57:17
>>133
分かりにくい質問だけどメールサーバ関係ないんだろ?
セッションやmd5でユニークな値を持つチケットを発行すれば済む話

138:133
07/12/22 06:35:51
>>135 レスありがとうございます。
実は趣味で自宅鯖立てて、最近スペース貸出を考えているのですよ。
それでそんなプログラムできればいいかな、と。

PHPって結構いろんなことできるんですね。PHPを習得するとともに、まずメル鯖立てるために固定IPゲットせねばw
135さんのレスをもとに勉強の方針立てて頑張りたいと思います。

ところでこんな時間にレス、て何者?w

139:nobodyさん
07/12/22 09:36:10
今日は休日だからな。
自鯖立てるのは結構だが、質問内容からするとかなり不安なので、
最初は審査はさんで手動登録にするとして、鯖管としての勉強をするのが第一。
踏み台になって周りに迷惑かけないようにね。

140:133
07/12/22 11:10:17
>>139
余計なお世話です。

141:nobodyさん
07/12/22 11:21:56 JyLvDbSd
classが存在するか調べる方法はありませんか?

PEARでDB.phpが読み込まれているかチェックするために
クラスチェック("DB")のようにしたいのです

142:nobodyさん
07/12/22 11:24:26 JyLvDbSd
class_existsで解決しました

143:nobodyさん
07/12/22 13:21:02 iV97cpSO
$str = "1+2+3"; というようになっているstring があったとして、
これを数式だと解釈して 1+2+3 (= 6) を返すような関数て
ありましたかね?

144:nobodyさん
07/12/22 13:21:36
>>143
eval

145:nobodyさん
07/12/22 13:36:39 iV97cpSO
>>144 ありがとう。

$str = "1+2";
echo $str. "\n";
eval("\$str2 = $str ;");
echo $str2. "\n";

解決した。

146:138
07/12/22 13:46:19
>>133
まあ鯖管やるといろいろと勉強になるし、がんばってくれ。
ただ139と同意見でもあるので、いっぺんにいろいろやろうとせずに
PHPならPHPだけって感じでやっていったほうがいいと思う。
メールサーバは半日放置すればすぐ踏み台にされるし、他のメール
サーバの管理者から文句が来たり、ISPその他から警告来ることがあるよ。

147:nobodyさん
07/12/22 15:17:14 JyLvDbSd
PEARのmimeDecodeで
$structure = Mail_mimeDecode::decode($params);
をしたときに、メールの件名・本文の文字コードを取得したいのですが、
本文はcontent-typeにありますけど、件名がありません。
どこで取得すればよいのでしょうか?

148:nobodyさん
07/12/22 15:29:17 XDbomIjm
本でもWebでもいいんですが、PHPの長い良質なソースコードないですか?

勉強したいので。。独学ですが、普通の本のソースじゃものたりなくなりました。。

よろしくお願いします。

149:nobodyさん
07/12/22 15:35:26
>>148
pear
zend framework
あたりかな

150:148
07/12/22 15:40:37 XDbomIjm
>>149
どうもありがとうございます。その2つをとりあえず見てみます。あと、思いついたんですが
洋書でいいのないですかね?あっちの方が本格的な気がして。。洋書でいいのを知っている方
教えてください。よろしくお願いします。

151:nobodyさん
07/12/22 15:49:04
シェル形式(perl形式)のコメント#って廃止予定とかあったりする?
あまり使われてないようだけど、#がスクリプトに混ざってたりしたら気持ちわるかったりするのかな

#昔書いたスクリプトで、いたるところにコメントで/* */を使ってあるのをメンテしてて、
#/* */使って問題箇所を切り分けようとしたら酷い目にあった

152:nobodyさん
07/12/22 15:50:38
>>150
「気がする」程度なら必要ない
それよりまず日本語ドキュメントを完全マスターすべし

153:nobodyさん
07/12/22 15:54:32
>>148
PHP5でクラス使ってるのが所望なら、mediaWIKIおすすめ
俺はめまいがして静かにエディタを閉じたけどw


154:nobodyさん
07/12/22 15:54:49
ユーザーが入力した式を
evalで実行してます。
(計算機のようなものです)

でもこうすると、ユーザーがたとえばファイル読み書きなんかの
命令を入れたら実行されてしまいます。

なんかいい方法はありますか?
ちなみに単純な計算機ではなく、関数など複雑な
式を入力することが出来きることが条件です。

155:nobodyさん
07/12/22 15:55:21
pearなんてあんま良質とは思えないのも多々ある訳だが
動物本でも読んだら?

156:nobodyさん
07/12/22 16:00:36
pearといえばNET_IP_V4←うろおぼえ
で、どんなIPアドレスでもネットワーク内ある(trueになる)という、
物凄いバグありバージョンがあったな
設置だけして使ってはいなかったけど

157:nobodyさん
07/12/22 16:13:35
>>154
なんのためにそんなの作ってんの?

158:nobodyさん
07/12/22 16:23:32
>>154
自分も式を扱うプログラム書いてるけど、色々処理が必要なので真面目にパースしてる。

簡単に済ませるなら、正規表現で計算式以外の要素が無い事を確認するのが良いんじゃないかと思う。
正規表現では対応しにくいようなら、Tokenizer使って分解してチェックじゃないかな。
URLリンク(jp2.php.net)

159:nobodyさん
07/12/22 17:20:10
>>157
複雑な検索条件入力 ですが?

160:nobodyさん
07/12/22 18:52:20
>>154
>>1
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

161:148
07/12/22 19:01:21
>>152 日本語ドキュメントもしっかり読んでみます。ありがとうございました。
しかし、ソースを打ちたい。。

>>153 MediaWikiをググって見てみました。今のところどういうものかわかりませんが
時間ができたらよく調べてみようとおもいます。どうも有用な情報ありがとうございました。

お二方、お礼が遅くなりすみませんでした。ありがとうございました。

162:nobodyさん
07/12/22 20:40:17
>>150
Advanced PHP Programming
がいいよ(洋書)。

163:nobodyさん
07/12/22 23:19:52
>>162
すごい、きになる。
やっぱ洋書がいいのかなあ

164:nobodyさん
07/12/23 01:20:47
別に変わらんと思うが

165:nobodyさん
07/12/23 01:28:41
そりゃまぁ、書いてある事は同じだろ。
というか違う事が書いてあったら困る。

166:nobodyさん
07/12/23 02:11:39
>>163
もう少しで新しいバージョンのが出るらしい。
今気付いたけど、Amazon見ても目次もないから買おうか迷ってる人が判断できないな。
もったいない。

この本には、中括弧の置き方くらいの事に関しても、BSD style, GNU style,
K&R style のそれぞれの説明とかがある。

あと、Extensionの説明だけでなく、「Writing SAPIs and Extending the Zend Engine」
なんて章があって、SAPIで使ってる構造体から説明してる。

データベースマッピングの複数のデザインパターンの説明もあって、
The Active Record Pattern とかいろいろ書いてある。

もちろんその他には、エラーハンドリング、テンプレートシステム、テスト、
キャッシング、セッション、認証、RPC、プロファイリングとかの説明もある。

なんて言うか、本格的。
なんで日本語訳されてないんだろう。

167:nobodyさん
07/12/23 03:32:32 KIQSv7/M
[a.php]
<?
$hoge = 'a';
~インクルードここまで
$hoge = 'b';
?>

[include.php]
<?
include 'a.php';
echo $hoge;
?>

$hoge = a にしたい場合、ifで制御する方法はありませんか?
include_break();みたいな

168:167
07/12/23 03:33:34 KIQSv7/M
ifで制御 → if以外で制御

169:nobodyさん
07/12/23 04:06:10
ファイル分ければ?

170:nobodyさん
07/12/23 04:16:30
>>167
わざわざ難しく考えないで、今できる知識で組めよ。
コードを今の10倍の量を書いたとき、新しい技法を覚えるってことよ

171:nobodyさん
07/12/23 04:57:03
phpに関する初歩的な質問です。書いたコードは下に示します。
htmlquickformでメールフォームを作りたいのですが、その過程でprocess関数を使うところでつまづいてしまいました。
process('test',false)としてfunction test($values)と受け取るのですが、
具体的にvaluesが何の値を受け取っているのかがよく分からないのです。

下のコードでいうと
function mail($values)
{
mb_send_mail(??????????????);
}
のところで、「valuesって一体何?」と思うわけです。
直感的にmb_send_mail(:::@:::,$subject,$body);としてもダメなようですし、、、混乱してます。(C→phpとやってきたからかな、、、

172:nobodyさん
07/12/23 04:57:57
ryaku
$form->addElement('header',NULL,'お問い合わせ');
$form->addElement('text','name','名前');
$form->addElement('text','mail','メールアドレス');
$form->addElement('text','subject','件名');
$form->addElement('text','body','本文');
$form->addElement('submit','sbm','送信');

$form->addRule('name','名前を入力してください。','required','client');
$form->addRule('mail','メールアドレスを入力してください。','required','client');
$form->addRule('mail','メールアドレスを正しく入力してください。','email','client');
$form->addRule('body','本文を入力してください。','required','client');

$form->setRequiredNote('<font color="Red">*</font> 必須項目です。');
$form->setJsWarnings('入力ミスによりエラーが発生しました。','エラーをご確認の上、再度[送信]ボタンをクリックしてください。');

if($form->validate())
{
$form->process('mail',FALSE);
}
else
{
$form->display();
}

function mail($values)
{
mb_send_mail(??????????????);
}

?>

173:nobodyさん
07/12/23 05:00:50
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。


174:nobodyさん
07/12/23 06:07:25
SimpleXMLElementで、

<data>
aaa
<p>bbb</p>
ddd
</data>

てなXMLの"aaa"とか"ddd"のようなTextノードにはどうやって
アクセスしたらいいでしょう??
asXML()すると復元できるんだよなぁ

175:nobodyさん
07/12/23 06:23:36 /N04QiDA
sageてしまった……すいませんorz

SimpleXMLElementで、

<data>
aaa
<p>bbb</p>
ddd
</data>

てなXMLの"aaa"とか"ddd"のようなTextノードにはどうやって
アクセスしたらいいでしょう??
asXML()すると復元できるんだよなぁ


1つ思いついたのは、
$dom = dom_import_simplexml($xml);
$dom->firstChild->nodeValue = 'zzz';
$sXml = simplexml_import_dom($dom);
とやる。
ってこれじゃーSimpleXMLの意味がない

176:nobodyさん
07/12/23 07:02:39
XMLはあまり得意じゃないんで補足を待ちたいが、"aaa"とか"ddd"ってそれぞれ
単独のテキストノードなの?
aaa~dddまでひとつのノードじゃないかって気がするんだけど。
<data></data>しかないじゃん。

さらにそのサンプルは<data>zzz</data>にしてる気がするんだけど、
"aaa"や"ddd"へのアクセスってのとの関連がよくわからん。

177:nobodyさん
07/12/23 07:13:23
んでいちお意図を汲み取ると
<?xml version='1.0' standalone='yes'?>
<data>
<content>aaa</content>
<content><p>bbb</p></content>
<content>ddd</content>
</data>
ってことになるのかな。
$dom->content[0]で"aaa"、$dom->content[2]で"ddd"が取得できる。

後半意味が分からんのは変わらんので、
URLリンク(jp2.php.net)
ここの例の部分よく読んで意図がちゃんと分かるように書き込みやがれこのキャベツ野郎。

あ、書いたXMLが正しいかどうかはとりあえずメモ帳当たりにコピペしてXMLで
保存してIEあたりで開けば分かるよ。

178:nobodyさん
07/12/23 07:19:03
>$dom->content[0]で"aaa"、$dom->content[2]で"ddd"が取得できる。

ここ紛らわしいかな。
$xml = new SimpleXMLElement($xmlstr); //$xmlstrには177のXML文字列が入る
$content0 = $xml->content[0]; // aaa
$content2 = $xml->content[2]; // ddd
ってことね。

179:175
07/12/23 07:45:21 /N04QiDA
<data>
aaa
<p>bbb</p>
ddd
</data>

この状態でXMLとして正しくてDOMで厳密にいうと、
Elementノードdataの最初の子はTextノードで、"\naaa\n"となる。
2番目の子は、Elementノードpで最後の子がTextノードの"\nddd\n"。

んで、SimpleXMLElementから、"\naaa"などのTextノードにアクセスしたい。

$sXML = new SimpleXMLElement($xml);
$dom = dom_import_simplexml($sXml);
$dom->firstChild->nodeValue = 'zzz';
$sXml = simplexml_import_dom($dom);
ってやると、結果は
<data>zzz<p>bbb</p>
ddd
</data>
となる。

'zzz'の部分を"\nzzz\n"とすれば、
<data>
zzz
<p>bbb</p>
ddd
</data>
こうなる。




180:175
07/12/23 07:49:19 /N04QiDA
あっしまった。s/sXML/sXml/です。

ちゃんと書くとこう。
<?
$xml = <<<XML
<data>
aaa
<p>bbb</p>
ddd
</data>
XML;

$sXml = new SimpleXMLElement($xml);

$dom = dom_import_simplexml($sXml);
$dom->firstChild->nodeValue = 'zzz';
$sXml = simplexml_import_dom($dom);

echo $sXml->asXML();
?>

181:nobodyさん
07/12/23 10:36:41
すみません質問です。 ヒアドキュメントの中で、プルダウンを動的に生成できません
というか、ヒアドキュメント外で実行した関数の値(プルダウン表示)を中に
持ち込めない状況です
$address1_PD = $callData->makeKenPd("address1",$address1,1);
(↑の関数は、<option val=n>nName</option>を40回ほどループしてprintします)
echo <<<DOC
<select name="address1">
$address1_PD;
</select>
DOC;
とやってもうまくいきません $address1_PD = print($callData~ なども
試したんですがダメでした
お手数をおかけしますが、回答お願いします php5 apache2 winxpです

182:nobodyさん
07/12/23 10:37:51 6DPIzhWO
すみません 上の181書き込みe-mail欄を消去しそこねました
アドバイスよろしくお願いします

183:nobodyさん
07/12/23 11:22:06
おっぱいカッコ

184:nobodyさん
07/12/23 11:42:34 MvcJEZMN
fgetcsvについて質問です。
A,B,C,D,E
F,G,H,I,J
K,L,M,N,O
という内容のテキストファイルcount.txtから

$handle = fopen("count.txt", "r");
$data = fgetcsv($handle);
for ($c=0; $c < 5; $c++) {
echo $data[$c];
}
fclose($handle);

というコードを用いてファイル内容を表示させようとしてるのですが
一行目までのABCDEまでしか値を取得出来ません。
二行目を抜き出すにはどんな条件を設定すればいいのでしょうか。
PHPManualを見ても、どの条件が該当するのか分からなかったので
よろしくお願いします。

185:nobodyさん
07/12/23 11:53:45
>>184
URLリンク(jp2.php.net)
例をよく見ろ

186:nobodyさん
07/12/23 12:12:21 MvcJEZMN
>>185
すみません、質問が悪かったですね。

Manualでは表示のためにwhileでfor文を繰り返してることは分かるのですが
!== FALSEがファイルの終端での全処理終了条件であることを除けば
単純にfor文を繰り返してるだけに見えるんです。
ABCDEABCDE...とループを繰り返さないための条件が何処に該当するのか、
ご教授お願いします。

187:nobodyさん
07/12/23 12:41:31
>>186
fgetcsv()すればファイルポインタが1行進む。
しまくればいずれEOFに到達して終わる。

188:nobodyさん
07/12/23 13:01:34 MvcJEZMN
>>187
whileの継続条件で用いられているfgetcsvが、
同時にポインタを進める役割も果たしてたということですか。
ポインタについてあまり学んでいないので気づきませんでした。
回答ありがとうございました。

189:nobodyさん
07/12/23 13:06:40 Dd+txFZ/
質問です。
変換するコマンド、をexecさせたいのですが、
どうしても引数を受け取る関数が必要なのでしょうか?
例えば、
exec("convert $hoge $huga);
$hogeが引数のファイル
$hugaがconvertした後のファイル
としたいのですが、失敗してしまいます。

190:nobodyさん
07/12/23 13:25:53
上の文を訳しなさい。【30点】

191:nobodyさん
07/12/23 13:37:38
質問です。
FATをNTFSに変換するコマンドconvertをPHPのexec関数で実行させたいのですが
どうしても出力を受け取る第二引数が必要なのでしょうか?
例えば、
exec("convert $hoge $huga);
$hogeが変換するファイル名
$hugaが変換後のファイル名
としたいのですが、失敗してしまいます。

192:nobodyさん
07/12/23 13:39:07 j7tEfXX4
質問があります。
PHP+PostgresqlまたはPHP+mysqlでシステム
を作ろうと思うのですが、PHP5が認識をしてくれません。
PHP info();でその部分がでてきません。
なんのパッケージをインストールしたらいいのでしょうか?
OSはFedora core4です。
板違いかもしれませんが、よろしくお願いします。


193:nobodyさん
07/12/23 13:42:43
>>192
何をしたけど認識をしてくれないの?

194:nobodyさん
07/12/23 13:48:06
SQLを、じゃない?

195:194
07/12/23 13:48:45
誤爆

196:nobodyさん
07/12/23 14:46:06
>>192
板違いです
「fedora core4 php mysql インストール」とかでググレカス

197:nobodyさん
07/12/23 14:55:33
板違いだが教えよう。
普通はyumでいれればパッケージ全部はいるはずだが、あとはphp-mysqlを入れればよいはず。php関連に限っていえばね

198:176
07/12/23 15:49:32
>>175
そのXMLであってるのか。。
DOM的には確かにノードの扱いはそうなると思うけど、XML的には
\naaa\n<p>bbb</p>\nddd\n がひとつのノードになるのは確かだと思う。
なので、
・DOM使ってXML的にもノードがばらけるように変換する。
・XML文字列を適当に文字列変換する。

くらいしかやっぱりないような気がするけどなあ。

199:nobodyさん
07/12/23 16:13:53
>>175>>176
\naaa\nはTextNode
<data></data>、<p></p>はElementNode
firstChildNode、SiblingNodeとNodeTypeとかでとれる気もするけどXMLってそういう使い方はしない気がする。
そしてSimpleXMLElementにそれがあるかどうかは知らない。

200:nobodyさん
07/12/23 17:04:49 4Xlz9Mde
複数の変数をいっきにチェックしたいのですが効率的な書き方ありませんか?

if (empty($var1) && empty($var2) && empty($var3))

今こんな風になってます。

201:nobodyさん
07/12/23 17:13:25
自分で関数を作る

202:nobodyさん
07/12/23 17:52:07
emptyて !$hoge と同義じゃなかたけ?


203:nobodyさん
07/12/23 17:56:22
>>200
別にその書き方でいいと思うんだけど。

204:175
07/12/23 18:08:04 /N04QiDA
>>175
XPathでもXQueryでもSAXとかも全部別々にあつかうし
XMLでも、それぞれ別にあつかうよ

>>198
それについては、>>179-180に

結論としては、やっぱ無理っぽい
SimpleXMLElementって名前な時点で、Elementノードしか
無理じゃないかな~て気はしてたんだ

それでもやるなら、SimpleXMLElement派生させるなりHelper関数用意するしかないっぽい


205:175
07/12/23 18:11:12 /N04QiDA
どんべえ食いながらレスしてたら、レス番号ずれまくり……orz
>>204において

>>175>>198
>>198>>199

です。

206:nobodyさん
07/12/23 18:11:19
>>202
変数限定(返り値や即値は使えない)ってことと
UndefinedVariableエラーにならないってとこらが違うかな。

207:nobodyさん
07/12/23 19:35:35
>>200
in_array

208:nobodyさん
07/12/23 19:56:37 Lt3D3rib
PHP4 から PHP5に移行して
サンプル集を買ってきたんですが

$select = "select * from hoge where name = $hage";
$query = mysql_query($select);
$result = mysql_result($query,0,0);

などと書いてた事が

$db = new mysqli(-------);
$aa = $db->prepare("select * from hoge where name = ?");
$aa->bind_param("s",$jakld);

みたいな文に変わってるのですが、結局どっちでもいいのでしょうか?
かなり戸惑ってまして一から勉強しないと全く分からない状態で・・。


209:nobodyさん
07/12/23 19:57:23
>>200
1つのメソッドにする。
by 「リファクタリング」

210:nobodyさん
07/12/23 20:04:09
>>208
mysql関数を使うスタイルとmysqliを使うのは
好き好きでいい(でもPHP5以降ならmysqli使った方がスタイルが入り混じらないので良い)
けど、後者のサンプルにあるプリペアードクエリの発行の仕方は反映した方が良いよ。

211:nobodyさん
07/12/23 20:23:13
>>208
練習したり、ちょっとした使い捨てでないなら、どっちもよくない
PDOでもadodbなりPEARのライブラリなり、何でもよいが、
なんらかのインターフェイスでラップするべき
お薦めは、PDOだ。

212:nobodyさん
07/12/23 20:24:33 2UmaE0fQ
pdoってなんですか?

213:208
07/12/23 20:38:27 Lt3D3rib
>>210
ありがとうございます。
prepareはたしか、パフォーマンスの向上と自動的にエスケープ
されるんでしたよね。

>>211
参考になります。ありがとうございました。

>>212
PHP Data Objects (PDO)
俺が説明するより検索したほうが確かな情報が得られると思うので。

214:208
07/12/23 20:51:51 Lt3D3rib
あ。。。
mysql4.1移行はmysqliを使わないとだめなんですね。。
サーバーが4.1以降だからmysqli使わないと・・・。

勉強しなおしか・・・。

215:nobodyさん
07/12/23 21:04:06
別にmysqlでも書けるけど

216:208
07/12/23 21:34:13 Lt3D3rib
>>215
え?
試してみましたがエラーになってしまいます・・。

217:nobodyさん
07/12/23 21:38:57
エラーになったと言われても
エラーを晒さないと解らないな

・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。


218:208
07/12/23 21:44:48 Lt3D3rib
>>217
大変失礼しました。。。
平凡なエラーなんですが
Call to undefined function mysql_connect
です。

なんか凡ミスしてるっぽいなぁ・・・。

219:nobodyさん
07/12/23 21:56:53
ぉぃぉぃ…

220:nobodyさん
07/12/23 22:15:35
>>218
エスパーなので、Windowsだということも判るし
php_mysqli.dllが読み込まれてるのに
php_mysql.dllは読みこまれてないということも判る。

221:208
07/12/23 22:18:13 Lt3D3rib
!!
あなたの言うとおり!

ありがと。

222:nobodyさん
07/12/23 22:20:25
すげえw

223:nobodyさん
07/12/23 23:00:41
以上、自演でお送りしました

224:nobodyさん
07/12/24 00:05:58
ID:Lt3D3ribが楽しそうでなによりだ。

225:nobodyさん
07/12/24 00:48:15 sRF6QhUm
192です。
fedora core4 php mysql インストールで
ググッてみたんですが、でてきません。
また、今後はどこの板で聞けばいいでしょうか?
後postgresqlも認識してくれないのですが。
php-mysqlと同じでいいのでしょうか。
すいませんが、よろしくお願いします。
このことに関するサイトがあれば教えてください。



226:221
07/12/24 00:59:41 PecBMOMk
>>225
ここじゃだめかしら?

URLリンク(www.fedoraz.com)

227:nobodyさん
07/12/24 01:37:31
>>225
それで検索すると>>226が出てくるわけで、それで分かんなきゃあきらめたほうがいい

228:nobodyさん
07/12/24 02:52:04
あるサイトに昨日アクセスした際にスクリプトエラーが出て、
その内容が画面に出た際、xxx.incの何行目のエラーとか出た。
試しに、xxx.incのURLで指定したら、そのソースが丸見えwwで、
その中にDBの接続のためのパラメータ(ID、PWDまで)まで書かれている。

こんな馬鹿な作りをしているサイトに天誅を下そうと思うのだが、
面白い天誅の食らわし方ない?

知っている人も結構多い、大きめのサイトなんだが。

229:nobodyさん
07/12/24 03:11:37
>>228
は?直ちに管理者にその旨を連絡するべきなのに、悪用しようなんてお前が逆にリアル天誅を食らうだけだから

一応言っておくと、明示的に公開されていないものに対してのアクセスで逮捕された前例もある

230:192です。
07/12/24 03:19:58 sRF6QhUm
226さん、227さんありがとうございます。
postgresqlも使いたいのですが、yumでphp側のインストール
はなにをすればよいでしょうか?
サイトがあれば、サイトはありがたくブックマークしました。


231:208
07/12/24 05:28:08 PecBMOMk
>>229
「リアル天誅」ウケたwwwww

>>230
ごめんよ。fedora core4 とか初耳だし
OS違うとそんなにインストの方法が変わるなんて
知らないし、教えてあげられんよ。。。

232:nobodyさん
07/12/24 05:48:42
>>230
検索ぐらいしようぜ
yum postgre phpとかで検索すれば直ぐ出てくるだろ


233:nobodyさん
07/12/24 08:41:55
>>229
じゃ、リアル天誅を食らわないように、日本の捜査権が及ばないクラッキング集団のサイトとかないの?
そこで、IDとPWDさらせば問題ないってことだよね?

234:nobodyさん
07/12/24 09:30:50 P1UMzL+u
phpMyAdminでCSVデータをインポートする時に、
CSVのフィールド囲み記号は「"」で指定すると、
データの数値で「"」で囲まれていない部分があると読み込んでくれません。
(「フィールド数が合わない」とエラーが出ます。)

もともとこういう仕様なのでしょうか・・・?
それだと、ダウンロードしてきたデータが読み込めなくて大変です
(基本的に「"」で囲まれているのは文字列だけなので)

235:nobodyさん
07/12/24 09:49:55
>>233
やー、考え浅いぞ
そういう奴らそもそも裏取るまで行動起こさないし、まずそういう情報投げた奴を洗うし叩くし。要はここと大差ねえな
そういう厨房っぽい所存でいくなら、ハッカーになりたがってるご同類の
サイトの掲示板にでも書き込んだ方がいいんじゃねえの。
無論揉め事になったら煽動で関わった事になるけどな

忠告はした
alt.2600あたりでぐぐってあとはお好きなように。類似のアレなのも色々芋蔓で引っかかるでしょう
一応先に自衛でtorやらのなんとかする品物でも入れとけよ

236:nobodyさん
07/12/24 10:14:28
>>235
詳しくサンクス。参考になった。

最近多いんだよな。素人のくせに自鯖立てて踏み台にされて迷惑掛けているやつとか、
簡単に会員の個人情報がわかるようなサイトとか、
こういうのは天誅を下さないとダメだろうなぁ。

こういう奴に限って、過失を認めず、過失を認めても誤って終わりとか。
警察や役所やプロバイダーやクレジット会社から個人情報が流出しても、損害賠償なんてしないし、天誅しかないな。

237:nobodyさん
07/12/24 10:17:04
ちなみに、俺はクレジット会社から個人情報が流出されて、
一時期毎日のようにサラ金業者から電話に掛かってきた。
テレビで報道されているのを知って、苦情言っても、
謝っても、それは私たちから漏れている情報ではないかの一点張り。理不尽な世の中に天誅を。

238:nobodyさん
07/12/24 10:34:27
世知辛い大義名分だなあ
もっと理性的な説諭の手段がありそうなもんだが。
ま、ただの感想だ。流してくれや

239:192
07/12/24 11:13:48 sRF6QhUm
URLリンク(shikabo.ddo.jp)
これがみつかった。
ほかにないかな?

240:192
07/12/24 11:14:47 sRF6QhUm
連続すいません。
上記のがみつかったのですが、
ほかにもっと詳しく書いてあるサイトはないかな?
知っている人よろしくです。


241:nobodyさん
07/12/24 11:23:36
もっと詳しいのが必要ってことは、そこの手順と対処方法で躓いたんだよね?
どこで躓いたのか明記しないと誰も有益な情報返せないんじゃないかな
只でさえfcな人がどんだけ見てるのか判らんのだし。

linux板とか当たってみるのもありかも

242:nobodyさん
07/12/24 12:32:11
なんとか苦労してApache2.0とPHP5をインストール完了。
ブラウザはFireFoxを使ってるんだけどアドレスバーから「URLリンク(localhost)」と打つと
問題なくページが表示されるんだけどフォルダからダブルクリックで「abc.php」を開くと
ブラクラみたいにタブが無限に開いていってしまう (; ´Д`)

どうしたらいいんですか・・・・?

243:nobodyさん
07/12/24 13:19:28
>>242
abc.phpのどっかが無限ループになってるんでしょ。
winならxamppという便利なものがあんのに。

244:nobodyさん
07/12/24 15:48:25 tHEPo1ls
<form>
<input type="text" name="text">
<input type="submit" value="test1" name="test1">
<input type="submit" value="test2" name="test2">
</form>

こんな感じでformの中にinput-submitのボタンが複数あって、
押したボタンによってPHP側で"text"の処理分けしたいんですが、
valueの値で判定するしかないんでしょうか。
valueだとボタンの名前として表示されるため他の方法を探しています。

245:nobodyさん
07/12/24 16:15:56
>>244
var_export($_GET); したものをtest1、test2のクリック時に見比べてみ

246:nobodyさん
07/12/24 16:27:38
isset()

247:244
07/12/24 17:11:12 tHEPo1ls
>>245
valueの値だけは違いがありますね。

input-submitじゃなくて
button-submitを使いボタン名をvalueとは別に設定することで解決しました。
レスありがとうございました。

248:nobodyさん
07/12/24 17:19:57
どうみても押したボタンのnameとvalueのセットだけが送信されます。
本当にありg(ry

249:244
07/12/24 17:29:41 tHEPo1ls
別の処理でうまくいった気がしたので過信してました。
本当にありがとうございました…。

250:244
07/12/24 17:54:23 tHEPo1ls
あまりに下らないので、スレ汚し続けたくはないのですが間違いがあったので訂正だけ。
<button type="submit" value="test" name="test1">内容</button>
だとvalueに設定されているtestは送信されなくて、内容が送信されるようですね。
手元のHTML本ではvalueが送信値となってますが、仕様変更でもあったのか。

>>248さんのご指摘とは違い他フォームの内容もちゃんと送信される模様です。

251:nobodyさん
07/12/24 18:18:44
>>250
嘘だろうと思って動作確認したらIE7では確かにそう動いた。
ちなみにFireFox2 Opera9 ではvalue値が送信されてる。(IE7と動作が異なる)

PHPの話題じゃないけど、RFC的にはどうなんだろ。

<html>
<head><title>test</title>
<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
</head>
<body>
<?php print_r($_GET); ?>
<hr/>
<form action="test.php" method="get">
<button type="submit" value="test" name="test1">内容</button>
</form></body></html>


252:245,248
07/12/24 19:02:38
RFCというよりHTML4の仕様なんだけど、IE6,7はそれに従っていない。
以下のコードで、
・name1 name2 のいずれかをクリックした時に、3,4は送信されるべきでは無い
・name3 name4 のいずれかをクリックした時に、value3またはvalue4が送信されるべき

DOMの扱い時にも同様の支障がでてくる。
なので、buttonを使うより、input type=button を使う方が良い。(buttonに比べて表示の自由度は落ちる)

検証用コード
<html><body><form>
<input type="submit" name="name1" value="value1"></input>
<input type="submit" name="name2" value="value2"></input>
<button type="submit" name="name3" value="value3">3</button>
<button type="submit" name="name4" value="value4">4</button>
</form><p>
<?php
var_export($_GET);
?>
</p></body></html>

253:nobodyさん
07/12/24 22:47:49
まじで?
IE7でも相変わらず腐ってるんだな・・

254:nobodyさん
07/12/25 08:19:17
imap_open とかでサーバ側のエラーメッセージ(たとえば、LoginError)を
取得したいのですが、基本的に不可能でしょうか?
ZendFrameworkのZend_Mail使ってみたんですが、
オブジェクト指向を完全に理解していないオイラには
かなりつらい部分があったので、imap関数に移ろうとしてるのでつが。

255:255
07/12/25 09:05:15 Coxwnlyh
linux環境でphpを勉強し始めて5日の者です。phpのサンプル集を買って勉強しているんですが、
その中のメールフォームサンプルを自分のサイトの隅っこに置いて、apacheを起動させて動作確認してみたところ、
フォームに文字入れて確認画面に進み、送信を押すと 本当は「送信成功しました。or失敗しました。」と表示されるはずが、何も
表示されず、メールも送られていません。php.iniはデフォのままなんで、そこがダメなんじゃないかと思うのですが、
どうなんでしょう。書籍には何も書いてないです。

256:nobodyさん
07/12/25 10:39:57
エラーのときどうする、って話が書いてない本はダメだね。
そういう本(書いてない本)多いけど

257:nobodyさん
07/12/25 11:11:07
zend_extensionとextensionの違いってなんでしょう?
何時もphp.iniに書く時に迷う・・・

258:nobodyさん
07/12/25 11:15:16 M0LvCdnx
>>255
送信しましたor失敗しました あたりのソースうp


質問ですが、SQLインジェクション対策ってどうしてます?
自分はMySQLを使っていたので、mysql_real_escape_strngを使っていたのですが、
他のデータベースでも書き換えなくていいように、全てのデータベースで活用できるような
インジェクション対策などありませんでしょうか?

259:nobodyさん
07/12/25 11:53:41
>>258
PDOを使うのが定石かなぁ。

260:nobodyさん
07/12/25 12:06:36
pdo丸投げで一切自前では対策してないけど、それでいいのか不安w

261:nobodyさん
07/12/25 13:18:29
test.iniってファイルを
parse_ini_file("test.ini",true);
で読み込むとshift_jisで読み込まれちゃうんですが、ファイル読み込みのエンコーディングをUTF-8にしたいんです。
iniや表示するphpファイルは全てUTF-8になっています。
php.iniでファイル読み込みのエンコードとかでしょうか?

iniの中身は
------------------
[友達]
"佐藤" = "コスプレ"
"伊藤" = "女装"
------------------

262:nobodyさん
07/12/25 13:20:42
>>261
>>1

263:nobodyさん
07/12/25 13:31:06 Kk9QHm5I
すいません、下げ忘れていました

test.iniってファイルを
parse_ini_file("test.ini",true);
で読み込むとshift_jisで読み込まれちゃうんですが、ファイル読み込みのエンコーディングをUTF-8にしたいんです。
iniや表示するphpファイルは全てUTF-8になっています。
php.iniでファイル読み込みのエンコードとかでしょうか?

iniの中身は
------------------
[友達]
"佐藤" = "コスプレ"
"伊藤" = "女装"
------------------

PHP Version 5.2.4

264:nobodyさん
07/12/25 14:32:50
>>263
とりあえずキーはダブルクォート出来ません。

265:nobodyさん
07/12/25 14:41:28 Kk9QHm5I
>>264
そうなんですか、それでも文字コードの問題は残るので解決方法があればお願いします。
ひとまずキーにダブルクォートで動いてはいます。

266:nobodyさん
07/12/25 14:45:46
キーを英語にし、ダブルクォートでも文字化けは変わりませんでした。
一応ご報告を

267:nobodyさん
07/12/25 14:47:22 V7kmAO2b
非常に下らないかもしれませんが、EOSでの質問です。

$bbb[0]['abc']="表示テスト";
$a=<<<EOS
<table>
 <tr>
  <td>$bbb[0]['abc']</td>
 </tr>
</table>
EOS;
print $a;

EOS内で連想配列の変数を簡単に吐き出す方法はありますか?
そのままだと Array['abc'] となってしまいます・・。
変数に入れ直せば良いのですが種類が多いと大変で・・

皆さんはどうやってますでしょうか。

268:nobodyさん
07/12/25 14:51:23 ek1/aJk1
PHPの質問と言っていいのか悩んだんですが、PHPファイルに限って起きるので質問させてください。

WEBサーバーでSSLを設定してそこにPHPファイルを配置したところ、httpでのアクセスだとPHPは正常
に動くんですが、httpsだと何故か404になってしまいます。
他の形式(aspx、txtや画像)はhttpでもhttpsでも問題無く動くのでアクセスしているフォルダが違うとかは
考えられず、httpだとPHPは動くのでPHP自体がおかしいってことも考えられず…。
通常のSSLの設定は終えていますが、PHPをSSLに配置する際は他に何か設定等必要なんでしょうか?

環境ですが、
Windows2000ServerSP4 + IIS5.0 + PHP5.2.5 (+ VisualStudio2003)
です。

よろしくです。

269:nobodyさん
07/12/25 14:52:26
>>267
変数を挿入するときは
{$bbb[0]['abc']}
のように括りましょう。

270:nobodyさん
07/12/25 14:57:18 V7kmAO2b
>>269
即答ありがとうございます!それだけで良かったんですね

基本的な方法が分からずにいろんな遠回り処理した上で
えーーそんな簡単にできたの・・みたいな事がよくあります

有難うございました。

271:nobodyさん
07/12/25 15:32:13
>>268
404時のエラーログに出るフルパスは同じもの?

272:268
07/12/25 15:51:19
>>271
IISのログには相対パスのみ出てまして、httpとhttpsとで別サイトとして登録してますので
パスは別物です。

273:nobodyさん
07/12/25 16:12:23
>>263
自己解決しました。
凡ミスだったので気にしないでください・・。 ;-;

274:nobodyさん
07/12/25 16:32:12
PHPのメジャーな統合開発環境って何ですか?
フリーので。

275:nobodyさん
07/12/25 16:35:17
>>273
       ヽ(・ω・)/   ズコー
      \(.\ ノ

276:nobodyさん
07/12/25 16:41:01 Kk9QHm5I
>>275
すいません ><
ID出し忘れたので偽者と思われないようにも返信しときます・・

277:nobodyさん
07/12/25 16:44:26
>>274
       ヽ(・ω・)/   ドボン
      \(.\ ノ

278:nobodyさん
07/12/25 17:37:59
>>274
EmEditor→phpエディタ→phpeclipse→zend
と使ってきたけど俺はphpeclipseが一番使いやすかった

279:nobodyさん
07/12/25 19:39:53 YdyXWQpG
Yahooのニュース記事の表示が、馬鹿丸出しなんだけどwwwwwwww

URLリンク(headlines.yahoo.co.jp)

 <futoji>元福岡地検検事正で公証人の絹川信博さんの話</futoji> 「鑑定結果が今後、民事訴訟の証拠として採用される可能性は十分ある。
民事分野でも、ポリグラフの活用範囲が広がる可能性がある」

280:nobodyさん
07/12/25 20:31:12 qdKsQYMA
質問です。

array("aaa" => "bbb", "ccc" => "ddd" "???" => "fff")

この配列から「三個目の要素」であること、又は「値がfff」であることから、
不明なキー名である???のみを抜き出したいのですがどのような方法があるでしょうか。
よろしくお願いします。

281:nobodyさん
07/12/25 20:43:37
>>280
URLリンク(www.php.net)

282:nobodyさん
07/12/25 21:14:34 qdKsQYMA
>>281
普通に定義されてるんですね。回答ありです。

283:nobodyさん
07/12/25 22:37:15
>>281
ゴクリ・・・

284:nobodyさん
07/12/26 00:37:13
>>283
やめとけ、その釣り針に味わいどころがあるようには思えない。

285:nobodyさん
07/12/26 00:57:00
 下記 ※※※ の部分にconvertコマンドで画像を少し加工したいのですが、

×imagejpeg ($image_new , $uploadfile , $quality);
○imagejpeg ($image_new , $image_temp , $quality);
 にして、

 /usr/bin/convert オプション $image_temp $uploadfile;
にすると、

PHP Parse error: syntax error, unexpected '/'
in /home/webmaster/blog/nucleus/plugins/NP_ImageLimitSize.php on line 65,
referer: http://******/nucleus/plugins/mediatocu/media.php

 と、出ました、フルパスで書けば問題無いと思ったのですが、どのようにコマンドを挿入すればいいでしょうか?

function event_PreMediaUpload(&$data) {

$collection = $data['collection'];
$uploadfile = $data['uploadfile'];
$filename = $data['filename'];

// evaluate the filetype from the filename
$filetype = strtolower(substr($filename, strpos($filename, ".")+1));



286:285
07/12/26 00:57:53
// filetype is jpeg
if ($filetype=='jpg' || $filetype=='jpeg') {

$size=getimagesize($data['uploadfile']);

// size[0] is the image width
if ($size[0]>$this->getOption('maxwidth')) {

$newheight = $this->getOption('maxwidth') * $size[1]/$size[0];
$image_orig = imagecreatefromjpeg($uploadfile);
$image_new = imagecreatetruecolor($this->getOption('maxwidth'), $newheight);
$quality = $this->getOption('quality');

imagecopyresampled($image_new, $image_orig, 0, 0, 0, 0, $this->getOption('maxwidth'), $newheight, $size[0], $size[1]);
imagejpeg ($image_new , $uploadfile , $quality);

                ※※※

// clear the memory
imagedestroy($image_orig);
imagedestroy($image_new);

}
}

287:nobodyさん
07/12/26 01:02:18
>>1

288:285
07/12/26 01:08:43
>>287
CentOS 5.1
PHP 5.1.6
apache 2.2.3
これ以外しか思いつきません。

289:285
07/12/26 01:10:06
×:これ以外しか思いつきません
○:これしか思いつきません

290:nobodyさん
07/12/26 01:39:36
CentOSってのもあるのか……
Linux界隈、ディストリ間の差異大杉でFreeBSD派にはついていけねえな

291:nobodyさん
07/12/26 03:42:29
カーネル一緒なんだから大差あるようで本質的には大差はない

292:nobodyさん
07/12/26 04:19:38
プリインストールされてるソフトが違うWindowsみたいなもんだからな

293:nobodyさん
07/12/26 04:56:01
>>285
> PHP Parse error: syntax error, unexpected '/'
PHPの文法レベルでエラーが出てるんだからフルパスとかコマンドの違いとか全然関係ねーよ。

>  /usr/bin/convert オプション $image_temp $uploadfile;
> にすると、
ってこれ、PHPのソース中にシェルコマンドを生で書いてるのか?
PHPはシェルスクリプトじゃねーぞ?
system()とか使えよ。

294:nobodyさん
07/12/26 10:54:23 WFCxb7oZ
ローカル側のphpとサーバー側のphpで、相互通信する仕組みを作りたいのですが、
どのような実装方式が一番楽な方法でしょうか?


ローカルphpが、サーバー側phpを呼び出す
サーバー側phpが処理を実行し、実行結果を返す
ローカルphpがサーバー側のphpの実行結果を受け取り、その実行結果により処理を条件分岐する

このような感じで、サーバー側の実行結果によってローカルの実行結果が異なります。

ソケット通信での実装を考えたのですが、少々面倒なので、もっと簡易にできる方法があれば助かります。
宜しくお願いします。

295:nobodyさん
07/12/26 11:57:31
>>294
レスポンス速度重視でないならば、http で通信すればいいんじゃないの。サーバは apache経由にして。

296:nobodyさん
07/12/26 11:58:07
soap

297:nobodyさん
07/12/26 12:17:11
>>296
PHPネタじゃないけど、soapってどうなの?
以前 Javaでやったときは、なんか中途半端に隠蔽されて自由度が低いだけって印象なんだけど。

298:nobodyさん
07/12/26 13:15:38
PHP.iniの設定で
auto_prepend_fileを使いたいのですが、
一部のディレクトリんは適用させたくないのですが、
その場合どのように記述すれば良いのでしょうか?

299:298
07/12/26 13:16:09 0y2BVKsS
すみません、sageチェックついてました
お願いします

300:nobodyさん
07/12/26 13:30:41
つ auto_prepend_file htaccess

301:nobodyさん
07/12/26 13:33:05 0y2BVKsS
>>300
ありがとうございます


すみません、書き忘れていました
レンタル鯖の仕様によりhtaccessでのphp_value・flagが仕様できないのですorz

302:nobodyさん
07/12/26 15:08:20
情報小出しに日本語不自由か…ダメダコリャ

303:nobodyさん
07/12/26 15:14:38
これでまた、何か案を出したら、それはすでにやったんですが・・・
と続くからなw

304:nobodyさん
07/12/26 15:54:46
そして最後には、お前ら使えねーな、で締めるのか

305:nobodyさん
07/12/26 16:07:23 5CJgBllV
認証システム作りたいと思ってます 以下のような処理でOKなんでしょうか?
(ログインフォームの次の会員トップページの処理です)
0)session_start(); (タイムアウト設定も同時にする)
1)$_SESSION['LogIn']=0;//ログイン状態のフラグの用意
2)1)をチェック →0なら3)
3)POSTされたid,passwordをもとにログイン処理 →LogIn=1にする
4)以降のページでは0~3を(外部ファイル化して)最初にチェック
 ※3)のPOSTデータがなければ警告画面に遷移

PEAR:AUTHも考えたんですが、ログインフォームと認証後トップページを
同じにしなきゃだめっぽいんでやめました
環境はPHP5,APACHE2です

306:nobodyさん
07/12/26 16:10:25 0y2BVKsS
>>302
すみません、小出しではなく>>301はただの書き忘れです

307:nobodyさん
07/12/26 16:20:00
>>305
リクエスト毎に 1) の処理を行うの?
そうならヘンだと思うが。

308:305
07/12/26 16:32:50 5CJgBllV
>>307 ありがとう ごめんなさい、間違えました
LogInは初期化しません 最初にチェックするだけです
あと、今思ったんだけど、最初のログイン時にランダム値を持たせといて(DBにも登録)
それもリクエストごとにチェックするとかの方がいいのかな?
それがセッション名(?)てことだからわざわざやらなくていいんでしょうか?

309:nobodyさん
07/12/26 16:53:52
乱数を設定しても意味は無いだろうけど、「ログイン状態のフラグ」を管理するぐらいなら、
誰がログインしているのかという、「ログインユーザのID」を管理した方が良いと思う。

ログイン後は、それが誰だかわからなくても良いなら、別に良いけど。

310:305
07/12/26 17:23:39 5CJgBllV
>>309
ログイン開始と終了を記入するテーブルみたいなのを作るわけですか?
考えたこともなかったです。
ログイン状態のチェックだけなら305の内容でokなんでしょうか 度々すみません

311:nobodyさん
07/12/26 17:33:52
DBじゃなくてセッション変数の話。
「ログイン状態のチェック」が「だれかがログインしているが判定できる」なら、305の内容でOK。
普通は、このセッションでログインしているのが誰かも判らないと困るんじゃないかと。

312:305
07/12/26 17:53:13 5CJgBllV
親切にありがとうございます
しかしセッションの知識が不足でよく理解できません
idに依存したセッション名を発行するのかな、、 ちょっと勉強してきます
ありがとうございました

313:nobodyさん
07/12/26 18:50:16 7SSM1+qD
すいませんお教えいただきたいのですが、

キーボードからそのまま受け取ったデータaを
cに変更して<textarea>に出力する ことはできますでしょうか?
いろいろ調べて下記のようなものを書いてみましたが、できません。

<form>
<textarea>
<?php

set_time_limit(0);
($stdin = fopen("php://stdin", "r"));
$s = trim(fgets($stdin, 256));

if($s == "a"){
$s = "c";
}
print $s;

?>
</textarea>
</form>

ハッスルサーバを使っていて、phpはバージョン4.3です。
初心者の質問で申し訳ありませんが、どうかよろしくお願いします。

314:はっしゅ(前すれ703)
07/12/26 19:02:23 drjhjm0k
>>前すれ734
回答ありがとうごいました。
レベル低すぎて誰も答えてくれないのであきらめてたんですが、今日見たら回答きてたのでお礼に伺いました。
またわからないことあったら教えてください。
遅ればせながらありがとうございました。

315:nobodyさん
07/12/26 20:44:56
キー入力された時その場で変えたいなら
JavaScript使うかAjax使わないと無理

phpはサーバーサイドスクリプトです


316:315
07/12/26 20:45:19
315は313宛ね

317:nobodyさん
07/12/26 20:45:33
>>313
意味がわからない キーボードから受け取ったデータってなんだ?
サーバの送受信はするの? しないんだったらphpじゃなくてjavascriptでしょ
具体的にどういう操作と結果がほしいのかわからなきゃ回答不可だよ

318:nobodyさん
07/12/26 22:33:52
C言語の本読んでもキーボードから1文字ゲットから先に進めない人

ノシ

319:nobodyさん
07/12/26 22:40:10
$white = 'snow';
$black =& $white;
unset($white);
print $black; //snow

これで snowが出力されるんだけど、$blackは$whiteの参照になってるから
unset($white)で$blackの値も破棄されるんじゃないの?

なぜsnowがprintされるのかわかりません。

320:nobodyさん
07/12/26 22:46:40
>>319
URLリンク(jp2.php.net)
>参照渡しされた変数が関数内で unset() された場合に、 ローカル変数のみが破棄されます。
>呼出側の環境でその変数は、 unset() がコールされる前と同じ値を保持します。

って書いてあるから良いんじゃないの。

321:320
07/12/26 22:51:51
良く見たら >>320 とはちょっと違うパターンか。ごめん。

322:319
07/12/26 22:54:50

参照渡しの場合はローカル変数しかunsetされないでいいんかな

323:nobodyさん
07/12/26 23:00:42
mb_send_mail()の引数の本文部分に
「>」を入れると
勝手に「>」にエスケープされるんですが、
ホワイ?
特に htmlspecialcharsとかかけてないんですが。。。


324:nobodyさん
07/12/26 23:11:12
ethnaの$this->af->getで取得した変数だからでした。
勝手にエスケープされるんでつね。。。

mb_send_mail( $this->af->get('to'), $this->af->get('subject'), $this->af->get('body') );
みたいな送信の仕方できないですが、
一回エスケープしたのを戻すとかの作業するのが一般的なんでしょうか

325:324
07/12/26 23:20:58
いや、すんません
ethna関係ないっぽいです、普通にやってむりぽでした。

326:nobodyさん
07/12/26 23:53:50 5CJgBllV
条件分岐でページ遷移する処理をしたいんだけど
Header関数(location)がエラー起こします。ほかに方法はないんでしょうか?
echoでjavascript出力もできますがそれはあんまりなので、、 よろしくお願いします

327:nobodyさん
07/12/27 00:13:03 kzcBaheO
>>326
飛ばしたいページのファイルをincludeすればいいんじゃね?

328:nobodyさん
07/12/27 00:15:44
>>326
エラー書いた方が良い

>>324
うちの環境ではエスケープされなかった


329:nobodyさん
07/12/27 00:39:58
>>326
単に、header関数の前に何か出力されちゃってるんでない?
それか場所の指定に変数を使ったりしてるならそこがおかしいか。

330:nobodyさん
07/12/27 00:54:22
特にローカルの開発環境だと、
キャッシュが効いて動作がおかしくなったりもするがな<header()

331:326
07/12/27 00:57:52 k02W1D9g
>>327-328
ありがとうございます
前に一度相談してて、自力解決めざしたんですができなかったんです
詳細は>>111です 今apacheのエラーログ見たところ、
PHP Parse error: syntax error, unexpected T_EXIT in
 C:\\Program Files\\Apache Group\\Apache2\\htdocs\\system\\admin\\hoge\\index.php on line 14,
 referer: URLリンク(localhost) …らしいです
14行目は>>111のexit;なので、コメントアウトしたら(//exit;)今度は
unexpected '}'~~ と出ました。ただのif文なのに意味がわかりません 
ググっても出てこないし、気が向いた方教えてください お願いします


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch