トップページphp
1001コメント333KB

【PHP】下らねぇ質問はID出して書き込みやがれ 84

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/04/27(月) 21:39:11ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 83
http://pc11.2ch.net/test/read.cgi/php/1238958898/

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0569nobodyさん2009/05/24(日) 05:02:48ID:???
そんなのセッションの有効期限をいつにするかによって違うでしょ。
0570nobodyさん2009/05/24(日) 05:19:52ID:1c4u+X3P
それはクッキー?
0571nobodyさん2009/05/24(日) 05:50:47ID:???
クッキーですね
0572nobodyさん2009/05/24(日) 10:52:54ID:???
ならないようにもできる、が正解。
クッキーの有効期限を指定しない場合はブラウザを落とすと消える。
つうか、実際にブラウザ閉じてもセッションが継続するサイトなんぞ山のようにあるだろ馬鹿。
0573nobodyさん2009/05/24(日) 13:52:15ID:???
残念ながらそれはクッキーといいます
0574nobodyさん2009/05/24(日) 14:13:45ID:???
>>556
何も変化ありませんでした。
phpinfoで見ると、ちゃんと
_SERVER["CONTENT_TYPE"] application/x-www-form-urlencoded
と送信されています。
0575nobodyさん2009/05/24(日) 15:38:23ID:???
恵子かわいい
05765752009/05/24(日) 15:39:39ID:???
ごめん誤爆した
0577nobodyさん2009/05/24(日) 19:13:01ID:???
携帯で画像をランダム表示したいのですが
どのようなスクリプトが使えるのでしょうか?
0578nobodyさん2009/05/24(日) 19:32:22ID:???
マルチ乙
0579nobodyさん2009/05/24(日) 20:20:37ID:luv0xO7F
mb_strcutの挙動について確認させて下さい。
切り出す開始位置の値によって最後の一文字が欠落してしまいますが、これは開始位置が
文字の途中(バイトシーケンス中)と重なってしまうことにより起こる仕様なのでしょうか。

// SJIS-WINでのmb_strcut
mb_internal_encoding('sjis-win');
$str = "12345678901234567890ー";

echo mb_strcut($str, 15). "\n";
// 出力: 8901234567890

echo mb_strcut($str, 10). "\n";
// 出力: 678901234567890ー

// UTF-8でも同様でした。
mb_internal_encoding('UTF-8');
echo mb_strcut(mb_convert_encoding($str, "UTF-8", "sjis-win"), 15). "\n";
// 出力: 678901234567890ー

echo mb_strcut(mb_convert_encoding($str, "UTF-8", "sjis-win"), 10). "\n";
// 出力: 45678901234567890

PHP 5.2.9-2、Windows Vista SP2
0580nobodyさん2009/05/25(月) 01:12:15ID:???
プログラム板のほうまでマルチしてたよ>>577
0581nobodyさん2009/05/25(月) 22:50:10ID:1PMYVgsN
すみません、質問させてください。
今、PHP5とmysql、phpMyAdmin、 CentOS5(不慣れ) でサイト作っています、そこでブラウザから以下の
クエリを実行したら mysql_affected_rowが-1を返します。
実行したクエリ> delete from `hoge` where `uId`=100 and `category`='foo'
が、phpMyAdminのクエリ画面で直接上記のクエリを実行すると、正しく削除実行されます。
どんな原因が考えられるでしょうか?
あと、このクエリのページでは、上のクエリの前にもう一つクエリ($sql_1)を実行してて、トランザクションさせようとしてます。

$DB -> Execute("BEGIN");//Pearのadodbを利用してクエリ
$sqlResult_1 = $DB -> Execute($sql_1);//これはちゃんと実行されます
if(!$sqlResult_1){
$DB -> Execute("ROLLBACK");
}
$DB -> Execute($deleteSql);//これが失敗します、$deleteSqlの中身が上記のものです
$deletedNum = mysql_affected_rows();
if($deletedNum != -1){
//成功した場合の処理。実行されません…
}
$DB -> Execute("COMMIT");//トランザクション本実行

