【PHP】下らねぇ質問はここに書き込みやがれpart18
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/03/15(水) 19:18:21ID:yiOrS10Nここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
本スレ【PHP】質問スレッドpart33【php】
http://pc8.2ch.net/test/read.cgi/php/1140027592/
前スレ【PHP】下らねぇ質問はここに書き込みやがれpart17
http://pc8.2ch.net/test/read.cgi/php/1140786348/
過去スレは>>2-3あたり
0002nobodyさん
2006/03/15(水) 19:19:19ID:yiOrS10N【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
【PHP】くだらねぇ質問はここに書き込みやがれpart9
http://pc8.2ch.net/test/read.cgi/php/1125716012/
【PHP】下らねぇ質問はここに書き込みやがれpart10
http://pc8.2ch.net/test/read.cgi/php/1127581425/
【PHP】下らねぇ質問はここに書き込みやがれpart11
http://pc8.2ch.net/test/read.cgi/php/1129582431/
【PHP】下らねぇ質問はここに書き込みやがれpart12
http://pc8.2ch.net/test/read.cgi/php/1130835396/
【PHP】下らねぇ質問はここに書き込みやがれpart13
http://pc8.2ch.net/test/read.cgi/php/1132921016/
【PHP】下らねぇ質問はここに書き込みやがれpart14
http://pc8.2ch.net/test/read.cgi/php/1134868212/
【PHP】下らねぇ質問はここに書き込みやがれpart15
http://pc8.2ch.net/test/read.cgi/php/1137236771/
0003nobodyさん
2006/03/15(水) 19:19:50ID:yiOrS10N【PHP】下らねぇ質問はここに書き込みやがれpart16
http://pc8.2ch.net/test/read.cgi/php/1139146534/
0004nobodyさん
2006/03/15(水) 19:20:36ID:yiOrS10Nextractは極力使わないほうがいいと思います。
例えば、
hoge.php?_SESSION[user_pw]=hogehoge
って形で送られてきたとします。これを
extract($_GET)
しちゃうと、$_SESSION['user_pw']の値が、
"hogehoge"に変更されてしまいます。
もし事前にユーザのパスワードを、$_SESSION['user_pw']に
保持してたとしたら、勝手に書き換えられてしまうことになります。
それを避けるために
extract($_GET, EXTR_SKIP)
ってやって上書きを避けたとしても、
このままでは変数の初期化を忘れる危険性があります。
extract($_GET, EXTR_PREFIX_ALL, "get")
と、接頭辞をつけるのが一番安全な気はしますが、
それなら最初から
$hoge = $_GET['hoge'];
ってやるのと手間が変わらないと思いますし、可読性も増します。
確かにextractするのは楽だと思いますけど。
0005nobodyさん
2006/03/15(水) 19:33:25ID:bA7xDyGS【PHP】下らねぇ質問はここに書き込みやがれpart17
http://pc8.2ch.net/test/read.cgi/php/1140786348/
0007nobodyさん
2006/03/15(水) 19:47:55ID:???プログラミングなんかしてるやつぁ全員ヲタだろう。
一般人の持ってない知識をたくさん持ってるんだから。
0008nobodyさん
2006/03/15(水) 20:20:30ID:???彡川川川三三三ミ〜 プウゥ〜ン
川|川/ \|〜 ポワ〜ン ________
‖|‖ ◎---◎|〜 /
川川‖ 3 ヽ〜 <
川川 ∴)д(∴)〜 \________
川川 〜 /〜 カタカタカタ
川川‖ 〜 /‖ _____
川川川川___/‖ | | ̄ ̄\ \
/ \__| | | ̄ ̄|
/ \○○命_ | | |__|
| \ |つ |__|__/ /
/ ドキュソ氏ね | ̄ ̄ ̄ ̄| 〔 ̄ ̄〕
こんなの。
まぁ厨全開だったし、正しい言葉を知らない春厨ってことでいいんじゃまいか?
0009nobodyさん
2006/03/15(水) 20:42:43ID:???以前言われたのですが、それは
http://www.amazon.co.jp/exec/obidos/ASIN/4797313927/ref=pd_ecc_rvi_1/503-4727412-7642313
↑コレのことでしょうか?
0010nobodyさん
2006/03/15(水) 20:44:47ID:???その本はただでDLできます
http://www.sra.co.jp/people/t-ishii/php_new/php4_new.html
0011nobodyさん
2006/03/15(水) 20:47:51ID:???前1000じゃないけど
<?php
if ($_POST['mail'] != "") {
echo $_POST['name'];
} else {
echo "<A href=\"mailto:{$_POST['mail']}\">{$_POST['name']}</a>";
}
?>
エラーが出てそれを質問するなら該当行とエラー内容を書けよ
0012nobodyさん
2006/03/15(水) 20:56:12ID:???0014nobodyさん
2006/03/15(水) 21:33:57ID:???すごく癒されるよね
http://www.h02.i-friends.st/index.php?in=idolga2
0015nobodyさん
2006/03/15(水) 21:51:02ID:???書籍を買うのですが、4と5両方あって迷っています。
個人的には4の方がベーシックなイメージなんですが…
0017nobodyさん
2006/03/15(水) 22:21:07ID:+i4CweKd1. これは実際どんなことが危険なのでしょうか?
PHPを実行されてしまうのでしょうか。
2. POSTデータじゃなくても危険ですか(例えばクエリ情報でも)?
0018nobodyさん
2006/03/15(水) 22:26:04ID:???0020nobodyさん
2006/03/15(水) 23:05:23ID:???http://www.google.com/search?num=50&hl=ja&ie=Shift_JIS&oe=Shift_JIS&q=%83N%83%8D%83X%83T%83C%83g%81E%83X%83N%83%8A%83v%83e%83B%83%93%83O
0022nobodyさん
2006/03/15(水) 23:14:36ID:???>1. これは実際どんなことが危険なのでしょうか?
そのリクエスト(本来なら正当な操作のため)を実施する権限のある人に、
悪意のあるリクエストを本人に気づかないようにさせてしまうこと。
>2. POSTデータじゃなくても危険ですか(例えばクエリ情報でも)?
POSTデータとクエリ情報を並べる意味が不明。
XSSでぐぐる。ついでにCSRFも調べる。
0024nobodyさん
2006/03/16(木) 00:00:30ID:???入力チェックをしてダメなら1に差し戻す。OKなら確認画面
2.確認画面、実際にここではファイルはまだアップしたくない。
ここでPOSTしてはじめて、入力内容をファイルorDBに書き込み。ファイルを保存
こんな処理をしたいんだけど、$_FILEって、POSTしちゃったらそれまでで値を保持出来ないんですね。
このあたり、どんな風に処理するのが普通なんでしょうか?
0025nobodyさん
2006/03/16(木) 00:16:03ID:???php使ってる香具師ってスキル低いな。
$_FILEから値を取り出しておいて、$_FILE以外の変数で受け取れ(格納すれ)ばいいじゃん。
巨大ファイル除けと、ファイル名の文字コード処理も忘れずに。
0026nobodyさん
2006/03/16(木) 00:21:39ID:???別に何回アップさせても良いとはは思うけど、
なんだったら、
3(確認OK後)でアップさせれば良いんじゃねェの?
0027nobodyさん
2006/03/16(木) 00:29:25ID:???アップロード用HTML → PHPファイル(ここでアップされたファイルの内容をSESSIONにぶち込む&値のチェック) → 入力チェックエラーならunset。
これじゃ駄目?
0028nobodyさん
2006/03/16(木) 02:35:01ID:???だから確認画面を表示させると、もう一度入力させなくちゃいけない。
自動で入力できると、system内の重要なファイルを勝手に盗まれる可能性を与えてしまうからね。
0029nobodyさん
2006/03/16(木) 07:41:09ID:???0032nobodyさん
2006/03/16(木) 11:07:50ID:3GvLsZClなにがあるかなー。
検索語にあわせたコンテンツを表示したいんだよね。
なるべく多くの検索エンジンに対応+追加もラクラクなやつがいいなー。
0033軟式PHP
2006/03/16(木) 11:08:33ID:???tmpの方はファイルアップ時間見てGCしてる。確認OKまでアップしたくないなら26が一番用途に適してると思うが。
0034nobodyさん
2006/03/16(木) 11:46:23ID:???未定義のほうは、そのまま使おうとすると、noticeが出るんですけど。
0035nobodyさん
2006/03/16(木) 12:04:36ID:???if(isset($foo) and is_null($foo)){
null である場合の処理;
} else {
未定義である場合の処理;
}
003635
2006/03/16(木) 12:07:37ID:???0037nobodyさん
2006/03/16(木) 12:20:34ID:???未定義の変数にNoticeが出るのはPHPの仕様だから
で何がしたい
エラー消したいならNotice表示しないように設定するか定義しとけばいいやん
0038nobodyさん
2006/03/16(木) 12:32:57ID:???fileのあるフォームでJavaScriptで確認小窓をだして、それでOKを押したら小窓を閉じてPOST、てのもありだな。
0043nobodyさん
2006/03/16(木) 13:57:03ID:???test.php?mode=2
というURLにあるフォームで書き込んだとき
ログファイルには
「2,書き込んだ内容」
というように、modeの数字を頭に付けたいと思っています。
<?php
extract($_POST);
$cmtfile = "testcmt.txt";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$mode = $_POST["mode"];
} elseif ($_SERVER["REQUEST_METHOD"] == "GET") {
$mode = $_GET["mode"];
}
004443
2006/03/16(木) 13:57:35ID:???<form method="post" action="<? echo $PHP_SELF; ?>">
<input name="cmt" type="text">
<input type="submit" value="submit">
</form>
<?php
if($cmt){
$cmt = htmlspecialchars ($cmt);
if(get_magic_quotes_gpc()){
$cmt = stripslashes($cmt);
}
$thisnum = $mode;
$dat = "$thisnum,$cmt\n";
$fp = fopen($cmtfile, "a");
fputs($fp,$dat);
004543
2006/03/16(木) 13:58:53ID:???fclose ($fp);
}
?>
これだと、testcmt.txtには
「,書き込んだ内容」
と、modeの数字が反映されません。
サンプルプログラムの貼り合せでお見苦しい点も多々ですが;
OSはWinXP,PHPVersionは5.1.2,AN HTTPD DAEMONです。
できるだけ小直しで解決できたらいいな><;
よろしくお願いします。
0047nobodyさん
2006/03/16(木) 14:41:42ID:???レッツの古いスクリプトに影響された悪い見本そのものだな...
まずはextract()使わないで書き直してみ。あとGET/POSTメソッドを
それぞれの場合で流れを追って。
extract()使うなら使うでも構わないけど、それが何をやってるか理解した上で
駄目なところを直す。やってることが理解できれば、駄目なところも判るよ。
0048nobodyさん
2006/03/16(木) 14:47:52ID:???$_REQUESTを使うと吉。
マジッククオートの\除去はスクリプトの先頭で。
"$thisnum,$cmt\n"は"${thisnum},${cmt}\n"とした方が見やすいしバグ防止になる。
fputsはLFを書き込むから、上の\nを消すかfwriteを使う。
$cmtが0だと書き込まれない。empty()を使う。
あと、error_reporting(E_ALL)
0049nobodyさん
2006/03/16(木) 14:47:53ID:???PHPにも問題はあるが、とりあえずhiddenでmodeを渡してやれば終わりだろ。
0052nobodyさん
2006/03/16(木) 14:52:11ID:???fputsはfwriteの単なるエイリアスじゃなかったけ?
http://jp.php.net/manual/ja/function.fputs.php
0055nobodyさん
2006/03/16(木) 18:04:59ID:???ポップアップがダメならば
<div style="display:none;">だったものをdisplay:blockあたりにして確認するという手もある。
>>54
完全にスレ違い。
http://pc8.2ch.net/test/read.cgi/hp/1142242220/l50
0056nobodyさん
2006/03/16(木) 20:11:33ID:???あとファイル名をチェックせずに、ファイル操作してると、/etc/passwdを含むファイル名でうpすればパスワード流失しないか?
0057nobodyさん
2006/03/16(木) 20:45:31ID:???0058nobodyさん
2006/03/16(木) 21:07:45ID:5JEd8fcSindex.php?id=0123&hoge=xxxx → ページBを表示
こんな感じでクエリ情報で違うページを出力しているのはどうやっているのだろう。
というか、何の意味があるんだろうか…(もう一つファイル作ればいいし、ナンセンスじゃないの?)
if (isset($_GET[?id?]) and $_GET[?id?] == "0123") {
条件式がTRUEの場合の処理
} else {
・・・・・・・・・
}
この場合、include()しているのかな。
それとも単にprint()…?
何の意味があるのでしょうかねぇ。
0059nobodyさん
2006/03/16(木) 21:23:46ID:???0061nobodyさん
2006/03/16(木) 21:50:20ID:???もし、一つのファイルに:
if(条件式){
print <<<END
…………………
END;
}
って大量にかいてあったら処理とか重くなるんじゃ…
0062nobodyさん
2006/03/16(木) 21:56:13ID:???普通にやると汚くなりますよね。
0063nobodyさん
2006/03/16(木) 22:00:38ID:???綺麗にできるかどうかはPHP関係なくてGDやImageMagickの問題だろ?
そっち方面で綺麗に変換するためのコツでも聞いてくるか、
それ以外の画像変換ライブラリやツールを漁ってくればいいんじゃね?
0064nobodyさん
2006/03/16(木) 22:36:16ID:???006524
2006/03/17(金) 01:29:23ID:???今の自分のちからでは無理に確認画面を作るより、完了idをgetで渡すとかしてすぐに編集に戻れるようにしたほうが使い勝手がよさそうなので、ひとまずそういう形にしておきますた。
ところで、
ファイル選択&POSTで次の画面が出たところで
$_FILE配列にpostしたファイルの情報が入り、鯖のテンポラリに変なファイル名で一時的に選択した元ファイルがアップ(コピー)されるという解釈でよろしいでしょうか?
疑問なのはこのテンポラリのファイルがいつまで残ってるかという点です。
マニュアルには
>移動または名前の変更が行われていない場合、リクエストの終了時にその ファイルはテンポラリディレクトリから削除されます。
とありますから、この画面からリンクをクリックしたり、ほかのURLを叩いたり、POSTやGETで移動したりした時点で消えるということですか?
だとしたら、>>27さんの方式で$_FILESをセッションで持ち歩いても意味ないってことになっちゃいますよね?
また>>26さんの方法でも、やはり次の画面に逝ったところでテンポラリは消えてしまう訳で・・
やはりpostした次の画面でとにかく、ファイルの名前付けて移動するとこまでやっちゃわないとだめですね。
さらにここで確認OKでは無かった場合、この移動済みのファイルを消す処理、さらに痛いのは、入力に戻ったところで他の文字等の入力値はセッションで保たれますがファイルは再選択の必要があるってこと。
ファイル名にDBのレコードID番号(自動連番)と関連づけたファイル名にしたい場合はさらにめんどくさい処理にorz
ファイルが絡むとこんなにめんどくさいなんて思ってもみなかったす。
0066nobodyさん
2006/03/17(金) 02:30:51ID:???お前さん、フォームでファイルアップロードしてるんだよね?
そのアップロードされたファイルを何のファイルで参照したり使ったりするんだ?PHPファイルだろ?
>>27はスクリプトが終わる前にテンプファイルの中身を全部テキストと同じ扱いでセッションにぶち込む、
>>26は、入力チェックでOKの場合にファイルを選択させるって事じゃないのか?
0067nobodyさん
2006/03/17(金) 09:56:23ID:fjaH3SIM}
で、hoge($b); として、この $b の変数名('b')を、
hoge() 内で取得する方法はありますか?
0068nobodyさん
2006/03/17(金) 10:00:25ID:???生PHPで保存するのと、シリアライズして保存するのでは、
速度差はどれくらいあるもんでしょうか?
0069nobodyさん
2006/03/17(金) 10:31:56ID:???phpの解説サイトのレッツphpっていいんですか?
グーグルでphpというキーワードで日本語のサイトを検索すると上位に来るんですが、
ソースとか参考になりますか?
ソースの書き方の体裁は参考になるけど内容はだめ、
とかそういうのがあれば教えてください。
ほかに、サンプルが豊富なためになる解説サイトがあればおしえてください。
phpってhtmlで言うところの不思議マークアップのようなものがあったりするんでしょうか?
0070nobodyさん
2006/03/17(金) 10:33:41ID:???PHPマニュアルを見ましょう。
0072nobodyさん
2006/03/17(金) 11:37:51ID:???レッツphpのソースは参考にならない。時が止まったままだ。
読んでやってる処理をみるのは構わないけど、あれを基にしたり
同じようなコードを書くのは自分に悪い癖を付けるだけ。
(ちょっと宜しくないかなというレベルではない)
>不思議マークアップ
俺も判らん。正確で無い変な用語を使うのは、仲間内にとどめとけ。
■ このスレッドは過去ログ倉庫に格納されています