【PHP】下らねぇ質問はID出して書き込みやがれ 113
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/11/29(火) 19:55:27.17ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 112
http://hibari.2ch.net/test/read.cgi/php/1320005469/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0562nobodyさん
2011/12/19(月) 18:28:11.75ID:???0563nobodyさん
2011/12/19(月) 18:39:25.98ID:???echo var_dump($buffer);
で
処理1だと string(54) "GIF89a???????!?, ???????FZh3+;"
処理2だと string(358) " "
と表示される
0564nobodyさん
2011/12/19(月) 19:32:13.23ID:yf0vv6CTはい。挑戦してみます。
>>563
私の環境では var_dumpしても同じサイズものが表示されました。
良く見たらソースをコピーするときにファイルポインタの部分を
書き忘れていたのでそのせいかも知れません。
すみません。
皆さまありがとうございました。
もう少し自分で調査してみます。
0565nobodyさん
2011/12/19(月) 20:06:50.44ID:ePa6iLqx未定義の変数を使うとエラーというか、警告が出ますが、
なぜ未定義の変数を使うことは推奨されないのですか?
0566nobodyさん
2011/12/19(月) 20:53:21.45ID:???プログラムってのは最初にメモリー上に変数やら定数やらの領域を確保してから作業を始めるものだから
言語を開発する時はそういう順番で処理するように作ると処理が速い
phpも最初はそうだったんでない?
「5.xxでつくったそのコードは前のバージョンだと動かない可能性がありますよ」ってことじゃないのかな
0567nobodyさん
2011/12/19(月) 21:11:48.78ID:???スペルミスだったり、既にあると勘違いした変数を使用したり。
定義済、初期化済みの変数以外は警告出す設定ならそういったミスが判明する。
0568nobodyさん
2011/12/19(月) 21:20:56.99ID:???0569nobodyさん
2011/12/19(月) 23:14:43.18ID:???0571nobodyさん
2011/12/20(火) 04:22:28.90ID:???$path = "パスです。";
$kaisu=20;
$timer=new timer;
for($n=0;$n<$kaisu;$n++) $lineA = file( $path,FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES );
unset($timer);
$timer=new timer;
for($n=0;$n<$kaisu;$n++) $lineB = explode("\n",file_get_contents($path));
unset($timer);
$timer=new timer;
for($n=0;$n<$kaisu;$n++) $lineC = preg_split("/[\r\n]+/", file_get_contents($path) );
unset($timer);
var_dump( $lineA[0] );
var_dump( $lineB[0] );
var_dump( $lineC[0] );
class timer {
protected $time, $global;
function __construct() { $this->global = $this->time = microtime(true); }
function __destruct() { $this->pr_sub("GlobalTime",$this->global); }
function reset() { $this->time = microtime(true); }
function pr() { $this->pr_sub("ProcessingTime",$this->time); $this->reset(); }
function pr_sub($text,&$t) { echo "$text ".sprintf("%.5f\n", microtime(true)-$t); }
}
0572nobodyさん
2011/12/20(火) 06:39:53.00ID:???0573nobodyさん
2011/12/20(火) 08:19:37.82ID:???function filesize_ex( $path ) {
$size=@filesize($path);
if($size!==FALSE) return $size;
$str = <<<TEXT
@SET FNAME="$path"
@CALL :sizeoutput %FNAME%
@GOTO :EOF
:sizeoutput
@ECHO %~z1
@EXIT /B
TEXT;
file_put_contents("tmp.bat",$str);
$output=exec("tmp.bat");
unlink("tmp.bat");
return intval($output);
}
0574nobodyさん
2011/12/20(火) 08:29:12.14ID:???function filesize_ex( $path ) {
$size=@filesize($path);
if($size!==FALSE) return $size;
$str = <<<TEXT
@SET FNAME="$path"
@CALL :sizeoutput %FNAME%
@GOTO :EOF
:sizeoutput
@ECHO %~z1
@EXIT /B
TEXT;
file_put_contents("tmp.bat",$str);
$output=exec("tmp.bat");
unlink("tmp.bat");
if(stripos($output, "ECHO")!==FALSE) return FALSE;
return intval($output);
}
0575nobodyさん
2011/12/20(火) 11:11:49.92ID:wrUI7SmP0576nobodyさん
2011/12/20(火) 12:30:04.67ID:???> $_SERVER を取得する
取得したいのは、$_SERVER そのもの?それとも中身?
$_SERVER は、スーパーグローバルだから get 何たらで取得したりしないよ
0577nobodyさん
2011/12/20(火) 12:33:29.60ID:???0578nobodyさん
2011/12/20(火) 12:34:49.19ID:???Windowsで動かしている限り、どう設定しても回避出来ないだろ。
0580nobodyさん
2011/12/20(火) 13:29:11.13ID:???0581nobodyさん
2011/12/20(火) 15:31:21.98ID:???仕様になっていた。初期化しないと致命傷になりかねないのでその名残では
ないだろうか。
どちらにしろ初期化する癖をつけておかないと予想外の動作をして困る時が
あるので初期化する習慣をつけておいた方が良い。
0582nobodyさん
2011/12/20(火) 16:04:56.93ID:???マルチバイトであること、というか、エンコードさえわかっていれば問題は起こらないんだけどね。
>>579
ん?
>>581
今でもその設定はできるよ
0583nobodyさん
2011/12/20(火) 16:53:53.67ID:XCA10mib時間を表示させたいのですが、どのように行なったら良いのでしょうか。
プログラムは以下の通りです。
実行結果は、[Array]のみ表示されてしまいます。
<?php
$today[] = date("His", strtotime("+1 hour"));
print($today);
?>
0584nobodyさん
2011/12/20(火) 18:03:57.36ID:???0585nobodyさん
2011/12/20(火) 18:20:21.00ID:???0587nobodyさん
2011/12/20(火) 20:08:12.93ID:6+E46BaCXSSのテストをしようとテキストボックスに
<script type="text/script">alert("XSS");</script>
と打ち込んでボタンを押してもアラートがポップされないのですがどうすればポップできるようになりますか?
ちなみに「<b>XSS</b>」と打ち込むと太字で表示されます。またPOSTをGETにしても駄目でした
<div>
<form method="POST" action="">
<input type="text" name="ex" value="初期値">
<input type="submit" value="決定">
</form>
<?php
echo @$_POST['ex'];
?>
</div>
0588nobodyさん
2011/12/20(火) 20:08:16.60ID:???<?php
$mojiretsu1 = "His";
$mojiretsu2 = "+1 hour";
$kansuu1 = "date";
$kansuu2 = "strtotime";
$kotae = "today";
${$kotae} = $kansuu1($mojiretsu1, $kansuu2($mojiretsu2));
echo $today;
?>
0589nobodyさん
2011/12/20(火) 20:16:43.72ID:???<?php
echo @$_POST['ex'];
?>
↓
<?php
if (get_magic_quotes_gpc()) {
echo stripslashes($_POST['ex']);
}
?>
でどうだろか
0590nobodyさん
2011/12/20(火) 20:17:30.07ID:???<script type="text/javascript">alert("XSS");</script>
あるいは
echo get_magic_quotes_gpc() ? stripslashes($_POST['ex']) : $_POST['ex'];
0596nobodyさん
2011/12/20(火) 20:38:38.31ID:???<?php
if (get_magic_quotes_gpc()) {
echo stripslashes($_POST['ex']);
}else{
where(1){
echo '<script type="text/javascript">alert("nullpo");</script>';
}
}
?>
0597nobodyさん
2011/12/20(火) 20:42:21.55ID:???XMLファイル
<books>
<book>
<title>Great American Novel</title>
<characters>
<character>
<name>Cliff</name>
<desc>really great guy</desc>
</character>
・・・・・略
PHPファイル
<?php
$xmltree=simplexml_load_file('C:\xampp\htdocs\Book.xml');
print($xmltree->books->book->title);
?>
と書いても何も表示されないのですが、titleを画面に表示するにはこれは間違ってるのでしょうか?
0600nobodyさん
2011/12/20(火) 21:14:14.27ID:???おちつけよw
0601587
2011/12/20(火) 22:24:55.51ID:???クロームを使っていたので、思いつきで他のブラウザで
<script type="text/javascript">alert("XSS");</script>を試してみたら表示できました。
主要ブラウザでどう表示するか試して見ました。Oが付いてるものがXSS成功?(アラート表示される)
IE8
O <script>alert("xss")</script>
O <script type="text/javascript">alert("XSS");</script>
firefox8.0.1
O <script>alert("xss")</script>
O <script type="text/javascript">alert("XSS");</script>
google chrome16.0.912.63m
X <script>alert("xss")</script>
X <script type="text/javascript">alert("XSS");</script>
opera11.60
O <script>alert("xss")</script>
O <script type="text/javascript">alert("XSS");</script>
safari5.1.1
X <script>alert("xss")</script>
X <script type="text/javascript">alert("XSS");</script>
<script type="text/script">alert("XSS");</script>はIEは未確認、その他の全ブラウザでXSS失敗(?)
アラート表示されないのは対策されてるのかただ単に表示しないだけでスクリプトは実行されてのかどっちなんだろう・・・
0602nobodyさん
2011/12/20(火) 22:28:24.15ID:???0603nobodyさん
2011/12/20(火) 22:28:43.68ID:???0604nobodyさん
2011/12/20(火) 22:55:51.91ID:???type="text/script" は、スペルミスだろうけど
例えば type="text/plain" で中身が JavaScript で記述されていようが実行されないよ
0606nobodyさん
2011/12/21(水) 00:33:38.30ID:???chromeはXSSフィルターの機能だろう
safariは知らんけど同じWebKitだし同様のフィルタじゃないか
0607nobodyさん
2011/12/21(水) 01:38:19.70ID:qTS3sZTQメールの送信しかのってなく、SMTP認証のやり方が載ってません。
とりあえず、sendメールまね〜るでSMTP認証してメール送ってますが、
SMTP認証はphpでプログラムを組むことは可能なのでしょうか?
0608nobodyさん
2011/12/21(水) 02:00:48.57ID:???でググれ
06092011新作展示
2011/12/21(水) 03:42:08.03ID:1rxM0kaKN級最高等級時計大量入荷
新品種類がそろっています。
http://baidurl.cn/4ye
http://baidurl.cn/555
http://baidurl.cn/556
http://baidurl.cn/557
http://baidurl.cn/559
0611nobodyさん
2011/12/21(水) 05:01:04.43ID:???ファイルアクセス関係は、DOSの出力をとっていくのが確実だな。
速度は落ちるだろうが。
0612nobodyさん
2011/12/21(水) 06:26:54.25ID:???0613nobodyさん
2011/12/21(水) 08:17:12.84ID:???date_default_timezone_set('Asia/Tokyo');
dir_search( "C:" );return;
function dir_search( $path ) {
$hd = opendirEX( $path ); if(!$hd) return;
do {
$file = readdirEX($hd); if(!$file) break;
$fn = "$path/" . $file['name'];
if (!$file['size']) { dir_search($fn); continue; }//sizeがfalseならディレクトリ
echo "$fn\n"; }while (1); }
function readdirEX( &$hd ) {
$n = $hd['pos'];
if($n >= count($hd['list'])) return false;
$hd['pos']++;
return $hd['list'][$n]; }
function closedirEX( &$hd ) { unset($hd); }
function opendirEX( $path ) {
exec("dir/A \"$path\"", $arr);
if(count($arr)<6) return false;
unset($item); $item['pos']=0; $item['list']=array();
foreach($arr as &$gyo) {
$cnt = preg_match('@([0-9]{4})/([0-9]+)/([0-9]+) +([0-9]+):([0-9]+) +([^ \n]+) +(.+)@',$gyo, $t);
if( $cnt==0 || $t[7]==='.' || $t[7]==='..' ) continue;
$item['list'] []= array(
'name' => $t[7],
'size' => $t[6]=="<DIR>" ? NULL : intval(str_replace(",", "", $t[6] )),
'time' => mktime($t[4], $t[5], 0, $t[2], $t[3], $t[1] ));}
return $item; }
0614nobodyさん
2011/12/21(水) 09:36:06.39ID:???PHP作ってるやつが真面目にやればすぐ終わる。 W付きのAPI使えばいいだけ。
つまり、やつらが必要に感じないので進まないw
0615nobodyさん
2011/12/21(水) 11:52:46.07ID:g7BGW0l8スレタイと違うじゃん
0617nobodyさん
2011/12/21(水) 16:25:08.36ID:k71K4aR8すいません、OBJ思考のポリモーフィズムがよくわかせん。
メソッドA メソッドB メソッドC
とか、複数メソッドつくらず
メソッドAのみで、メソッドBもCもDでもやろうとしていたことを
処理できちゃうようにしようみたいな感じですか?
0619nobodyさん
2011/12/21(水) 19:41:43.86ID:???↓
0620nobodyさん
2011/12/21(水) 19:51:56.94ID:???おんなじマークがついてて おんなじように動くけど 内部の処理はそれぞれ違うじゃん
つまりそーゆーことだろ
0621nobodyさん
2011/12/21(水) 23:54:19.43ID:???0622nobodyさん
2011/12/22(木) 01:58:23.87ID:???さらに「押す」といった、ボタン共通の動作がある。
しかし個々のボタンにはそれぞれ異なる記号が表記されており、押した時にはそれぞれ異なる動作をする。
ってこと?
0623nobodyさん
2011/12/22(木) 03:38:50.43ID:???(|>)再生 ( || )一時停止 (□)停止 (○)記録
という共通インターフェイスは、そのままインターフェイスと呼ばれる。
この場合だと、再生機器インターフェイスを実装した機械の場合は、再生ボタンもあるはずだし、停止ボタンもあるはずで、
それらは同じ記号がついているはずとみなして操作できる。
さらには、それらはその機器に応じた動作をしてくれることを期待できる。
ということ。
0624nobodyさん
2011/12/22(木) 03:40:24.05ID:???それはそれで、あってる。
なんのボタンかわからないけど、押すことが出来るし、何らかの動作をすることを期待できる。(何もしないという動作を含め)
0626nobodyさん
2011/12/22(木) 09:01:18.67ID:???ボタンの記号は同じでも、同一のボタンではなく別々のボタンということになる。
ポリモーフィズムの説明としては不適当である。
0627nobodyさん
2011/12/22(木) 10:21:06.85ID:KERJi57sループで$a==$b、$a==$c、$a==$
一行のif文で判定するのは無理でしょうか?
if($a==$b==$c==$d・・)で通ると思っていたのですが、ダメでした。
$a==$bがtrue|falseになって(true|false)==$cになってダメなのか。
0628nobodyさん
2011/12/22(木) 10:53:00.68ID:???0629nobodyさん
2011/12/22(木) 11:56:46.91ID:???>>628 $aと$aの比較結果(true)と $b , $c の値を ビット積とってどーすんねん
0630nobodyさん
2011/12/22(木) 12:29:25.66ID:???マルチディスクのプレイヤーの再生ボタンが
ブルーレイを見てる時は ブルーレイ上の再生ボタンとして機能するし
CDを聞くときは CDプレイヤーの再生ボタンとして機能するし
それらをもう一度おすと 停止ボタンとして機能するし
ようは、プレイヤーに
プルーレイヤー用、CD聞くとき用、DVD見るとき用と
3つも4つも再生ボタンや停止ボタンをゴテゴテつけるのではなく
ボタンで動く詳細な動作は違うけど、やろうとしてることは共通してるんだから
一個のボタンでええやん
みたいな感じとおもっていいのかな。
0631nobodyさん
2011/12/22(木) 15:31:24.94ID:???では暗号化する前に平文パスをメールで送り、暗号化してDBに入れるのはセキュリティ的にOKなのでしょうか?
そこまでして平文パスをメールで送る理由は無いのですが、忘れるユーザーも多いので載せたほうが親切かなと思いました。
それでもユーザーがパスワードを忘れた場合、再発行という形になりますが。
0632nobodyさん
2011/12/22(木) 16:09:50.37ID:???サイト側でもパスワードの調べ方が存在しないのが良い。
0633nobodyさん
2011/12/22(木) 16:14:46.12ID:???とかを
http://hoge.com?id=2456
にしたい
ってこと?
0634nobodyさん
2011/12/22(木) 16:18:37.99ID:???0635633
2011/12/22(木) 16:25:26.57ID:???0636nobodyさん
2011/12/22(木) 16:25:56.66ID:???これは、暗号化と復号に同じ共通の鍵を使うものである。
共通鍵暗号には、鍵の配送に問題があった。
共通鍵暗号を用いた通信のおおまかな流れは次のようになる。
受信者は、あらかじめ送信者に対して密かに共通鍵 C を渡しておく。
送信者は C を使ってメッセージを暗号化し、受信者に向かって送信する。
受信者は、C を使って暗号文を復号し、メッセージを読む。
上の過程において、傍受者が共通鍵Cを傍受してしまっていた場合、
この共通鍵を用いた送信者、受信者間の暗号通信は意味を持たないことになる。
すなわち、送信者はCを用いて、メッセージを暗号化するが、
このメッセージを傍受した傍受者は、入手していたCによって暗号文を復号し、メッセージを読むことができる。
これは、共通鍵暗号方式が、暗号化と復号に共通の鍵を用いることにより発生してくる問題である。
これに対して公開鍵暗号は、鍵の配送が容易になる。
つまり :受信者は自分の公開鍵(暗号化のための鍵)P を全世界に公開する。
受信者に対して暗号通信をしたい者(送信者)は、公開鍵 P を使ってメッセージを暗号化してから送信する。
受信者は、公開鍵 P と対になる秘密鍵S を密かに持っている。
この S を使って受信内容を復号し、送信者からのメッセージを読む。
傍受者は、公開鍵 P は知っているが、秘密鍵 S は受信者だけが知っている情報であるので分からない。
P から S を割り出すことは(計算時間的に)極めて難しい。そのため、暗号文を復号することはおよそできない。
暗号化のための鍵と、復号のための鍵を別の非対称のものにすることによって、鍵の配送の問題を解決したのである。
公開鍵暗号 - Wikipedia
0637631
2011/12/22(木) 16:33:27.08ID:???>>それでもユーザーがパスワードを忘れた場合、再発行という形になりますが。
間違えました、再設定です。
ハッシュ化するので、サイト側でも調べられないようにしています。
>>633
ユーザー登録時にメールなどで、「あなたのパスワードはaiueo123です」と送る場合に、
平文パスで保存しているんじゃないかと思われるかもしれないけど、送るにはどうすればいいかな?という感じです。
>>634
なるほど、よくある「パスワードを忘れた場合」は運営のやり取りが面倒ですが、それなら自動でできますね。
いろいろ検索してみた所、平文パスをメールで送る自体嫌悪する方が多いみたいですね。
ありがとうございました。
0638nobodyさん
2011/12/22(木) 17:07:03.25ID:???http://d.hatena.ne.jp/KEINOS/20090602
ウノウラボ by Zynga Japan: PHPで暗号化・復号あれこれ
http://labs.unoh.net/2007/11/php_de_crypt.html
Crypto++を使って、PHP(OpenSSL)との通信にRSAで暗号/復号化してみる ≫ おかゆ倶楽部―ソースが全然洗われない迷走ブログ
http://okayu.coresv.net/item/162
OpenSSLを使って情報を復号可能な暗号化 - PHPで活用編 ≪ できるWEBサイトにする為に何が出来るのか
http://hatomugi.sakura.ne.jp/forum/topic.php?id=82
[Tep-j-general] Re: 暗号化と複合化がしたい!!
http://lists.sourceforge.jp/pipermail/tep-j-general/2006-April/006111.html
公開鍵暗号の役割 - 現場指向
http://genba-oriented.jp/index.php?title=%E5%85%AC%E9%96%8B%E9%8D%B5%E6%9A%97%E5%8F%B7%E3%81%AE%E5%BD%B9%E5%89%B2
公開鍵認証でsshを安全に使う − @IT
http://www.atmarkit.co.jp/flinux/rensai/buildlamp/lamp_05/05_1.html
0639nobodyさん
2011/12/22(木) 17:40:42.86ID:???当然鍵の種類を教えることもない。
0640nobodyさん
2011/12/22(木) 17:59:54.79ID:???> if($a === $a & $b &・・・)
if($a === ($a & $b &・・・))
というネタをやりたかったのかな、と。
0641nobodyさん
2011/12/22(木) 18:03:28.38ID:???メールは暗号化通信されないからね。
はがきにパスワード書いて送ってると思えばいいよ。誰かがそれを見るかもしれないし、運よく見られずに済むかもしれない。
0643nobodyさん
2011/12/22(木) 19:24:05.87ID:3/vjFxSmhttp://hp.submit.ne.jp/request/detail/22554
0645nobodyさん
2011/12/22(木) 19:41:20.54ID:3/vjFxSmおれほんとweb系に入らなければよかった。
でもパチと小売りとITと外食だとITしか選べなかったし。
まあ東京経済大学だからFランだからしょうがないけど
ITなんかやるもんじゃねえよ。
できないとなんでできないのと言われ、わからないといえず、
自分で壊したくせに翌日なにもしていないのに
壊れたとかいう馬鹿ばかり
0646nobodyさん
2011/12/22(木) 19:53:54.07ID:???0648nobodyさん
2011/12/22(木) 22:03:45.62ID:???ごく普通の求人だと思うけど何が不満なのかな?
見ず知らずの個人にこれ以上の物を求めても仕方ないだろ。
報酬だって「予算と納期についてはダミーです」って書いてあるんだし案件次第だろ。
0649nobodyさん
2011/12/22(木) 22:21:41.43ID:???0650nobodyさん
2011/12/22(木) 22:22:33.57ID:???>報酬だって「予算と納期についてはダミーです」って書いてあるんだし案件次第だろ。
穿った見方をすれば、10万の予算から、さらに値切ろうとする様に見える。
もしくは「10万でハードとソフトの両方揃えて。んでお釣はキミの取り分ね。」とか。
0653nobodyさん
2011/12/22(木) 22:44:16.87ID:???0654nobodyさん
2011/12/22(木) 22:48:38.81ID:???0655nobodyさん
2011/12/22(木) 22:58:32.83ID:???0656nobodyさん
2011/12/22(木) 23:06:06.95ID:???0657nobodyさん
2011/12/23(金) 00:16:46.70ID:???わりと普通にできますた。
納期とか料金計算は出来なかったからデスマな上に格安だったけどな。
デザイナーあがりが未経験で業務としてプログラムやるもんじゃないわ。
0658nobodyさん
2011/12/23(金) 00:21:50.75ID:???XML schema 読み込んで必要なクラスを生成するのは自力でやるしかないんですかね。
Javaみたいにツールでさくっと作れると楽なんですが。
どうもでした。
0659nobodyさん
2011/12/23(金) 00:36:54.14ID:???0660nobodyさん
2011/12/23(金) 02:35:07.76ID:???どんな機能がほしいのかを書かないと、望む回答が来ないということを実感できましたかね。
普通の人ならそれができて楽なんですが、そうじゃないと難しくて困ります。
0661nobodyさん
2011/12/23(金) 02:41:27.53ID:???■ このスレッドは過去ログ倉庫に格納されています