変でしょうか? $DBで定義されてるユーザ情報、サーバ情報は共通で使っています。
よろしくお願いします
0582nobodyさん2009/05/25(月) 23:24:26ID:KRPzGQP0
ある程度初歩的なコーディングができるようにはなったのですが、ぐちゃぐちゃで汚いんです。
お手本になる、シンプルでエレガントなスクリプトあったら教えてください。
0583nobodyさん2009/05/25(月) 23:32:16ID:???
シンプルでエレガントなコードは概して参考に出来ない罠
0584nobodyさん2009/05/25(月) 23:34:26ID:???
>>582
マニュアルかPearかZendFrameworkあたりがおすすめ
0585nobodyさん2009/05/26(火) 10:37:03ID:e9nrbvXe
引継ぎで前の人のソース見たらひどいことになってた
PHP内にJavaScriptベタ書きってなんだよwwww

しかも、一部動作しない部分があってデバッグしてみたんだが
コメントで
「○○をする関数」って書いてあった
いやこれコメントアウトしてねーじゃんwww

こういうソース回されたときってどう対処してるよ
明らかにひどいやつ、しかもまだリリース前なんだぜ?
0586nobodyさん2009/05/26(火) 10:43:19ID:???
こんな所で愚痴らないで上司に相談する
0587nobodyさん2009/05/26(火) 10:45:06ID:???
リリースまで時間がある→最初から組みなおす
リリースまで時間がない→見なかった振りをして未実装部分に取り掛かる
0588nobodyさん2009/05/26(火) 10:46:55ID:???
>>585
つーかそんなスキルの人間を使い潰してるような会社にいて大丈夫か?
0589nobodyさん2009/05/26(火) 10:50:54ID:e9nrbvXe
>>588
オフショアで外人が組んでたスクリプト
XHTMLすら同じIDを2つ以上使ってるんだぜ?まじひどい
0590nobodyさん2009/05/26(火) 11:00:46ID:???
お前 「引き継いだソースが使い物になりません」
上司 「どのくらいダメなんだ?」
お前 「動かないとは言いませんけど、構文とか滅茶苦茶です」
上司 「動くなら問題ないだろ。お前のセンスに合う合わないなんてどーでもいい」
お前 「・・・・・・」
上司 「ほら、さっさと作業にもどれ! リリースは来月頭なんだからな!」
0591nobodyさん2009/05/26(火) 11:02:58ID:e9nrbvXe
よく見たら会員登録削除部分なんてフラグ立てないで直接DELETE文で削除してるじゃねーか
0592軟式PHP2009/05/26(火) 13:09:39ID:???
本当全盛期に比べスレ過疎ってるな。
プログラム関連板全体に言えるが。

>>591
マテ。あわてるな。
トリガーでdeleteされたら別テーブルにコピーしてるに違いない。
0593nobodyさん2009/05/26(火) 16:41:29ID:UQeZnrko
質問があります。
無料レンタルサーバーでPHPを動かした場合、メモリはおよそ幾らくらい使用可能でしょうか?
多すぎると、エラーで停止しますか? もしくはHDDに移されて動作が遅くなりますか?
0594nobodyさん2009/05/26(火) 16:43:25ID:e9nrbvXe
レンタルサーバーに質問しやがれカスです
0595nobodyさん2009/05/26(火) 16:51:53ID:UQeZnrko
C/C++のCGIとPHPはおよそどちらが高速かわかりますか?
0596nobodyさん2009/05/26(火) 16:56:15ID:UQeZnrko
どうやら、cgiはだめみたいですね。速度は速くても短時間で処理が終わる場合は
実行開始までにかかる部分で負荷が大きいようでした。
0597軟式PHP2009/05/26(火) 17:09:04ID:???
>>593
使用可能なメモリはphpinfoしてmemory_limitを見るべし。
オーバーするとエラーで停止する。

