【PHP】下らねぇ質問はここに書き込みやがれ 61
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
http://pc11.2ch.net/test/read.cgi/php/1196511516/ ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
【簡易FAQ】 (1/3)
1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→
http://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)、起動&再起動あたり
【簡易FAQ】 (2/3)
11. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
→ よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40 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.を参照
【簡易FAQ】 (3/3) 21. 画像処理一般 or GDの限界 → ImageMagick(PECLのやつ or シェルから実行) 22. 画像・音・動画はファイルで保存?DBに保存? → 好きにしてください
httpsのソースを取得したいです。 php5でwindowsです。 いろいろ探しましたが、 http_clientとか --with-openssl でコンパイルするとか php4ts.dllを差し替えるとか どれもphp5でwindowsだと無理?と思われました。 本当に無理なのでしょうか?
phpではhttpsは無理 rubyなら簡単に取得できる
>>8 いや別に無理じゃないが…
面倒くさいけど。
最短一致が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だと思います。
>>10 その正規表現だと当然のような
あとは正規表現スレで頑張ってね
12 :
nobodyさん :2007/12/19(水) 12:20:31 ID:F1MTppUB
POSTしたデータを取得したいんですが、TEXTBOXに「'\'」(シングルコーテーション+\サイン+シングルコーテーション) を入力してSUBMITすると、受け取ったPHPでは"\\'\\\\\\'"と入っています。 エンコードされないデータを取得するにはphp://inputを使うしかないんでしょうか?
magic_quote_gpcをoffにすれ
1000 名前:nobodyさん[sage] 投稿日:2007/12/19(水) 09:15:15 ID:??? 1000だったら、php全滅 @一昔前はPerlの達人と恐れられたが、Rubyのクラスが分けわからず時代に乗り遅れた化石Perler AJAVAの思想は素晴らしいのに周りに理解者が少なく、コストの問題でクライアントがPHPを指定してきて嫌々やらされているJAVAer B周りはネット全盛なのに、未だにSoketプログラムが理解できずネットの海に出られない鎖国状態のVisualStudioer CwebデザイナーはPHPぐらいできないとゴミと言われて、いつの間にかPGにさせられてしまった自称webデザイナー Dプログラマーという職業に憧れているけど、PG的思考ができずに指をくわえて見ていることしかできないゲーマー さあレッツ プロファイリング!
設定変えると影響範囲がでかいから、自分は stripslashes 使ってる。
>>12 ところで、php://input って何?
19 :
nobodyさん :2007/12/19(水) 12:40:41 ID:F1MTppUB
20 :
12 :2007/12/19(水) 12:44:48 ID:???
22 :
教えて下さい :2007/12/19(水) 17:15:38 ID:n596SeRo
ttp://www.phpweb.jp/dlrank/dlrank.php?id=lineboard ここで配布されているファイルをUTF-8にソースコードを変えたんですが、
148行目ぐらいの
// 投稿処理
function send() {
$data = file("./lineboard/log.txt");
$newtime = time();
この投稿処理の項目がshift-jisでエラーコードが返されるのでUTF-8でエラー表示をかえしたいんですが
どこをいじってあげればいいのかアドバイスくれないでしょうか。
sjisコードをutf-8で置き換えたんですが、エラーの時の投稿処理される
メッセージが長すぎますなどがsift-jisで返されるので文字化けしていまいます。
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さん :2007/12/19(水) 18:53:57 ID: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; で文法的に正解でしょうか?よろしくお願いします。
なんて本だ?そんな糞コードのっけてる本捨てちまえ。
簡単なプログラムでもDBを導入したほうが効率が良いのでしょうか? アクセスカウンタを例にしますと、 テキストのログファイルを読み込ませるほうがよいのでしょうか? この程度でもDBと連携させたほうが効率が良いのでしょうか? 簡単なものはテキスト、中規模以上はDBって感じでしょうか? 小さくてもアクセス頻度が高い場合はDBのほうが安全なのでしょうか? 速度、鯖の負荷、その他ありましたら教えてください よろしくおねがいします
>>24 $data = "_POST['FIELD_$j']";
$data = $$data;
↓
$data = $_POST["FIELD_$j"];
この一行でOKでは
なんて本、それ
>>27 好みの問題。好きにしろとしか言えない。
後々の拡張性とか考えるとDBのほうが楽ではあるが。
>>30 知ったかはヤメロ。
アクセスログをDBなんかでやったら、
通常のレン鯖で1時間3000PVでコネクションオーバーでエラーが出る。
>>32 カウンターの話をしてるのにおまいは何を言ってるんだ
自分でCで作ったサーバにPHPからデータを渡したいんですが,良い方法ありますか? 今はとりあえずストリームソケット用いてやっています・・・
>>32 >通常のレン鯖で1時間3000PVでコネクションオーバーでエラーが出る。
出ないし。
ていうか、DBより1時間に3000PVとか転送量のほうが問題だ。
レベルひっくwww
エサを与えないでください
んでどれが正しいの?
規模を考えるより使いやすいほうでやればいいんでないの? 簡単なものでテキストで処理したほうが楽だと思うならそうすればいいし 普段からDB使ってるしDBのほうが楽だと思うならそうすればいい
1時間に3000PVって全然少なくないか?
>>40 確かに少なすぎだね。俺のサイトで3000PVって言ったら1分で、それくらい行くから。
個人サイトでは多い方だとは思うけど、そういうサイトは山ほどあるよな。 レンタルサーバだからといって、多少負荷がかかるにしろ、 その程度のリクエストでDBがパンクしてたらDBなんて許可しないし、 そんな簡単にダウンするほど信頼性の低いもんじゃない。 Googleなんて分散してるとはいえ、1台あたり1秒にどんだけこなしてると思ってるんだ?
ぐぐるさんのDBは独自拡張だから比較対照にはならんな
年賀状3枚入り買ったんだけど出す相手が一人しかいないので、2枚余りました。 年賀状欲しい人は、住所と名前を書いてもらえば出します。
45 :
nobodyさん :2007/12/20(木) 06:10:17 ID:8BakDrsf
前スレのセッション談義見て不安になったんですが、
(
http://pc11.2ch.net/test/read.cgi/php/1196511516/814 )
今作ってる会員システムでは
1)ログインID,ログインPassを使って登録済み情報からユーザ名とidを抜き出す
2)それぞれセッションに入れて
ユーザ名は「○○さんの管理ページ」の表記に使う
idはいろんな情報を登録・更新するときのキーに使う
という風にしています。これはまずいんでしょうか?
また、会員エリア内でフォーム記入→確認ページ という流れで、
修正時に記入ページに戻るときにもフォームに値を入れるためにセッション使ってます
これもまずいとすればこの部分はどうしたらいいんでしょうか?
>>45 Webアプリのセキュリティについて調べろ
分かんないひとはレスしないでください(>_<)
セッション使わないでHIDDENで持ち回すほうがよっぽど…
50 :
45 :2007/12/20(木) 09:26:29 ID:8BakDrsf
>>46 どうもです あれこれサイト見て勉強します
>>48 どうもです まずい というのは上記の程度のセッションの利用でも、それをきっかけに
のっとりとかされてしまうのかなぁと、、
「修正シーン」に記入値をセッション引用して入れるのも、「ログインしたときだけ値を持たせる」の
ルールからすればダメなのかな、など気になります(別のやり方が思いつかない)
>>49 さんの言うとおりhiddenでまわす方法があるのも調べてわかりましたが、
そしたら全部のリンクがpostになる?わけで、デザイン的にいやだしと、、
気が向いたときに回答いただけたら十分なのでよろしくお願いします
自分でも引き続き調べてみますので
だれがログインしてるかって言う情報はサーバが管理すべきものだから、 セッションで管理すべきもの。 今画面に何を表示しているかについては、議論なり判断があって良いと思うけど、 これについては、個人的には hidden 推奨。
同意。formタグ内で統一できて分かりやすいし、楽。
こういう時はsessionだろ
さあまた盛り上がってまいりました
55 :
45 :2007/12/20(木) 14:09:16 ID:8BakDrsf
>>51-52 え? つまりフォームの記入(修正)ページに入れる値は、hiddenですか?
てことは確認ページで
<input type="hidden" name="namae" />などしてキープして、
戻るボタンにjavascriptかなんかで修正ページに向けてsubmitするの?
ちょっと本屋で見てこよう、、
ポカーン・・・
57 :
51 :2007/12/20(木) 14:43:41 ID:???
>>55 JavaScript使用可の前提で書くけど、どっちにするかといえば、Hiddenにする。
自分が作るなら、確認用ページはJavascriptで生成するようにする。
確認ページ表示に、サーバに問い合わせる情報が必要であればAjax的な方法で取得する。
携帯みたいな通信コストが無視できない場合は、セッションでの管理も考えるけど。
会員の情報をサーバーに問い合わせるのにAjaxて怖くない? サーバーサイドで完結してたほうがいいような気がするが。
>>58 何で?
Ajaxでもセッション管理は出来るし、不要な情報はブラウザに返さなければ良いし。
60 :
45 :2007/12/20(木) 21:21:17 ID:???
>>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ます
いくらなんでもスレ違い過ぎ…
>>60 <input type="submit" name="action" value="確認">
<input type="submit" name="action" value="修正">
っていう風にすれば、$_POST["action"]を取得することでどの画面をだせば
いいかは分かるんで、確認画面にフォーム二つもいらない。
書き込みも確認も書き込み完了も、どの画面も全部同じひとつのPHPで扱うけどね。
わざわざ三つとかに分けたりしない。
フォーム入力値の受け渡しはセッションでやった方が楽だけど、既出の
通りブラウザ複製などの場合値が書き換わっちゃうのでやらない。
携帯ならこの問題がないけど、セッション使えないのもあるのでやっぱ
hidden使うかなあ。
セッション使うって言ってる人はこの問題にどう対応してるのか不思議。
63 :
nobodyさん :2007/12/21(金) 00:59:28 ID:9upg4HjC
セッションというのは諸刃の刃だよ。 セッションを使うことによってセキュリティーは向上するけど、 多用しすぎることで、パフォーマンスが劣化し、結果的にセキュリティーが劣化するというジレンマ。 例えて言えば、医学が進歩して寿命が延びることで、不労人口が増えて、 結果的に人類が滅びるというジレンマだよ。 つまり、目先の良さにばかりいくと、長期的には全く逆の結果になるということ。
セッション多用でセキュリティが低下ってのはわからんなー セッション多用してメモリがいっぱいいっぱいになる可能性があるってーなら解るが
>>63 意味不明
医学が発展することが人類が滅びることとどう結びつくんだよw
66 :
nobodyさん :2007/12/21(金) 01:12:13 ID:9upg4HjC
>>65 想像力働かせろよ。
プログラマー脳の典型だよ、まぁ設計には一生なれないな、お前は。
200歳まで生きられる医術・薬品が開発される
↓
生殖機能を持たない、エネルギーだけを消費する不労生体が増える
↓
1人の若者が100人の老体を面倒見る。仕事している暇がない。
↓
国家財政破綻、国力ゼロ、防衛能力ゼロ
↓
発展途上国の台頭、テロリストの台頭
↓
国際経済破綻、無政府状態
>パフォーマンスが劣化し、結果的にセキュリティーが劣化する 何故に?
>>66 は無視して良い話だろうけど、メモリを消費しすぎて落ちやすくなれば ISMSで言うところの
可用性が低下するので、広義のセキュリティが低下したと言えなくも無い。
>>66 65では無いがお前の方が想像力なく見えるぞ
71 :
nobodyさん :2007/12/21(金) 01:26:24 ID:9upg4HjC
お前らw 人を批判する前に、原因と結果の繋がりを細かく検証しろよ。 セッション多用 ↓ メモリー消費、オーバーフロー ↓ HDDへのスワップが多発 ↓ システムが不安定 ↓ HDDの中身が画面に表示される ↓ セキュリティー劣化
72 :
nobodyさん :2007/12/21(金) 01:28:42 ID:1HbS1x3e
PHPって配列を関数に渡すと、内容がコピーされるけど、このコストって意識すべき? 参照渡しすると、値が書き換えられて帰ってくることを期待してるようなソースに見えるのが嫌。 例えば、実は値を変更するまではマジックコピー的に処理してるとかだと気がラクになるんだけど。
それはどちらかというとメモリの使用量とかをしてないのが問題なんだろ 多用してるのが解ってるならだいたいピーク時にどれぐらい消費してるとか そういうのをチェックしてない時点でダメなんだろ
>>72 基本的に参照渡しもそのまま渡すのも
関数内で変更しない限り内部的に一緒
75 :
nobodyさん :2007/12/21(金) 01:35:41 ID:1HbS1x3e
>>74 ありがとう。気がラクになった。
面倒でなければ、情報ソースかヒントだけでも教えてくれるとありがたい。
77 :
45 :2007/12/21(金) 02:41:08 ID:???
>>62 本当にありがとうございます、感動しました
頑張ります
>>62 >既出の通りブラウザ複製などの場合値が書き換わっちゃうのでやらない。
これなんか問題あんの?
79 :
nobodyさん :2007/12/21(金) 05:02:52 ID:k3WWlkOg
質問です。 指定した数の乱数順列を生成する関数とかってありますか? 例えば10を指定した場合、 4,3,2,9,8,7,10,1,6,5 3,6,4,2,1,9,7,10,8,5 のような並びで配列とかに格納してくれるような感じで。 もし知っている方いましたら教えてください。 お願いします。
82 :
nobodyさん :2007/12/21(金) 10:14:56 ID:O7QmdYOi
質問です。 ローカルテストのためWindowsXPにApache/2.0.61(Win32) PHP/5.25をインストーラーでインストールしたのですが、 パスを指定してアクセスすると.phpのファイルだけHTTP500内部サーバーエラーが出て表示してくれません。 .htmlは表示されますし、.pqpとか適当な拡張子をつけたファイルも表示はしてくれました。 Apache MonitorではPHPのバージョン表記もされていて、 インストールは完了しているようなのですが、何か原因が分かればお願いします。
>>76 なるほど。PHPよく出来てるな。
どうもありがとう。
phpの開発に携わるには、どうしたらいいのかな? こんな中で開発に携わっている人いる? いや、一つのメソッドでもいいので実装したら、 それだけで経歴書に「phpの開発メンバー」とかって書けるかなぁ、って。 出来たら、自分が作ったメソッドに自分の名前の一部で使えたら最高なんだけど。
>>82 自分は詳しくないけど、まずはApacheのエラーログ見たら?
phpで500エラーってcgiとして動かそうとしてるのか?
って、5.2.4以降はエラーをブラウザに返さないで500出すようになったのか
マッピングされてないだけだったりして
>>84 単にPHP自体の開発が出来るということを示したいだけなら、
野良モジュールをpeclにでも登録すれば?
あるいはメインストリームなモジュールのバグ一覧を見て、
未解決のバグのパッチを辛抱強く投げつづけるか。
そうでなければ、本家MLに参加して議論とパッチの応酬を繰り返すとか。
しかし経験からいわせてもらうと、PHPの開発がホイホイ出来る奴は
PHP言語を使う仕事にはなかなかつかせてもらえない罠
ちと質問なんですが、 『排他ロック中には他のプロセスが割り込めないので ロックは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がロック解除されるまでは 書き込んだりできないんでしょうか?
>>89 なるほど、参考になるわ。ありがとう。もしかして、開発メンバー?
>しかし経験からいわせてもらうと、PHPの開発がホイホイ出来る奴は
>PHP言語を使う仕事にはなかなかつかせてもらえない罠
これは、どうして?
PHPを開発した人は守秘義務とかに縛られて、
PHPを使った開発はできないとか?
>>90 これ、ちょうど俺が実装したかったロジックだ。なんというタイミング。
俺が実装したいメソッドは、一つのメソッドで面倒なロックをやってくれるもの。
boolean write_data_with_safety_lock($file_name, $data)
ファイル名と書き込みデータを引数で渡せば、
ロック機構を実装したこのメソッドが安全に書き込めるというメソッド。
このメソッド作ったら、絶対php6.0とかに採用されると思っているんけど。ニーズも絶対あるし。
phpはオープンソースです
93 :
nobodyさん :2007/12/21(金) 13:02:05 ID:S3fUHMf0
pearだったかのコーディング規約で、PHPだけのファイルの場合、 <?php だけで、最後の ?> は付けないってのがあったと思うんだけど これって個人的にはすごく気持ち悪いんですが、こんなもんなんでしょうか?
94 :
93 :2007/12/21(金) 13:03:54 ID:???
>>93 ああ、ZendFrameworkのコーディング規約でした。
最後に?>を付ける事によって?>以降に書かれた文字列が表示される 表示される事による見つけにくーいバグを回避する事ができる と俺は勝手に解釈 まぁ画像をphpで出力されてたりとか 携帯向けにHTML出力する時にこういうので苦労した事あったから 俺はつけないけど
>>91 >>PHP言語を使う仕事にはなかなかつかせてもらえない罠
>これは、どうして?
単なる元野良モジュール作者だけど、
単純にCでマルチプラットフォームな開発が出来る奴ぁそれを仕事にした方がぶっちゃけ収入が良いのです。
97 :
93 :2007/12/21(金) 13:52:16 ID:???
>>95 ああ、なるほど。
改行コードとか目に見えにくい文字列もありますね。
ありがとでした、納得しました。
98 :
nobodyさん :2007/12/21(金) 14:35:20 ID:J4pqu08c
童貞先輩が新人女子OLにアタックしてるwww何とかしてくれwww
くだらねえwww
おい上原ぁ!!お前が何とかしろ!
""を含むhtmlタグ入り文章をechoやprintで表示、 変数に格納するにはどうしたらいいんでしょうか。 初心者質問スマソ。
> ◆質問する時の注意 > ・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ) > ・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。 > ・ 己の行った操作、変更などを詳しく明記すること。 > ・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。 > ・ 質問者として、態度をわきまえること。 > ・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
104 :
101 :2007/12/21(金) 16:04:34 ID:???
自己解決しました <a href="index.html">2ちゃんねる</a>だったら ↓ echo "<a href=\"index.html\">2ちゃんねる</a>";とするか echo '<a href="index.html">2ちゃんねる</a>';とすることで解決しました。 君たちみたいなバカに聞いたのが間違いでした、ニートどもは黙って職安いきなさいクズ
105 :
nobodyさん :2007/12/21(金) 16:11:34 ID:Bll92Vnt
Ethnaでのトランザクション処理について、 DB更新を処理ごとに複数の関数で作成する場合は エラー時にロールバックするためにそれぞれの関数の頭に $db = $this->backend->getDB(); $db->db->autocommit(false); $db->begin(); これを書く必要がありますか? それとも $db = $this->backend->getDB(); だけでOKですか?
最近
>>1 読まないやつ多いな
>・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
$db = $this->backend->getDB(); $db->begin(); のみでOK
108 :
101 :2007/12/21(金) 16:40:25 ID:???
109 :
90 :2007/12/21(金) 16:57:32 ID:mXpbsFrG
あれま、レスが無いと思いきや、同じくsageてました。失敬。
あらかじめロックファイルの方で排他ロックを制御できれば
処理が簡単でいいなぁ、と思ったんですが、
>>90 のやり方で
data.datに対しての同時書き込みは防げますでしょうか?
110 :
nobodyさん :2007/12/21(金) 17:00:05 ID: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さん :2007/12/21(金) 17:00:17 ID: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さん :2007/12/21(金) 17:01:30 ID:bUxsI4En
すみません、間違えました ×入力されたID・パスが違うとき ○接続エラーのとき
自分で立てろカス
116 :
105 :2007/12/21(金) 17:35:04 ID:Bll92Vnt
>>107 ありがとうございます。助かりました。
>>106 すいませんでした。Ethna固有の機能ではなかったので「Ethnaの環境でやってます」という意識でした。
>>110 音楽ファイルを読み込む前か後ろにカウント処理
119 :
110 :2007/12/21(金) 18:42:10 ID: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を発動できれば解決なんですが・・・。
そりゃそんなところに仕込めばページカウンターになるw
121 :
110 :2007/12/21(金) 19:49:36 ID:mCAqxYSI
どこに仕込めばよいのかがわからないです・・。
>>119 >埋め込みのメディアプレーヤーの再生ボタンを
>押した瞬間にPHPを発動できれば解決なんですが・・・。
むり。どうしてもやりたいならAjaxとかFlashつかえ
1.再生ボタンを素材で用意して、そこを押すと再生ページに移動 2.FlashでActionScriptで組み込む
124 :
110 :2007/12/21(金) 20:00:51 ID:mCAqxYSI
>>122 無理でしたか。それが分かっただけで一歩進めました。
ありがとうございました。
>>123 ありがとうございます。
windows, xammp な環境で
ttp://localhost/rawurlencode (UTF8なファイル名).html
のようにアクセスすると、ローカル上の
UTF8なファイル名.html
ではなく
SJISなファイル名.html
にアクセスしにいくんですが、これってどういう理屈かご存知の方いませんか?
firefox, ie7 共になります。
これって windows じゃなくて linux サーバ上だと
EUCなファイル名.html
を見にいったりすることになるんですかね?厄介。
>>1 ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
127 :
nobodyさん :2007/12/22(土) 00:15:38 ID:YFLFW+ip
echo <<<EOF 〜〜 EOF ってのがよくあるけど、この〜〜の部分で関数を実行できないの? echo <<<EOF <td>$hoge->gethoge(1);</td> EOF って感じ。関数でなく、変数を書いてその値を表示ならできたんだけど。。
>>127 >>1 ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
129 :
nobodyさん :2007/12/22(土) 00:45:03 ID:VmEGw74T
教えて下さい。 よく、以下の表示を見るのですが、これはどのように制御しているのでしょうか? セッション数を取得して閾値を越えたら、この表示を出すといった処理なのでしょうか? 私も作りたいとは考えているのですが、何を基準にしていいいのか分かりません。宜しくお願いします。 現在アクセスが集中しています。 現在アクセスが集中しており表示しにくい状態となっております。 申し訳ございませんが、しばらく時間を置いてからアクセスするようお願いいたします。
>>129 httpのステータスコード見て判別すれ
>>129 考えられる方法
1.apacheの設定
セッション使うのはもったいないからapacheの設定だな
133 :
133 :2007/12/22(土) 03:51:34 ID:PQDDH9MU
レン鯖やヤフーメイルで仮登録 →メールが送られてきて、リンクをクリックすると本登録 →サーバスペースやメールboxが作られる この一連の動作を自分のサイトで実現しようと思ったら何を勉強すればいいだろうか。 phpとDB系を組み合わせればできる?
>>129 DB関連でエラー出たらそれ出してるんだと思ってた。。
セッションやApacheへの接続数より、DBがボトルネックになることが
多い気がするし、「現在アクセスが集中しています。」の表示が出るまで
ちょっと時間かかるサイトが多いし。
ただしDB接続エラーでこれ出すだけでもDBに負荷かかるんで、132の言う
通りApacheでやるのが一番いいかなあ。
Apacheの設定、PHPでセッション数、DBの接続エラー全部でそういう処理
入れといて、DBの接続エラー出る前にApacheの接続数の上限に達する
ようにうまく調整するのが一番よさそう。
>>133 メールサーバとサーバOSもかな。Webサーバもね。
・仮登録メールを受信してPHPを実行する仕組みが必要。これはメールサーバ。
本登録用のメールはPHPがメーラーの役割を果たして、メールサーバ利用して
返信する。
・サーバスペースは物理的にHDDにフォルダ作ることになるから、PHPからシェル
コマンド叩くとかの処理がいる。手動であらかじめ作っといて、空きがないなら
登録拒否とかでもいいかもだけど。。
・メールボックス作成はやったことないんでよくわからん。
コマンドラインでそういう処理ができるメールサーバはありそうだから、やっぱり
PHPから実行することになるかな。これも手動であらかじめ、ってできるかもだけど。
・Webサーバの知識はWebアプリ作る以上当たり前。
その機能を実装するだけなら通り一遍の知識でも動くと思うけど、
サーバスペース貸与サービスってレンタルサーバでできるのかな?
できないなら自分でサーバたてて運用することになるんで結構大変。
特にメールサーバは下手に立てるとWebサーバ以上に迷惑をかけることになるので。
知り合いがそういうサービス個人でやってたけど、自宅にサーバ
置いてたしなあ。
136 :
127 :2007/12/22(土) 05:00:56 ID:???
自己解決しました 一旦外で実行してから読み込めばいいんですね どうもお騒がせしました
>>133 分かりにくい質問だけどメールサーバ関係ないんだろ?
セッションやmd5でユニークな値を持つチケットを発行すれば済む話
138 :
133 :2007/12/22(土) 06:35:51 ID:???
>>135 レスありがとうございます。
実は趣味で自宅鯖立てて、最近スペース貸出を考えているのですよ。
それでそんなプログラムできればいいかな、と。
PHPって結構いろんなことできるんですね。PHPを習得するとともに、まずメル鯖立てるために固定IPゲットせねばw
135さんのレスをもとに勉強の方針立てて頑張りたいと思います。
ところでこんな時間にレス、て何者?w
今日は休日だからな。 自鯖立てるのは結構だが、質問内容からするとかなり不安なので、 最初は審査はさんで手動登録にするとして、鯖管としての勉強をするのが第一。 踏み台になって周りに迷惑かけないようにね。
140 :
133 :2007/12/22(土) 11:10:17 ID:???
141 :
nobodyさん :2007/12/22(土) 11:21:56 ID:JyLvDbSd
classが存在するか調べる方法はありませんか? PEARでDB.phpが読み込まれているかチェックするために クラスチェック("DB")のようにしたいのです
142 :
nobodyさん :2007/12/22(土) 11:24:26 ID:JyLvDbSd
class_existsで解決しました
143 :
nobodyさん :2007/12/22(土) 13:21:02 ID:iV97cpSO
$str = "1+2+3"; というようになっているstring があったとして、 これを数式だと解釈して 1+2+3 (= 6) を返すような関数て ありましたかね?
145 :
nobodyさん :2007/12/22(土) 13:36:39 ID:iV97cpSO
>>144 ありがとう。
$str = "1+2";
echo $str. "\n";
eval("\$str2 = $str ;");
echo $str2. "\n";
解決した。
146 :
138 :2007/12/22(土) 13:46:19 ID:???
>>133 まあ鯖管やるといろいろと勉強になるし、がんばってくれ。
ただ139と同意見でもあるので、いっぺんにいろいろやろうとせずに
PHPならPHPだけって感じでやっていったほうがいいと思う。
メールサーバは半日放置すればすぐ踏み台にされるし、他のメール
サーバの管理者から文句が来たり、ISPその他から警告来ることがあるよ。
147 :
nobodyさん :2007/12/22(土) 15:17:14 ID:JyLvDbSd
PEARのmimeDecodeで $structure = Mail_mimeDecode::decode($params); をしたときに、メールの件名・本文の文字コードを取得したいのですが、 本文はcontent-typeにありますけど、件名がありません。 どこで取得すればよいのでしょうか?
148 :
nobodyさん :2007/12/22(土) 15:29:17 ID:XDbomIjm
本でもWebでもいいんですが、PHPの長い良質なソースコードないですか? 勉強したいので。。独学ですが、普通の本のソースじゃものたりなくなりました。。 よろしくお願いします。
>>148 pear
zend framework
あたりかな
150 :
148 :2007/12/22(土) 15:40:37 ID:XDbomIjm
>>149 どうもありがとうございます。その2つをとりあえず見てみます。あと、思いついたんですが
洋書でいいのないですかね?あっちの方が本格的な気がして。。洋書でいいのを知っている方
教えてください。よろしくお願いします。
シェル形式(perl形式)のコメント#って廃止予定とかあったりする? あまり使われてないようだけど、#がスクリプトに混ざってたりしたら気持ちわるかったりするのかな #昔書いたスクリプトで、いたるところにコメントで/* */を使ってあるのをメンテしてて、 #/* */使って問題箇所を切り分けようとしたら酷い目にあった
>>150 「気がする」程度なら必要ない
それよりまず日本語ドキュメントを完全マスターすべし
>>148 PHP5でクラス使ってるのが所望なら、mediaWIKIおすすめ
俺はめまいがして静かにエディタを閉じたけどw
ユーザーが入力した式を evalで実行してます。 (計算機のようなものです) でもこうすると、ユーザーがたとえばファイル読み書きなんかの 命令を入れたら実行されてしまいます。 なんかいい方法はありますか? ちなみに単純な計算機ではなく、関数など複雑な 式を入力することが出来きることが条件です。
pearなんてあんま良質とは思えないのも多々ある訳だが 動物本でも読んだら?
pearといえばNET_IP_V4←うろおぼえ で、どんなIPアドレスでもネットワーク内ある(trueになる)という、 物凄いバグありバージョンがあったな 設置だけして使ってはいなかったけど
>>154 自分も式を扱うプログラム書いてるけど、色々処理が必要なので真面目にパースしてる。
簡単に済ませるなら、正規表現で計算式以外の要素が無い事を確認するのが良いんじゃないかと思う。
正規表現では対応しにくいようなら、Tokenizer使って分解してチェックじゃないかな。
http://jp2.php.net/tokenizer
>>154 >>1 ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
161 :
148 :2007/12/22(土) 19:01:21 ID:???
>>152 日本語ドキュメントもしっかり読んでみます。ありがとうございました。
しかし、ソースを打ちたい。。
>>153 MediaWikiをググって見てみました。今のところどういうものかわかりませんが
時間ができたらよく調べてみようとおもいます。どうも有用な情報ありがとうございました。
お二方、お礼が遅くなりすみませんでした。ありがとうございました。
>>150 Advanced PHP Programming
がいいよ(洋書)。
>>162 すごい、きになる。
やっぱ洋書がいいのかなあ
別に変わらんと思うが
そりゃまぁ、書いてある事は同じだろ。 というか違う事が書いてあったら困る。
>>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さん :2007/12/23(日) 03:32:32 ID:KIQSv7/M
[a.php] <? $hoge = 'a'; 〜インクルードここまで $hoge = 'b'; ?> [include.php] <? include 'a.php'; echo $hoge; ?> $hoge = a にしたい場合、ifで制御する方法はありませんか? include_break();みたいな
168 :
167 :2007/12/23(日) 03:33:34 ID:KIQSv7/M
ifで制御 → if以外で制御
ファイル分ければ?
>>167 わざわざ難しく考えないで、今できる知識で組めよ。
コードを今の10倍の量を書いたとき、新しい技法を覚えるってことよ
phpに関する初歩的な質問です。書いたコードは下に示します。 htmlquickformでメールフォームを作りたいのですが、その過程でprocess関数を使うところでつまづいてしまいました。 process('test',false)としてfunction test($values)と受け取るのですが、 具体的にvaluesが何の値を受け取っているのかがよく分からないのです。 下のコードでいうと function mail($values) { mb_send_mail(??????????????); } のところで、「valuesって一体何?」と思うわけです。 直感的にmb_send_mail(:::@:::,$subject,$body);としてもダメなようですし、、、混乱してます。(C→phpとやってきたからかな、、、
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(??????????????); } ?>
◆質問する時の注意 ・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ) ・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。 ・ 己の行った操作、変更などを詳しく明記すること。 ・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。 ・ 質問者として、態度をわきまえること。 ・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
SimpleXMLElementで、 <data> aaa <p>bbb</p> ddd </data> てなXMLの"aaa"とか"ddd"のようなTextノードにはどうやって アクセスしたらいいでしょう?? asXML()すると復元できるんだよなぁ
175 :
nobodyさん :2007/12/23(日) 06:23:36 ID:/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の意味がない
XMLはあまり得意じゃないんで補足を待ちたいが、"aaa"とか"ddd"ってそれぞれ 単独のテキストノードなの? aaa〜dddまでひとつのノードじゃないかって気がするんだけど。 <data></data>しかないじゃん。 さらにそのサンプルは<data>zzz</data>にしてる気がするんだけど、 "aaa"や"ddd"へのアクセスってのとの関連がよくわからん。
んでいちお意図を汲み取ると
<?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"が取得できる。
後半意味が分からんのは変わらんので、
http://jp2.php.net/manual/ja/ref.simplexml.php ここの例の部分よく読んで意図がちゃんと分かるように書き込みやがれこのキャベツ野郎。
あ、書いたXMLが正しいかどうかはとりあえずメモ帳当たりにコピペしてXMLで
保存してIEあたりで開けば分かるよ。
>$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 :2007/12/23(日) 07:45:21 ID:/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 :2007/12/23(日) 07:49:19 ID:/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(); ?>
すみません質問です。 ヒアドキュメントの中で、プルダウンを動的に生成できません というか、ヒアドキュメント外で実行した関数の値(プルダウン表示)を中に 持ち込めない状況です $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さん :2007/12/23(日) 10:37:51 ID:6DPIzhWO
すみません 上の181書き込みe-mail欄を消去しそこねました アドバイスよろしくお願いします
おっぱいカッコ
184 :
nobodyさん :2007/12/23(日) 11:42:34 ID: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を見ても、どの条件が該当するのか分からなかったので よろしくお願いします。
186 :
nobodyさん :2007/12/23(日) 12:12:21 ID:MvcJEZMN
>>185 すみません、質問が悪かったですね。
Manualでは表示のためにwhileでfor文を繰り返してることは分かるのですが
!== FALSEがファイルの終端での全処理終了条件であることを除けば
単純にfor文を繰り返してるだけに見えるんです。
ABCDEABCDE...とループを繰り返さないための条件が何処に該当するのか、
ご教授お願いします。
>>186 fgetcsv()すればファイルポインタが1行進む。
しまくればいずれEOFに到達して終わる。
188 :
nobodyさん :2007/12/23(日) 13:01:34 ID:MvcJEZMN
>>187 whileの継続条件で用いられているfgetcsvが、
同時にポインタを進める役割も果たしてたということですか。
ポインタについてあまり学んでいないので気づきませんでした。
回答ありがとうございました。
189 :
nobodyさん :2007/12/23(日) 13:06:40 ID:Dd+txFZ/
質問です。 変換するコマンド、をexecさせたいのですが、 どうしても引数を受け取る関数が必要なのでしょうか? 例えば、 exec("convert $hoge $huga); $hogeが引数のファイル $hugaがconvertした後のファイル としたいのですが、失敗してしまいます。
上の文を訳しなさい。【30点】
質問です。 FATをNTFSに変換するコマンドconvertをPHPのexec関数で実行させたいのですが どうしても出力を受け取る第二引数が必要なのでしょうか? 例えば、 exec("convert $hoge $huga); $hogeが変換するファイル名 $hugaが変換後のファイル名 としたいのですが、失敗してしまいます。
192 :
nobodyさん :2007/12/23(日) 13:39:07 ID:j7tEfXX4
質問があります。 PHP+PostgresqlまたはPHP+mysqlでシステム を作ろうと思うのですが、PHP5が認識をしてくれません。 PHP info();でその部分がでてきません。 なんのパッケージをインストールしたらいいのでしょうか? OSはFedora core4です。 板違いかもしれませんが、よろしくお願いします。
SQLを、じゃない?
195 :
194 :2007/12/23(日) 13:48:45 ID:???
誤爆
>>192 板違いです
「fedora core4 php mysql インストール」とかでググレカス
板違いだが教えよう。 普通はyumでいれればパッケージ全部はいるはずだが、あとはphp-mysqlを入れればよいはず。php関連に限っていえばね
198 :
176 :2007/12/23(日) 15:49:32 ID:???
>>175 そのXMLであってるのか。。
DOM的には確かにノードの扱いはそうなると思うけど、XML的には
\naaa\n<p>bbb</p>\nddd\n がひとつのノードになるのは確かだと思う。
なので、
・DOM使ってXML的にもノードがばらけるように変換する。
・XML文字列を適当に文字列変換する。
くらいしかやっぱりないような気がするけどなあ。
>>175 、
>>176 \naaa\nはTextNode
<data></data>、<p></p>はElementNode
firstChildNode、SiblingNodeとNodeTypeとかでとれる気もするけどXMLってそういう使い方はしない気がする。
そしてSimpleXMLElementにそれがあるかどうかは知らない。
200 :
nobodyさん :2007/12/23(日) 17:04:49 ID:4Xlz9Mde
複数の変数をいっきにチェックしたいのですが効率的な書き方ありませんか? if (empty($var1) && empty($var2) && empty($var3)) 今こんな風になってます。
自分で関数を作る
emptyて !$hoge と同義じゃなかたけ?
204 :
175 :2007/12/23(日) 18:08:04 ID:/N04QiDA
>>175 XPathでもXQueryでもSAXとかも全部別々にあつかうし
XMLでも、それぞれ別にあつかうよ
>>198 それについては、
>>179-180 に
結論としては、やっぱ無理っぽい
SimpleXMLElementって名前な時点で、Elementノードしか
無理じゃないかな〜て気はしてたんだ
それでもやるなら、SimpleXMLElement派生させるなりHelper関数用意するしかないっぽい
205 :
175 :2007/12/23(日) 18:11:12 ID:/N04QiDA
>>202 変数限定(返り値や即値は使えない)ってことと
UndefinedVariableエラーにならないってとこらが違うかな。
208 :
nobodyさん :2007/12/23(日) 19:56:37 ID: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); みたいな文に変わってるのですが、結局どっちでもいいのでしょうか? かなり戸惑ってまして一から勉強しないと全く分からない状態で・・。
>>200 1つのメソッドにする。
by 「リファクタリング」
>>208 mysql関数を使うスタイルとmysqliを使うのは
好き好きでいい(でもPHP5以降ならmysqli使った方がスタイルが入り混じらないので良い)
けど、後者のサンプルにあるプリペアードクエリの発行の仕方は反映した方が良いよ。
>>208 練習したり、ちょっとした使い捨てでないなら、どっちもよくない
PDOでもadodbなりPEARのライブラリなり、何でもよいが、
なんらかのインターフェイスでラップするべき
お薦めは、PDOだ。
212 :
nobodyさん :2007/12/23(日) 20:24:33 ID:2UmaE0fQ
pdoってなんですか?
213 :
208 :2007/12/23(日) 20:38:27 ID:Lt3D3rib
>>210 ありがとうございます。
prepareはたしか、パフォーマンスの向上と自動的にエスケープ
されるんでしたよね。
>>211 参考になります。ありがとうございました。
>>212 PHP Data Objects (PDO)
俺が説明するより検索したほうが確かな情報が得られると思うので。
214 :
208 :2007/12/23(日) 20:51:51 ID:Lt3D3rib
あ。。。 mysql4.1移行はmysqliを使わないとだめなんですね。。 サーバーが4.1以降だからmysqli使わないと・・・。 勉強しなおしか・・・。
別にmysqlでも書けるけど
216 :
208 :2007/12/23(日) 21:34:13 ID:Lt3D3rib
>>215 え?
試してみましたがエラーになってしまいます・・。
エラーになったと言われても エラーを晒さないと解らないな ・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
218 :
208 :2007/12/23(日) 21:44:48 ID:Lt3D3rib
>>217 大変失礼しました。。。
平凡なエラーなんですが
Call to undefined function mysql_connect
です。
なんか凡ミスしてるっぽいなぁ・・・。
ぉぃぉぃ…
>>218 エスパーなので、Windowsだということも判るし
php_mysqli.dllが読み込まれてるのに
php_mysql.dllは読みこまれてないということも判る。
221 :
208 :2007/12/23(日) 22:18:13 ID:Lt3D3rib
!! あなたの言うとおり! ありがと。
すげえw
以上、自演でお送りしました
ID:Lt3D3ribが楽しそうでなによりだ。
225 :
nobodyさん :2007/12/24(月) 00:48:15 ID:sRF6QhUm
192です。 fedora core4 php mysql インストールで ググッてみたんですが、でてきません。 また、今後はどこの板で聞けばいいでしょうか? 後postgresqlも認識してくれないのですが。 php-mysqlと同じでいいのでしょうか。 すいませんが、よろしくお願いします。 このことに関するサイトがあれば教えてください。
226 :
221 :2007/12/24(月) 00:59:41 ID:PecBMOMk
あるサイトに昨日アクセスした際にスクリプトエラーが出て、 その内容が画面に出た際、xxx.incの何行目のエラーとか出た。 試しに、xxx.incのURLで指定したら、そのソースが丸見えwwで、 その中にDBの接続のためのパラメータ(ID、PWDまで)まで書かれている。 こんな馬鹿な作りをしているサイトに天誅を下そうと思うのだが、 面白い天誅の食らわし方ない? 知っている人も結構多い、大きめのサイトなんだが。
>>228 は?直ちに管理者にその旨を連絡するべきなのに、悪用しようなんてお前が逆にリアル天誅を食らうだけだから
一応言っておくと、明示的に公開されていないものに対してのアクセスで逮捕された前例もある
230 :
192です。 :2007/12/24(月) 03:19:58 ID:sRF6QhUm
226さん、227さんありがとうございます。 postgresqlも使いたいのですが、yumでphp側のインストール はなにをすればよいでしょうか? サイトがあれば、サイトはありがたくブックマークしました。
231 :
208 :2007/12/24(月) 05:28:08 ID:PecBMOMk
>>229 「リアル天誅」ウケたwwwww
>>230 ごめんよ。fedora core4 とか初耳だし
OS違うとそんなにインストの方法が変わるなんて
知らないし、教えてあげられんよ。。。
>>230 検索ぐらいしようぜ
yum postgre phpとかで検索すれば直ぐ出てくるだろ
>>229 じゃ、リアル天誅を食らわないように、日本の捜査権が及ばないクラッキング集団のサイトとかないの?
そこで、IDとPWDさらせば問題ないってことだよね?
234 :
nobodyさん :2007/12/24(月) 09:30:50 ID:P1UMzL+u
phpMyAdminでCSVデータをインポートする時に、 CSVのフィールド囲み記号は「"」で指定すると、 データの数値で「"」で囲まれていない部分があると読み込んでくれません。 (「フィールド数が合わない」とエラーが出ます。) もともとこういう仕様なのでしょうか・・・? それだと、ダウンロードしてきたデータが読み込めなくて大変です (基本的に「"」で囲まれているのは文字列だけなので)
>>233 やー、考え浅いぞ
そういう奴らそもそも裏取るまで行動起こさないし、まずそういう情報投げた奴を洗うし叩くし。要はここと大差ねえな
そういう厨房っぽい所存でいくなら、ハッカーになりたがってるご同類の
サイトの掲示板にでも書き込んだ方がいいんじゃねえの。
無論揉め事になったら煽動で関わった事になるけどな
忠告はした
alt.2600あたりでぐぐってあとはお好きなように。類似のアレなのも色々芋蔓で引っかかるでしょう
一応先に自衛でtorやらのなんとかする品物でも入れとけよ
>>235 詳しくサンクス。参考になった。
最近多いんだよな。素人のくせに自鯖立てて踏み台にされて迷惑掛けているやつとか、
簡単に会員の個人情報がわかるようなサイトとか、
こういうのは天誅を下さないとダメだろうなぁ。
こういう奴に限って、過失を認めず、過失を認めても誤って終わりとか。
警察や役所やプロバイダーやクレジット会社から個人情報が流出しても、損害賠償なんてしないし、天誅しかないな。
ちなみに、俺はクレジット会社から個人情報が流出されて、 一時期毎日のようにサラ金業者から電話に掛かってきた。 テレビで報道されているのを知って、苦情言っても、 謝っても、それは私たちから漏れている情報ではないかの一点張り。理不尽な世の中に天誅を。
世知辛い大義名分だなあ もっと理性的な説諭の手段がありそうなもんだが。 ま、ただの感想だ。流してくれや
239 :
192 :2007/12/24(月) 11:13:48 ID:sRF6QhUm
240 :
192 :2007/12/24(月) 11:14:47 ID:sRF6QhUm
連続すいません。 上記のがみつかったのですが、 ほかにもっと詳しく書いてあるサイトはないかな? 知っている人よろしくです。
もっと詳しいのが必要ってことは、そこの手順と対処方法で躓いたんだよね? どこで躓いたのか明記しないと誰も有益な情報返せないんじゃないかな 只でさえfcな人がどんだけ見てるのか判らんのだし。 linux板とか当たってみるのもありかも
なんとか苦労してApache2.0とPHP5をインストール完了。
ブラウザはFireFoxを使ってるんだけどアドレスバーから「
http://localhost/abc.php 」と打つと
問題なくページが表示されるんだけどフォルダからダブルクリックで「abc.php」を開くと
ブラクラみたいにタブが無限に開いていってしまう (; ´Д`)
どうしたらいいんですか・・・・?
>>242 abc.phpのどっかが無限ループになってるんでしょ。
winならxamppという便利なものがあんのに。
244 :
nobodyさん :2007/12/24(月) 15:48:25 ID: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だとボタンの名前として表示されるため他の方法を探しています。
>>244 var_export($_GET); したものをtest1、test2のクリック時に見比べてみ
isset()
247 :
244 :2007/12/24(月) 17:11:12 ID:tHEPo1ls
>>245 valueの値だけは違いがありますね。
input-submitじゃなくて
button-submitを使いボタン名をvalueとは別に設定することで解決しました。
レスありがとうございました。
どうみても押したボタンのnameとvalueのセットだけが送信されます。 本当にありg(ry
249 :
244 :2007/12/24(月) 17:29:41 ID:tHEPo1ls
別の処理でうまくいった気がしたので過信してました。 本当にありがとうございました…。
250 :
244 :2007/12/24(月) 17:54:23 ID:tHEPo1ls
あまりに下らないので、スレ汚し続けたくはないのですが間違いがあったので訂正だけ。
<button type="submit" value="test" name="test1">内容</button>
だとvalueに設定されているtestは送信されなくて、内容が送信されるようですね。
手元のHTML本ではvalueが送信値となってますが、仕様変更でもあったのか。
>>248 さんのご指摘とは違い他フォームの内容もちゃんと送信される模様です。
>>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>
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>
まじで? IE7でも相変わらず腐ってるんだな・・
imap_open とかでサーバ側のエラーメッセージ(たとえば、LoginError)を 取得したいのですが、基本的に不可能でしょうか? ZendFrameworkのZend_Mail使ってみたんですが、 オブジェクト指向を完全に理解していないオイラには かなりつらい部分があったので、imap関数に移ろうとしてるのでつが。
255 :
255 :2007/12/25(火) 09:05:15 ID:Coxwnlyh
linux環境でphpを勉強し始めて5日の者です。phpのサンプル集を買って勉強しているんですが、 その中のメールフォームサンプルを自分のサイトの隅っこに置いて、apacheを起動させて動作確認してみたところ、 フォームに文字入れて確認画面に進み、送信を押すと 本当は「送信成功しました。or失敗しました。」と表示されるはずが、何も 表示されず、メールも送られていません。php.iniはデフォのままなんで、そこがダメなんじゃないかと思うのですが、 どうなんでしょう。書籍には何も書いてないです。
エラーのときどうする、って話が書いてない本はダメだね。 そういう本(書いてない本)多いけど
zend_extensionとextensionの違いってなんでしょう? 何時もphp.iniに書く時に迷う・・・
258 :
nobodyさん :2007/12/25(火) 11:15:16 ID:M0LvCdnx
>>255 送信しましたor失敗しました あたりのソースうp
質問ですが、SQLインジェクション対策ってどうしてます?
自分はMySQLを使っていたので、mysql_real_escape_strngを使っていたのですが、
他のデータベースでも書き換えなくていいように、全てのデータベースで活用できるような
インジェクション対策などありませんでしょうか?
pdo丸投げで一切自前では対策してないけど、それでいいのか不安w
test.iniってファイルを parse_ini_file("test.ini",true); で読み込むとshift_jisで読み込まれちゃうんですが、ファイル読み込みのエンコーディングをUTF-8にしたいんです。 iniや表示するphpファイルは全てUTF-8になっています。 php.iniでファイル読み込みのエンコードとかでしょうか? iniの中身は ------------------ [友達] "佐藤" = "コスプレ" "伊藤" = "女装" ------------------
263 :
nobodyさん :2007/12/25(火) 13:31:06 ID: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
>>263 とりあえずキーはダブルクォート出来ません。
265 :
nobodyさん :2007/12/25(火) 14:41:28 ID:Kk9QHm5I
>>264 そうなんですか、それでも文字コードの問題は残るので解決方法があればお願いします。
ひとまずキーにダブルクォートで動いてはいます。
キーを英語にし、ダブルクォートでも文字化けは変わりませんでした。 一応ご報告を
267 :
nobodyさん :2007/12/25(火) 14:47:22 ID:V7kmAO2b
非常に下らないかもしれませんが、EOSでの質問です。 $bbb[0]['abc']="表示テスト"; $a=<<<EOS <table> <tr> <td>$bbb[0]['abc']</td> </tr> </table> EOS; print $a; EOS内で連想配列の変数を簡単に吐き出す方法はありますか? そのままだと Array['abc'] となってしまいます・・。 変数に入れ直せば良いのですが種類が多いと大変で・・ 皆さんはどうやってますでしょうか。
268 :
nobodyさん :2007/12/25(火) 14:51:23 ID: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) です。 よろしくです。
>>267 変数を挿入するときは
{$bbb[0]['abc']}
のように括りましょう。
270 :
nobodyさん :2007/12/25(火) 14:57:18 ID:V7kmAO2b
>>269 即答ありがとうございます!それだけで良かったんですね
基本的な方法が分からずにいろんな遠回り処理した上で
えーーそんな簡単にできたの・・みたいな事がよくあります
有難うございました。
>>268 404時のエラーログに出るフルパスは同じもの?
272 :
268 :2007/12/25(火) 15:51:19 ID:???
>>271 IISのログには相対パスのみ出てまして、httpとhttpsとで別サイトとして登録してますので
パスは別物です。
>>263 自己解決しました。
凡ミスだったので気にしないでください・・。 ;-;
PHPのメジャーな統合開発環境って何ですか? フリーので。
>>273 ヽ(・ω・)/ ズコー
\(.\ ノ
276 :
nobodyさん :2007/12/25(火) 16:41:01 ID:Kk9QHm5I
>>275 すいません ><
ID出し忘れたので偽者と思われないようにも返信しときます・・
>>274 ヽ(・ω・)/ ドボン
\(.\ ノ
>>274 EmEditor→phpエディタ→phpeclipse→zend
と使ってきたけど俺はphpeclipseが一番使いやすかった
279 :
nobodyさん :2007/12/25(火) 19:39:53 ID:YdyXWQpG
280 :
nobodyさん :2007/12/25(火) 20:31:12 ID:qdKsQYMA
質問です。 array("aaa" => "bbb", "ccc" => "ddd" "???" => "fff") この配列から「三個目の要素」であること、又は「値がfff」であることから、 不明なキー名である???のみを抜き出したいのですがどのような方法があるでしょうか。 よろしくお願いします。
282 :
nobodyさん :2007/12/25(火) 21:14:34 ID:qdKsQYMA
>>281 普通に定義されてるんですね。回答ありです。
>>283 やめとけ、その釣り針に味わいどころがあるようには思えない。
下記 ※※※ の部分に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 :2007/12/26(水) 00:57:53 ID:???
// 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); } }
288 :
285 :2007/12/26(水) 01:08:43 ID:???
>>287 CentOS 5.1
PHP 5.1.6
apache 2.2.3
これ以外しか思いつきません。
289 :
285 :2007/12/26(水) 01:10:06 ID:???
×:これ以外しか思いつきません ○:これしか思いつきません
CentOSってのもあるのか…… Linux界隈、ディストリ間の差異大杉でFreeBSD派にはついていけねえな
カーネル一緒なんだから大差あるようで本質的には大差はない
プリインストールされてるソフトが違うWindowsみたいなもんだからな
>>285 > PHP Parse error: syntax error, unexpected '/'
PHPの文法レベルでエラーが出てるんだからフルパスとかコマンドの違いとか全然関係ねーよ。
> /usr/bin/convert オプション $image_temp $uploadfile;
> にすると、
ってこれ、PHPのソース中にシェルコマンドを生で書いてるのか?
PHPはシェルスクリプトじゃねーぞ?
system()とか使えよ。
294 :
nobodyさん :2007/12/26(水) 10:54:23 ID:WFCxb7oZ
ローカル側のphpとサーバー側のphpで、相互通信する仕組みを作りたいのですが、 どのような実装方式が一番楽な方法でしょうか? 例 ローカルphpが、サーバー側phpを呼び出す サーバー側phpが処理を実行し、実行結果を返す ローカルphpがサーバー側のphpの実行結果を受け取り、その実行結果により処理を条件分岐する このような感じで、サーバー側の実行結果によってローカルの実行結果が異なります。 ソケット通信での実装を考えたのですが、少々面倒なので、もっと簡易にできる方法があれば助かります。 宜しくお願いします。
>>294 レスポンス速度重視でないならば、http で通信すればいいんじゃないの。サーバは apache経由にして。
soap
>>296 PHPネタじゃないけど、soapってどうなの?
以前 Javaでやったときは、なんか中途半端に隠蔽されて自由度が低いだけって印象なんだけど。
PHP.iniの設定で auto_prepend_fileを使いたいのですが、 一部のディレクトリんは適用させたくないのですが、 その場合どのように記述すれば良いのでしょうか?
299 :
298 :2007/12/26(水) 13:16:09 ID:0y2BVKsS
すみません、sageチェックついてました お願いします
つ auto_prepend_file htaccess
301 :
nobodyさん :2007/12/26(水) 13:33:05 ID:0y2BVKsS
>>300 ありがとうございます
すみません、書き忘れていました
レンタル鯖の仕様によりhtaccessでのphp_value・flagが仕様できないのですorz
情報小出しに日本語不自由か…ダメダコリャ
これでまた、何か案を出したら、それはすでにやったんですが・・・ と続くからなw
そして最後には、お前ら使えねーな、で締めるのか
305 :
nobodyさん :2007/12/26(水) 16:07:23 ID: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さん :2007/12/26(水) 16:10:25 ID:0y2BVKsS
>>305 リクエスト毎に 1) の処理を行うの?
そうならヘンだと思うが。
308 :
305 :2007/12/26(水) 16:32:50 ID:5CJgBllV
>>307 ありがとう ごめんなさい、間違えました
LogInは初期化しません 最初にチェックするだけです
あと、今思ったんだけど、最初のログイン時にランダム値を持たせといて(DBにも登録)
それもリクエストごとにチェックするとかの方がいいのかな?
それがセッション名(?)てことだからわざわざやらなくていいんでしょうか?
乱数を設定しても意味は無いだろうけど、「ログイン状態のフラグ」を管理するぐらいなら、 誰がログインしているのかという、「ログインユーザのID」を管理した方が良いと思う。 ログイン後は、それが誰だかわからなくても良いなら、別に良いけど。
310 :
305 :2007/12/26(水) 17:23:39 ID:5CJgBllV
>>309 ログイン開始と終了を記入するテーブルみたいなのを作るわけですか?
考えたこともなかったです。
ログイン状態のチェックだけなら305の内容でokなんでしょうか 度々すみません
DBじゃなくてセッション変数の話。 「ログイン状態のチェック」が「だれかがログインしているが判定できる」なら、305の内容でOK。 普通は、このセッションでログインしているのが誰かも判らないと困るんじゃないかと。
312 :
305 :2007/12/26(水) 17:53:13 ID:5CJgBllV
親切にありがとうございます しかしセッションの知識が不足でよく理解できません idに依存したセッション名を発行するのかな、、 ちょっと勉強してきます ありがとうございました
313 :
nobodyさん :2007/12/26(水) 18:50:16 ID: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) :2007/12/26(水) 19:02:23 ID:drjhjm0k
>>前すれ734 回答ありがとうごいました。 レベル低すぎて誰も答えてくれないのであきらめてたんですが、今日見たら回答きてたのでお礼に伺いました。 またわからないことあったら教えてください。 遅ればせながらありがとうございました。
キー入力された時その場で変えたいなら JavaScript使うかAjax使わないと無理 phpはサーバーサイドスクリプトです
316 :
315 :2007/12/26(水) 20:45:19 ID:???
315は313宛ね
>>313 意味がわからない キーボードから受け取ったデータってなんだ?
サーバの送受信はするの? しないんだったらphpじゃなくてjavascriptでしょ
具体的にどういう操作と結果がほしいのかわからなきゃ回答不可だよ
C言語の本読んでもキーボードから1文字ゲットから先に進めない人 ノシ
$white = 'snow'; $black =& $white; unset($white); print $black; //snow これで snowが出力されるんだけど、$blackは$whiteの参照になってるから unset($white)で$blackの値も破棄されるんじゃないの? なぜsnowがprintされるのかわかりません。
321 :
320 :2007/12/26(水) 22:51:51 ID:???
良く見たら
>>320 とはちょっと違うパターンか。ごめん。
322 :
319 :2007/12/26(水) 22:54:50 ID:???
参照渡しの場合はローカル変数しかunsetされないでいいんかな
mb_send_mail()の引数の本文部分に 「>」を入れると 勝手に「>」にエスケープされるんですが、 ホワイ? 特に htmlspecialcharsとかかけてないんですが。。。
ethnaの$this->af->getで取得した変数だからでした。 勝手にエスケープされるんでつね。。。 mb_send_mail( $this->af->get('to'), $this->af->get('subject'), $this->af->get('body') ); みたいな送信の仕方できないですが、 一回エスケープしたのを戻すとかの作業するのが一般的なんでしょうか
325 :
324 :2007/12/26(水) 23:20:58 ID:???
いや、すんません ethna関係ないっぽいです、普通にやってむりぽでした。
326 :
nobodyさん :2007/12/26(水) 23:53:50 ID:5CJgBllV
条件分岐でページ遷移する処理をしたいんだけど Header関数(location)がエラー起こします。ほかに方法はないんでしょうか? echoでjavascript出力もできますがそれはあんまりなので、、 よろしくお願いします
327 :
nobodyさん :2007/12/27(木) 00:13:03 ID:kzcBaheO
>>326 飛ばしたいページのファイルをincludeすればいいんじゃね?
>>326 単に、header関数の前に何か出力されちゃってるんでない?
それか場所の指定に変数を使ったりしてるならそこがおかしいか。
特にローカルの開発環境だと、 キャッシュが効いて動作がおかしくなったりもするがな<header()
331 :
326 :2007/12/27(木) 00:57:52 ID: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:
http://localhost/system/ …らしいです
14行目は
>>111 のexit;なので、コメントアウトしたら(//exit;)今度は
unexpected '}'〜〜 と出ました。ただのif文なのに意味がわかりません
ググっても出てこないし、気が向いた方教えてください お願いします
構文エラーじゃん エラーの行なんて参考でしかないから /* */で囲みながら範囲をせばめてエラーで出てる箇所特定しろよ どうせ、おっぱいかっこ{}の数があってないとか、そういうのだろ
334 :
255 :2007/12/27(木) 03:55:57 ID:tJxOOzWu
>>258 遅れてすいません。
<?php
// メール送信先を指定します。
$to = "実際は指定しました。";
// フォームの値を取得します。
if ($_SERVER["REQUEST_METHOD"] == "POST") {
foreach($_POST as $k => $v){
// 「magic_quotes_gpc = On」のときはエスケープ解除
if (get_magic_quotes_gpc()) {
$v = stripslashes($v);
}
$v = htmlspecialchars($v);
$$k = $v;
}
}
else {
exit();
}
// メール本文を組み立てます。
$naiyou = "お名前:$name\n
メールアドレス:$from\n
タイトル:$title\n
内容:$naiyou\n"
335 :
255 :2007/12/27(木) 03:56:48 ID:tJxOOzWu
if ($name != "" and $from != "" and $title != "" and $naiyou != "" ) { if (mb_send_mail($to, $title, $naiyou, "From:$from")) { echo "メールを送信しました"; } else { echo "メール送信失敗です"; } } ?>
336 :
sage :2007/12/27(木) 05:13:26 ID:aXynhXDH
setcookieで「味噌」と日本語を食わして吐き出すと「?」となってしまいます。 ちなみにEUC-JPです。 ファイルを確認した所、保存時では「+%CC%A3%C1%B9+」とurlencodeされているのですが webで表示(print $_COOKIE[hoge];)するときだけバグります。 64encodeしてから食わし、64decodeして吐かすとも考えたのですが、 ファイル全部の保存と表示部分を直すことは大量すぎて辛いっす。 何かいい解決策は有りませんでしょうか。
337 :
336 :2007/12/27(木) 05:28:15 ID:???
sagemissしてすいません。 追加ですが「あへあへ噌」や「味噌漬け」はバグりません。
338 :
326 :2007/12/27(木) 05:57:19 ID:k02W1D9g
>>332 ありがとうございます
構文エラーということで、{の閉じ忘れなどチェックしてもなかったので、
ソースをガンガン削っていったら
1)これは動作する
<?php
header("Location:
http://www.yahoo.co.jp/ ");
?>
2)これは動作しない
<?php
header("Location:
http://www.yahoo.co.jp/ ");
exit;
?>
という状況になりました。ホントに上のソース以外一切何も書いてません
誰か同じ症状になった方いないですか? 参った、、
PHP5.2.3 winXP apache2です
339 :
nobodyさん :2007/12/27(木) 09:19:36 ID:jblLPn+a
ドメインについて教えて下さい。
ドメインを正規表現を使って省こうとしているのですが、
このようなドメインが有効なのですが、
ドメインの2番目で3文字以上ないといけないのではないでしょうか?
ドメイン名の規約とかないでしょうか?
http://www.ms.com/ (モルガンスタンレー証券)
>>326 例えば
header("Location: ./");
@file_put_contents("nnnnnnn.txt", "test" ,FILE_APPEND);//ファイル作成
とすると、表示はジャンプで終わるが読み込み処理は終わらずにファイルも作られる。
header("Location:
http://www.yahoo.co.jp/ ");exit;
@file_put_contents("nnnnnnn.txt", "test" ,FILE_APPEND);
だとexitで終了され、ファイルは作られない。
exit終了しない場合の後述によるエラー文表記は動作が不安定なので一概に言えない。
if(!$a){header("Location:
http://www.yahoo.co.jp/ ");exit;}
などとしてでも、Locationにexitはセットと考えた方がいい。
でもexitつけたら動作しないというのは初耳。
342 :
nobodyさん :2007/12/27(木) 09:27:56 ID:NgfmXqR6
んなもんRFC読めよw
>>305 SESSION使うと「戻る」が使えなくなるから、ユーザーがウザがるよ。
COOKIEでいいんじゃない?
めっちゃ重要なセキュリティーが必要?
> SESSION使うと「戻る」が使えなくなる んなこたーない
346 :
326=305 :2007/12/27(木) 10:41:55 ID:k02W1D9g
>>341 ありがとうございます 結局これは僕の環境の異常という他ないんですかね?
php.iniで自動的に全ファイルに共通読み込みさせる機能がONになってるのかと思い
チェックしたんですがそれも問題ありませんでした…
もうあきらめてjavascript出力してリダイレクトさせることにしました
回答いただいた方、ありがとうございました
>>344 「戻る」が使えないってどういうことでしょう?
本やサイトを見るとセッションを使ってるので自分もそうしようと思っただけで
深い判断はありませんでした
今は
>>309 さんのいう“誰がログインしているのかという「ログインユーザのID」を管理”
の方が気になってたんですが、、
「めっちゃ重要なセキュリティー」は意識してません 普通の会員システムで十分です
なんかすみません、わからないことだらけで
多分
>>344 が言いたいのは、複数のページにまたがって一連のデータを入力させるような場合、
「戻る」操作をするとブラウザ上の表示とセッション変数の状態が食い違うことがあることを
言ってるんだと思う。
セッションの使い方によっては「戻る」操作を禁止するのは定石だけど、セッションを使うと
ページ戻りできないって話はおかしい。少なくもログインチェックに使用しただけで、
ページ戻り出来ないってのはあんまりすぎる。
348 :
344 :2007/12/27(木) 13:16:55 ID:???
わかりにくくてごめん。 SESSIONをかましたページでデータの送信等をした際に ブラウザの戻るや進むで前の画面に戻ろうとすると 「セキュリティーのどうたら」ってエラー文がでて、送信前の入力データが消えたり 新しくリロードしないとページが表示されないようになる。 セッション値とかは関係ないけど、上記理由で 普通の感覚で「戻る」と「進む」が使えないから ID新規作成とか、何回もログインしない部分だけをセッション使用にして ログインとか一般的な頻発部分はクッキーの方がいいと書いたのです。 例、ログインID-A(mailとか)/Passの入力→ID-B(Noとか)と暗号化したPASSのクッキーを発行 各ページでクッキーによって本人承認を行い、1日〜4週間&ログアウトでクッキーを消滅させる。 暗号化といえばPHP5の初期設定のままで、md5(一方向)、base_64encode、 urlencode、mb_convert_encoding以外に使えるものってないですかね? C++のXORみたいなのは用意されてないのかな・・・
349 :
344 :2007/12/27(木) 13:21:00 ID:???
追記。凡ミス。 ×base_64encode → ○base64_encode
>>349 XORを用意ってビット演算子はあるんだからそれくらいの手間をケチるなよ。
...rot13とかなかったっけ? あとcryptも
>ブラウザの戻るや進むで前の画面に戻ろうとすると >「セキュリティーのどうたら」ってエラー文がでて、送信前の入力データが消えたり >新しくリロードしないとページが表示されないようになる。 これはフォーム送信した後に戻ろうとしたら「再送信します OK?」っていうアレのこと? セッションとは関係なくない?
>> 348 てゆーかセッションわかってる?
>>348 それセッションとかクッキーとか全然関係無いだろw
>>348 それは、no-cache の話じゃないかな。sessionを使うと自動的にno-cacheにしてしまうような
フレームワークがあっても不思議じゃないけど、一般論として、sessionを使うとno-cacheになると
いうものではない。
>>344 は、特定の環境で教えられたんじゃないかって気がする。
str_rot13() = 英字の置き換え ABCDE ←→ NOPQR crypt() = 一方向ハッシュ化 $1$Ze5.ut0.$9k5PF7d6Wogm4fjfYcViE0 cryptってmd5より有名だったと知らなかったPHP暦1年の俺が来たよ str_rot13についてはマイナーすぎて今知った
「crypt」って、エニグマと同じ方式による暗号化プログラムで、暗号化キーで復号できるものだと 思ってたんだけど、最近はcryptといえば単方向ハッシュであるものを言うようになったのか。 確かにPHPのマニュアルにも単方向って書いてあるし、何時の間にって感じなんだけど。
358 :
344 :2007/12/27(木) 14:40:06 ID:???
>>344 >>348 デス。
>>347 >>350-355 暗号化について解説ありがとうございます。早速今日から使ってみます。
sessionについても丁寧なご説明ありがとうございます。
今調べたらまさにその通りでした。
>>305 >>346 さんゴメンナサイ。
2年も間違ったまま覚えてたってやっべえ恥ずい。
どれぐらいって恥ずかしい性癖とかばれたぐらい?
反省してROMに戻ります。
>>357 たぶんUnixとかネットワーク関係プログラマ界隈では
crypt といえば crypt(3) のこと。
PHPのcryptもcrypt(3)の単なるラッパのはず。
>>356 rot13はたぶん一番古くて一番有名なそして一番弱い暗号だぞ!
シーザーさんをなめるな!
>>359 は、宝塚出身の女優と一緒だな。
本人は芝居上手だと勘違いしているが、押し付けがましいパフォーマンスに過ぎない。
だが、ぬくぬくと生き伸びていたりする。
過疎ってルナ
364 :
nobodyさん :2007/12/28(金) 01:18:59 ID:x8Ui+5jw
質問です。 次元数が任意の多次元配列で、その配列の要素数を数えながら 次元を自動的にさかのぼる処理をさせたいと思っています。 具体例を書くと、配列 $arr が下記のようなものだったとして、 Array ( [0] => hoge [1] => Array ( [0]=> koke [1]=> moke ) ) $arr[1]の要素数(2)を取得できるようにしたいと思っています。 この時、この配列の内容は事前に分かっていないため、 count($arr) が1以上ならば、その要素を調べ、 更に配列あればが自動的に添え字を付加して(ここでは「count($arr[0])」として) 上位次元を走査するような方法を思いつきました。 そこで変数に格納した添え字を配列変数に付加したかったのですが、 その方法が分かりません。 感覚的には、 $index = "[1]"; だったとしてとして $arr{$index}{$index} が 「 $arr[1][1] 」となり、「moke」を取得する、 というような動作を希望していますが、$index が文字列のためうまくいきません。 何か他に望む処理を行える方法があるでしょうか? よろしくご教示ください。
>>364 >>$index が文字列のためうまくいきません。
ここの意味が分からない。
$arr["$index"]["$index"]
って話じゃなくて?
>>364 $index = "[1]";
と、絶対使いにくそうな値を敢えて仮定する理由は?
つまり $index = "1"; $arr["$index"]["$index"] みたいな形がやりやすい方法です。
368 :
364 :2007/12/28(金) 01:53:54 ID:???
>>365-367 みなさんレスありがとうございます。
その問いが来るかな、とは思っていたのですが、うまく説明できませんでした。
>>364 の例でいうと、$arr が何次元の配列なのか事前に分からないところが
ネックとなります。
つまり処理を行う前に最高次元が「$arr[]」なのか、「$arr[][]」なのか、
「$arr[][][]」なのかが分からないため、決め打ちできないということが問題です。
そのため、「[]」の角括弧を最初から書いておく「$arr["$index"]」方式では
対応できないので、角括弧を後から自由に付加できるような形を
求めていたというわけです。
例えば、$i = 1; で $index = "[$i]"; ならば、
$arr . $index で「 $arr[1] 」となって欲しいと思っていました。
このような目的を満たす処理方法はありますでしょうか?
引き続き、よろしくお願いします。
最初から分かってたらなら書けと・・ 再帰的な手法は分かる? 「再帰的関数 php」とかでググッてみるといい
home/hoge home2/hoge4 home/hoge2 home/hoge3 home2/hoge5 これを ----------------- home hoge hoge2 hoge3 home2 hoge4 hoge5 ----------------- と表示させられるように配列処理したいのですが、 良い方法思いつきません、 お助けを。
◆質問する時の注意 ・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ) ・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。 ・ 己の行った操作、変更などを詳しく明記すること。 ・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。 ・ 質問者として、態度をわきまえること。 ・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
372 :
364 :2007/12/28(金) 02:21:01 ID:x8Ui+5jw
>>369 申し訳ありません。
>>364 の「この時、この配列の内容は事前に分かっていないため」で
伝わるかと思い込んでしまいました。
再帰処理については知っています。
今回の処理も再帰処理で、と思っていたのですが、
どうしても配列変数の添え字を自動生成する方法の所が分からなかったのです。
何か方策はありますでしょうか?
>>371 重ね重ね失礼しました。追記いたします。
サーバのOS: 「Windows2000」
Webサーバ: 「Apache 2.0.59」
PHPのバージョン: 「4.4.7」
以上の環境です。
なおこの環境は、OS 以外は利用しているレンタルサーバのスペックを
模倣したもので、この環境下での動作を求めています。
>>370 /でexplode()してキーと値に宛えば。
>>372 どうにも難しい処理だから微妙だけど
eval("return \$arr{$index};")
とか。
374 :
370 :2007/12/28(金) 03:17:21 ID:???
> キーと値に宛えば 詳しくキボンヌ
「キーと値に使えば」と予想 つまり home2/hoge4 を分割して $hoge["home2"] = "hoge4"; って形にすれ
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
http://pc11.2ch.net/test/read.cgi/php/1196511516/ ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
377 :
255 :2007/12/28(金) 06:41:54 ID:rEU4Fn3c
環境fedora7
<?php
if (mail('
[email protected] ','titile','message'))
echo "<b>SUCCESS TO SEND</b><BR>";
else
echo "<b>fail to mail</b><BR>";
?>
でfail to mailという方が出ます。
恐らくphp.iniの設定が不足しているんだと思いますが、
php.iniのsendmail_pathについてまだよく分かっておらず、とりあえずデフォのままにしてます。
ポート25は開けていませんがこれでいいのでしょうか。
378 :
255 :2007/12/28(金) 06:46:39 ID:rEU4Fn3c
sh: /usr/sbin/sendmail: Permission denied というログが出ました。
379 :
255 :2007/12/28(金) 06:48:30 ID:rEU4Fn3c
が、lrwxrwxrwx root root system_u:object_r:bin_t sendmail とあったので別にパーミッションは良いかと思います、、、もしかしたら bin_tをhttpd_sys_content_tにしなければならないですか。
381 :
255 :2007/12/28(金) 08:10:09 ID:rEU4Fn3c
有力情報ありがとうございます。SELinux disableにして実行してみたんですけど、やはりfail to mailでした。 ろぐ追加です。 [Fri Dec 28 06:18:37 2007] [notice] caught SIGTERM, shutting down [Fri Dec 28 06:18:48 2007] [notice] SELinux policy enabled; httpd running as context user_u:system_r:httpd_t:s0 [Fri Dec 28 06:18:48 2007] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) [Fri Dec 28 06:18:48 2007] [notice] Digest: generating secret for digest authentication ... [Fri Dec 28 06:18:48 2007] [notice] Digest: done [Fri Dec 28 06:18:49 2007] [notice] Apache/2.2.6 (Unix) DAV/2 mod_layout/4.0.1a PHP/5.2.4 mod_ssl/2.2.6 OpenSSL/0.9.8b configured -- resuming normal operations sh: /usr/sbin/sendmail: Permission denied もう少しググってみることにします。selinuxには気づきませんでせした。
382 :
255 :2007/12/28(金) 08:12:50 ID:rEU4Fn3c
あ、ほんとくだらない質問になるんですが、メル鯖立ててなくてもmail関数使えますよね。 sendmailpathの意味するところが分からなくて、、、
383 :
nobodyさん :2007/12/28(金) 08:19:14 ID:/nAj2CVO
会員システム作ってるんだけど kaiin/以下が会員領域だとして その中にあるファイルはリファラがkaiin/内のファイルじゃない場合強制ログアウト という処理にしたらセキュリティ上がるかなぁと思ってます この処理をする場合、効率よくリファラチェックする方法はないでしょうか? ひたすらif&orでやってけばいいんでしょうが何かみっともないので、、 また、そもそも↑みたいなことやっても意味ないですか? ファイルをDLして手を加えられる侵入に対策したいと思ったんですが…
>>382 mail()を実行すると、
Windowsの場合 : メールサーバに接続する(ネットワーク越し) - php.iniのSMTP
Linuxなど : メール送信用のプログラムを呼び出す(プログラムの引数) - php.iniのsendmail_path
のように、OSごとに違った挙動をする。
>>383 ノートン先生のようにデフォルトの設定でrefererを送信しないものもある。
>ファイルをDLして手を加えられる侵入に対策したい
何をしたいのかよく分からないが、特定の人言い換えりゃ特定の情報を送信してくるブラウザを
識別するには次のどれかだろうね。
・cookie
・セッション(まぁ、これもcookieの場合もあるが)
・WebサーバのBasic認証とかDigest認証とか
385 :
255 :2007/12/28(金) 08:34:06 ID:rEU4Fn3c
>>384 ありがとうございます。
windows:mail()→ネットワークに接続
linux:mail()→mail program呼び出し→ネットワークに接続
みたいな感じに理解しました、(あってるかな。。。)
386 :
nobodyさん :2007/12/28(金) 08:47:14 ID:/nAj2CVO
>>384 ノートンてリファラ送信しないんですか じゃあダメですね、やめときます
ありがとうございました
今日で仕事納めです。 早速、phpも仕事を土管とやってみましたが、 やはりmb_系の関数が絵文字処理で悩まされました。 mb_をpregと統一して総合文字列関数として再スタートさせるべきではないでしょうか? それでは、来年も良いお年をお過ごし下さい。
388 :
nobodyさん :2007/12/28(金) 12:52:34 ID:gGF8c07c
処理が遅い時、ブラウザを勝手に閉じると、 サーバーのスクリプトが終了したときに返却されるレスポンスのパケットはどこにいくのでしょうか? サーバーの動作が遅いのですが、このパケットが行き先を失って、 ルーター内で無限ループしているってことは考えられますか? 送信要求しておいて、ページが表示されないからって閉じられるクライアントをどうにかしたいのですが、そうもいかないので。
横槍だが、メール送信を使いたいだけで自鯖にメール機能をインストする必要はなっしん。 無料レンタ鯖にデータ飛ばして、そこから送信して、必要なら戻ってくるようにすれば無問題。 使い慣れないメール設定やほーと設定で悩んでいる人にオススメ。
こんど、 「天皇陛下もやっているPEARの活用講座」 という本を出すことになりました。宜しくお願いします。
こんど、 「将軍様もやっているPECLの活用講座」 という本を出すことになりました。宜しくお願いします。
393 :
nobodyさん :2007/12/28(金) 21:09:26 ID:41MrW7lh
作成中のシステムが [notice] Parent: child process exited with status 3221225477 -- Restarting. というメッセージをApacheのログに残して落ちるようになってしまいました。 多分、再帰に失敗してスタックオーバーフローか何かになっているのだと思うのですが、 例えば例外をスローしてくれたりする設定のような、場所を特定する良い方法はないでしょうか? 環境は、PHP5.2 Apache2.0 WindowsXP です。 フレームワークは使用していません。 ご存知の方、教えてください。よろしくお願いします。
394 :
nobodyさん :2007/12/28(金) 22:07:55 ID:/nAj2CVO
自力で会員システム作ってるんですが、二重ログインという問題があることに気づきました この問題はどう解決したらいいんでしょう? 同一IDで後から入ってくる人を有効にすべき? 仕組みとしてはどういうものが理想ですか? 今考えてるのは、会員情報の管理テーブルに、現行のセッション名を保持するカラムを作って、 各アクションごとにブラウザが持ってるものと保存してるセッション名とを比較する →不一致の場合強制ログアウト というものです どうなんでしょう ご意見いただければ幸いです よろしくお願いします
>>394 その処理が君のシステムにおける理想ならそれでいいじゃん
>>395 調子に乗ってんじゃねーぞ。このニート!!!
397 :
394 :2007/12/28(金) 22:28:49 ID:/nAj2CVO
自分のアイディアや知識に自信がないから聞いているので、 それでいいじゃんと言われても… 念のためググって調べて考えた上で質問させてもらいました 不快にさせたんならすみません
398 :
364 :2007/12/28(金) 22:38:10 ID:???
>>373 返事が遅くなりました。
試してみたら eval() で希望の動作が実現できました。
どうもありがとうございました。
399 :
393 :2007/12/28(金) 22:44:02 ID:41MrW7lh
例外を生成し、そのスタック長がある上限を超えていたら throwする関数を作って、 これを再帰している箇所に埋め込む事にしました。
>>394 二重ログイン禁止したいならそれでいいんじゃないかな。
後から来た方を拒絶しようにも、明示的にログアウトしてくれる人ばかり
じゃないしね。
一定時間経ったらログアウトって仕組みにしても、その間最ログインできないし。
冬休みを利用して、何か簡単なwebアプリを作ってみようと思い 開発を始めてみたのですが、一点質問させていただいてもよろしいでしょうか。 a.html 内でに b.phpというファイルをインクルードし、a.html内でb.phpの関数を呼び出し 実行したいのですが、うまく実行することができずに悩んでいます。 <?php include('./b.php'); ?> <html><head></head> <body> <?php b_test(); ?> </body> </html> といった具合です。 b_testの内容は、単純に文字列をprintしているだけなのですが 実行されず、ブラウザ上でソースを見るとそのままphpの記述が 残されている状況です。 各所で見て回った簡単なカウンタ等のアプリで同様の記述を行っているものもあり 自分も同じようなことをやってみようと思ったのですが、何か問題がありますでしょうか。 もしくは、他にhtml内でphpの関数を呼び出すのに適したやり方はございますでしょうか。 ご教示お願いいたします。 環境は、windowsXPにxamppを使用し、apache2.2.6とphp5.2.5をインストールしています。 mb_string系を有効にした程度で、ほとんど設定ファイルは弄っていません。
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
http://pc11.2ch.net/test/read.cgi/php/1196511516/ ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
.htmlという拡張子をphp扱いで動かさないとphpは実行できんよ
404 :
394 :2007/12/29(土) 09:51:58 ID:???
softbankの一部の機種じゃ GETでマルチバイト文字を送れないので 変換すべきと思われるンですが どんな関数でそれをやればよいですか?>
マルチバイトが送れんつーか、逆に送れる文字つーのが決まってるんでURLエンコードすりゃええ
407 :
405 :2007/12/29(土) 11:39:30 ID:???
なんか、ここのスレってサービスが劣化したなぁ。 前は、質問したら丁寧に教えてくれたし5分以内には的確な回答がきた。 今は、質問するとニートとか氏ねとかそんなのが殆ど。 ストレスを発散する場所を間違えないで欲しい。
なんだよもう…面倒くさいなあ。
仕方ない、面倒見てやるか
>>408 ニートとか氏ね
ま、2chだし
相手をニートと断定しないあたりに、プログラマらしさを感じた。
>>408 もしお前がニートなら氏ねそうでないならイ`
if(
>>408 == 'ニート' ){
$anser = '氏ね';
}else{
$anser = '市ね';
}
>>414 ちょwwwwおまwwwスペルがwww俺氏ねorz
確かに、誰からも参照されなくなったニートオブジェクトは、ガベージコレクトされるべきではある。
417 :
nobodyさん :2007/12/29(土) 17:56:44 ID:tcLiBXaz
array("Apple" => "りんご", "Orange" => "みかん"); という連想配列を、 array('Apple' 'りんご' 'Orang' 'みかん'); という配列に変換したいんですが、どうすれば良いでしょうか?
>>417 foreach ($array as $key => $val) {
$new_array[] = $Key;
$new_array[] = $val;
}
$a = array("Apple" => "Ringo", "Orange" => "Mikan"); $b = array_keys($a); $c = array_values($a); $d = array(); for ($i = 0; $i <= count($a) - 1; $i++) { array_push($d, $b[$i], $c[$i]); } print_r($d);
420 :
nobodyさん :2007/12/29(土) 18:23:01 ID:tcLiBXaz
すげー 天才だ! 有り難うございます。
421 :
419 :2007/12/29(土) 18:23:05 ID:???
配列の値がローマ字に変わってたのはさっきなぜか日本語がうてなかったからだ 気にしないでくれ
422 :
nobodyさん :2007/12/29(土) 18:48:40 ID:WA8jVfpj
PHPでコンストラクタのvisibility (public とか privateなどの指定) をsuper classより厳しく出来ないのは何で? 仕様というより、何の不都合があるのかという意味で。
継承じゃねーからだろ
424 :
nobodyさん :2007/12/29(土) 18:56:45 ID:yIBMpd50
ちりりDUKEの使い方を教えてほしい
425 :
nobodyさん :2007/12/29(土) 18:56:45 ID:WA8jVfpj
>>423 むしろ、継承だと出来ないんじゃないの?
ブラウザからPOSTして送るデータの改行コードって 何に依存するんでしょうか? CRLFになったり、LFになったりして困ってまつ
phpでcookieの内容を受け取るにはどうすればええの? 自分でsetしたcookieではなくて、外部鯖から返されるcookieの値を取得したいんだけど
事故解決
431 :
nobodyさん :2007/12/30(日) 02:34:00 ID:+D3WOxGf
2点質問させていただきます。 1. htmlに書くname属性に日本語を利用しても問題無いでしょうか? 2. htmlのフォームからphpの変数に変換するツール等は無いでしょうか? 例:html:<INPUT type="text" name="name"> ⇒ php:$name = $_POST['name'];
>>431 2はextract()でできるけど危険
>>431 foreachで回せ
つか$_POST['name']で使うのがそんなに嫌なのか
1 は html 的には何の問題もない
435 :
nobody :2007/12/30(日) 03:15:18 ID:8C08uScj
PHPで多次元配列の値を半分だけとりだすのはどうすればいいでしょうか?
半分だけってどう半分なの
437 :
nobody :2007/12/30(日) 03:35:21 ID:8C08uScj
$a["a"][0]=>1 [1]=>1 [2]=>0 [3]=>1 [4]=>0 の$a["a"][0],$a["a"][1],$a["a"][2]の値です
forなりforeachなりで回して半分まで行ったらbreakすりゃいいでしょ
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
http://pc11.2ch.net/test/read.cgi/php/1196511516/ ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
>>439 お前いい加減うざいよ
わざわざ
>>1 貼る必要ないだろ
冬休みだからって何回繰り返してるんだよ池沼
せめて
>>1 嫁ぐらいに留めとけ
>>440 まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
http://pc11.2ch.net/test/read.cgi/php/1196511516/ ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
予想通りの流れだな さすが冬休み
冬休み (笑
444 :
255 :2007/12/30(日) 07:51:44 ID:G9WMPe2A
やはりsendmailの設定を何もしていないとまづいんじゃないかと思ってます。が、、、
445 :
255 :2007/12/30(日) 08:01:43 ID:G9WMPe2A
でも #sendmail 〜 でメールは送れました。。。混乱しながら1週間くらい悩んでます。
そのスクリプトでエラー表示させてる? エラーが出てて表示させないで真っ白になってるんと違う
447 :
255 :2007/12/30(日) 08:52:27 ID:G9WMPe2A
出せてます ifでmail()がtrueを返したらok falseならno をprintさせてます。
、、、先ほど少し進展がありました。
#setenfoce 0
#restorecon -R /var
を設定することでメール関数がokを返すようになりました。
上のはselinuxを無効にするという意味で、下のは、、、どういう意味だろう。
(cd
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=20619&forum=10 でもメールがこない。。。httpdのerroelogを見てみると
Domain of sender address
[email protected] →やっぱりsendmailの設定をいじらないといけないのかなと思い、
とりあえず#sendmail 自分のメルアド
〜〜〜
としてsendmailをテストしてみると無事に自分のアドレス(プロバイダからもらったやつ)に届く
sender addressを設定しなくてもグローバルな環境でメール送れるじゃん
となって今また悩んでいるところです。
448 :
255 :2007/12/30(日) 08:54:11 ID:G9WMPe2A
失礼しました。Domain〜のところですが、Domain〜〜〜does not exitです。
Fedoraって /var/log/maillog とかないの? あとif文でOKとか、そういうんじゃなくて、 PHPが吐くwarningとかnoticeとかもみてるのかな? > Domain〜〜〜does not exit does not exist? 自分宛に送ったメイルの差出人も localhost.localdomainに なってるのかな?
450 :
255 :2007/12/30(日) 09:46:25 ID:G9WMPe2A
maillogの内容です。基本的にerrorlogと同じようなことがエラーになってま
す。
Dec 30 08:39:28 localhost sendmail[4414]: lBTNdBJQ004412:
to=<:::::::::@fb3.so-net.ne.jp>, ctladdr=<
[email protected] >
(48/48),
delay=00:00:17, xdelay=00:00:17, mailer=esmtp, pri=120328,
relay=mxin2.ms.so-net.ne.jp.
[202.238.83.12], dsn=5.1.8, stat=User unknown
Dec 30 08:39:28 localhost sendmail[4414]: lBTNdBJQ004412:
lBTNdSJQ004414: DSN: User unknown
>>Does not exitst
自分宛(?.so-net.ne.jp)に送ったメールの差しだし人が
localhost.localdomaiになってる可能性大です。
この場合やはりsendmailの設定を変更すべきなのでしょうか。
上にも書いた通り端末からsendmailを利用して自分宛(?.so-net.ne.jp)に
送った場合成功するので、
どこを変更すればいいのかで悩んでいます。
もう完全に PHP とはかけ離れてるな
なんか面白い関数とかありませんかね 正月っぽいの
omikuji(); でおみくじが引けるよ!
php_logo_guid()だろ、、、常考
456 :
455 :2007/12/30(日) 12:13:57 ID:???
なんか変なこと書いてるな俺。気にしないで
PHPに関係するのは、ctladdrの所だけだぁね。
ctladdr=<
[email protected] >
ctladdr - The ``controlling user'', that is, the name of the user whose credentials we use for delivery.
こいつは mb_send_mailの4だったか5番目だったかのパラメータで設定したものが使われる。
指定してなきゃ、sendmailを呼び出したプロセスの所有者が使われるんだったかな。
で、apacheになるっと。
その部分を除いてPHPには全く関係無く、”sendmailを適切に設定していないことが原因” だから板違い。
Linux板か自宅鯖板のsendmailスレで、どういうメル鯖の構成(ISPのメル鯖に全部投げとか)にするかを書いた上で聞けばいいよ。
ユーザー認証のページの作成をしています。 登録後のIDとPASSの管理をファイルでしようと思うんですが、 セキュリティを向上させるための定石というのはあるのでしょうか。 また、どのようにユーザーがログインする時はPOSTでデータを送信、 その後はセッションでログイン情報を維持という風にしたいのですが これは特に問題ありませんよね?
>>458 とりあえず、オライリーの「入門PHPセキュリティ」を読むことを勧める。
460 :
255 :2007/12/30(日) 16:15:22 ID:G9WMPe2A
不本意ながらこの泥沼から逃げることで一応解決しました。つまりpostfixに移行しました。
逃げちゃだめ とりあえず、オライリーの「sendmail」を読むことを勧める。
462 :
459 :2007/12/30(日) 16:56:03 ID:???
<tr> <td class="aaa">あああ</td> <td class="bbb">いいい</td> </tr> ↑をまるごと変数に入れるにはどうすればいいでしょうか・・・
464 :
463 :2007/12/30(日) 19:26:45 ID:MvMxVYb6
ID出し忘れました 申し訳ない
1読め屑
$hoge = "<tr>\n<td class="aaa">あああ</td>\n<td class="bbb">いいい</td>\n</tr>"; $hoge = " <<< HTML <tr> <td class="aaa">あああ</td> <td class="bbb">いいい</td> </tr> HTML; ";
>>466 は「"」→「\"」で。
下の方法が合ってるかはわからn
469 :
nobodyさん :2007/12/30(日) 20:02:47 ID:1r819gof
聞きたいんですが、php5のマニュアルってどこかでダウンロードできないですか? 昔マンモス本の中身ダウンロードできるサービスがあったような気がするんだけど、 ああいうの今もないでしょうか? あったら教えてほしいです、田舎に帰って勉強したいんだけど、 でかい本持ち歩くのキツイ、、
470 :
nobodyさん :2007/12/30(日) 20:08:55 ID:lUFWIq2Z
MVCでテンプレートエンジン使わずにVIEWをやりたいんだけど コントローラーで $title = "タイトル"; require("hoge.php"); exit; とかみたいなやりかたってダメ? 他に何かいい方法あるかなー? っていうかviewを別にするならテンプレート使わないといけないのかな?
471 :
nobodyさん :2007/12/30(日) 20:12:51 ID:lUFWIq2Z
>>459 すいませんわがままだと思うんですが
Web上で参考になるセキュリティ対策のサイトというのはないでしょうか・・・
473 :
469 :2007/12/30(日) 20:24:49 ID:1r819gof
>>471 すごい! ほんとにあったんですね!! 大感謝です
ありがとう!
>>466 レスありがとうございます
↑の書き方で例を表示することはできたんですが、
自分の場合"あああ"、”いいい”の部分も<?=$hogehoge?>の様に変数になっていて、
このまま実行してもセルの中が空になります
変数に変数を代入しようとしてるのが問題だと思うんですが、どうにかならないでしょうか
ローカルでテストしてる場合OSとPHPのバージョンは自分の環境を書けばいいんでしょうか
WindowsでPHP5.25なのですが
476 :
463 :2007/12/30(日) 20:39:38 ID:MvMxVYb6
またやってしまった 申し訳ない
477 :
nobodyさん :2007/12/30(日) 20:44:11 ID:lUFWIq2Z
>>475 変数を『{}』でくくるか、
文字列と変数を『.』で繋げればいいんじゃない。
普通にシングルクォートで囲って入れればいい話じゃないのか?
479 :
431 :2007/12/30(日) 21:24:43 ID:+D3WOxGf
>>432-434 レスありがとうございます。
とりあえずやりたいことは出来そうです。
もう少し勉強してみます。
480 :
463 :2007/12/30(日) 21:58:49 ID:MvMxVYb6
>>477-478 $hoge="<tr>\n<td class="hoge2"><?=hoge3?></td>\n</tr>";
変数と言うか、<td>〜</td>間にPHPの書式を書こうとするとだめみたいです
<td class="hoge2">のようにタグの中だと効くのですが、<?=hoge3?>は無いものとして扱われてます
<?=hoge3?>を{}や''で囲むとその囲んだ記号だけ表示されます
俺はシングルクォートで文字列括って改行コードは定数にしてるな $html = '<a href="hoge.html" onclick="alert(\'ラヴィ\')">'.$hoge.'</>'.NEW_LINE. '以上ラヴィでした'; こんな感じで書いてるなー #てーか携帯でソース書くの辛いな
つーかロジックとビューは分離しろ。 ヒアドキュメントとかアホじゃねーのか。
ヒアドキュメント使うと、ロジックとビューが混ざるの? ヒアドキュメントと文字列に差はないと思うけど。
PHPのヒアは変数展開とかしてくれないから、混ざらないと思う。
485 :
nobodyさん :2007/12/30(日) 22:28:09 ID:UcZOMDnE
486 :
484 :2007/12/30(日) 22:34:14 ID:???
ごめん、勘違いしてたみたい。 自重します。
配列の展開やオブジェクトの参照はしてくれないけど({}付は省く) 普通に$unkoとかは展開されてる
488 :
nobodyさん :2007/12/30(日) 23:08:06 ID:WyJGCA3E
.cgi .plのスクリプトを使いたいのだが どうすれば いいだろうか? クリックしても .bat / .exeみたいに 動かないし…
>>488 スレ違い
PHPからなら
<?php
exec("pl hoge.cgi");
?>
とか
(;´Д`)
吹いたwwwwwww
>>427 クライアントのOSだったと思う
俺はLFに統一してる
493 :
nobodyさん :2007/12/31(月) 02:01:26 ID:ye8NBX1l
クッキーにIDとパスがあった場合、 そのままログイン後の画面を表示させるか、 入力フォームに値を入れてボタンを押させるか、 どっちが主流?
IDはまだしも、パスワードはクッキーに保存しちゃ駄目wwwwwwwwww
mysqlも穴だらけだなぁと思う今日この頃。 ソフトウェア開発のがリスクがない分楽かもしれん
>>493 IDやPASSをそのまま入れてる訳ではないけど
ログインしたままが多いんじゃないかな(Googleとかニコ動とかそうだし)
そこらへんのphpゲーム見て回ってるんですけど 普通にhiddenでIDとPASSをやり取りしてページを移動していますよね、 これってセキュリティ的にどうなんですか?。。
最悪
そうなんですか、どこでも普通に使われてるので何かやってるのかと・・・。 ログイン画面でID・PASSを送信、ハッシュ化、 それに応じたハッシュがあればセッションを作成してページ間の移動に利用、 ページを移動したらセッションを破棄、また移動時にセッションを作成、破棄・・・ というの無知ながら考えたんですが、これはセキュリティとサーバーの負担から考えてどうなんでしょう・・・。 どなたかご教授お願いいたします。
クッキーに保存して良いのはセッションIDのような、ワンタイムパスワードっぽいのだけ。
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
http://pc11.2ch.net/test/read.cgi/php/1196511516/ ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
KY
いっそのことテンプレをNGワードにしてしまおうか。
普通に答えてやればいいのに
自信満々な態度でテンプレを貼り付けてくるバカを見ると失笑を買う
506 :
nobodyさん :2007/12/31(月) 14:09:09 ID:ExHZywTc
phpでMySQLからデータを引っ張ってきて、XMLに加工して出力してるんですが、 XMLの加工そのものは成功してて、IEなんかのブラウザで見てる分には問題ないんですが、 Ajaxで非同期受信すると、responce has no propertiesとなってしまいます。 (status=4を受信できないっぽい) 上記のエラーは、FirefoxのFirebagで見てます。 Firebag上は、ちゃんとXMLが取得できてるので、php側からstatusの4を送信できればいいんだと思うんだけど、やり方わかる人っていますか?
507 :
nobodyさん :2007/12/31(月) 14:09:53 ID:ExHZywTc
もしくは、Ajax用にphpで動的にXMLの生成を経験した人っておりますか?
どうせどっかでタイプミスしてんだろ
質問する時は、せめて「どうすればいいですか?」って聞き方にした方がいいと思いますよ。 わかる人、経験した人ってのは案外多いもんです。
510 :
nobodyさん :2007/12/31(月) 14:29:56 ID:ExHZywTc
phpでxmlを出力すると、ヘッダーが違うからっぽいですね。
何を出力すればいいんだろ?
>>508 してないです。
>>509 はぁ・・・
511 :
455 :2007/12/31(月) 14:32:14 ID:???
> php側からstatusの4を送信できればいいんだと思うんだけど HTTPのことを全く理解せずにAjaxとかやってるやつって 色々大変なんだろうなー
ヘッダなら、これで header("Content-Type: application/xml; charset=utf-8");
513 :
nobodyさん :2007/12/31(月) 14:37:06 ID:ExHZywTc
自己レスです。やっぱりヘッダでした。無事解決しました。
514 :
nobodyさん :2007/12/31(月) 14:39:10 ID:ExHZywTc
>>511 Ajaxやったことない人からすると、羨ましいですか?
>>512 はい、それです。やっぱ実力のある人は回答をスパッと出しますね。
実力無い人って、なんでウザイんですかね?
>>514 そうそうお前みたいに質問者の癖に無駄に解答者煽ったりとかな。
本当に勘弁して欲しいわ。早く巣に帰れ。
「実力のある人は回答をスパッと出しますね」 実力のないやつがえらそうにこういうこと言うのって恥ずかしいなあ。 "responce has no properties" "Firebag" この手の注意力散漫なやつはくだらない打ち間違いで時間を無駄にするタイプ。(中学生か?) ふつーにFirefox使ってりゃ、この手のバカが打ち間違えないように 赤い下線で打ち間違いを教えてくれるのに、それでも間違えるってのは真性だなあ
恥知らずの中二病が冬休みのお勉強中か? はやく「php側からstatusの4を送信」してみろよカスが
518 :
nobodyさん :2007/12/31(月) 15:11:38 ID:ExHZywTc
>>515-517 そんなに悔しかったんですか?(w
久しぶりに必死な人を見ました。
今年の歳暮れも大変だと思いますが(w 頑張って下さいね。
Firebag(笑) > 上記のエラーは、FirefoxのFirebagで見てます。 > Firebag上は、ちゃんとXMLが取得できてるので、
>>518 随分舐めた態度の奴だなあ
何様のつもりなんだろう
おまえが何様だ
____ / \ /\ キリッ . / (ー) (ー)\ / ⌒(__人__)⌒ \ 上記のエラーは、FirefoxのFirebagで見てます。 | |r┬-| | \ `ー'´ / ノ \ /´ ヽ | l \ ヽ -一''''''"~~``'ー--、 -一'''''''ー-、. ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
>>521 「php側からstatusの4を送信」ってのはいつになったらできるの?
>>521 は質問者ではないぞ。
大して解決策も出してない輩が粋がっていて、なんだかなーと。
____ / \ /\ キリッ . / (ー) (ー)\ / ⌒(__人__)⌒ \ php側からstatusの4を送信 | |r┬-| | \ `ー'´ / ノ \ /´ ヽ | l \ ヽ -一''''''"~~``'ー--、 -一'''''''ー-、. ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒)) /_ノ ヽ、_\ ミ ミ ミ o゚((●)) ((●))゚o ミ ミ ミ /⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\ /⌒)⌒)⌒) | / / / |r┬-| | (⌒)/ / / // | :::::::::::(⌒) | | | / ゝ :::::::::::/ だっておwwwwwwwww | ノ | | | \ / ) / ヽ / `ー'´ ヽ / / | | l||l 从人 l||l l||l 从人 l||l バンバン ヽ -一''''''"~~``'ー--、 -一'''''''ー-、 ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
526 :
nobodyさん :2007/12/31(月) 18:23:23 ID:ExHZywTc
今、家の用事から帰ってきました。 まぁリアルで高校生なんですけど、高校生より劣っていることが そんなに悔しかったんですか?(w
527 :
nobodyさん :2007/12/31(月) 18:26:45 ID:ExHZywTc
まぁ高校生でもプログラム歴5年くらいあるからなぁ。 PHPは1年だけど(w おっさん、めげるな!
NG推奨 ID:ExHZywTc いい加減しつこい。
しつこさは同意だが、おまえも同じくしつこい野郎だな
5年もやってて
>>506 か。頭の病気かも分からんね。
いちいち反応するなよ。はい次の質問者どうぞ。
極論厨死ね、リアルで死ね
533 :
nobodyさん :2007/12/31(月) 18:44:12 ID:3CT6jxWV
>>533 URLかどうかを判断する方法は正規表現以外でもできるが、結局は置き換えになる。
URL入力欄を設ける
538 :
533 :2007/12/31(月) 19:02:09 ID:3CT6jxWV
>>534-535 ありがとうございました。
都合のいい正規表現を考えるか、探した方が良さそうですね。
>>537 ちょww質問の意味を汲み取れてない馬鹿はお前だろww
投稿フォームでアドレスの入力があった場合のオートリンクの話をしてるのに
なんでURL入力欄を設けるとかイミフなこといっちゃってるわけ?wwww
必死な釣り人がいるが 低学歴は数年後にちゃんとみじめな人生送ることになってるから 放置しておいてやろう 家が金銭的に小康状態を保っているから 他にやることが無いから書き込みをしているんだ 今の彼は最高に輝いている
543 :
nobodyさん :2007/12/31(月) 22:34:43 ID:zQ+yU81P
たとえば <name>ひろゆき</name> って文字列があるとして、ここから「ひろゆき」だけを抜き出すには、どんな方法がスマートなの? substrとstrposでゴチャゴチャ処理するのが嫌なんだけど。
546 :
nobodyさん :2007/12/31(月) 22:46:18 ID:zQ+yU81P
>>545 xmlって言ってないのに気を遣ってくれてありがとう。
simplexml使ってみます
547 :
nobodyさん :2007/12/31(月) 23:01:32 ID:fLI7N5P/
インクルードさせて使うファイルが直接ブラウザで開かれたときに エラーを返す方法ってありますか? そもそもそんなこと気にしないで良いんでしょうか?
.htaccessとかでインクルードさせる鯖アドレスだけを許可すればいんじゃね。 order deny,allow deny from all allow from localhost みたいな
ドキュメントルートの上に置けよと
includeする時は別にHTTPでアクセスする訳じゃないから localhost許可する必要すらないよ。 普通に全て拒否すればおk
おいらはクラスや関数にして、直接呼び出しても出力や処理が実行されない形で書くから、 そういうのは気にして無いな。 その他には、他の人と重複するけど、 ・Webサーバから直接アクセスできない場所に置く ・htaccessを使うなどして、アクセスを制限する ・設定ファイルなどで定数を設定して、インクルードファイル内でそれを確認 ってところかな。
Webサーバからアクセスできない場所に置いたらincludeできねーだろw
まぁ所有者と権限の設定をきちっとしろよという事だな
あけおめ
555 :
nobodyさん :2008/01/01(火) 00:03:26 ID:QS3lzF/U
くわしい解説ありがとう 勉強になりました あけましておめでとうございます!
<?php echo "A Happy New Year !!\n"; ?>
557 :
nobodyさん :2008/01/01(火) 01:54:00 ID:mia1J22w
PHP5の正規表現について質問です。
PHP5.2.5 (cli) を使用しています。
1. PHPスクリプトのエンコードはUTF-8
mb_regex_encoding('UTF-8');
mb_internal_encoding('UTF-8');
2.
http://2ch.net/ を fsock で取得(これは問題なし)
3. mb_convert_encoding で UTF-8 に変換(これも問題なし)
4. その文字列を正規表現で処理…(ここで問題発生)
//if (mb_eregi('<div[^>]*>(?:(?!</div>)(?:.|\s))*?利用者各位', $body, $matches)) // 動かない(エラーも吐かずに停止状態になる)
if (mb_eregi('<div[^>]*>(?:(?!</div>)(?:.|\s))*?利用者各位', $body, $matches)) // 動く
print_r($matches);
else echo 'NO MATCH';
正規表現的に問題は無いと思うのですが…
「(?!</div>)」を消したり、「(?:.|\s)」を「(?:.|s)」や「.」にすると動きます。
「.」が改行にマッチするので、「.」に置換すればいいのですが、何故この様な事になるのか解りません。
何か無限ループ的なことになっているような気も…
558 :
nobodyさん :2008/01/01(火) 02:58:34 ID:mia1J22w
559 :
nobodyさん :2008/01/01(火) 03:19:28 ID:mia1J22w
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
http://pc11.2ch.net/test/read.cgi/php/1196511516/ ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
>>561 そろそろいい加減にしないとアク禁されんぞ
PHPで、既存のクラスにメソッドを追加することはできませんか? RubyやPythonやJavaScriptでは、既存のクラスに対してあとからインスタンスメソッドやクラスメソッドを追加できるんですが、同じことをPHPでしようとして、やり方が分からず困ってます。 なおこの質問はPHP批判ではなく純粋に質問なので、「Ruby使えやボケ」とかはなしでお願いします。
>>557 その現象が発生する $body はどんなの?
なるべく短いのを書いてみて。
>>563 PHPをハックすればできるんじゃない?
ていうか既存のクラスいじるとかトリッキーなことしないで、
継承してからいじればいいと思う。
クラスの再利用ってそういうものでしょ。
>>565 継承すると別のクラスになります。
使おうとしいてるライブラリがクラス名を固定しているため、他のクラスは使えません。
factory methodとかDIコンテナを使っていればいいのですが、そうではないので、継承では解決できません。
単純な興味なんだけど 何のクラスにどういうメソッドを追加しようとしてんの?
>>557 止まってるんじゃなくて、マッチングに時間がかかってるだけみたい。
対象文字列を短くしたら、数秒で終わるようになった。
たぶんeregi()のマッチングアルゴリズムがまずいんだろう。
UTF-8でいいなら、mb_eregi()のかわりにpreg_match()を使って、パターンに u オプション使えばいい。
それから、質問するときは現象が発生する最小限のコードにしてほしい。
getPage()とかいらんから、対象文字列を短くしてコードに貼付けるべし。
つかあえてeregi使う利点ってあんの?
>>567 privateやprotecedになっているインスタンス変数に対して、publicなアクセッサを定義したいというだけです。
他人が作ったまずい設計のクラスを、なんとかして使わなければいけないときに、RubyやPythonだとなんとかできてしまうので、同じことがPHPでもできたらいいなと思って。
ふーん、ま無理だから自力で何とかするのがいいかと
572 :
nobodyさん :2008/01/01(火) 07:37:33 ID:9i91PKAG
皆さんあけおめです php_qrってのを使おうと思ったんですが、インスコまではやったんだけど php_output_from_zvalがみつかんねぇってこと言われました php_output_from_zvalってなんのパッケージ入れればいいんですか?
PHPのバージョンが合ってないんじゃね
574 :
nobodyさん :2008/01/01(火) 07:54:18 ID:9i91PKAG
>>573 php4なんですが、php_qr-0.1.0.tgzとphp_qr-0.1.3.tgzを試したんですが出来ませんでした。
php4ではどのバージョンを使えばいいんでしょうかね?
とりあえずエラーメッセージ載せておきます
Warning: dl(): Unable to load dynamic library '/usr/lib/php4/qr.so' - /usr/lib/php4/qr.so: undefined symbol: php_output_from_zval in /var/www/html/index.php on line 3
>>574 そりゃドキュメントなりリファレンスなりreadmeなり見れば書いてあるんじゃないの
あとは作者に聞け
577 :
574 :2008/01/01(火) 09:54:04 ID:???
しょうがないからコード書き換えた php_qr.cの594行目のチェックをはずしたらうまく行ったっぽい
自分で正規表現考えながら書くのは結構好きなんだが、 他人が書いてるものを見るとわけがわからなくて嫌いになりそうになるよな。
そこでコメントですよ
大凶 2連チャンとかw
この板の連中は運悪いなw 今年もくだらねぇ質問して、時には回答にまわって勉強させてもらうぜ。 ヨロシクな
コーディングが冗長になると、スクリプトの動作速度も鈍くなったりする?
とんでもない冗長なら遅くなるね
理論的には単純にコードが長くなれば誤差程度だが当然影響は出る ただ100行のコードが1万行になるわけではないだろ? せいぜい数行〜数十行増えるだけのはずだ そうなると体感動作速度は一緒だし実測しても変わらない 気にする必要はないからわかりやすく書くよろし 間違っても条件文で読みにくい三項演算子なんて使うなよ
行数で判断できるもんじゃないよ
2chの書き込みは行数で判断できるから3行以上の長文はスルーだな
>>588 にスパムフィルタとか作らせたら凄いことになりそw
気になるならプロファイラ使って調べれば良いんじゃね。 あとで使い勝手とか教えてくれたら嬉しい。
591 :
584 :2008/01/01(火) 15:56:16 ID:???
>>585-590 レス、thx.
ちょっと安心したわ。
プロファイラってのも使ってみようと思う。
ありがとう。
593 :
nobodyさん :2008/01/01(火) 17:29:15 ID:F2c2JMdr
setcookieのドメインの所に、 クッキーを与えるドメインとは別のドメインを書いても 別のドメインでそのクッキーを使えるようにはならないのでしょうか? やってみたけど上手くいかないので、やり方が悪いのか根本的に出来ないのかを知りたいです。
$sql = "SELECT id,pass FROM login WHERE id = '".$id."' AND pass = '".$password."'"; $result = mysql_query($sql, $link) or die("クエリの送信に失敗しました。<br />SQL:".$sql); この記述でクエリの送信に失敗しました と出るのですが 記述が間違っているんでしょうか?
>>593 多分だけど、それが可能だとしたら他のドメインのcookieを書き換える事が可能ということに
なるので、ブラウザ側が許可しない気がする。
>>596 その関数を使ってみたところ
単純にデータベース接続が完了してなかったみたいでしたorz
くだらない質問にありがとうございました。
598 :
nobodyさん :2008/01/01(火) 19:52:12 ID:gtyeLFx+
少人数利用のBBSで setcookie("pass", $pass,time()+60*60*24*30); $pass = $_COOKIE["pass"]; if($pass == abc){BBSを表示} を使って、簡単なログイン制限を掛けてるのですが、 この処理のあるbbs.phpを直接表示した場合、IE7.0でもFireFoxでも全く問題なく処理されるのですが、 bbs.phpをIE7.0でインラインフレームを使い入れ子にした場合、 フォームの処理を行うとクッキーがクリアされて、またpassの入力画面に戻ってしまいます。 FireFoxでは問題ないようなのですが、インラインフレームの利用で何か特別な問題が起こることはあるのでしょうか?
IEとFirefoxではcookieが共有されるセッション管理の単位が違うせいかな。 同じPCから複数のユーザとしてログインする必要がないなら、 setcookieで path とか domain も指定すれば cookieが共有される気がする。
javaでいう static intializer はPHPではどう書きますか。 class Foo { static Map table = new HashMap(); static { // static initializer table.put("<", "lt"); table.put(">", "gt"); table.put("&", "amp"); table.put("¥"", "quot"); } }
602 :
598 :2008/01/01(火) 23:04:36 ID:gtyeLFx+
>>599 ここでも仕様が違うんですね。
他の方法を試してみます、どもでした。
ユダヤの陰毛でつね
605 :
nobodyさん :2008/01/02(水) 03:58:58 ID:xlZOpAZW
画像レスできる板とできない板のある掲示板の画像レスできない板で 投稿フォーム改造して画像レスを送ってみたら アップロードされちゃったんですが見ることができません。 これをHTMLやヘッダに手を加えて画像レスが見れる状態のHTMLを送って もらうことはできますでしょうか? PHPを使ってる掲示板なのでここで質問してみました よろしくお願いします
606 :
nobodyさん :2008/01/02(水) 04:25:51 ID:zb153+EZ
12345678790 みたいな可変する文字列のn番目に文字列"\n"を挿入する場合、 substrで切り出してシコシコ成形する以外にスマートな方法ありませんか?
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
http://pc11.2ch.net/test/read.cgi/php/1196511516/ ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
608 :
nobodyさん :2008/01/02(水) 06:24:31 ID:XSzMXv90
sqlへのselectの結果(オブジェクト化したもの、$obj)に対して、 $obj->NAMAE で名前カラムのデータが求められるとします(カラム名は必ず大文字) で、上記の呼び出しを関数化したとき function yobidashi($name){ $name=strtoupper($name); return $obj->name; } としても上手くいきません $obj->の後に続くのはカラム名でなければいけないからなんですが、 どういう書き方にしたらいいのかわかりません どなたかアドバイスお願いします
4:44 のテンプレ貼り ktkr
手動スクリプト乙w
>>608 いまいち状況がワカラン中でレスをするが・・・・
return $obj->$name;
これでどう?
関数呼び出す時は呼び出し方の例も記載すると
レスし易いと思う
>>608 return $obj->__get($name);
ではどうですか?
>>608 そのオブジェクトを返してる部分にメソッドを追加する
ありがとうございます 単純に$obj->$nameでOKでした すみません、クダ質で… evalとかglobalとか調べてついでに覚えます ほんとにありがとう
618 :
616 :2008/01/02(水) 10:17:01 ID:???
>>617 そんな書式があったのか...。
逆に勉強になった。ありがと。
Active Perlをインストールしないと 「.pl」は動かないの?
答えてるやつも大分初心者だな
そんな下らない事を書かずにはいられない620は人生初心者だな
>>619 Windowsでの話ならその通り。あくまで中身がPerlだったらの話だけど。
別にActive Perlじゃなくてもいいけど、定番だし普通これかな。
Linuxがどうかは知らない。
んでPHPと関係ないんで、次からはスレちゃんと選んでね。
そういえば長いこと*.plのうんこアイコン見てないな
625 :
nobodyさん :2008/01/02(水) 20:42:30 ID:lW+cmhhe
>>623 ありがとうございます
PHPとPerlを同じものと勘違いしていました すみません
626 :
nobodyさん :2008/01/02(水) 21:55:46 ID:XSzMXv90
jpgファイルが存在するかどうか確認する関数ってないですか?
file_exists
どういう使い方を想定してるのかよく分からんので、適当に推測して答えると、 想定用途 : 得ろサイトの直リンクのURLを文字列として持っていて、 それがまだ取得可能かどうか調べたい 答え : getimagesize() で充分。 getimagesize(そのURL)、あるいはファイルを取得してから、getimagesize()
クラスを使って、プログラムしてる人どれくらいいる? 掲示板を作ってみようと思うんだけど、クラス……というかオブジェクト指向がいまいち理解出来ない。 やっぱし、これくらい使いこなせないと掲示板自作するのは早いかな。
630 :
626 :2008/01/02(水) 22:19:01 ID:XSzMXv90
志村〜
>>629 bbsなんてそんなの理解せんでもできるよ
ただ後のメンテを考えるなら覚えた方が良いかも
あとから直すのなんてめんどくさくてやってられねーとなる
クラスは使うけどオブジェクト指向の概念なんかわざわざ理解しようと思ったことはない
>>629 覚えれば便利。
同じような処理を書くのにウンザリしてきたら、嫌でも辿り着くから心配ないよ。
>>629 関係ない。
単なる概念、プログラムする対象の捉え方の違い。
637 :
629 :2008/01/02(水) 22:54:29 ID:???
レスありがとう。 荷がだいぶ軽くなったよ。 いろいろ、PHPの参考書とかネット上のOOP関連の文献を読み漁ってみたけど、やっぱりモヤッとしてた。 何にせよ、ありがとう。
functionで関数作ってるんですけど クラスとオブジェクト指向っていうのはそれとはまた違ったものなの?
OOPっていうのは読んでいるだけじゃ身に付かない。 実際に自分でコードを書いてみて体で体験して初めて感覚がつかめる。 その感覚こそが大事。つまりオナニーだけしていてはダメで、 実際に女に入れてみなければ真理はつかめないということ。 そして真理をつかんだなら、ぜひオウム真理教の再興を祈念し、入信することを勧めたい。
オウムなんか再興しないでいいだろ
>>639 がセックス教団作ってよ
>>638 関数でハンドルを取る奴があるとするだろ?
例としてファイルハンドルとしようか
fread(file,num)
↑をOOPではハンドルを主体にして呼ぶ↓という感じ
file->fread(num)
メソッドに操作対象を渡すか、操作対象からメソッドを呼ぶかという違い
643 :
nobodyさん :2008/01/02(水) 23:25:06 ID:EFH6C9iG
大規模なもん書く予定なんで クラスについておぼえときます・・・
644 :
nobodyさん :2008/01/03(木) 01:26:52 ID:PuYJW96T
$array = array("aaa","bbb","ccc") をechoした時 "aaa","bbb","ccc" と表示させたいのですが、forを使う以外の方法はありませんでしょうか?
>>644 echo '"'. implode('","', $array) .'"';
646 :
644 :2008/01/03(木) 01:35:00 ID:???
>>645 出来ました!こんなやり方があったんですね。
勉強になりました。ありがとうございました。
>>645 俺が投稿しようとしてた内容と1文字も違わなくてワロタ
何に使うんだろうな
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
http://pc11.2ch.net/test/read.cgi/php/1196511516/ ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
650 :
nobodyさん :2008/01/03(木) 08:23:14 ID:9iX7ULgu
>>651 ためしにtext=../../hogehoge
htmlspecialchartは元ソースに$textがなかったときに{$text}がみつかりませんでした。って表示してるからだ。ごめん消し忘れた。
653 :
650 :2008/01/03(木) 09:21:41 ID:9iX7ULgu
ああ、途中で書いちまった。 ためしにこのphpファイルと同じディレクトリにaaa.txtを置いて?text=../aaa ってやってもWarning: readfile(./txt/../aaa.txt) [function.readfile]: failed to open stream: No such file or directory in C:\www\aaa.php on line *。になる。
654 :
650 :2008/01/03(木) 09:25:59 ID:9iX7ULgu
あ、ごめん、aaaよみyこめた。basenameつかってみるー
655 :
650 :2008/01/03(木) 09:47:57 ID:9iX7ULgu
うーん、、困った。 できればディレクトリ指定でファイルを読み込みたいんだけど、どうにかならないものですかね・・・
656 :
650 :2008/01/03(木) 09:56:17 ID:9iX7ULgu
eregで$textに.が入ってたら不正扱いにするとかでおkかな? ごめん俺書き込みすぎだ。
一般論として、不正な文字列かチェックするのではなく、正当な文字列かチェックするようにしたほうが良い。
if(eregi("^[a-z0-9_]+$",$text)){
$textfile = './txt/'.$page.'.txt';
}else{
$textfile= './txt/error.txt';
}
こんなかんじになりました。大丈夫かな・・・
>>651 と
>>657 ありがとう。
659 :
626 :2008/01/03(木) 10:33:10 ID:uA4WBKbO
すみません、
>>630 の問題ですが、何が原因に考えられるでしょうか?
お手隙の方、意見いただけると嬉しいです お願いします
661 :
nobodyさん :2008/01/03(木) 14:38:25 ID:sD9SHXAa
セッションにユーザーのログイン情報を書き込み、ページ間のやり取りで使用してるんですが これだと、セッションを破棄・ブラウザを閉じるかしない限り、 下記のように、他のページへ一旦移動してまた戻ってくることができますよね ログイン画面→ID・PASS認証・セッション発行→専用ページ→他の見知らぬサイト→専用ページ 見知らぬサイト へ行ったら 専用ページへ直接入れないようにしてしまいたいんですがどういう手があるんでしょうか。 ちなみにセッション管理でやりたいんですが。。
Cache-Control no-cache
no-cache してもsession はサーバ・クライアント共に残ってる気がする。
>>663 「気がする」じゃ、何の説得力もない。
学生ならバカ学生で済むが、社会人でそんな安い了見で仕事しているなら死んだ方がいい。
お前は人間の屑。
>>664 まあまあ私のオッパイでも揉んで元気だしてよ
666 :
>>661 :2008/01/03(木) 16:21:10 ID:???
no-cacheはセッションに関係ないみたいですね。
読解力がない人は人生楽しそうな気がする。なりたくはないが、うらやましい。
専用ページを表示した時にsession破棄するんじゃだめなの?
669 :
nobodyさん :2008/01/03(木) 16:28:33 ID:EPFlyde6
掲示板の書き込み終了後、リロードによる二重投稿防止を行いたいのですが、 ユーザーがフォームよりデータをサーバに送信後、サーバ側での処理についてご質問させていただきます。 1.ユーザーから送られてきたデータと、ログファイルの最終行のデータを比べる 2.1のデータがお互い違うデータであれば書き込み このような処理を思いつきました。しかし、これだと2回ログファイルを開くことになるのですが、どなたか もっとこうしたほうがいいっていうのがありましたらご指摘アドバイスお願いいたします。
670 :
>>661 :2008/01/03(木) 16:29:57 ID:???
>>668 一番重要なこと忘れてました;
専用ページは複数あって、その橋渡しにセッションを使っているんです。
セキュリティ面でセッションがいいかと思って。。
>>661 ・セッションデータに時間情報を入れて、専用ページではその時間情報ではじく。
3秒ルールみたいなものだから厳密には要求通りじゃないが、
セッションハンドラを使えば簡単に実装できる。
・専用ページ内での遷移は全てAjaxで行い、ブラウザの履歴・キャッシュを無意味なものにする
めんどくさい
・そもそも外のページに行ってもいいじゃないか。
重要なデータが漏れるのなら、サイト自体の作りに問題がある
>>671 うーん
やっぱり難しいんですかね・・・
674 :
nobodyさん :2008/01/03(木) 16:54:28 ID:+JPyHTOV
soap関数を使ったアマゾンの検索サービスを作ろうと思っているのですが、
本に付いてきたサンプルを実行させた所、
-------------------------------------------
Fatal error: Uncaught SoapFault exception: [SOAP-ENV:Client]
We encountered an error at our end while processing your request.
Please try again in C:\Program Files\Apache Group\Apache2\htdocs\php\day06-2\
amazon.php:22 Stack trace: #0 [internal function]:
SoapClient->__call('KeywordSearchRe...', Array) #1
C:\Program Files\Apache Group\Apache2\htdocs\php\day06-2\amazon.php(22):
SoapClient->KeywordSearchRequest(Array)
#2 {main} thrown in C:\Program Files\Apache Group\Apache2\htdocs\php\day06-2\amazon.php on line 22
-------------------------------------------
この様なエラーが出てしまい実行できませんでした。
自分でエラーの出てる箇所を追ってはみたのですが、どうしても分からず困っています。
どうかよろしくお願いします。
ソースはこれです
http://ranobe.com/up/src/up248796.zip
sessionのキーをcookieに保持しないようにすれば? リンクのみでキーの受け渡しを行えば多分いけるはず あとついでだからsession_regenerate_idで 毎回sessionid変えてやればいいんでない?
677 :
>>661 :2008/01/03(木) 17:16:44 ID:sD9SHXAa
>>675 ユーザ側が下手しなければセキュリティ的にも一番理想的かもしれない
ちょっと試してみます
よく分からんがアマゾンからIDとかもらった?
680 :
674 :2008/01/03(木) 17:52:55 ID:+JPyHTOV
>>676 >>679 色々とありがとうございます。参考になります。
もうちょい調べて頑張ってみます。
>>678 確か無くても実行できるはずなので、プログラム側の問題かと思います・・
681 :
626 :2008/01/03(木) 18:21:01 ID:???
>>660 >>628 >>632 気づかずすみませんでした
いまさらですが、getimagesizeを使わせてもらいました。
が、上手くいきません
とりあえずもうしばらく自分でがんばってみます ありがとうございました
>>675 それだとさ
セッションIDの含まれたURLを保存しといただけで
直接専用ページに入れるんじゃ?
セキュリティ敵にもよくないんでは
unvalid はないな、invalidだ。恥ずかしい。うぇ。
file_existsもコケてたから、URLのwrapperをoffにしてるんだろうね。
>>685 file_exists は stat ファミリで、http/httpsはstatをサポートしてないから、onにしても動かないはず。
687 :
>>661 :2008/01/03(木) 19:02:25 ID:sD9SHXAa
>>682 そうなんですか
もうなんかどーにもorz
>>682 過去のセッションを適切に破棄してやればそれは無い
破棄しなくても可能な時間はセッションの有効期限内のみだし
php5.1以降であれば
session_regenerate_id(true);
とすることで自動的に破棄される
あとはリロード時のURLチェック等入れればいける
つーか専用ページに戻った時にセッション張られてると困ることって何があるの?
690 :
>>661 :2008/01/03(木) 19:22:21 ID:sD9SHXAa
えーとすいません。
phpゲームを開発してて、戻るボタンでNPCにまた話しかけたりとか無くしたいんです。
(でもこれってSESSION使えば二重処理とか発生することはないなそういえば・・・。)
とりあえず戻るボタン押したり、他のサイト行ったら
ページが表示されないようにできればこちらは万々歳ですから
>>675 使ってみます。
692 :
>>661 :2008/01/03(木) 19:38:02 ID:sD9SHXAa
>>692 ちょっと見てきますってw
どう見てもお前って分かるから
変数に出力前の関数を代入することはできないんでしょうか 絶対に出力後が代入されてしまうのですが
出力前の関数って何
isset等の値を参照するものです。
俺用語では分からん
どういう風に呼び出したいんだよw
699 :
◆SHiMA//5DA :2008/01/03(木) 22:11:06 ID:DBOTcnZE
渡した引数をそのまま返して欲しいということか?
>>696 どういうことなのかよく分からんが、第6感を働かせて
みたところ、「issetで存在を確認したい変数を関数の
引数に入れて処理させるだけの話じゃないのか」という
結論に達した。
もしくは関数呼ぶ前にifなりなんなりで処理してしまうとか。
……
>>694 が意味不明でやっぱりよく分からんな。
MySQL使ってみたんですけどこれってflockとかないんですか? 書き込み多いので変なことにならないか心配すぎる
ないが大丈夫
どもっす
トランザクション処理はやっとけ
>>702 RDBMSにはファイルのロック以上に緻密なロックの仕組みがあり、それを
知らないと意図通りの更新や読み出しができないことはある。
なのでそれはきちんと勉強した方がいい。
MySQLにどの程度実装されているかは知らないけど、ファイルロックよりは
安全にデータの更新や参照ができるはず。
707 :
nobodyさん :2008/01/04(金) 00:52:28 ID:Qh7lpWjF
wordpressでプラグインを自分のページ用に改造しています。 global $wpdb;→$random_idにランダムな記事のIDを指定をし、そのIDに基づいて query_posts('page_id=urlencode($random_id)'); while (have_posts()) : the_post(); ループ endwhile としているのですが、どうもうまくいきません。 query_posts('page_id=urlencode($random_id)'); の部分の書き方がおかしいのかと思いますが、どうすればいいのかわからないのでおしえていただけませんか。
708 :
nobodyさん :2008/01/04(金) 04:38:17 ID:eljYrwXk
static変数のアクセスの仕方がよく分からないんですが error_reporting(E_ALL); class Hoge { public static $name = 'test'; } $obj = new Hoge; echo Hoge::$name; //test echo $obj->name; //Notice: Undefined property: Hoge::$name echo $obj::name; //Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM phpではインスタンスからはstatic変数にアクセスできないってことなんでしょうか? 他にどういう方法がありますか? (アクセサ使えって話かもしれないけど)
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
http://pc11.2ch.net/test/read.cgi/php/1196511516/ ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
php5 windows preg_replaceでーを比較しようとしたところ for character class at offsetというエラーがでました。 SJISだからかなとおもってEUC-JPに変換してみましたがやはり同じエラーがでました。 どうしてなんでしょうか?
713 :
711 :2008/01/04(金) 10:02:56 ID:z4j42IHm
お願いします
EUC-JPで保存してないんじゃないの 変換ができてないとか SJISだとエラー吐くよ
715 :
nobodyさん :2008/01/04(金) 10:12:04 ID:eljYrwXk
>>710 それは勿論読んだ上の質問。
その例で言うと
print $foo::$my_static . "\n";
がパースエラーになるんだけどなんで?
>Example#1 static メンバの例 >〜中略〜 >print Foo::$my_static . "\n"; 読んだ、ねぇ
zendのやってることだからなぁ… windows のセットアップバイナリは壊れたまんまだし、 .chm のヘルプファイルのキーワード文字化けも一向に直そうとしないし…
719 :
nobodyさん :2008/01/04(金) 14:12:45 ID:KzTuE4cg
ファイルの最終更新日取得のスクリプトについてです。
なぜか、下記スクリプトでは動きません。(結果が表示されません。echo date をはずしてもブランクが表示されます)ご教授ください。
<?php echo date("y.m.d H:i:s", filemtime("
http://xxx.com/index.php ")); ?>
サーバー:さくら
バージョン:4.4.7
721 :
719 :2008/01/04(金) 14:23:57 ID:KzTuE4cg
>>720 /homeからのパスに書き直したら取得できました。
ありがとうございました。
722 :
nobodyさん :2008/01/04(金) 16:07:08 ID:WmrqhPBt
文字列に全角スペースが含まれている時、半角スペースに変換します。 strtr($word," "," "); これで変換出来るのですが、複数の全角スペースが含まれている時、 1つの半角スペースにしたいです。その場合、もっとも簡単な方法(関数) はありますでしょうか?(forを使う方法は自分で試しました。)
723 :
nobodyさん :2008/01/04(金) 17:02:46 ID:HZMzJv1w
UTF8でPHPスクリプトを書いてます。 勉強のため、ユーザーがフォームから名前を入力して、ファイルに記録する簡単なスクリプトを書いて練習してます。 そこで名前は18バイトまでの入力を受付け、それ以上の入力はもう一度やりなおしさせるためのチェックをしてみました。 半角1文字=1バイト、全角文字1文字=2バイトとして計算したいのですが、ここで詰まっております。 UTFなため全角文字を3バイトとなってしまいます。 $_POST['name']←これがユーザーが入力した名前が入ってる変数です ためしに、フォームより、名前「あああ」を入力してみたとして、6バイトとしてサーバで解釈したいのですが、 echo strlen($_POST['name']);←これだと半角1バイトですが、全角3バイトで9と表示されます。 echo mb_strlen($_POST['name'], "UTF8")←これは3と表示されます。 どなたかご教授お願いします。
> echo strlen($_POST['name']);←これだと半角1バイトですが、全角3バイトで9と表示されます。 > echo mb_strlen($_POST['name'], "UTF8")←これは3と表示されます。 9バイトで3文字→一文字3バイト、ってわかるのなら 一文字2バイト換算で 3文字 x 2バイト = 6って計算はできるよね ぢゃあ、strlenで10バイト、mb_strlenで4文字だったら、 「半角」の文字数を x 「全角」の文字数を y と置いて 連立二次方程式の解の公式を使って、 半角の字数と全角の字数を計算して、 x + y * 2 を求めりゃいいんじゃないの (深く考えずに書いているので、まにうけないでください)
つーか何でバイト数で切ろうとするのかが謎
728 :
nobodyさん :2008/01/04(金) 19:00:42 ID:HZMzJv1w
>>724 ありがとうございます。そのやり方で解決しました。
730 :
nobodyさん :2008/01/04(金) 22:13:43 ID:jY1Gv87H
以前、フォーム入力の修正ページで、
<input type=text name=url value="$_POST['URL']" />
としたんですが、ブラウザのフォームには表示されません
$_POST['URL']には
http://www.sample.com/が代入されてるのをソースでは 確認できたんですが、、 なぜでしょうか?またどうしたらいいですか?
<input type=text name=url value="<?php echo $_POST['URL']; ?>" />
732 :
nobodyさん :2008/01/04(金) 22:49:56 ID:mPgF8z0i
オブジェクト指向の概念はなんとなく理解できるのですが、 実際作るとなるとどうやっていいのかさっぱりで…。 色々サンプル(pukiwiki, XOOPS)を見てみたんですが、うーんと唸ってしまいます。 初心者向けのわかりやすい、また短めのサンプルコードなどありましたら教えて頂けませんか? よろしくお願いします。
>>732 何となくではなくしっかり理解してから作りなされ
>>732 zend framework のなにか
OOP素人なら、Javaやらpythonやらrubyやらのドキュメント読んで実際に触ってみてから戻ってきた方が話が速い。確実に。 「オブジェクト指向をできるようにした言語」と「オブジェクト指向であろうとした言語」には習得効率の差がある それで学習したら戻ってくればおk OOPL/デザパタの各種利点・欠点を把握した上で「どうPHP上で生かそうか」という頭になりさえすればいいのだ
>>735 正論。
OOPを勉強したいならPHPじゃないほうがいいね
なんで? PHP5は、けっこうマトモなオブジェクト指向言語だと思うけど。
理由は735にかいてあるだろ
これを理由と言うのか。( ´・∀・`)へー
( ´・∀・`)
C++のが本格的だと思うんだぜ
(・ω・)モキュ
744 :
nobodyさん :2008/01/05(土) 02:14:09 ID:9q7TTvct
質問させてください。 $file = fopen("ログファイル.txt", "r"); ↑のようにログファイルを読み込み、項目の抽出・判定を 行うスクリプトを作っています。 職場のLinux環境では、正常に動くのですが、 家のLinuxでは、ログファイルの読み込みが出来ず、 項目の抽出が出来ず空欄となります。 スクリプト自体にはエラーは出ずに、読み込みだけ出来ていない状態です。 家のlinuxがおかしいと思い、簡単なファイルを読み込む テストスクリプトで試したところ、テストスクリプトでは、 家のlinuxでも正常に読み込めました。 テストスクリプトも本番用スクリプトをコピーしたもので、 スクリプトの行数が違うくらいで特に差がありません。 (テスト50行、本番700行) 同じ記述なのに、fopen出来たり出来なかったりするような 状況なのですが、解決方法等ありますでしょうか。
745 :
代行者 :2008/01/05(土) 02:15:45 ID:???
よーわからんけど、フルパスでないと駄目なんじゃなかったっけ? 職場のはパスが通ってるとか。
権限を確認しれ
749 :
744 :2008/01/05(土) 02:54:41 ID:9q7TTvct
744です。申し訳ありません。 良く見たら、fopenの問題では無く、preg_matchが動作していませんでした。 テストスクリプトで動作していたのは、eregでした。 職場はPHP4環境ですが、preg_matchが正常に動作します。 家でも最初、PHP4環境で試したのですが、動作せず、PHP5にあげてしまいました。 php.ini等にpreg_matchが正常に動作するような設定等無いでしょうか。 権限も疑ったのですが、パーミッションは755で、グループはrootとなっております。
PHP4なんてはやく卒業しろよ
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
http://pc11.2ch.net/test/read.cgi/php/1196511516/ ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
>>751 俺様のNGトラップによってあぼんされました。たくさん仕掛けてるから何でひっかかったんだか気になるけどどうでもいい
>>737 その話はここで突っ込むと、宗教戦争にしかならないからなー。
何を「マトモ」か言い始めると、JavaもC++も含めてどの言語だって批判の俎上に上げられてしまう。
絶対Smalltalkがどうのとか言い出す奴出て来るしw
PHPは実用的な仕組みを色々借りて来てるけど、良い悪いじゃなく
「なぜこういう仕様になった/なってるのか」みたいな視点で
学びにくい点もあると思うよ。
PHPに斬新な言語であってもらう必要はないから、悪い事じゃないけど。
PHPをバカにするなよっ!!!!!!!!!!!!!
宗教戦争おこす気はないけど、個人的には、型の定義、継承、ポリモーフィズムがあれば、OO言語として 十分マトモだと思ってる。 OOであることとは関係がないけど、相性の良さから有ったほうが良いと思うのは、ガベジコレクションと例外処理。 PHPの言語仕様がキレイかと言われれば相当疑問だけど、それとOO言語としてどうかという話は別物だと思ってる。
中規模担当の俺からすれば継承はイラネ
なんでこのスレはID表示をきつく言っているんだ? 相当荒れているということか?
>>756 Webアプリでガベージコレクションいる?
>>760 C/C++で書いてあっても、一切 free / delete されてなかったら気分悪いと思う。
762 :
761 :2008/01/05(土) 10:41:17 ID:???
メモリ開放されなくても良いという意味じゃなくて、free/deleteでも十分対応可能という意味なのだったのかな。 Webアプリでも複雑なデータ構造をメモリに持つ場合、やっぱり free/delete だと、ちょっとつらい。
おまえらフリーで仕事を依頼されるとき、前金とか貰ってる? 自分は1/10くらい貰ってるんだけど
765 :
nobodyさん :2008/01/05(土) 12:06:41 ID:fWLhflwQ
PHPは、データベースとの連携がいいと良く聞くけれど、 具体的に何処がいいのかが良く分かりません。 例えば、PerlのDBIは、データベースからデータを取る場合、 以下のようなモジュールを使えば非常に便利です。 selectrow_array、selectcol_arrayref、selectall_arrayrefなど。 これ以上の機能のモジュールがPHPにはあるということなのでしょうか。 サイトをいくつか検索してみたのですが、思うような 情報が得られませんでしたので、ここで質問してみました。 ヒントとなるキーワードだけでも良いので、よろしくお願いします。
>>765 >PHPは、データベースとの連携がいいと良く聞くけれど
誰が何と比較して言ってるの?
いいというか前提じゃないの と言ってみる
ここ見に来てる細々SOHOどもは巣に帰りやがれクズ
あたたかい正月を過ごせなかったのか?
イライラしすぎだろw
>>769
771 :
nobodyさん :2008/01/05(土) 18:28:48 ID:Dao7FJFa
header("Content-disposition: attachment; filename= $fname"); header("Content-Length: ".$content_length); header("Content-Type: audio/mpeg"); $fp = fopen($file_path,"rb"); while($buf = fread ($fp, 4096)){ echo $buf; } fclose($fp); tp://foo.jp/hogehoge.php?id=xxx にアクセスすると、上記のような感じでサーバー上にあるmp3やmp4を読み込んで ブラウザ上で再生させたいのだが、ファイルがダウンロードされてしまう。 普通にtp://foo.jp/hogehoge.mp3 とファイルを置いてアクセスするとプレイヤが起動して再生するようにしたいのだが、 どうすれば良いでしょう?Content-Type をいろいろ変えてみたんですが・・・。
773 :
nobodyさん :2008/01/05(土) 19:22:00 ID:Dao7FJFa
>>772 ありがとう、うまくいったよ。ほんとうにありがとう
>>771 readfile($file_path);
775 :
nobodyさん :2008/01/05(土) 23:27:19 ID:BCQmUqUR
すいません質問なんですが、URLからそのウェブページのタイトルを 取得することできますか? RSSのないページです。 ヒントがあれば教えてください、検索してみます。 いまんとこ見つけれてません。
ページを取得する。 取得した内容を調べる。 さぁ、分かんないのはどぉーこだ?
>>775 get_title_from_url($url);
ぐぐってしまったじゃないか・・・
function get_title_from_url($url) { $contents = file_get_contents($url); $retAry = array(); preg_match('!<title[^>]*>(.*)</[^>]*>!',$contents,$retAry); return $retAry[1]; }
780 :
nobodyさん :2008/01/06(日) 02:12:36 ID:Njbvq9C9
私が使用しているレンタルサーバで、phpを動かした場合、 以下のコードではipアドレスが取得出来ませんでした。 $ip = $_SERVER['REMOTE_ADDR']; そこで、以下のように書いてみると取得できました。 $ip = getenv("REMOTE_ADDR"); FORMタグにてPOSTされたものも、以下のコードでは 取得できなかったのですが、 上記getenvにあたる関数はないのでしょうか。 $pos = $_POST['test']; よろしくお願いします。
>>780 まさかとは思うがphpのバージョンって4.1より古い?
$_HTTP_POST_VARSとか$_HTTP_GET_VARSん使ってみるといいかも
phpinfo()
783 :
780 :2008/01/06(日) 02:54:37 ID:Njbvq9C9
すばやいレスありがとうございます。 教えていただいたコードを使ってみたり、 phpのバージョンをしらべてみたりしてみます。
784 :
nobodyさん :2008/01/06(日) 04:36:15 ID:5j6bL89B
if(hoge() && huga()){ echo "両方成功"; } だとhoge()に成功しないとhuga()を実行してくれませんよね。 hoge()に関係なくhuga()も実行したい場合に以下のコードを書いてみたんですが、あまりスマートじゃない気がします。 何かもっといい方法がありましたら教えてください。 $bool1 = hoge(); $bool2 = huga(); if ($boo1 && $bool2) { //何かの処理 }
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
http://pc11.2ch.net/test/read.cgi/php/1196511516/ ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
>>784 if ((hoge() && huga()))
かも
>>784 回答しない癖になんだけど、そうしなきゃいけない実装自体に問題あるよなあ
788 :
nobodyさん :2008/01/06(日) 06:39:21 ID:++XQtjId
アップしてあるファイルを、ディレクトリごとZipで一括でダウンロードする仕組みをつくっています zip.lib.phpやZipArchive()を試しに使用しており、出来る限り一時ファイルを作成したくないため 直接クライアントに送信するよう書いてみましたが、ファイルによってはメモリがきついです 何か上手な方法はありますか?
メモリを増やす
790 :
nobodyさん :2008/01/06(日) 06:56:26 ID:++XQtjId
ありがとうございました
>>784 やったこと無いけど、 if(hoge() & huga()) みたくビット演算にすれば出来るかも。
まぁ、他の人がコード読んだらバグにしか見えないから止めたほうがいいとは思うけど。
>>788 メモリ的に無理だと、対処しようが無いでしょ。
例えば、検索結果で100万件が1ページで表示されるようにしないのは、
メモリが関係しているから。
なので、ページを分割するか、途中で処理を無理やり止めてしまうか
しか方法はない。
レベルひっく 下を見ればキリがないっていうけど、ここの回答者はひどいなw
よし、じゃ君が「レベルの高い回答」とやらを書いてくれ
具体的に言わないとね
>>794 いや、ここは週に1回、優越感をひたるために来てるからw
ってか、おまいら学歴低そうだな。IQ100はあるか?
PHPなんて下等ランゲなんかやってると、そのうちホームレスになるぞw
じゃ何やればいいの
学歴とIQの関係を詳しく
ランゲだとよw
IQは簡単にいうと (精神年齢)/(実際年齢) * 100 だから、 あんまり上げすぎると、体は大人!頭脳はじっちゃん! になっちまうから注意。な。 PHPの質問マダー?
スレ違いな事書いているという認識を持てや。低能共
>>801 ごめんなさい。もう書かないので許して頂けませんか。。
ちなみに
>>801 さんのIQはいくつでしょうか・・?
やはり801でしょうか。。
ここにいる人は人間的にもレベルがひくいっすねw
ヤレヤレだぜ
>>805 小学校低学年の時、132で学年トップでした。
さっきから痛々しい会話してる奴らは全員IQ30位だなw
うpろだによっては平気で何百Mも処理しているし $_FILESの内容、処理だけでも大変そう 実メモリ、memory_limitの値を見てみたい
PHPってアップロードファイルは一時ファイルに展開するんでしょ。 少ないメモリで動かすのは不安があるけど、実メモリそんなに使うかな。
まさか全部メモリに読み込んでからファイルに書き出すとでも思ってるのかね。 まさか・・ね。
コード埋め込まれているかファイルの内容までは 流石にチェックしてないのかな 自分のところengine offとかにしても、経由して他のところ いたずらされるかもしれんけど
812 :
809 :2008/01/06(日) 16:24:04 ID:j3gkesVW
>>810 昔読んだ Java Servletで作ってあったやつはそういう作りだったから、ありえない話でもない。
最近のは知らないけど、ServletAPIだとリクエストはメモリに展開されて受け渡されたから、
servlet側ではどうしようもなかったはず。
あ、意味も無くあげちゃった。
データベースから取得したデータが10:20:30で$jikanに格納されていて これを10時20分30秒と時・分・秒と分けて表示する方法ありますか?
回答者レベルひっくw
マニュアル見ればすぐにわかることだから、答える気もしないだろ。
とあるスレで、SQLの質問したら、使えない回答しか返ってこなかったので、 こちらでお伺いします。 SELECT id FROM test WHERE id=1 or id=2 or id=3 として、IDが1か2か3のデータを出したいと思います。 上記のSQLなら3つのレコードがヒットします。 idを検索する数だけid=を付けるのは変だと思うのですが、 どういう書き方をしたらいいのでしょうか?
orでも変じゃないと思うけど、in句でも使えば。 オプティマイザ的に差があるかどうかは知らん。
くだらねぇの構わんが、無関係なのは困る
idate('h' ,$jikan); これはダメなのか?
>>818 SQLは長くしすぎると文法では問題なくてもエラーが出て動かなくなったりするよ。
長くならなければ、プログラムで文字列を自動的につなげてやるのもいいと思うけど、
BETWEEN を使った方がいいと思う。
構文の書き方においてはここでは聞かないでね。
一般的なプロバイダ契約 (IP固定契約を行っていない場合) では上記のグローバルIPアドレスは変動的な数値になります。 PCの電源を切った時やインターネットとの通信を切断した場合などはグローバルIPアドレスが変更になります。 また常時通信状態にしておいてもプロバイダ側の都合で不定期に変更になる場合があります。
>>826 人に教えを請う態度じゃないな。
冬休みも今日で終わりかぁ。
phpでfinallyがないのは何故ですか?
>>829 phpは未完の大器であり(あってほしい)、終わりはないという意味を込めて、
finallyを実装していない。これはマジな話。
cloneの使い方がよくわかりません><
(´Д`;)
意味不明なレスがw php4までは $obj = new hoge(); $hoge = $obj; で$hogeにコピーできてたんだけど php5からはコピーできなくなっちゃったので $hoge = clone $obj; でコピーするようになった
ほぇ〜 ありがd
俺もcronの話かと思った。
そういえば綴り違うんだな、今まで意識してなかった。 ぐぐったらcronの名前の由来はクロノスからきてるらしい。なんかすげー。
>ぐぐったらcronの名前の由来はクロノスからきてるらしい。なんかすげー。 KWSK
全角大文字英数字きめぇww
PHP
きめぇからヤメロ。 今度全角英数で書き込んだら、 今日の午前9時にこのスレに凄いこと書き込むぞ。
841 名前:nobodyさん[sage] 投稿日:2008/01/07(月) 02:34:35 ID:??? きめぇからヤメロ。 今度全角英数で書き込んだら、 今日の午前9時にこのスレに凄いこと書き込むぞ。
echo "\x82\x6f\x82\x67\x82\x6f";
なにこの必死な人、失笑をかう
失笑って売ることできるの?ちなみにペッサリーなら知ってるが。
世にも奇妙な物語「失笑屋さん」
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
http://pc11.2ch.net/test/read.cgi/php/1196511516/ ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
手動スクリプト乙 体内時計狂ってるぞw
ワロタ
半角カタカナきめぇww
ピーエイチピー(ワラ
もう冬休みも終わりですよ いい加減元の流れに戻してください
回答者のレベルひっくw さすが ピーエイチピーーーーーーーー
なあ、配列をforeachとかでマワした後って$valueをうんせtしないとまずい? $valueを参照する予定がなくても?
2つ以上のクラスを継承(extends)するにはどうすればいいのでしょうか? CLASS config { // 基本設定クラス } CLASS DB { //DB関連のクラス } CLASS main { // メインとなる処理を行うクラス } mainがconfig,dbを継承できるようにしたいです。 configがdbを継承すると3つが継承されるんですが、それだとすべてのアクセス時にDB接続を行ってしまうので避けたいです。
test
当方初心者のため、大変基本的な質問で申し訳ありません。 あるディレクトリ以下のファイルが更新された場合、 その最終更新時刻を表示するということをやりたいのですが、 どうにもあまり良い方法が浮かびません。 $dir="/file/"; if (file_exists($dir)) { $filetime=date ("m/d/Y H:i:s.", filemtime("$dir")); } 一応このようなことをやってみたのですが、/file/のみの更新時間しか表示されません。 それ以下の階層に関しても全て含んだ上で、最も遅い最終更新時刻を得るには どのようにしたら良いのでしょうか。 拙い説明で済みませんが、宜しくご教授下さい。
ディレクトリ内のファイルが更新されたら、そのディレクトリの最終更新日時も 更新されるんじゃなかったか。 ディレクトリ内で最も最終更新日時が最近のを取得したいとかだったら、 scandirみたいなことして一覧を取得してソートするのがいいんじゃないだろうか。
>>861 たとえば最後に/file/file2/a.phpのようなファイルを更新した時、
その最終更新時刻を表示させたいのですが、やってみてもダメでした。
>>862 質問に夢中で環境を失念しておりました、済みません。
Debian、PHP5、apache2です。
回答もらうことだけ考えてないでまず
>>1 をちゃんと読めよ。
>>863 ID出すように
まぁディレクトリ階層も対象にするなら再帰処理でもすれ
とりあえず回答者のレベルを俺様が吟味する。 回答しろ、カスども。
phpでやるよりコマンド発行して結果をパースする方が早くない?
>>863 foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($last = new SplFileInfo('/file/'))) as $entry)
if($entry->getMTime() >= $last->getMTime())
$last = $entry;
echo date('Y/m/d H:i:s',$last->getMTime()),' ',$last;
無駄にSPLを使ってみたの図。
>>867 そのような他システムに依存するようなパラサイトなプログラムは設計者としては最低。
システムの不確定要素を増やし、バグポイントを増やすだけ。
最近、こういう安易な発想でシステムを組もうとするやつがうちの会社にも湧いて呆れるよ。
あきれてないで優しく教えてやれよ
コマンドを発行するのは変では無いと思うんだが・・・ 多量に発行すると後々大変な事になるけど
既に出ている通り、scandir か opendir使えば良いだけだと思うが、質問者は解ったんだろうか?
DIRでいいんじゃまいか?
>>873 それって、いいんじゃない、と、ジャマイカ、を掛けているの?
面白いね。
ごめんただのタイプミス
877 :
nobodyさん :2008/01/07(月) 23:49:34 ID:L/merKP+
urlに aiueo=なんとか とする場合はGETになりますが formとかでメソッドはPOSTなのにアクションの指定で aaa.php?aiueo=なんとかと指定しても良いものなのでしょうか? 動くのはわかるのですが推奨しない等ありましたらご教示お願いします。
別にいんじゃまいか?
879 :
nobodyさん :2008/01/08(火) 00:11:26 ID:jfnuwFRE
if($test="aaa" or $test="bbb" or $test="333") というのをもっと簡略化出来ませんかね? MySQLのINみたいに。
in_arrayでいいと思うが、比較演算子は == 。
とりあえずswitchとか
1ヶ月に3回は出る質問だな
もう回答しなくていいよ。 わかんないなら、わかんないって言えよ。レベルひくいなぁ。・・
>>880 すみません、==にするの忘れてました・・・。
で、in_arrayということは、配列にするわけですよね?
そうすると、array("aaa","bbb","ccc")
という処理が入るので、あまり使い勝手が良くないんです。
>>881 普段は879のソースとswitchを使っていますが、
妙にコードが長くなるので、短くできないかな?と思いまして。
>>879 if($test="aaa::bbb::333") {
>>884 「処理が入る」を誤解してたら悪いが、配列を別の変数に入れなくても
if (in_array($test, array('aaa', 'bbb', 'ccc')))
とすれば879より行数も減るし構造的にも好ましいと思うぞ。
あとは自分で関数化するか。
>>887 なるほど。。たしかにこれの方が構造的にわかりやすいですね。
こちらをin_arrayを使うようにしてみます。ありがとうございました。
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
http://pc11.2ch.net/test/read.cgi/php/1196511516/ ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
$timeに10:50:30と入っていて date('H' ,(int)$time);,date('i' ,(int)$time);,date('s' ,(int)$time); 上記で時・分・秒と表示できそうなんですが違う値が表示されます 他に使い方ありますか
892 :
nobodyさん :2008/01/08(火) 11:39:23 ID:M0cxpji0
>>891 まずはタイムスタンプについて勉強しような
>>892 いやです。勉強するならここきてねーよ。
早く教えろハゲ。
896 :
nobodyさん :2008/01/08(火) 13:06:54 ID:Y4XNoL9V
あるサーバ(外部)に接続してヘッダ(サーバトークン)を取得したいのですが、 どのような関数を使えば簡単に取得することが可能でしょうか? 取得するサーバはhttpdとは限らないです。
@一昔前はPerlの達人と恐れられたが、Rubyのクラスが分けわからず時代に乗り遅れた化石Perler AJAVAの思想は素晴らしいのに周りに理解者が少なく、コストの問題でクライアントがPHPを指定してきて嫌々やらされているJAVAer B周りはネット全盛なのに、未だにSoketプログラムが理解できずネットの海に出られない鎖国状態のVisualStudioer CwebデザイナーはPHPぐらいできないとゴミと言われて、いつの間にかPGにさせられてしまった自称webデザイナー Dプログラマーという職業に憧れているけど、PG的思考ができずに指をくわえて見ていることしかできないゲーマー さあレッツ プロファイリング!
Soket
シダックスっていうのは知ってますが しねっくす゛は知らんがな><
ックスって見ると、エロい事を考えてしまうが、俺だけ?
ピーエイチピーーーーーーーー wwwww
チョキチョキプルルルリィィィィィィィwwwwwwwwwwwwwwwww
>>903 足利義寧
七尾藩足利家十九代当主
(財)室町文庫理事長
(株)足利地所社長
北陸銀行相談役顧問
北陸電力相談役顧問
北國銀行顧問
北國新聞顧問
能登国出身会会長
905 :
nobodyさん :2008/01/08(火) 18:09:16 ID:lZ/KTkrG
ip-122-152-xxx-xxx.asianetcom.net から必要な攻撃を受けているの弾きたいのですが、 .htaccessで、したのように設定しても弾かずにスルーしてしまいます。 order allow,deny allow from all deny from .asianetcom.net phpのREMOTE_ADDRで弾くしかないのでしょうか? 宜しくお願いします。
>>905 必要ならそのまま攻撃受けてろ
というかスレどころか板違い
IPアドレスでやってみても駄目かね
908 :
nobodyさん :2008/01/08(火) 19:12:45 ID:EQjeskZg
909 :
nobodyさん :2008/01/08(火) 19:16:58 ID:YuL/x3if
FORMに値を設定してPOSTしたデータってURLエンコード・デコードは気にしなくていい? デコードはする必要ある?
ピーエイチ ピーーーーーー wwwwwww
913 :
nobodyさん :2008/01/08(火) 22:47:08 ID:EQjeskZg
ところでお前ら、DBのことをディービーって発音しないで、デービーって発音するのはなぜだ? お前らは、小学生かなんか?
はいはいワロスワロス
>>914 DBをデービーって発音しないあなたは学生かなんか?
「ディー」とか「ティー」とかいうと、電話なんかで聞き取りづらい
と感じる人が多く、聞き返されることが少なくない。
だからDは「デー」、Tは「テ(ry
もしかして、社長を捕まえて堀江呼ばわりする秘書は失礼な奴
系のネタだった?
>社長を捕まえて堀江呼ばわりする秘書は失礼な奴 kwsk
918 :
タヌキ ◆kN93rkdiOs :2008/01/09(水) 01:46:23 ID:1HfuVzUD
PHPを使って現在サイトを作成しています。 SQliteのデータベースに登録してある日本語のデータが検索してもヒットしません。 半角英数のデータは問題なくヒットします。 Webページのencodeの宣言はUTF8を指定しています。 どうすればよいでしょうか。御教授下さい。 Apache2.2.4 PHP 5.2.4を使用しています。
set names utf8
>>918 特に何も設定した覚えも無いけど、自分はUTF-8で問題なく検索できてる。
DB中にUTF-8で格納されているか/SQLはUTF-8で生成されているか確認してみたら?
921 :
918 :2008/01/09(水) 02:14:21 ID:???
>>920 なんでオマエそんなに偉そうな口調なんだよ。
何様のつもりだ? あぁ?
>>921 すいません・・。特に偉ぶっているつもりはないのですが・・。
>社長を捕まえて堀江呼ばわりする秘書は失礼な奴 kwsk
ブンヤ「堀江社長はいますか?」 美人?秘書「堀江は現在席を外しております」 ゆとり「社員が社長を呼び捨てwwwww」 ってやつじゃないか?
>>924 ってか、上司に敬称をつけないのって常識だろ?
お前がゆとりなんじゃないの?
( ゚д゚ )
流れを読めない
>>925 は間違いなくゆとり
>>926 流れ云々とかじゃなくて、常識的にオカシイだろwww
あぁ〜そういうことか。
まぁ、
>>924 の書き方もオカシイよな。
PHPの中のswitch文から条件に応じて別のPHPファイルを呼び出す (ジャンプする)ときはMETAタグを使えばいいんでしょうか?
その発想はなかったわw
>>929 〈\_/ /
'´ ̄ ,z≧D≦ \ /.
/´⌒/| /'⌒ l ) え
| /Tメ| /ヘヾハ ) ど l .
|/ l! ∨ l! |`ト ) ん l .
| 、_ 、_,Y ) だ ! .
|///r─‐┐//〉| ) け .
\|、_V⌒V イヽ| ) } .
ト、__了 /j ) {
\ //r'´ \
でも発想が面白いとおもた
switch($hoge) { case 1: header('Location: a.php'); exit; case 2: include_once('hoge,php'); break; case 3: echo '<html><header><meta http-equiv="Refresh" content="0;URL=hoge.php"></header></html>'; exit; } ってとこか?w
<header>
935 :
920 :2008/01/09(水) 09:14:03 ID:???
なんか知らんが
>>922 が自分の代わりに謝ってる。
まぁ、
>>921 は最近荒らしてるバカが詐称してるだけだろうから、どうでもいいけど。( ゚д゚)、ペッ
あれ?今日スクリプトきてないな 毎日ほぼ同じぐらいの時間だったから てっきり自動かと思ってたんだが
手動の暇人にきまっとる
938 :
タヌキ ◆kN93rkdiOs :2008/01/09(水) 13:47:53 ID:1HfuVzUD
939 :
nobodyさん :2008/01/09(水) 15:42:49 ID:kGicjkjv
phpが if($_POST['submit'] == "cookie"){ setcookie("test", "testest", 0); $test = $_COOKIE['test']; } htmlが(bodyのみ) <form action="cookie.php" method="POST"> <p><input type="submit" name="submit" value="cookie"></p> <p>$test</p> </form> のようなファイルを作りました。 1回ボタンを押して、クッキーがセットされますが$testにはまだ値が入っていません。 2回目以降はtestestが表示されるのですが1回目で表示させたいのです。 何か方法があればよろしくお願いします。
if($_POST['submit'] == "cookie"){ setcookie("test", "testest", 0); $test = "testest"; } でいいじゃまいかw
setcookie("test", "testest", 0); をした時点ではクッキーは発行されてないから $_COOKIEで取得はできない
if($_POST['submit'] == "cookie"){ $test = 'testest'; setcookie("test", $test, 0); } else { $test = $_COOKIE['test']; } でどう?
943 :
nobodyさん :2008/01/09(水) 15:59:44 ID:kGicjkjv
申し訳ありません。言葉足らずでした。
cookieの値自体はではなく、そのタイミングで発行できるか重要でした。
>>941 なるほど。わかりました。
Location辺りで1回飛ばしてみようと思います。
>>943 それで良いなら別に良いんだけど、1回ボタンを押したとき画面には $test の値が表示されなくても、
ブラウザに cookie は設定されてるよ。
945 :
nobodyさん :2008/01/09(水) 16:20:05 ID:kGicjkjv
そうなんですか? $_COOKIEは取得できなかった気がしたので・・・
それは当たり前。一度のリクエスト内で処理してるんだから。 まあやっていくうちに分かるさ。
947 :
nobodyさん :2008/01/09(水) 16:50:12 ID:lojqq5Hc
初めまして、よろしくお願い致します。 100〜200行程度のCSVファイルがあり、それの特定行から特定行までを読み込むにはどうすれば良いでしょうか? データ自体のCSVファイルと別に、インデックス用のCSVファイルがあり、何行目から何行目に 必要なデータがあるのか予め分かるようになっています。 fgetcsvで1行ずつ読み込みができるという所までは分かったのですが、 これを使ってデータ呼び出しの度に[1行目から読み込み]→[必要な行に到達したか判定]を繰り返すしかないのでしょうか? 毎回1行目から呼び出すのは効率が悪そうなので、できるならば、直接その行を呼び出せれば嬉しいです。 失礼な部分があったら申し訳ありません。 よろしくお願いします。
200行程度なら配列に入れとけば?
>>947 おまえには教えない。
なんか知らないけど、ムカツクから。
配列に入れてarray_sliceか whileで頭から読んで改行を数えるかだろうなぁ
>>947 PHP5ならSplFileObject->seek()で行単位シーク出来るよ。
SPLが使えなけりゃ指定回数fgetsかしら。
あ、すまん953は忘れてくれw
だが断る
>>933 ご教授深謝。
いろいろ方法ありますね。
headerがオーソドックスなのかな。
958 :
素人 :2008/01/09(水) 21:35:29 ID:4fMiWS+z
プログラム板では、WEBプログラム板に池と言われ、 WEBプログラム板に行くとなぜかサーバに接続出来ず、 仕方が無いので、プログラマの皆さんに質問させてください。 次が全く分かりません。 【環境】 PHP5 + MySQL5.0 + Windows XP (Home) + Apache 【事象】 WEB画面から入力された値をDBに登録(Insert)するという 単純な処理を実装してみたところ、半角数字なら問題無く登録出来 るのですが全角(日本語等)が登録データに含まれているとなぜか 登録が出来ません。 (しかもエラーも何も表示されない。) エスケープシーケンス回りを疑ってはみたものの、そもそも特殊文字 など入力していません。 (例:' " & ・・・等)
960 :
素人 :2008/01/09(水) 22:13:06 ID:4fMiWS+z
>>959 mysql_error()を実行したところ次のエラーメッセージが表示されました。
【実行SQL】
insert into tab1 values('485','あいうえお','あいうえお')
【エラー】
Incorrect string value: '\x82\xA0\x82\xA2\x82\xA4...' for column 'name' at row 11366
numberが [485] のデータを登録しました
しかし、実行してエラーになったSQLをMySQL上から実行すると普通に
登録出来ました。。。
何が原因でしょうか?
mysqlの文字コードとHTMLの文字コード(+PHPの文字コード)を合わせるべし それより登録できてないくせに登録しましたと表示するエラー処理のほうも何とかすれ
962 :
素人 :2008/01/09(水) 22:34:08 ID:4fMiWS+z
>>961 さん
そうですね<numberが [485] のデータを登録しました >
の出力は削除します。
MySQLでの文字コードを調べてみたところ次の通りです。
character_set_system
の部分を【sjis】に統一すれば良いでしょか?
________________________________________
show variables like '%char%';
________________________________________
_______________________________________
Variable_name Value
________________________________________
| character_set_client | sjis
| character_set_connection | sjis
| character_set_database | sjis
| character_set_filesystem | binary
| character_set_results | sjis
| character_set_server | sjis
| character_set_system | utf8
| character_sets_dir |
C:\Program Files\MySQL\MySQL Server 5.0
\share\charsets\ |
963 :
素人 :2008/01/09(水) 22:35:12 ID:4fMiWS+z
【補足】 1.*.phpファイルは、サクラエディタで編集し保存時には 文字コードとして<SJIS>を使用しています。 2.ブラウザは<Lunascape4>を使用しており、文字コードの デフォルトのチェックは次の通りです。 表示(V) ⇒エンコード(D) ⇒ 日本語(シフト JIS)
とりあえずSJISに拘る必要ないならphpとか 表示関係全部utf-8にしといたほうが幸せになるぞ
966 :
素人 :2008/01/09(水) 23:02:41 ID:4fMiWS+z
>>964 先ほどPCを再起動してみたのですがやはり全角文字だと文字化けします。
一度全てutf-8にしてみようかと思います。
【エラー内容】
Incorrect string value:
'\x82\xA0\x82\xA0\x82\xA0...' for column 'name' at row 11366
>>965 php.iniの事でしょうか?
スクリプト側でset names sjisですんなりいくかも あとmy.cnfでskip-character-set-client-handshakeとか キーの重複は関係ないか
質問です。 数メガの容量のファイルを読み込んで、配列にいれる。 それをPHPで一度に処理して表示したいんですが、 サーバーへの負担はどのくらいになるのでしょうか? レンタルサーバーを借りていて、あまり処理が重かったら迷惑かなと思いまして。
970 :
素人 :2008/01/09(水) 23:24:08 ID:4fMiWS+z
>>968 さん
ありがとうございます!!解決しました!!
971 :
素人 :2008/01/09(水) 23:24:40 ID:4fMiWS+z
972 :
nobodyさん :2008/01/10(木) 01:01:47 ID:nr809F9h
何らかのフラグに用いる変数を100個用意するのと、 配列ひとつ用意して、それに要素100個入れてフラグとして利用するのでは どっちが処理早い? プロのプログラマってそういう処理速度考えて作業してるんでしょ? そういうのの代表例教えて ケースバイケース過ぎて無理かな
>>972 後者。つか前者は実行速度/効率云々の前に
プログラム組んでる時点でコスト掛かるだろ。
っていうか、プロならフラグを100個も使うようなコーディングはしない。 フラグを使わないコーディングが出来るように勉強しろよ。 趣味でやっているなら、動けばいいと思うけどな。趣味ならな。
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
http://pc11.2ch.net/test/read.cgi/php/1196511516/ ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
そろそろ次スレな季節な訳だが 質問者にID表示をさせてるがこれトリップでも問題なくない? IDなんてIP変われば変わるんだし
977 :
nobodyさん :2008/01/10(木) 09:09:13 ID:jxxVBXDn
画像縮小でBMPファイルを扱うにはどうすれば良いんですか? jpgならimagecreatefromjpeg()で問題ないんだけど、BMPのことはマニュアルにも載ってないみたいで。
>>977 なんかのエクステンション使うとかしないと無理
bmp→jpgとかならimagecreateの下の方にやり方が載ってる
979 :
nobodyさん :2008/01/10(木) 10:03:32 ID:jxxVBXDn
どうも。見てみます
980 :
nobodyさん :2008/01/10(木) 10:07:02 ID:cQpcF1mT
独学でLinuxやPHPを学んで今就職活動してます。 PCサイトを作ってる会社と携帯サイトを作ってる会社、 どっちで働こうか迷ってるんだけど、 PCサイトと携帯サイトのプログラミングって全然違うもんなの? いろんなスキルを身に付けるならPCサイトの方が良さそうな気がするんだけど、 どうなんでしょうか?
別に同じ
三行でまとめてくれ
>>980 > いろんなスキルを身に付けるならPCサイトの方が良さそうな気がするんだけど
いろんなスキルを身につけたいならむしろPCサイトと
同様の事を求められるのにキャリアや機種による制約が多い
携帯サイトの方が良いと思う
>>974 >プロならフラグを100個も使うようなコーディングはしない
むしろプロの方が"ちゃんと"そういう方法を採用するだろ。
今日日メモリなんて只みたいなもんだからな。
とりあえずPHPは単価安いし仕事がないんでASP.NETやっとけばおk 会社としても高い仕事やりたいわけよ となると仕事で使うのはASP.NET>Java>PHPとなってくるわけよ PHPだけのとこにはいかないほうがいいよ 安い給料がさらに安くなるぜ
フラグを100個なんて管理破綻するからそんなことやらんわ 状態遷移を有効に使う
地方SOHOの俺涙目。
100個(件)と100種(状態)を混同してないか?
どうせなら、西鹿児島駅を鹿児島駅とし、鹿児島駅を東鹿児島駅とでもすればいいのに、と思うのは私だけでしょうか。
>>990 フラグって上げ下げ(2値)か、せいぜい3値程度で
100もの値を保持するのはステイタスだよな。
>>972 は100個のフラグの処理の話と解釈してるが
そこで「状態遷移を有効に使う」方法ってどんなの?
レベルひっくwwwwwwwwwwwwwwwwwwWWWWWWwwWWwW
そもそも100個のフラグを使う仕様がタコだって話だろ。
>>993 みたいな初心者は口出さないでアホな質問だけしてろよ。
ん?悔しかったの?
どうせなら、西鹿児島駅を鹿児島駅とし、鹿児島駅を東鹿児島駅とでもすればいいのに、と思うのは私だけでしょうか。
麻布高校から慶応大学を経て公認会計士になりましたが、何か??
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。