くだすれPHP(超初心者用)5
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/11/22(土) 06:36:02ID:???もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。
PHP Home Page
http://www.php.net/
http://jp.php.net/
くだすれPHP(超初心者用)4
http://pc11.2ch.net/test/read.cgi/php/1213356756/
適当に関連スレ(マルチはだめぽ)
【PHP】下らねぇ質問はここに書き込みやがれ 69
http://pc11.2ch.net/test/read.cgi/php/1211879073/
0251nobodyさん
2008/12/16(火) 21:20:01ID:???ありがとうございます
説明不足ですみません。やってみましたがこれはアルファベット順で並ぶのでしょうか?
キー順でソートしたいのです。
一応自分なりに調べてはいるのですが
foreach ($url as $key => $value)
なんて文をどこかへ追加って感じで方向は合っているでしょうか?
0252nobodyさん
2008/12/16(火) 21:22:18ID:???0253nobodyさん
2008/12/16(火) 21:25:19ID:???ちなみに並ぶけどさ、やってみたんなら並ぶかどうか確認できるでしょ?
配列の並べ替えが終わったら、foreachでもeachでも好きなループ組めば?
0254nobadyさん
2008/12/17(水) 17:32:12ID:???する事って出来るのでしょうか?レベルが高いかも知れませんが、詳しい方がいらっしゃったら
教えてください。
0255nobodyさん
2008/12/17(水) 17:42:39ID:???0256nobodyさん
2008/12/17(水) 17:52:54ID:???ffmpegインストールしてphpから呼び出して使えば出来ると思う。
0257nobodyさん
2008/12/17(水) 18:01:15ID:???0258nobodyさん
2008/12/18(木) 05:46:38ID:???PDOでPostgreSQLにアクセスしています。
ところが、全部PDOメソッドだけで実現できないことがあり、
PDOとpg_*関数を混在使用するハメになりました。
そこで質問ですが、
PDOオブジェクトで、pg_*を使うためのデータベースハンドル
を得ることはできるのでしょうか?
できないのなら、PDOでのDB接続とは別に、pg_connectで
DB接続する必要があるということでしょうか?
0259nobodyさん
2008/12/18(木) 07:10:30ID:???0260nobodyさん
2008/12/18(木) 09:11:27ID:???PDOで、PostgreSQLのbytea型に格納してあるバイナリデータを
読み出そうとすると、不具合があるようなのです。
(公式情報ではないので自分の勘違いかもしれませんけど)
そこでほとんどの処理はPDOで行い、bytea型のR/Wのみ
pg_*関数を使いたいと思っています。
(pg_escape_bytea()とか)
0261nobodyさん
2008/12/18(木) 09:45:27ID:???0262nobodyさん
2008/12/18(木) 13:15:36ID:???0263nobodyさん
2008/12/18(木) 17:34:01ID:???具体的には
http://test/user/favorite
のようなものを作るにはどうしたらよいですか?
0266nobodyさん
2008/12/20(土) 19:15:51ID:???「ソ」と「\」を入力した場合には「\」がどんどん追加増加されるのですが
原因がわかりません。
以上の問題の解決の仕方や、検索でSQL文やPHP言語やHTMLを入力された場合の
表示にバグを発生させない方法をご存知の方、どうか教えて頂けないでしょうか
0268nobodyさん
2008/12/20(土) 22:06:37ID:maii3k3G1 2 3 4 5
ではなく
0 1 2 3 4
とゼロから始めるにはどうすれば良いでしょうか?
0271nobodyさん
2008/12/20(土) 23:16:59ID:???俺なら迷ってる時間があったら丸ごと全部再実装する
0272nobodyさん
2008/12/20(土) 23:18:25ID:???0273nobodyさん
2008/12/20(土) 23:18:35ID:???0274269
2008/12/21(日) 01:06:19ID:???>>273さんのやり方で例えば
ttp://www.phpbook.jp/pear/pear_pager/index4.html
このページではどこで-1すれば良いでしょうか?
0275nobodyさん
2008/12/21(日) 01:23:54ID:???0277nobodyさん
2008/12/21(日) 12:44:01ID:???入力はこっちでいじればいいが、出力はgetLinks()の結果を正規表現とかで置換するしかない。
どっちかっつーといじりたいのは変数の方じゃなくて画面表示の方だろうしな。
インターフェイスはおおむね決まってる(パクる)から、残りの作業は実装だけだしな。
0278nobodyさん
2008/12/21(日) 12:51:30ID:???0279nobodyさん
2008/12/21(日) 18:50:29ID:???ページの管理を楽にしようと思っているのですが
馴れていない人がやると、まずいことはありますでしょうか
0280nobodyさん
2008/12/21(日) 18:58:59ID:???0281nobodyさん
2008/12/21(日) 19:06:00ID:???txtをrequireする、の意味がまったく分からん。
ファイル名に「../../../」とか指定されると、ヤバいファイルを開かれる危険がある(ディレクトリ・トラバーサル脆弱性)。
総じて、予期しないファイルを開かれないような対策が必要になる。
数種類しかないなら、決まった文字列以外は許可しないようにする。
たくさんあってそうするのが面倒なら、「/」を入力されたらエラーにする。
hoge.txtを開きたいなら「hoge」の部分だけ入力させる、などの対策が必要。
ファイル名は自分で決められるんだし、[0-9a-Z-_]あたり以外の文字列が来たら問答無用でエラーになるようにするのが無難だな。
0282nobodyさん
2008/12/21(日) 19:34:34ID:???ありがとうございます
HTMLで記述したファイルの拡張子をPHPに変え、
任意の部分にrequireでtxtファイルを読み込むと
メニューなどの管理が楽になると某サイトで読みました
それをメニューではなく内容に変えれば、
外観や増えていくページの管理が楽になるのかなってことで
初心者ながら、勉強もかねて質問をさせていただきました
自分の決めた文字列だけを対象にするということで
switch ((string)$page):
case 'log1':
case 'log2':
略
break;
default:
echo "ファイルが見つかりません";
endswitch;
こういった記述でよろしいのでしょうか
0283nobodyさん
2008/12/21(日) 19:45:19ID:???0286nobodyさん
2008/12/21(日) 20:04:16ID:???コードがないとなんとも言えんわな。
やってみて、動くコードができてから来たほうがいい。
何もやらずにいきなり聞く姿勢は歓迎されんし。
0287nobodyさん
2008/12/21(日) 20:09:44ID:???どう書けばいいんでしょうか
じゃ勉強の糞の足しにもなりゃしねぇよカス
0290nobodyさん
2008/12/21(日) 20:38:48ID:???努力します
>>286
中途半端でした、すみません
一応、問題なく動いたので評価をお願いしたいです
log001.txt
<b>表示されました</b>
index.html
<A Href="pagelog.php?log=log001">log1へ</A>
pagelog.php(head略)
<body>
<?php
$_GET['log'];
switch ((string)$log):
case 'log001':
case 'log002':
require($log.".txt");
break;
default:
echo "ファイルが見つかりません";
endswitch;
?>
</body>
0291286
2008/12/21(日) 21:01:57ID:???それが動く事に少なからず衝撃を受けた。
requireやincludeは、基本的にPHPプログラムを読み込むためのもの。
それだとたぶん、txtの中にPHPプログラムとして解釈可能な文字列があると、実行されてしまう。
単純にテキストファイルの中身を読み込む場合、file_get_contents()を使ったほうがいい。
動くなら問題ないっちゃあないんだが…
0292nobodyさん
2008/12/21(日) 21:07:15ID:???「評価されると危ないので避けたほうがいい」という意見は変わんないけどな。
txtは自分が編集するから、安全といえば安全なのだが、無駄な危険の芽は摘んだほうがいい。
いつの日かうっかりtxtにexit();とか書き込んだらエラーになるし。
0293nobodyさん
2008/12/21(日) 21:39:17ID:???うっかりが起きないとも限らないので
file_get_contents()について調べてみます。
勉強になりました。
ありがとうございました。
0294nobodyさん
2008/12/21(日) 21:45:08ID:???まぁ、動いているので問題ないけど、
コーディングのマナーとしてはよろしくないかもね
・require等の中に変数は入れない方がいい
・比較するときにキャストして使う時にキャストしないというのは問題になることがある。
前者は設定によってはリモートでのコード実行につながるから
後者は比較が通っても、問題のある変数で実行する可能性があるから
0297nobodyさん
2008/12/21(日) 22:58:47ID:???0299nobodyさん
2008/12/22(月) 18:00:09ID:???2週間位で基礎を学ぶには何したら良いんですか(';ω;`)ウォウォ…
0300nobodyさん
2008/12/22(月) 18:02:13ID:???0301nobodyさん
2008/12/22(月) 18:06:33ID:???0302nobodyさん
2008/12/22(月) 18:21:33ID:???0303nobodyさん
2008/12/22(月) 18:26:34ID:???「なんで?なんで?なんでこうなるの?」と思いながら丁寧に読んだり、
チョっとした機能を追加してみたりして、
いろいろもがくといいんじゃないだろうか。
0304nobodyさん
2008/12/22(月) 20:08:10ID:???グローバル空間にexplodeしてたりするスクリプトが多すぎる。
0305nobodyさん
2008/12/22(月) 20:09:08ID:???0307nobodyさん
2008/12/22(月) 20:18:07ID:???0308nobodyさん
2008/12/22(月) 22:15:31ID:???初めてのプログラミングがPHPで、配列/連想配列でこけたけど、しばらくしてからやってみたらすぐ理解できた。
あんまり根詰めないで気楽にまったりやるといいよ。
読むだけじゃなくて手も動かすといい。
サンプル丸写しして、いろいろ自分で弄ってみるんだ。
エラー出ればメッセージ出て何が原因かすぐわかるしね。
0309299
2008/12/22(月) 22:16:58ID:W3OrxKsTどっかから?
どっかから?そのどっかから?はどっかから?
つまり僕が言いたいのはどっかから?なんです。お願いします。
0310299
2008/12/22(月) 22:39:19ID:W3OrxKsT( ´_ゝ`)フーン
「どうもありがとう」って言っといてだってお兄ちゃんが
妹より
0312nobodyさん
2008/12/22(月) 22:59:57ID:???0313nobodyさん
2008/12/22(月) 23:00:21ID:???0315nobodyさん
2008/12/22(月) 23:15:14ID:zcPu3Ss9PHP5のみサポートの有名なFWで開発してみて、動いたらソースを読むのが吉
0316nobodyさん
2008/12/23(火) 00:46:09ID:???0317nobodyさん
2008/12/23(火) 02:41:59ID:???0318nobodyさん
2008/12/23(火) 03:56:34ID:207JnJAgPHPはあまり分らないもので
0321nobodyさん
2008/12/23(火) 13:04:10ID:???$array=array('name'=>'aki','age'=>23,'karesi'=>'futsu');
foreach($array in $key=>$item) {
echo "$key $item\n";
}
0322nobodyさん
2008/12/23(火) 13:54:23ID:???0324nobodyさん
2008/12/23(火) 17:43:37ID:???0325nobodyさん
2008/12/23(火) 18:14:25ID:???0326nobodyさん
2008/12/23(火) 18:37:45ID:???ってか、Cは却って難しい
0327nobodyさん
2008/12/23(火) 20:41:02ID:???マニュアルにあるSQLite3ってやつとは何が違うんでしょうか
0328nobodyさん
2008/12/23(火) 20:45:19ID:???0329nobodyさん
2008/12/23(火) 21:06:01ID:???ググってもPDOのことしか見当たらずそこからマニュアルに流れ着いて
SQLite3文?って物があるのを知ったのでどういった違いがあるのかなと思ったのですが
どっちを使っても構わないってことでしょうか
0330nobodyさん
2008/12/23(火) 21:06:50ID:???0331nobodyさん
2008/12/23(火) 21:19:15ID:???どちらがいいのかはわかりませんが、せっかくなのでSQLite3も使ってみます
0332nobodyさん
2008/12/23(火) 21:44:59ID:???元々はそのそれぞれに対して、よく似てるけどちょっとずつ形の違う関数がいっぱいあった。
で、それが不便だからって事で、「同じ書き方でどれにでもアクセスできるような仕組みを作ろう!」となった。
それがPDO。
PDOを使って書かれたプログラムは、DBがSQLiteからMySQLに変わっても、PDOクラスをnewしてるところだけ書き換えれば普通に動く。
また、PDOひとう覚えれば、どのDBでも使えるようになる、というメリットもある。
0333nobodyさん
2008/12/23(火) 21:50:29ID:???0334nobodyさん
2008/12/23(火) 21:50:51ID:???0335nobodyさん
2008/12/23(火) 21:57:29ID:???これだけだとバランス取れないので、一応デメリットも。
全DBでなるべく共通の操作を提供する、という仕組みのため、一部のDBに固有の機能が使えなかったりする事がある。
よくある話だと、MySQLの持続的接続が使えなかったりな。あと、パフォーマンスでもPDOは若干劣る。
個人で使う最大のメリットは、プリペアドステートメントのサポートだと個人的に思う。
SQLインジェクションの危険性をほぼゼロにできる上に、プログラムの可読性も上がる。
0336nobodyさん
2008/12/23(火) 21:58:54ID:???それってパフォーマンスに影響するんだっけ?ベンチとった?
0337nobodyさん
2008/12/23(火) 22:14:41ID:???SET NAMES 危ないって聞くし。
0338335
2008/12/23(火) 22:49:27ID:???んな事いったら、sqlite関数やmysql関数を使ってしまえば、将来のDB変更の自由度が失われるわけだが。
俺は自由度や性能云々以前に、DB依存のコードがそこら中にあるのを気持ち悪いと感じる。そんなものはどっかで隠蔽されるべきだ。
(実際問題、DBを置き換えるなんて事態は普通ないだろうけどな)
0341nobodyさん
2008/12/25(木) 05:57:49ID:???>>PDOクラスをnewしてるところだけ書き換えれば普通に動く
SQL文自体がDB固有になるだろうから、現実的にそれはあり得ないんじゃないか?
(標準SQLだけで書かないでしょふつう)
俺的なPDOのメリットは、DB関連関数をどのDBにも共通で使えるため開発の学習量を
減らせること。これはソースコードの可読性の向上、メンテ性の向上にもなる。
0342nobodyさん
2008/12/25(木) 18:01:58ID:???0343nobodyさん
2008/12/25(木) 20:20:04ID:???単純にPDOだけで実現できるわけじゃぁないが、
PDOで標準SQLだけを使うか、
PDOよりも抽象化したFWを使うわけで、
素の関数を使うよりは汎用性が高い。
どっちの言うことも大きく間違っちゃいないわな
0344nobodyさん
2008/12/29(月) 23:28:23ID:hqhRjo690345nobodyさん
2008/12/29(月) 23:37:49ID:???0347nobodyさん
2008/12/31(水) 11:35:34ID:???確認用のダイアログを出すにはどうすれば良いでしょうか?
実行しますか?
【OK】 【キャンセル】
※ダイアログを表示し【OK】が押された場合のみ
submit処理を行ういたいです。
0348nobodyさん
2008/12/31(水) 11:47:59ID:???超JavaScript
ググれば死ぬ程出てくる
一番最初に引っかかったページ http://promptbox.jp/blog/memo/index.php?itemid=785
お年玉くれw
0350nobodyさん
2008/12/31(水) 12:39:59ID:???■ このスレッドは過去ログ倉庫に格納されています