>>595
fastCGIだったらオーバーヘッドも少なく、C/C++の方が速いと思う。
思うだけでやったことはない。
0598nobodyさん2009/05/26(火) 17:10:36ID:UQeZnrko
トンクス
0599sage2009/05/26(火) 18:12:49ID:???
【OS名】CentOS 5.3 linux
【PHPのバージョン】php5.2
【連携ソフトウェア】qmail(sendmailコマンドは使用可能)
【質問内容】受信したメールに添付されている画像等を
      特定のフォルダへ投げるようにするにはどうすればいいでしょうか。
      .qmailに転送用のものを置けばいいとは思うのですが、どのようなものを置けばいいのか
      サンプルなどあれば教えてください。
0600nobodyさん2009/05/26(火) 18:31:35ID:UQeZnrko
>>597
atpageとtok2で調べたのですが、atpageはアクセス拒否でtok2は8Mでした。 
0601nobodyさん2009/05/26(火) 19:30:24ID:???
>>595
そこまで速度を求めるならmoduleにした方が良いと思う
0602nobodyさん2009/05/26(火) 20:56:23ID:UQeZnrko
moduleとは標準関数やDLLみたいな物のことでしょうか。 無料サーバーでも導入可能ですか。
PHPを高速化させる部品があるみたいですがこれは導入出来ないと思いました。
0603nobodyさん2009/05/26(火) 21:03:05ID:???
無料サーバーという時点で高速化なんて無理だよ。
ただでさえ他ユーザーとリソースの食い合いするんだから。
0604nobodyさん2009/05/26(火) 21:28:08ID:???
>>599
|/usr/bin/php -q /example/example.php >& /dev/null
./Maildir/
とかやって example.php でなんとかする
0605nobodyさん2009/05/27(水) 00:14:56ID:???
>582
そういう時は、「完成品」を見るのは微妙。
自分のコードを、どうやれば「完成品」に近づけられるのかが分からないからな。
「完成品」のどこがどういいのかも、実際に書き換えたりメンテしたりしないと分からない事が多い。

指導するにしても、おまいの現時点でのレベルが分からんから他人にはどうしようもないしな。
上手い人に自分のコードを渡して、考えている事を聞かせてもらいながら目の前で「美しく」書き換えてもらうのが一番分かりやすい。
…んだが、まあ難しい事が多いしなぁ。
0606nobodyさん2009/05/27(水) 00:31:02ID:Cc/G0jS5
あの他人のコードを改良して自分の物にするのはアウトですか?
0607nobodyさん2009/05/27(水) 00:35:06ID:???
うん
06086052009/05/27(水) 00:55:02ID:???
>606
できりゃ構わないけどな
MVC構造のフレームワーク使ってるのに何故かテンプレートにロジックが書いてある、とか、そういう事になるのがオチだと思う
使いまわす価値のあるコード作法ってだいたいデザインパターンという形で既に体系化されてるから、ある程度のレベル以上の奴はそっちを座学した方が早いしな
0609nobodyさん2009/05/27(水) 01:07:23ID:???
>>582
きれいなコードを書くために心がけること

・関数名は分かりやすい名前を付ける。イミフな省略はしない。多少長くなってもキニシナイ。

・同様に変数名も分かりやすい名前を付ける。

・空行を多く入れてみる。
藤原博文さんの本だったかな?
フォントを小さく(5ptとか)して見て、コードが黒々してたら、たいてい読みづらい、って書かれてた気がする。

・一つの関数内のコードをダラダラと書かない。意味の単位で小分けする。
理想は、コメントや空行を含めても、スクロールせずに一つの関数のコードがみえること。最悪100行以内に押さえる。

・同じ処理の塊をいろんな箇所に書かない。極力、関数としてまとめる。
まとめすぎて、かえって分かりづらくなるかもしれないが、最初は気にせずガンガンまとめてしまう。そのうち常識の範囲内がどの程度かわかるようになる...はず

・フラグの多様は控える。気がつきゃ万国博覧会になっちゃうよ。

