【PHP】下らねぇ質問はここに書き込みやがれpart14
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/12/18(日) 10:10:12ID:???ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
過去スレは>>2
0567nobodyさん
2006/01/03(火) 11:04:22ID:???【 abcd 】 → 【 abc 】
【 あいうえお 】 → 【 あいうえ 】
0568nobodyさん
2006/01/03(火) 11:21:13ID:???0570nobodyさん
2006/01/03(火) 12:14:24ID:???$hoge = "a-b_c.d#e";
$enc1 = urlencode($hoge);
$enc2 = rawurlencode($hoge);
$enc3 = base64_encode($hoge);
?>
<html><body>
<a href="/?<?php echo $enc1; ?>">LINK1</a><br>
<a href="/?<?php echo $enc2; ?>">LINK2</a><br>
<a href="/?<?php echo $enc3; ?>">LINK3</a><br>
</body></html>
このソースをブラウザで表示すると、IE 6では#が%23に変換されるのに、
FireFox 1.5では#のままです(urlencode系)。
#などを含む文字列をurlに埋め込む場合はbase64_encodeを使用する
方が安全なんでしょうか??
0571nobodyさん
2006/01/03(火) 12:21:09ID:???0572570
2006/01/03(火) 12:54:37ID:???英語版マニュアルも検索しましたが、url_encode_in_spというのは
見当たらないのですが・・・。
あと、>>13のソースで確認しましたが、サーバでは有効でないようです。
(PHP 5.0.5です)
0573nobodyさん
2006/01/03(火) 13:38:38ID:???url_encode_in_spなんてものは知らない(ググル先生もご存知無い)けど、
鯖に文字として#を渡したい場合は、urlencodeで十分だよ。
ブラウザによって変わるつーのは単に確認ミスでしょ。
0574nobodyさん
2006/01/03(火) 15:24:35ID:dg0Kk76m何%くらい簡単なんですか?概算でかまいません。
0575nobodyさん
2006/01/03(火) 15:37:40ID:???$host = $url['host'];
$path = $url['path'];
$query = $url['query'];
if(isset($query)){
$query = "?".$query;
}else{
$query = "";
}
$fp = @fsockopen($host,80,$errno,$errstr,30);
$header = "GET ".$path.$query." HTTP/1.0\r\n";
$header .= "Host: ".$host."\r\n";
$header .= "User-Agent: PHP/".phpversion()."\r\n";
$header .= "\r\n";
fputs($fp,$header);
while (!feof($fp)) {
echo fgets($fp, 1024);
}
fclose($fp);
フォームから受け取ったURLを開くと時々、Apacheのテストページが表示されることがあるんですが正常にそのHPを表示させる方法は無いでしょうか?
環境はXREA S181鯖です。
Apacheのテストページが表示されるURLはhttp://hogehoge/?id=hogeなどの場合です。
0579nobodyさん
2006/01/03(火) 15:49:19ID:???Perlが理解できてれば超簡単。10%くらいの時間であっさり習得。
WebProg初めてならどっちもさほど変わらん。
0580nobodyさん
2006/01/03(火) 15:50:41ID:???> Apacheのテストページが表示されるURLはhttp://hogehoge/?id=hogeなどの場合です。
その指定の場合には、どういうURLにアクセスすれば正解の予定なんでしょう?
0582nobodyさん
2006/01/03(火) 16:06:24ID:???0583nobodyさん
2006/01/03(火) 16:35:09ID:???同じURLをプラウザで開けば正常に表示されるということです。
本来ならUser-agentを偽装した状態でそのURLのページを表示するってことです。
それが何故かApacheのテストページに・・・
0585563
2006/01/03(火) 18:02:58ID:???どうもありがとうございます。
<?php mkdir("hoge/geji", 0777); ?>
//=> Warning: mkdir(): No such file or directory
<?php mkdir("hoge", 0777, TRUE); ?>
//=> 'hoge' というディレクトリが作成されます。
mkdir()で、せめてファイル名が表示されれば手がかりになると思うのですが。
引き続き、お助けをお願いします。
0586nobodyさん
2006/01/03(火) 18:07:08ID:???いや、前者は「hogeがないからhoge/gejiは作れへんよ」という事だろ。
hoge作ってからhoge/geji作ればいいだけの話。
0587nobodyさん
2006/01/03(火) 18:47:40ID:???portを80番から変えるとしてもフォームから受け取ったURLのポート番号を80以外で見つけるのは無理じゃないですか?
0590nobodyさん
2006/01/03(火) 19:13:29ID:???HTTP/1.1 403 Forbiddenです。
画面はApacheのテストページです。
>>588氏
鯖の仕様だと思い他サイトにあるProxyなどPHPのfsockopenでやっていると思われるもので同じURLを試してみると通常に表示できます。
0592nobodyさん
2006/01/03(火) 19:19:27ID:???User-agentがイレギュラーだと弾くようにしてあるんじゃないの?
まず正常なシーケンスで試してから偽装なり何なりやればいいのに。
0594nobodyさん
2006/01/03(火) 22:45:27ID:???足らず足止めを食らっています。
自分で勉強しますので、サンプルや参考になるドキュメントなど教えて頂けないでしょうか?
具体的につまづいている所は、mojavi2では、セッション、認証などあるのですが、誰がどの
ユーザIDかをどのようにセッションで繋いでいくのかあたりの知識がなくてよくわかりません。
0595594
2006/01/03(火) 23:01:01ID:???例えばDBにsessionというテーブルを作ってSIDとユーザIDに結び付けて、ユーザIDを
特定するという感じだと思うのですが、mojavi2だとどうするのかがよくわからないというか
0596nobodyさん
2006/01/03(火) 23:13:45ID:???Mojaviの話はこちらでどうぞ。
[PHP]フレームワークについて語るスレ2[総合]
http://pc8.2ch.net/test/read.cgi/php/1135847024/
0598nobodyさん
2006/01/03(火) 23:45:15ID:???> Mojavi初心者なんですが
> エスパー募集してもよろしいでしょか?
って書いた人?
だとしたらその後、質問はOKだけどエスパー募集はナシっていう流れだったんだけど。
0599nobodyさん
2006/01/04(水) 00:05:04ID:???元々の質問>>563までリカーシブに読んでやれよ。
> PHP5からはmkdir()の第3引数をつかえば、mkdir -p 相当の動作になると思っていたのですが、勘違いですっけ?
PHP5なら2階層以上のディレクトリを一発で掘れるんじゃないの?って話だろ。
http://php.s3.to/man/function.mkdir.html
> bool mkdir ( string pathname [, int mode [, bool recursive [, resource context]]] )
> 注意: パラメータ recursive は、 PHP 5.0.0 で追加されました。
って話だよな。俺もこのパラメータは使ったことないから正直わかんね。
PHP5のテスト環境は会社に行けばあるから正月終わるまで待ってくれれば試してみる。
0600nobodyさん
2006/01/04(水) 01:01:05ID:???$lv_bSize = (int) ord(($lv_bytes[0]) + (ord($lv_bytes[1]) << 8) + (ord($lv_bytes[2]) << 16) + (ord($lv_bytes[3]) << 24);
というのがあったんだが、こういう << ってどういう意味があるんじゃ?
0601586
2006/01/04(水) 01:08:45ID:???>>563も読んだよ。でも>>585の前者って第三引数入れてないじゃん。
何か俺間違った話してる?
>>600 ビットシフト
0602nobodyさん
2006/01/04(水) 01:16:38ID:???>>585のやつは>>566で「これやってみてくれ」って言われたからだな。
意図不明。
とりあえず>>563の
> <?php mkdir("hoge/geji", 0777, TRUE); ?>
> というプログラムを実行させると、
> Warning: mkdir(): No such file or directory
だけ着目してればいいんちゃう?
0603nobodyさん
2006/01/04(水) 01:29:58ID:???<?php mkdir("hoge/geji", 0777); ?>
↓
<?php mkdir("./hoge/geji", 0777); ?>
<?php mkdir("/usr/hage/hoge/geji", 0777); ?>
とかでやってみ。Windowsなら¥かDIRECTORY_SEPARATORでセパレート。
0604603
2006/01/04(水) 01:33:03ID:???>>563
<?php mkdir("hoge/geji", 0777, TRUE); ?>
↓
<?php mkdir("./hoge/geji", 0777, TRUE); ?>
<?php mkdir("/usr/hage/hoge/geji", 0777, TRUE); ?>
だな
0606nobodyさん
2006/01/04(水) 14:08:10ID:???0607nobodyさん
2006/01/04(水) 14:47:33ID:???0608nobodyさん
2006/01/04(水) 14:55:03ID:???作ったスクリプトの<form >で結構使ってるから気になっただけだよ。
$_SERVER['QUERY_STRING']とかもどうでしょうか。
鯖がやられてなければ大丈夫だと思いますけど
どうでしょうか。
0609nobodyさん
2006/01/04(水) 15:05:40ID:???0610nobodyさん
2006/01/04(水) 15:10:24ID:???0611nobodyさん
2006/01/04(水) 15:25:21ID:???0612nobodyさん
2006/01/04(水) 15:26:33ID:???「偽装される」ってのが何を意味しているかは知らないけど、
echo $_SERVER['PHP_SELF];
とか
echo $_SERVER['QUERY_STRING'];
とかすると、クロスサイトスクリプティング脆弱性が出来上がるよ。
'
>>610
セキュリティを考える場合確率は関係ないだろ。
0613612
2006/01/04(水) 15:27:07ID:???ねorz
0614nobodyさん
2006/01/04(水) 15:28:34ID:???echo $_SERVER['PHP_SELF];
がクロスサイトスクリプティングになるの
0615nobodyさん
2006/01/04(水) 15:31:33ID:???パスインフォが通るサーバ設定だと
/hoge.php/">
とかを$_SERVER['PHP_SELF']に入れられるから。
0616nobodyさん
2006/01/04(水) 15:35:50ID:???action属性を誤魔化すぐらいならwebサーバに直接叩きにいくだろうし。
0618nobodyさん
2006/01/04(水) 15:51:58ID:LqFUITlRvar $hoge;
}
と、var宣言するのとしないのとで、機能的な違いは何かありますか?
0619nobodyさん
2006/01/04(水) 15:53:36ID:???0620nobodyさん
2006/01/04(水) 15:54:58ID:???チェックボックスと、プルダウン選択だけなら問題ないよね?
セキュリティ考慮は全然してなかったからそろそろ考えないといかんな・・・
0621nobodyさん
2006/01/04(水) 15:59:06ID:???htmlspecialcharsを噛ませろ。
http://www.ipa.go.jp/security/awareness/vendor/programming/a01_02.html
http://takagi-hiromitsu.jp/diary/20051227.html#p01
0622nobodyさん
2006/01/04(水) 15:59:10ID:???0624nobodyさん
2006/01/04(水) 16:18:46ID:???0625nobodyさん
2006/01/04(水) 16:20:39ID:???自動で収集するプログラムないかな?
0627618
2006/01/04(水) 16:42:38ID:LqFUITlR宣言しなくても、値を入れれば参照できますよね?
0629nobodyさん
2006/01/04(水) 17:04:28ID:???久しぶりにWindowsにPHP 5.1.1をインストールしてgo-pear.batで
PEARをインストールしたのですが、pear.batは拡張子の後ろに
[_old]が付いていました。[_old]をとるとUNIX上と同じくpearコマンドが
使えますが、もう一つあるpecl.batを使うべきなんでしょうか?
pecl list-all と pear list-all した結果では表示される内容も異なるのですが
このままpearコマンドを使用しても良いのでしょうか???
0631nobodyさん
2006/01/04(水) 17:09:39ID:???pearはペアで間違いないと思うのだけど
0632629
2006/01/04(水) 17:16:41ID:???速レスありがとうございます。
ではpearは推奨されないということではないのですね。
安心しました。
>>631
"pick・le"と読んでます。
ピクルス(漬物)だったかと。
0634nobodyさん
2006/01/04(水) 17:22:10ID:???PEAR 〜 is pronounced just like the fruit
PECL (pronounced "pickle") used to be a sub-repository of PEAR for C extensions
0636nobodyさん
2006/01/05(木) 00:06:39ID:???てかphpはutf8扱えるんですよね?
0637nobodyさん
2006/01/05(木) 00:50:34ID:???>扱う言語を気にする必要はないですよね?
ある
>てかphpはutf8扱えるんですよね?
別にphpに限らずperlでもrubyでも扱える。
0638nobodyさん
2006/01/05(木) 01:41:35ID:???言語(日本語でもロシア語でもアラビア語でも)は
気にする必要ないですよね、って質問じゃなかったのか
0640nobodyさん
2006/01/05(木) 03:12:55ID:???0641nobodyさん
2006/01/05(木) 10:53:48ID:JFblkuhc日本語を含むヘッダーでメール送信をしたいのですが、
MACOSX10.4の付属メーラーで受信したとき送信者の日本語部分が文字化けしてしまいます。
本文、件名は文字化けしません。
WINでは問題ありませんでした。
まだ勉強中で、参考書の通りに書いているようなレベルですので
根本的に解っていないのかも知れませんが、
$header = "From: ROBO-ONE事務局 <info@robo-one.com>"として
メッセージや件名はmb_convert_encodingでエンコードしていたので
同じように
$header = mb_convert_encoding($header,"EUC-JP","auto")
と書いても文字化けしてしまい
$header = mb_encode_mimeheader($header,"ISO-2022-JP")
では送信すらされませんでした。
OSX10.4環境でも問題なく表示するにはどのようにしたらよいのでしょうか。
0642nobodyさん
2006/01/05(木) 11:40:43ID:GYuqexB9それをphpで表示しようとすると printfでエラーとなってしまう。
%が問題だとおもうのだけど、いい方法ない?
0644642
2006/01/05(木) 12:34:14ID:GYuqexB9助かった〜、ありがと
0645nobodyさん
2006/01/05(木) 13:01:14ID:???マニュアル読もうな
http://php.s3.to/man/function.sprintf.html
0646nobodyさん
2006/01/05(木) 17:07:24ID:Bm50yWipphpではどうやってますか?
foreachで回してifで判定して新配列にpushしかないんですかね。
0648646
2006/01/05(木) 17:38:41ID:???array_filterで何とかなりそうです。
>>647
ありがとうございます。
正規表現のときはpreg_grepなんですね。
array_grepにすればいいのに・・・。
0649nobodyさん
2006/01/05(木) 18:22:30ID:???ごっそり利用可否が切り替わるんだから、関数名で識別できた方が分かりやすいよ
0650nobodyさん
2006/01/05(木) 18:49:49ID:???これに何を与えると2ちゃんと同じトリップになりますか?
0651nobodyさん
2006/01/05(木) 19:21:46ID:???0652nobodyさん
2006/01/05(木) 19:58:29ID:???0653nobodyさん
2006/01/05(木) 20:16:34ID:???if(strpos($name,"#")){
$names = explode("#", $name);
$name = $names[0];
$passwd = $names[1];
$salt = substr($passwd."H.", 1, 2);
$salt = ereg_replace("[^\.-z]", "\.", $salt);
$salt = ereg_replace(":;<=>?@[\\]^_`", "ABCDEFGabcdefg", $salt);
$trip = substr(crypt($passwd, $salt),-10);
$name = "$name</b> ◆$trip <b>";
}
return $name;
}
Trip関数。
0655nobodyさん
2006/01/06(金) 02:27:52ID:???見難い。
function Trip($name = '名無しさん'){
list($name, $passwd) = explode('#', $name, 2);
if($passwd) {
$salt = substr($passwd."H.", 1, 2);
$salt = ereg_replace("[^\.-z]", "\.", $salt);
$salt = ereg_replace(":;<=>?@[\\]^_`", "ABCDEFGabcdefg", $salt);
$trip = substr(crypt($passwd, $salt),-10);
$name = $name.'</b> ◆'.$trip.' <b>';
}
return $name;
}
0656nobodyさん
2006/01/06(金) 03:22:58ID:???この中の$thisってどういうこと?
function accept(&$renderer)
{
$renderer->startForm($this);
foreach (array_keys($this->_elements) as $key) {
$element =& $this->_elements[$key];
$elementName = $element->getName();
$required = ($this->isElementRequired($elementName) && !$element->isFrozen());
$error = $this->getElementError($elementName);
$element->accept($renderer, $required, $error);
}
$renderer->finishForm($this);
} // end func accept
0658nobodyさん
2006/01/06(金) 09:24:43ID:???pear install Services_Trackback
とかしてもDLできないんだけどなんで?
というかlist-allしてもサービス関連のやつ出てこないし。
自動で探してきてくれるもんじゃなかったんだっけ。
0659nobodyさん
2006/01/06(金) 09:41:07ID:???α版だからじゃないか?
pear install Services_Trackback-alpha
としてみたらどうなる?
0660nobodyさん
2006/01/06(金) 13:58:57ID:???$a=$_POST['a'];$b=$_POST['b'];...
掲示板のスクリプトを見ると、このような書き方はしていないようです。
しかしどのように書いたらいいかわからないんですけど、
スマートに書く方法ありませんでしょうか?
0661nobodyさん
2006/01/06(金) 13:59:14ID:???0662nobodyさん
2006/01/06(金) 14:22:02ID:???という形式を
Y-m-d H:i:s
という形式に変換するにはどうすればいいでしょうか…?
0663nobodyさん
2006/01/06(金) 14:25:54ID:???register_globals = on というオチか?
>>661
return $test; // $test:Array
0666nobodyさん
2006/01/06(金) 15:40:43ID:???function a() {
return array("color"=>$color,"size"=>$size,"depth"=>$depth);
}
$test = a();
■ このスレッドは過去ログ倉庫に格納されています