【PHP】質問スレッドpart34【php】
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん
2006/03/21(火) 10:19:14ID:???【ガイドライン】
質問の前にgoogleやマニュアルを検索してください。
http://www.php.net/manual/ja/
http://php.s3.to/namazu/
◆質問する場合の注意
1. 自分のIDを表示させること。(メール欄には何も記述しないでください)
2. ハードウェア、OSのバージョン等を明記すること。
3. 己の行った操作、変更などを詳しく明記すること。
4. エラーメッセージはそのまま表記すること。
5. 質問者としても態度をわきまえること。
◆質問後の注意
・質問者は必ずIDを表示させてください。
書き込む場合はメール欄に何も記述しないでください。
・2回目以降は最初に質問した際のレス番号を名前欄に入れてください。
(逆に回答者は質問者に対して>>(アンカー)をつけて答えてください。)
・解決しなくても回答をもらった場合はお礼を言う。
(荒らし、煽りは除く)
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
過去スレ、関連リンク、FAQ等>>2-10辺り
0813nobodyさん
2006/05/11(木) 02:17:25ID:???お、お前・・・・・・・・。
その関数の働きや、それを使う意味を全く理解してないからこその質問だな。
まず一回氏んでこい。そしてとりあえず「サイテロ」でも読んでこい。
0815nobodyさん
2006/05/11(木) 08:47:25ID:Nnnm8SbYこれで一応動くのですが、カッコ悪いので。
使い方としては、ファイルの一レコード目にキーを書いておいて、
2レコード目以下の条件にあったものを連想配列でアクセスする
といったことを考えています。
$keys = array("id","name");
$value = array("99999","小泉純一郎",);
//-----
$count = count($keys);
for($i = 0;$i < $count;$i++){
$rensou [$keys[$i]] = $value[$i];
}
//-----
0816nobodyさん
2006/05/11(木) 08:53:26ID:???ずばりarray_combine。
つーかファイルから読み込んでる時点で$rensouにちゃんと入れてけばいいんでないの?
0817nobodyさん
2006/05/11(木) 09:21:14ID:???後者が良い。
>>813
初心者の内は誰もが疑問に思う事だと思うが、addslashes()とかと勘違いしてない?
0818nobodyさん
2006/05/11(木) 09:26:46ID:???でも使っているのは4.xだ。
ファイルで読み込むときは$rensouに直接放り込んでます。
サンクスです。
0819nobodyさん
2006/05/11(木) 10:23:28ID:???>>812じゃないけどDB格納後の方が良いメリットってある?
DB格納前にサニタイズしておけば
表示側でのサニタイズのコード入れてなくていいから
それはそれで楽でセキュアなような気もしなくもないんだけど
(HTMLコード自体を入れるカラムとは例外として)
0820nobodyさん
2006/05/11(木) 10:38:15ID:???0821nobodyさん
2006/05/11(木) 10:56:38ID:???>>817じゃないが、うちもそのままサニタイズして表示するようなものの場合は、基本的に処理後にDBに記録してるな。
動的動作のものが殆どなので、多少コストも緩和されるしね。
まぁ、前か後か1アプリ内で統一させておかないと後々ややこしい事になると思うけど。
メリットとしてはなんだろうね。
CSVとかで保存した時に、色んなものでログの使い回しが利くとか…?
0822nobodyさん
2006/05/11(木) 11:19:59ID:???必ずどこかで漏れが生じてセキュリティに問題が発生する。
HTMLにしろSQLにしろ、エスケープはとにかく「直前」&「確実」が基本。
0823nobodyさん
2006/05/11(木) 11:23:25ID:???ファイルの内容(ソース)を変数に格納するのに最も簡単な方法はなんでしょうか?
直接file_get_contents()みたいなものを使えればいいんですが、
一旦一時ファイルを作って、それをfopenしてftp_fgetみたいな方法しか
思いつきませんでした。
もっとシンプルな方法あったらお願いします
ttp://jp.php.net/manual/ja/ref.ftp.php
0824nobodyさん
2006/05/11(木) 11:32:12ID:???サニタイズって呼ぶなキャンペーン。って
http://takagi-hiromitsu.jp/diary/20051231.html
のことなんだけど。
正しくは『サニタイズ言うなキャンペーン』だったが。
0825nobodyさん
2006/05/11(木) 12:26:52ID:???不可逆変換して保存すると元のデータに戻せないから
後でデータから"<a"タグを検索して抜き出したいとか思ったときに"<a"が変換でそうなったのか元からそうなのか判断できない
0826nobodyさん
2006/05/11(木) 12:34:00ID:???DBに対する考え方の違いかな?
先の例でいうとhtmlspecialchar()で変換後のデータをDBに入れるとか俺的にはありえないな。生理的に気持ち悪い。
例えば検索処理で要らないものまで拾ったりしそうだしさ。
例えば少しでも負荷の軽減をと考えるのであれば、処理後のデータをキャッシュしておいて、
そのキャッシュを表示させると考えるのが普通だと思うのだけどね。DB接続も入らないし。
0827nobodyさん
2006/05/11(木) 12:48:25ID:???0828nobodyさん
2006/05/11(木) 13:15:26ID:0g4oanFp(細かいバージョンは今頃SEがつめてるはず)
特にデータを落とす先のファイルの形式指定はありませんが、
ファイルじたいにパスワードをかけなければなりません。
となると、やっぱエクセルか??、と。
エクセルの場合Spreadsheet_Excel_Writerが結構実用的じゃないかってとこは分かったのですが
パスワードがかけれる云々に言及した資料は未だ捜索中です。
この場合、皆さんならどういった開発方法を考えられますか?
よろしくお願いいたします
0829spam業者のアドレス
2006/05/11(木) 15:14:38ID:???落としたファイルをzip圧縮してパスワードとか。
頻繁に落とす意味もよくわからんけど
・・・phpの質問スレっていうのはスレ違い感があるような
0830nobodyさん
2006/05/11(木) 16:09:40ID:???、そのようなことは可能でしょうか?
再帰使ってたら頭こんがらがってきて…
無限ループ・無限ループ・無限ループ・・・・・・
0831828
2006/05/11(木) 16:15:30ID:0g4oanFpまぁ、微妙だけどPHPだしな〜〜と思ったので。すみません
ところで、Zipに圧縮ってPHPでできましたっけ?
・・・.netにしてくれりゃー一発で終了なのに・・・クソSE
0832nobodyさん
2006/05/11(木) 16:18:25ID:???0834830
2006/05/11(木) 16:34:26ID:???レスありがとうございます
>mv
もしよろしければ詳しく教えていただけないでしょうか?
830を分かりやすくいうと、ディレクトリAの中のディレクトリやファイルをBにそっくりそのまま移すという感じになります
0835nobodyさん
2006/05/11(木) 16:47:17ID:???http://www.php.net/manual/ja/function.rename.php
0836nobodyさん
2006/05/11(木) 16:47:43ID:???ディレクトリを移動させればいいわけだから
`mv -f $from $to`;
でいいんじゃない?
phpのrename()はディレクトリには使えないっぽいからね。
移動させるときに他の処理が必要なら頑張って再帰かな。
5.1以降ならSPLにRecursiveDirectoryIteratorなんてのがあるけど、これどうなんだろう?
0837836
2006/05/11(木) 16:52:07ID:???renameでもディレクトリ移動できたorz
0838830
2006/05/11(木) 17:18:20ID:???移動ではなくコピーです
言葉足らずで申し訳ありません
0839nobodyさん
2006/05/11(木) 17:31:13ID:???http://jp.php.net/manual/ja/function.copy.php
あのねぇ……
0841nobodyさん
2006/05/11(木) 17:43:24ID:???839じゃないがどこに目をつけてるんだ
頭は生きているうちに使うもんだ
つUser Contributed Notes
0842823
2006/05/11(木) 18:01:21ID:???0843nobodyさん
2006/05/11(木) 18:12:23ID:g/mQfyCdテーブル「name」が[hoge]の場合に表示する。
変数を$list[name]に置き換える。
$conn = mysql_connect(localhost, root, 1111);
$selectdb = mysql_select_db(list, $conn);
$sql = "select * from list where name=hoge";
$rst=mysql_query($sql,$conn);
while($list=mysql_fetch_array($rst)){
echo $list['name'];
}
しかし、whileの行がmysql_fetch_array(): supplied argument is not a valid MySQL result resource
というエラーが出ます。どうしたら良いのでしょうか?
0844nobodyさん
2006/05/11(木) 18:16:03ID:???ftp_fgetでやれや。どうしてもってんならSocket使えば?
>>843
mysql_queryでエラーになってんじゃ?
name = 'hoge'
0845nobodyさん
2006/05/11(木) 18:21:20ID:???リモートファイル開いて一行ずつ処理するか
http://jp.php.net/manual/ja/features.remote-files.php
ソケット関数で原始的に処理するか。
"簡単に"ということなので後者なら、お膳立てされたライブラリがないか
まずは探してみることだね。PEARのはftp関数と同じでファイルとして落とす必要がある。
0847844
2006/05/11(木) 18:34:02ID:???今しがたの思いつき
file_get_contents("ftp://user:password@example.com/pub/file.txt")
とかはどうよ。
0848843
2006/05/11(木) 18:40:03ID:???以下のようにしろと言うことですよね?
$sql = "select * from list where name='hoge'";
しかし、特に変化ありません・・。というか、何も表示されません
0850nobodyさん
2006/05/11(木) 18:45:20ID:???エラーはどうなったんだよ?
それとレコードはあるのか? nameがhogeのレコード
つか、デバッグの方法を覚えるというか考えろよな
$sql = "select * from list LIMIT 10";
にして最後に
echo "読み込んだ件数:".mysql_num_rows($rst);
とかしてみるとか
0853nobodyさん
2006/05/11(木) 20:49:14ID:???komagataさんに何があったんでしょうか・・・。
随分長い間blog更新しないなぁと思ってたらいきなり「退職しました」ですもの。
なんかすごい気になる・・・。
いつもblog楽しみにしてたので、何かマイナスな事があったのなら悲しいなぁ・・・。
0854nobodyさん
2006/05/12(金) 01:13:33ID:???whileの前でmysql_error()を表示すればいい。
$rstをvar_dumpしても載ってたと思う。
0857nobodyさん
2006/05/12(金) 12:58:53ID:???0859nobodyさん
2006/05/12(金) 17:22:14ID:???0860nobodyさん
2006/05/12(金) 17:50:08ID:???0862nobodyさん
2006/05/12(金) 20:08:50ID:???apacheを設定しないとだめなのでしょうか?
0863nobodyさん
2006/05/12(金) 21:09:48ID:???可能だけど、PHPでスクリプトを処理した後
その出力を更にSSIとしてhttpdに処理させなくてはならない。
ApacheなんかだとApache2じゃないと無理だし、設定も必要。
全部PHPで処理した方が良いよ。
0864nobodyさん
2006/05/12(金) 23:47:57ID:???効率悪すぎるけど・・・
その前に、phpではなくssiで処理する必要があることって何だろう?
0865nobodyさん
2006/05/13(土) 00:29:00ID:???というよりDBの内容をメールしたいとなった時どうするの?
データってHTMLだけに出すものじゃないでしょ?
検索したりさ。
0866nobodyさん
2006/05/13(土) 09:09:58ID:sR0lmg54PHPを自分のパソコンで動かそうとしたんですけど
Apacheをインスコしたのは良いものの、どうやってするか教えていただけませんか?
0867nobodyさん
2006/05/13(土) 09:16:34ID:???1.とりあえずApacheの動作を確認する
2.PHPのマニュアル、インストールの章を読む
3.手順に沿ってインストール
0868spam業者のアドレス
2006/05/13(土) 11:50:55ID:???グーグルで調べたらインストール方法ぐらいいくらでもでてくる
0869nobodyさん
2006/05/13(土) 13:03:48ID:???そのファイルサイズを取得する方法はないでしょうか?
0872nobodyさん
2006/05/13(土) 14:07:20ID:???0873nobodyさん
2006/05/13(土) 14:24:48ID:l8EeBxVx$_SERVER['QUERY_STRING'] は test になりますが、
#(ハッシュ?)移行の文字列の取得はどうすれば良いでしょうか?
0875873
2006/05/13(土) 15:04:34ID:l8EeBxVxありがとうございます。やはり取得不可能でしたか
*.php?test-id30 などにして下記で飛ばすようにします。
$query = str_replace("-","#",$_SERVER['QUERY_STRING']);
header("Location: http://example.com/test.php?" . $query);
0876nobodyさん
2006/05/13(土) 15:21:17ID:???'/(\w+?)\-(\w+?)/'
0878nobodyさん
2006/05/13(土) 19:35:06ID:jirCYTM40879nobodyさん
2006/05/13(土) 21:56:48ID:???設定ミスだ。dll加えてないだけだろ。
つーかくだ質レベルの質問するな。
0880nobodyさん
2006/05/13(土) 22:21:22ID:jirCYTM40882nobodyさん
2006/05/13(土) 22:45:36ID:sR0lmg54>>867
Apacheはちゃんと動きます。
でも、PHPを実行させたときにどうやってApacheを使うかわかりません
0884nobodyさん
2006/05/13(土) 23:04:46ID:sR0lmg54(http://www.apache.jp/dist/httpd/binaries/win32/apache_2.2.2-win32-x86-no_ssl.msi )
動作確認(http://localhost/)OK
PHPのインストール(PHP 4.4.2)
ApacheとPHPの連携
conf/httpd.confが見つからないので書き換えできない
とりあえずここまで作業進めたんですけど。
PHPを自分の鯖で実行というのはどうすればできるのですか?
0885nobodyさん
2006/05/13(土) 23:24:47ID:???上でも言われたように、マニュアル読もうぜ。
ttp://www.php.net/manual/ja/install.windows.php
それと、apache2.2系列は内部的に大きく変更があったので、PHP側の対応が追いついていない。
2.0系列を使うよろし。
(snapshot版の方は使えるが、普通のユーザはそこまでして使う理由はあるまい)
0886nobodyさん
2006/05/14(日) 00:47:47ID:fxMAnAYJ0887nobodyさん
2006/05/14(日) 00:50:00ID:w7OEC7Loごめんなさい、Apache2.0.58でした。
マニュアル読んでみたのですが、
CGI バイナリの使用じゃなくてApache モジュールの使用で大丈夫なのですよね?
php4apache2.dllがPHPにもApacheにもないんですけど、別途ダウソ必要なんですか?
0889nobodyさん
2006/05/14(日) 00:54:19ID:w7OEC7LoZIPすらありませぬ・・・
0891nobodyさん
2006/05/14(日) 00:56:48ID:w7OEC7LoApacheですか?
PHPの中にはフォルダが3つとファイルがちょこっとです。
0892nobodyさん
2006/05/14(日) 01:21:46ID:???ttp://www.php.net/downloads.php
Installer なんか使うな。CGI only ってわざわざ書かれてるだろう。
ZIP 版使ってインストールやり直せ。
つーかマニュアルちゃんと嫁
0893878
2006/05/14(日) 10:52:28ID:Kk5ImAZs0894nobodyさん
2006/05/14(日) 12:59:06ID:w7OEC7Loすんません。
設定はできました。
index.phpを作って実行したのですけど、IEで開いても何もおきません。
Sleipnilで開くと、index.phpのダウンロードになります。
実行されないです¨
0895nobodyさん
2006/05/14(日) 13:34:17ID:???0897nobodyさん
2006/05/14(日) 14:55:31ID:???Windows版では簡易的(本当に簡易的)にSMTPを話す機能が
組み込まれてるから別途MTAを用意しなくても構わない。
WindowsだとスタンダードなMTAを用意するの面倒でしょ。
0898nobodyさん
2006/05/14(日) 15:55:45ID:???ところでmysql_query()とかで得たSQLの結果を、そのままmysqlみたいに表示するにはどうすればいい?
+----------+
| Database |
+----------+
| mysql |
| test |
+----------+
ってのは、地道にmysql_field_name()とmysql_fetch_row()とechoを駆使するしか無い?
echo "+----------+\n"
echo "| ", mysql_field_name($result, 0), " |\n";
echo "+----------+\n"
while($i = mysql_fetch_row($result)) {
echo "| $i[0] |\n";
}
echo "+----------+\n"
なんか面倒だね(w
0899nobodyさん
2006/05/14(日) 16:30:11ID:???0900nobodyさん
2006/05/14(日) 16:43:16ID:???そのレベルで面倒とか言われると…
そもそもmysql形式での表示が面倒くさいんだよな。
while($data = mysql_fetch_assoc($result)) {
foreach($data as $k => $v) {
echo "$k: $v "
}
echo "\n";
}
こっちの方がよほど簡単で利便性も高いと思うんだがダメか?
0901nobodyさん
2006/05/14(日) 16:51:58ID:???0903nobodyさん
2006/05/14(日) 17:03:16ID:???0904nobodyさん
2006/05/14(日) 17:14:57ID:???Mail Transfer Agent。sendmail/qmail/postfixなんかの、主にメールの配送を行うソフトウェアのこと。
ついでにMDA, MUAなんかを調べておくといいよ。で、お前に言いたいのだが
, イ)ィ -─ ──- 、ミヽ
ノ /,.-‐'"´ `ヾj ii / Λ
,イ// ^ヽj(二フ'"´ ̄`ヾ、ノイ{
ノ/,/ミ三ニヲ´ ゙、ノi!
{V /ミ三二,イ , /, ,\ Yソ
レ'/三二彡イ .:ィこラ ;:こラ j{
V;;;::. ;ヲヾ!V ー '′ i ー ' ソ
Vニミ( 入 、 r j ,′
ヾミ、`ゝ ` ー--‐'ゞニ<‐-イ
ヽ ヽ -''ニニ‐ /
| `、 ⌒ ,/
| >┻━┻'r‐'´
ヽ_ |
ヽ _ _ 」
ググレカス [ Gugurecus ]
( 2006 〜 没年不明 )
0905nobodyさん
2006/05/14(日) 17:39:32ID:???Database: mysql
Database: test
って表示か。
これって何形式? >>900形式フォーマット?
>>901
マジでやってそうな香具師が居る所が恐ス(w
パスワード変更を、$passwd_done = system('sudo mysqladmin -u user password new_password'); とか。
0907nobodyさん
2006/05/14(日) 17:47:30ID:???while($data = mysql_fetch_assoc($result)) print_r($data);
でじゅーぶん
0909nobodyさん
2006/05/14(日) 18:05:11ID:???(
[Database] => mysql
)
Array
(
[Database] => test
)
1行はいいね。デバック向けかも。でも表示はたくさんあると凄ス(w
0910nobodyさん
2006/05/14(日) 18:32:02ID:???0912nobodyさん
2006/05/14(日) 20:54:40ID:Kk5ImAZsレス数が900を超えています。1000を超えると表示できなくなるよ。