・トリッキーなことはしない。
有名どころでは、ループ抜けるのに例外使うとか
いずれは、そんなトッリキーな手段に頼らざるを得ないといけないかもしれないが、始めは完全禁止の気持ちで。



関数分けしていくと、呼び出しが深くなって遅くなるとか言われるかもしれないけど、そんなところがボトルネックになるのはまずないから、キニシナイ。
0610nobodyさん2009/05/27(水) 01:25:42ID:vJelIhGL
綺麗なコードってコーディングルールの話?
単に見かけを綺麗にしたいならcode beautifierの類を使えば早い。
ttp://codeassembly.com/examples/beautifier.php
0611nobodyさん2009/05/27(水) 01:39:36ID:???
>>610
ルールというような縛りではなく、ただの心がけ。

0612nobodyさん2009/05/27(水) 02:08:35ID:Cc/G0jS5
>>608
丁寧な回答ありがとうございました
0613nobodyさん2009/05/27(水) 02:12:26ID:???
関数名とか変数名がどうしても$hensuとかになっちゃうんですけど
英語も勉強するべきなんでしょうか
0614nobodyさん2009/05/27(水) 02:41:03ID:???
>609
・変数への再代入の禁止
 原則、ある変数には一度しか値を代入しない。次に代入する時はケチケチ使い回さず新しい変数を用意する
 配列の合計を求める時など、何かをまとめる時だけは例外だけど
・多重ネストの回避
 ifのネストが深くなったら、if内の処理をごっそりそのまま関数に切り出す事をまず考える
 foreach、switchなども含め、どんな複雑な処理であっても、関数内のネストを一重だけにする事も可能
 特にswitchは、その部分を単独の関数として切り出すことを真っ先に考えるべき
・グローバル変数の禁止
 まずは、使う変数は全て関数の引数にする
 すると、同じ引数を取る関数群がいくつか見えてくる。これが、どこをクラス化するかを判断する一番安全な方法
・手続き的にではなく、宣言的に書く
 「Aに処理Xを加えて変数Bに、それに処理Yをして変数Cに」という思考を捨てる
 「CはBにYをしたもの」「BはAにXをしたもの」という順序で、つまり定義を記述する感じでプログラムを書く
 一時変数を同名の関数に置き換えていく感じで、一時変数を削っていくのが分かりやすい手順

>613
ローマ字より英単語のほうが読みやすいだろjk
まあ、そういうレベルじゃなく、$variableでも命名としては最低の部類に入るけどな
0615nobodyさん2009/05/27(水) 02:41:42ID:???
マニュアル,入門書,良いオープンソースなどを見て学ぶ柔軟性が必要かと
0616nobodyさん2009/05/27(水) 03:39:43ID:vJelIhGL
趣味でやってると、変数の命名規則が気分次第になってしまう。

・ハンガリアン記法っぽいの
 $intUserId, $strBody

・アンダーバーで繋ぐ
$user_id, $regex_str

・どうでもいいカウンタ変数
$i, $j, $k

・その他
foreachをネストして多次元配列を展開する場合に使う最初の一時変数は
何かこうもっと良い命名がある気がするけど思いつかないからv_を接頭辞にした。

foreach ($array as $v_array) {
 foreach ($v_array as $key => $value) {
 }
}
0617nobodyさん2009/05/27(水) 04:08:53ID:???
一か月ぐらい前に書いたコード読み直してみると良いよ。
絶対悪態付きたくなるから、何が問題か分かる。
0618nobodyさん2009/05/27(水) 05:43:01ID:???
>>614
・手続き的にではなく、宣言的に書く
 「Aに処理Xを加えて変数Bに、それに処理Yをして変数Cに」という思考を捨てる
 「CはBにYをしたもの」「BはAにXをしたもの」という順序で、つまり定義を記述する感じでプログラムを書く
 一時変数を同名の関数に置き換えていく感じで、一時変数を削っていくのが分かりやすい手順


$B=X($A);
$C=Y($B);
は分かるが、「CはBにYをしたもの」「BはAにXをしたもの」ってどういう事?
0619nobodyさん2009/05/27(水) 08:55:18ID:???
書きたいように書けよ
型にハマったんじゃ新しいもの生み出せない ゾと
0620nobodyさん2009/05/27(水) 09:45:02ID:???
>616
foreach($years as $eachYear){
foreach($month as $eachMonth)
}
0621nobodyさん2009/05/27(水) 09:47:36ID:???
手が滑って途中で送信しちったが、まあ分かれ。
0622nobodyさん2009/05/27(水) 21:58:18ID:tZbxcqT7
教えてください。
A.csv
ID     名前
00001 あああああ  
00002 いいいいい  
00003 うううううう

B.csv
00004 えええええ
00005 おおおおお
00006 かかかかか

csvファイルAからBへ特定の行だけを移動したいと思ってます。
チェックボックスで選ばれたIDの行をAから削除しBへ書き込むプログラムはどうすりゃいいんでしょうか?
IDは重複する事はありません。
0623nobodyさん2009/05/27(水) 22:15:30ID:???
phase1.A.csvを読み込んで行単位にIDに紐付けたチェックボックスをつけつつ表示
phase2.postされたチェックボックスのID値を見てA.csvを読み込み該当の行を特定、B.csvを追記モードでopenして追記。A.csvから該当行を削除。

こんなもんか
0624nobodyさん2009/05/27(水) 22:17:41ID:???
>>621
thx
確かにeachが良さげ。お陰ですっきりした。
0625nobodyさん2009/05/28(木) 02:36:09ID:PcD3hYBe
【OS名】linux
【サーバー】Apache (Unix) PHP/5.2.8 mod_ssl/2.8.28 OpenSSL/0.9.7j
【PHPのバージョン】php5.2.8
【連携ソフトウェア】mysql
【質問内容】

通常のサイトから、SSLのサイトへ向けてPOST送信でデータを渡す際、
hidden だと値が渡らないという現象に見舞われてるのですが、
どうすれば解決するでしょうか。

サンプルソースです

(改行が多すぎるってエラーが出たので、次に続きます)
06266252009/05/28(木) 02:37:02ID:PcD3hYBe
(625の続き)
サンプルソースです

「送信元」(test.html)
<html>
<body>
<form action='https://xxxxxxxx.net/test.php' method='post'>
<input type='text' name='test' value='12345'>
<input type='hidden' name='kakushi' value'abcd'>
<input type='submit' name='submit' value='送信'>
</form>
</body>
</html>

「送信先」(test.php)
<?php

print_r ( $_REQUEST ) . "<br />";
print_r ( $_POST );

?>

「結果」
Array ( [test] => 12345 [kakushi] => )
Array ( [test] => 12345 [kakushi] => )

「期待すること」
Array ( [test] => 12345 [kakushi] => abcd )
Array ( [test] => 12345 [kakushi] => abcd )

よろしくお願いします m(__)m
06276252009/05/28(木) 02:53:41ID:PcD3hYBe
すいません、追加です。
先ほど、「通常のサイトから、SSLのサイトへ向けて」って書きましたけど、
同じSSLのサイト内でも同様にhiddenの値が渡りませんでした。

これはひょっとしたらスレ違いなのでしょうか。
0628nobodyさん2009/05/28(木) 03:03:25ID:???
value'abcd'>

value='abcd'>
0629nobodyさん2009/05/28(木) 03:13:26ID:???
心の底から脱力できる要因だなwww
06306252009/05/28(木) 04:34:02ID:PcD3hYBe
(´・ω・`)/

世の中、解決できない問題はないんだな

>>628 dクス
0631nobodyさん2009/05/28(木) 08:39:32ID:???
世の中解決できない問題は多々あるがお前のはうっかりさん過ぎる
0632nobodyさん2009/05/28(木) 14:50:53ID:rnletbDk
Web系プログラミングの雑誌で、みなさんが定期購読している雑誌ってなんですか?
お勧めがあったら情報共有しましょう。
ちなみに私は日経ソフトウェアとDB Magazineくらいです。
0633nobodyさん2009/05/28(木) 14:53:59ID:???
それらのどの辺がお勧めですか?
0634nobodyさん2009/05/28(木) 14:58:50ID:???
DB Magazineとか高いし毎号買うほどのものでも・・
0635nobodyさん2009/05/28(木) 18:37:52ID:a/iG0y0p
www.hoge.jp/hoge.phpでドキュメントルートの外の画像を表示したい時、
どうしたらいいですか?
zendFWでアプリケーション領域に蓄積されてる画像を、zendFWとは別に単独で
動いてるphpの中で動かしたいんですが…
0636nobodyさん2009/05/28(木) 19:22:36ID:???
絶対パスで指定すればいいのでは?
0637nobodyさん2009/05/28(木) 19:30:16ID:???
>>635
ZFにある画像データをstreamするphpを用意すれば良いだけなんじゃないの?
0638nobodyさん2009/05/28(木) 19:31:06ID:???
>>635
hogeだのhageだのは……。
example.com
が例文用にが予約されてる。
0639nobodyさん2009/05/28(木) 20:06:58ID:cUediPPl
switch ($textbox1){
case "";
print("BOX1が未入力<br>");
break;
case(strlen($textbox1) < $minlen);
print("規定の文字数以下<br>");
break;
case(ereg("^/", $textbox1)==true);
print("先頭に/を含んではいけません<br>");
break;
}
switch ($textbox2){
print("BOX1が未入力<br>");
break;
〜以下同じような事がずらずら
}

//ここまでにbreakがあったらここで処理を停止したい
XXX

//ここ以降に別の処理とかSQLに書き込み等
YYY

XXXの所までにbreakに掛からなければexit等を使い、進ませないように書くにはどんな
書き方がありますか?
if (breakがあったら){
exit;
}
のような事はできないんでしょうか?
0640nobodyさん2009/05/28(木) 20:18:24ID:???
フラグを立てる
0641nobodyさん2009/05/28(木) 20:20:17ID:???
XXXで止めたいcaseのところでフラグでも立てて判定すれば良いんじゃねーの
0642nobodyさん2009/05/28(木) 20:30:56ID:a/iG0y0p
>>637
おおー
それが正解っぽいですね! どうもありがとう
他の方もありがとう
0643nobodyさん2009/05/28(木) 20:41:12ID:pePXJ68I
買うほどのものでもなくね?
本とwebで十分。
0644nobodyさん2009/05/28(木) 21:25:31ID:cUediPPl
>>640-641
ありがとうございました。「フラグを立てる」の意味が解らなかったのでぐぐったけど
意外と少なかった気がしますが試行錯誤の末、解決できました。まず
$flag = 0;を宣言、caseのケツに$flag = 1;を書いておいてXXXの部分に
if($break){
exit();}
を書いたらうまく行きました。この場合の「フラグを立てる」というのは
こうした事をさすのでしょうか?
重ね重ねくだ質ですがお願いします。
0645nobodyさん2009/05/28(木) 21:26:46ID:cUediPPl
>>644
訂正・・if($break){ではなくてif($flag){ でした。
0646nobodyさん2009/05/28(木) 21:27:07ID:???
$breakなんて変数初めて出てきてるんじゃ?
0647nobodyさん2009/05/28(木) 21:27:54ID:???
yes
0648nobodyさん2009/05/28(木) 21:31:52ID:???
>639
>555
0649馬鹿ですみません><!2009/05/28(木) 22:35:16ID:ib08ur5F
$request_keys = array_keys($_REQUEST);
if ( in_array('_GET', $request_keys) ||
in_array('_POST', $request_keys) ||
in_array('_COOKIE', $request_keys) ||
in_array('_FILES', $request_keys) ||
in_array('_SERVER', $request_keys) ||

よく見るソースコードで書いてあるんだけど
これって誰得なんですかぁ?

0650nobodyさん2009/05/28(木) 22:37:20ID:???
その次からの処理に答えが書いてあるんじゃないかな
0651馬鹿ですみません><!2009/05/28(木) 22:39:15ID:ib08ur5F
次の処理はdie('Disallowed request variable found. Exited.');
です。
0652nobodyさん2009/05/28(木) 22:39:38ID:???
>>649
なんだその馬鹿丸出しのソースは…
そんなの見るな馬鹿が移る
公式に乗ってるようなソースで勉強しろ
0653nobodyさん2009/05/28(木) 22:42:52ID:???
>>651
思わずワロタw
0654nobodyさん2009/05/28(木) 22:43:33ID:???
Disallowedって…
0655馬鹿ですみません><!2009/05/28(木) 22:43:52ID:ib08ur5F
グローバル変数の添え字が'_POST'だと駄目ってことなのぉ?

0656馬鹿ですみません><!2009/05/28(木) 22:49:01ID:ib08ur5F
みんなぁググッテル・・・

俺分からないぁ〜馬鹿だから・・・

PHPer
0657nobodyさん2009/05/28(木) 22:49:07ID:???
とりあえずこれでも読んでおけ
ttp://php.benscom.com/manual/ja/language.variables.superglobals.php
0658nobodyさん2009/05/28(木) 22:53:56ID:???
array_keyとかあまり使わない関数だから何やってるんだろうと真面目に読んでみたけど
何がしたいのかわけわからんw
0659nobodyさん2009/05/28(木) 22:55:34ID:???
>>655を書かなければ単なる馬鹿扱いだったんだがな・・・
0660馬鹿ですみません><!2009/05/28(木) 22:55:42ID:ib08ur5F
//
// Disallow requests that contain some _XYZ global variables
//
$request_keys = array_keys($_REQUEST);
if ( in_array('_GET', $request_keys) ||
in_array('_POST', $request_keys) || in_array('_COOKIE', $request_keys) ||
in_array('_FILES', $request_keys) || in_array('_SERVER', $request_keys) ||
in_array('_ENV', $request_keys) || in_array('_REQUEST', $request_keys) )
die('Disallowed request variable found. Exited.');

//
// Unset global variables
//
if ( ini_get('register_globals') ) {

foreach ( $_REQUEST as $var_name => $null )
unset($$var_name);

unset($null);

}
0661馬鹿ですみません><!2009/05/28(木) 22:58:19ID:ib08ur5F
グローバル変数に許されないリクエスト_XYZが含まれているって何?w

誰得なの? まじで。。。
0662nobodyさん2009/05/28(木) 22:58:31ID:???
ああ、何となく意図するものがわかってきた……
けどそれって、んな大層に書くようなことかなあ。

窓硝子は防犯上危険だといって、でかい南京錠をかけてるようだ。
まず先に窓硝子を止めればいいのに。
0663nobodyさん2009/05/28(木) 23:00:20ID:???
はい次の人
0664nobodyさん2009/05/28(木) 23:19:07ID:???
register_globals がもし、ONだったら、
$_REQUEST 経由で入ってきた変数を
サニタイズする、ってところかな。
0665馬鹿ですみません><!2009/05/28(木) 23:29:14ID:ib08ur5F
if ( ini_get('register_globals') ) {

foreach ( $_REQUEST as $var_name => $null )
unset($$var_name);

unset($null);

}

ここは馬鹿でもわかったwwwwwwwwwww
0666nobodyさん2009/05/28(木) 23:38:45ID:???
>>623
流れ的にはそのような処理かと思います
色々やってみたのですがなかなかうまくいきません
どなたか例文でもいただけないでしょうか?
0667nobodyさん2009/05/28(木) 23:39:41ID:???
むしろその色々が何故駄目なのか、考えることに価値があるんだよ。
0668nobodyさん2009/05/28(木) 23:41:59ID:???
まず色々やってみたソースを貼るかうpれ
話はそれからだ
0669nobodyさん2009/05/28(木) 23:49:41ID:???
>>666
>>623を実装することすらできないなら根本的に向いて無いんじゃね?
■ このスレッドは過去ログ倉庫に格納されています