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

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

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん2012/09/25(火) 23:39:55.21ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

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

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

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

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
0831nobodyさん2012/11/12(月) 21:03:43.88ID:0jsaB5yd
TeraTermで見た時に
PHPで日本語ファイル名を読み取って var_dump すると文字化けするんですけど
そのファイルの中身を読取TeraTerm上に吐き出した場合には
文字化けしていません。

lこれっていったい何が原因なのでしょうか?
0832nobodyさん2012/11/12(月) 21:08:05.67ID:???
もしかして:PHPの内部エンコーディング
0833nobodyさん2012/11/12(月) 21:13:36.23ID:0jsaB5yd
>>832
??? UTF-8にしてます。
また、ターゲットのファイルの中身も UTF-8 で統一しています。
何より、
read.php の中で 【ほげほげデータ.dat】 を読み込み
終了タイミングで

echo "データ読込に成功しました!!";

と記述した場合には、TeraTerm上に文字化けせずに正常に表示されます。

PHPの文字コードは、UTF-8に統一されているという認識ですが
間違っていますでしょうか?
0834nobodyさん2012/11/12(月) 23:12:20.07ID:???
PHPやってるとホント無駄なところで無駄な時間を使うんだな
まぁお前が好き好んで人生のうちの何時間かをその無駄なことに注ぎ込みたいのならいいだろ
0835nobodyさん2012/11/12(月) 23:25:04.25ID:???
全部utf-8で統一してるなら文字化けするわけがない。
teratermってことはどっかsshしてるんだろうけど
$ echo $LANG
とか
$ nkf -g data
とか
teraterm自体の設定を見てみるとかしてみて。
0836nobodyさん2012/11/12(月) 23:31:29.31ID:???
PHPで、年単位で無駄にしてる馬鹿も多い
0837nobodyさん2012/11/12(月) 23:43:44.35ID:0jsaB5yd
>>835
やりたい事は出来るのでOKなんですが
コマンドを試してみたところ次のありさまでした。

% echo $LANG
LANG: Undefined variable.

%nkf -g data
data: No such file or directory
0838nobodyさん2012/11/12(月) 23:46:43.05ID:???
存在するファイルにしろ
0839nobodyさん2012/11/13(火) 02:25:13.36ID:???
正規表現\sのホワイトスペースが具体的になんであるか確認した。



HT(水平タブ) is a white space.
LF(改行) is a white space.
FF(改頁) is a white space.
CR(復帰) is a white space.
(スペース) is a white space.





$arr = array(
"NUL(null文字)", "SOH(ヘッダ開始)", "STX(テキスト開始)",
"ETX(テキスト終了)", "EOT(転送終了)", "ENQ(照会)",
"ACK(受信OK)", "BEL(警告)", "BS(後退)",
"HT(水平タブ)", "LF(改行)", "VT(垂直タブ)",
"FF(改頁)", "CR(復帰)", "SO(シフトアウト)",
"SI(シフトイン)", "DLE(データリンクエスケープ)", "DC1(装置制御1)",
"DC2(装置制御2)", "DC3(装置制御3)", "DC4(装置制御4)",
"NAK(受信失敗)", "SYN(同期)", "ETB(転送ブロック終了)",
"CAN(とりけし)", "EM(メディア終了)", "SUB(置換)",
"ESC(エスケープ)", "FS(フォーム区切り)", "GS(グループ区切り)",
"RS(レコード区切り)", "US(ユニット区切り)", "(スペース)" );
foreach ( $arr as $val => $str) {
$t = preg_replace('/\s+/', '', chr($val));
if(strlen($t)===0) echo "{$str} is a white space.\n";
}
0840nobodyさん2012/11/13(火) 02:28:40.86ID:???
正規表現の置換で\sを[\0- ]にすると、文字でないものは削除できるが、エンコード次第では普通の文字も消えてしまうのか?
0841nobodyさん2012/11/13(火) 03:25:03.45ID:???
strip_tagsは構文や命令は解析してないらしい。




strip_tags関数の穴
例。
$str = "<b>余計な文字列</b>削除しないで><動く物も動かなくなっちゃうよ!";
echo strip_tags($str);
結果
余計な文字列削除しないで>

bタグはきちんと削除されていますが「しないで><」の後ろもタグと判断されて削除されちゃってます。
意図的に半角の不等号を使ったのですが、HTMLじゃない文字列まで削除されるのはちょっと困ります。
http://d.hatena.ne.jp/tek_koc/20080930/1222732987
0842nobodyさん2012/11/13(火) 03:29:31.34ID:???
タグ中に><使ったらHTML構文エラーだろ。アホか。
0843nobodyさん2012/11/13(火) 03:51:39.88ID:???
strip_tags($s) の代わりを作った。少しはタグらしいものを削除できる。

$s = preg_replace("@<[\/\!]?[a-zA-Z]+[^<>]*>@s", '', $s );
0844nobodyさん2012/11/13(火) 19:57:36.38ID:r7+OKuGH
そこは削除じゃなくエスケープでしょ?!
やり直し!
0845nobodyさん2012/11/13(火) 21:50:58.10ID:???
ソース読め
0846nobodyさん2012/11/13(火) 22:06:57.01ID:???
>>843
<script<script>>alert('err');</script</script>>
0847nobodyさん2012/11/13(火) 23:14:24.94ID:B6JGLfv/
ヒアドキュメント内で使えない文字ってありますか?

?>書くとおかしくなる気がするんですが勘違いでしょうか?
0848nobodyさん2012/11/13(火) 23:21:25.87ID:MQzA8bHk
「2012-08-21」という文字列を「2012年08年21日」に変換するにはどうしたら良いでしょうか?
いろんなやり方あると思いますが、教えてください。お願いします
0849nobodyさん2012/11/13(火) 23:30:05.71ID:B6JGLfv/
>>84はわすれて
0850nobodyさん2012/11/14(水) 02:36:04.20ID:???
>>848
いろんなやり方があると分かってるのに聞くってどういうこと?
0851nobodyさん2012/11/14(水) 02:53:09.72ID:???
echo date("Y年m月d日", strtotime("2012-10-25"));
0852nobodyさん2012/11/14(水) 09:09:07.23ID:???
PHP 5.4 (5.4.9RC1)
VC9 x86 Thread Safe (2012-Nov-07 22:35:53)
http://windows.php.net/qa/
0853nobodyさん2012/11/14(水) 10:37:53.58ID:???
>>848
print vsprintf("%04d年%02d月%02d日" ,sscanf("2012-08-21","%d-%d-%d") );
0854nobodyさん2012/11/14(水) 11:32:53.97ID:???
>>850
自分のやってる正規表現で置換する以外の賢い方法を知りたかったので

>>851,853
おおー、両方とも知らなかったです
ありがとうございました
0855nobodyさん2012/11/14(水) 12:24:11.16ID:???
>>854
速度は正規表現の方が劇的に速い
0856nobodyさん2012/11/14(水) 12:48:39.37ID:???
存在しない日付のとき問題出るしな
出たほうがいい場合が多いが
0857nobodyさん2012/11/14(水) 13:30:38.94ID:???
>2012年08年21日
年月日じゃなくて年年日にしたいそうだぞ
0858nobodyさん2012/11/14(水) 13:37:42.81ID:???
こういうやついるよな
0859nobodyさん2012/11/14(水) 14:24:47.65ID:Yf+k1U8+
【OS名】windows7
【PHPのバージョン】5.2.3
【連携ソフトウェア】MySQL5.5
【質問内容】
phpとmysqlで情報処理系のWEBアプリを構築しているのですが、
DBへのインサート時、 〜 (波線)が入力されているとインサートに失敗してしまいます。
文字コードが怪しいと思いましたが、DB・phpどちらもUTF8になっており問題ありません。
どなたか思い当たりがある方いらっしゃいましたらご教授頂けると幸いです。
0860nobodyさん2012/11/14(水) 14:28:32.15ID:???
一般的なデータベースにはバイナリ文字列は入れられないのが普通。
エスケープ、エンコードして入れるのが安全。
0861nobodyさん2012/11/14(水) 14:31:16.69ID:???
utf8_unicode_ci → utf8_general_ci
0862nobodyさん2012/11/14(水) 14:31:40.40ID:???
mysql_real_escape_string (PHP 4 >= 4.3.0, PHP 5)
SQL 文中で用いる文字列の特殊文字をエスケープする
代替策について
この拡張モジュールを使うことはおすすめできません。 MySQLi あるいは PDO_MySQL を使うべきです。
詳細な情報は MySQL: API の選択 や それに関連する FAQ を参照ください。
http://phpspot.net/php/man/php/function.mysql-real-escape-string.html
08638592012/11/14(水) 14:38:37.19ID:Yf+k1U8+
ご返答ありがとうございます。
言葉足らずで申し訳なかったのですが下記のようにエスケープしてクエリに渡している状態です。
最終的に発行しているmysqlをコピーしてコマンドプロンプトから直接入力すると正常にインサートできます。

// MySQLへの接続処理
$dbc = mysql_connect($this->host, $this->user, $this->pass);
// データベース選択
$result = mysql_select_db($this->database, $dbc);
mysql_set_charset("utf8");

if($result) {

$mysql = "INSERT INTO test ";

$mysql .= "(example";

$mysql .= ") VALUES ( ";

$mysql .= "'".mysql_real_escape_string($form[example])."'";

$mysql .= ")";

echo $mysql;

$result_flg = mysql_query($mysql, $dbc);

if($result_flg) {
echo 'インサート成功';
} else {
echo 'インサート失敗';
}
}
0864nobodyさん2012/11/14(水) 14:38:50.94ID:???
怪しい入力を残しておくとこうなる可能性。


SQLインジェクション - Wikipedia
SQLインジェクションとは、アプリケーションのセキュリティ上の不備を意図的に利用し、
アプリケーションが想定しないSQL文を実行させることにより、データベースシステムを不正に操作する攻撃方法のこと。
また、その攻撃を可能とする脆弱性のこと。

実例
2005年5月に発生した、価格.comのWebサイト改竄 クラブツーリズム事件の犯人は価格.comへの不正アクセスも行っていた。
2005年8月に判明した、静岡新聞社アットエスの個人情報漏洩 - クラブツーリズム事件と同一犯
2005年11月に発生した、ワコールオンラインショップのクレジットカード情報を含む個人情報漏洩
2005年11月に発生した、キッズオンラインのアカウント情報漏洩
2006年1月に判明した、スカイソフトのクレジットカード情報を含む個人情報漏洩 スカイソフトは閉店へと追い込まれた。
2007年7月に判明した、@SOLAショップのクレジットカード情報を含む個人情報漏洩
2008年3月に発生した、トレンドマイクロ、@nifty、クリエイティブメディアのWebサイト改竄
2008年3月に発生した、サウンドハウスのクレジットカード情報を含む個人情報漏洩
2008年4月に発生した、カービューのWebサイト改竄
2008年5月に発生した、アイドラッグストアー、アイビューティーストアーのクレジットカード情報を含む個人情報漏洩
2008年5月に発生した、富士山マガジンサービスのWebサイト改竄
2008年6月に発生した、アイリスプラザのクレジットカード情報漏洩
2008年7月に判明した、ナチュラムのクレジットカード情報を含む個人情報漏洩
2008年7月に発生した、米国向けプレイステーションのWebサイト改竄
2008年7月に発生した、独立行政法人石油天然ガス・金属鉱物資源機構のWebサイト改竄
2008年10月に発生した、ゴルフダイジェスト・オンラインのWebサイト改竄
2010年1月に発生した、モンベルのクレジットカード情報漏洩
2010年7月に発生した、コーエーテクモホールディングスのGAMECITY会員の個人情報漏洩
2011年4月から発生している、ソニーのプレイステーションネットワークの個人情報漏洩に始まる、ソニーグループの個人情報漏洩。
0865nobodyさん2012/11/14(水) 14:43:17.89ID:???
>>863
安全な文字列へ変換してもダメなのか。そしたらわからん。
0866nobodyさん2012/11/14(水) 14:47:43.98ID:???
とりあえずbase64でエンコードしてみてダメか確認してみては?
base64関数は使いこなされていてバグは考えられず、確実に安全な文字列になる。
0867nobodyさん2012/11/14(水) 14:50:12.58ID:???
>>863
データベースへ送信するコマンド全体をエスケープしとけ。
エスケープしてる部分としてない部分が混合すると不具合が出る可能性ある。
0868nobodyさん2012/11/14(水) 14:51:06.06ID:???
まー、多分そういうことじゃないと思うよ。
まず、
echo 'インサート失敗'.mysq_error(); にしてみ。
0869nobodyさん2012/11/14(水) 15:00:32.51ID:???
え、何?
お前ら全角チルダと波ダッシュのよくある問題パターンでしょ・・・
見当はずれの書き込み多すぎワロタ
0870nobodyさん2012/11/14(水) 15:09:30.07ID:???
>>869
あれはいつもの人でしょ?
08718592012/11/14(水) 15:15:06.31ID:Yf+k1U8+
皆さんご教授ありがとうございます。
mysql_error()によるエラーは以下のようになってます。
やっぱり文字化けしているようです。
Incorrect string value: '\xEF\xBD\x9E' for column 'example' at row 1

「波線」で調べて情報が出てこず苦戦していたのですが波ダッシュで検索をかけると
>>869さんの仰っている通りメジャーな問題のようですのでもう少し調べてみます。
0872nobodyさん2012/11/14(水) 15:24:05.18ID:???
>>869
データベースには正しくエンコードしたら、jpgでもzipでも入れられるが。
任意のバイナリデータでは波ダッシュも全角チルダも含む可能性があるが、そんな問題に出会ったことがない。
挿入以外の文字コード変換でエラーになってるのでは?
0873nobodyさん2012/11/14(水) 15:36:45.31ID:???
文字化けじゃなくて、DBの設定があってないだけですね。
0874nobodyさん2012/11/14(水) 15:44:04.85ID:???
スクリプトファイルの文字コードがUTF-8じゃないんだろ
0875nobodyさん2012/11/14(水) 17:18:39.07ID:???
EFBD9Eね
なるほど
0876nobodyさん2012/11/14(水) 17:22:58.46ID:???
Rawデータ、無変換データをbase64でテキストにしとけ
0877nobodyさん2012/11/14(水) 19:46:09.89ID:zP8rSMne
>>862
これさ、文字コードを適切に設定してれば問題なくね?
0878nobodyさん2012/11/14(水) 21:25:11.35ID:???
>>876
いまだにこういうレベルの低いノウハウがサイトに山盛り残ってるんだよな。
間違った対処法で誤魔化したりしてるから、一向に正しい知識がつかない上に、トラブルの元でしかない。

Incorrect string value のエラーを返してるのは mysql側 で \xEF\xBD\x9E が受け取れないって言ってる、
そのうえ、UTF8の他の字ならいいんだろ? DBの設定違い以外に無いじゃないか。
DBの設定をどうやって確認して、どうなってたのか見せてみ。
0879nobodyさん2012/11/14(水) 21:51:21.15ID:JaYxwXt2
TeraTermでさくらインターネットに接続し
下記コマンドを実行すると正常にcakePHP2.0 で定義したシェルが実行される状態です。
%php /home/myaccount/cake/app/Console/cake.php HogeMaster Hoge hikisu_hoge -app /home/myaccount/apps/hogehoge.com

このコマンド実行をcronにてさせようとしていますがやり方が分かりません。

http://memo.mkmin.com/cakephp/?p=13
このサイトを参考に次のシェルを作成し
/home/myaccount/apps/hogehoge.com/Vendor/cron_hoge.sh

< 中身 >
#! /bin/sh
/usr/local/bin/php /home/myaccount/cake/app/Console/cake.php HogeMasteer Hoge aaabbb -app /home/myaccount/apps/hogehoge.com

と定義したんですけど、どうやってこのシェルを実行したらよいのでしょうか?

TeraTerm上から
Vendorのパスまで移動し ./cron_hoge.sh をやろうとしたところPermission deniedのエラーメッセージが表示されてしまいます。
0880nobodyさん2012/11/14(水) 22:20:55.34ID:???
文字コードの設定やデータベース仕様に左右されるのは面倒。
base64_encode(gzdeflate($bindata, 1))か
base64_encode(gzcompress($bindata, 1))
でテキストにして挿入しとけ。
データベース固有のエスケープ(エンコード)関数と比べ、サイズも速度も良い場合が多い。
08818792012/11/14(水) 23:14:29.21ID:JaYxwXt2
自己解決

楽勝でした。
0882nobodyさん2012/11/15(木) 02:14:55.08ID:???
gzdeflateとgzcompressを計測してみた。圧縮率に差はでなく速度でgzdeflateが有利ぽい。

<?php
define('repeat', 1000);
$urls=array(
'http://www.youtube.com/', 'http://www.yahoo.co.jp/', 'http://www.amazon.com/', 'http://jp.msn.com/',
'http://blog-imgs-43-origin.fc2.com/m/a/k/makamaka001/11050050044.jpg',
'http://blog-imgs-32.fc2.com/s/a/n/sannan6666/20080109091130.png',
'http://blog-imgs-19-origin.fc2.com/k/i/t/kitarock/obama.jpg');

$fncs = array('gzdeflate','gzcompress');
$tmp = array('time'=>0, 'size'=>0);
$cnt=array('gzdeflate'=>$tmp,'gzcompress'=>$tmp);
foreach($urls as $url) {
echo "downloading...$url\n";
$data = file_get_contents($url);
foreach($fncs as $fnc) {
echo "measuring in progress...$fnc\n";
timer();
for($n=0;$n<repeat;$n++) $cnt[$fnc]['size']+=strlen($fnc($data, 1));
$cnt[$fnc]['time']+=timer(); }
print_r($cnt); }

function timer() {
static $flg=0,$start=0;
if(!$flg) { $flg=1; $start = microtime(true); return; }
$t0=microtime(true); $t1=$t0-$start; $start=$t0;
return $t1; }
0883nobodyさん2012/11/15(木) 09:09:15.92ID:???
質問させてください。
PHPでMySQLのデータを処理するにあたってですが、
一回のselectクエリで最大何件くらいのデータを取得するのがプログラム的に妥当ですか?
例えば5万件のデータがあるテーブルなら、100件とか1000件とかをLIMIT句で順々に取得した方が安全ですか?
0884nobodyさん2012/11/15(木) 10:26:29.66ID:???
>>1
0885nobodyさん2012/11/15(木) 10:31:30.90ID:???
>>882
そういうのは、自分のblogかなにかでやってください。
削除依頼メンドクサイです。

>>883
1件のデータ量と、マシンの能力と、それで何をするかによる。
そもそも、危険だと思ったのはなぜですか? どこかに書いてある?
0886nobodyさん2012/11/15(木) 11:11:43.95ID:yORZGjm1
>>880
これさ、後でデータを人間が探す時に苦労しねぇ?
0887nobodyさん2012/11/15(木) 11:28:43.46ID:lInARbbJ
質問ではないのですが、
5.3から導入されたネームスペースって
バックスラッシュ区切りですけど、
Perlみたいにコロン2つにできなかったんでしょうか?
何か構文的に問題があるんでしょうか?
0888nobodyさん2012/11/15(木) 12:30:03.26ID:???
データビューアーを別途作るハメになる
0889nobodyさん2012/11/15(木) 12:36:09.34ID:???
コロン2つってクラスメソッドとかクラス変数呼び出すときに使うじゃん
0890nobodyさん2012/11/15(木) 12:48:27.17ID:???
>>887
https://wiki.php.net/rfc/namespaceseparator
0891nobodyさん2012/11/15(木) 12:54:48.50ID:???
>>889
それと同じ記号ではいけない理由は?
0892nobodyさん2012/11/15(木) 13:47:11.66ID:???
x.xxから導入されたネームスペースって
コロン2つ区切りですけど、
xxxxみたいにバックスラッシュにできなかったんでしょうか?
何か構文的に問題があるんでしょうか?

という質問に変わるだけだw
0893nobodyさん2012/11/15(木) 16:54:55.29ID:???
メインの実行ファイルからクラスを読み込んでインスタンス作成した後、そのインスタンス中で別のクラスが必要になる時にはどのように呼ぶのが適切なのでしょうか?

1. requireはメインに戻ってする? ローダークラスなど作ってその中でrequire?
2. newはインスタンス内でする? メインでnewしてインスタンスに渡す?

こういった孫オブジェクト的なものの扱いがよくわかりません。どうかご教授ください。
0894nobodyさん2012/11/15(木) 22:32:28.41ID:???
>>1もスレタイすらも読まないのは何故なのでしょうか。どうかご教授ください。
0895nobodyさん2012/11/16(金) 17:29:17.42ID:???
>>888
お前みたいな荒らしをあぶりだすためですはい
0896nobodyさん2012/11/16(金) 19:13:09.15ID:3ZAHI2sw
スクレイピングを行う場合、
外部ライブラリを使わずに地道にHTMLコード解析して文字列操作で
今取得していますが、こういったスクレイピング方法はやはり邪道なのでしょうか?
0897nobodyさん2012/11/16(金) 21:23:01.15ID:???
いいえ邪道ではありません。
0898nobodyさん2012/11/16(金) 23:14:10.21ID:???
888のどこが荒らしやねん
0899nobodyさん2012/11/17(土) 11:02:06.99ID:???
>>896
邪道も何もそこらにあるライブラリより優れてるものなら自分で作ればいい
有名なHTMLパーサでも一部のHTML解釈できなかったりするしね
それ以下のものしか使えないなら外部ライブラリに頼ってもいい、その程度
0900nobodyさん2012/11/17(土) 11:54:05.69ID:???
厳密に解析してDOMツリーまで作るか、
速度重視で正規表現で狙うか、
作ったものを再利用するか、
対象HTMLの構造はコロコロ変わるか、
とかいろいろある
0901nobodyさん2012/11/17(土) 14:21:13.20ID:Q83xuEL3
ヘッダ部分だけmysql+phpで管理したいのですが、
一々ページタイトルなどをmysqlから引き出すとかなりの負荷がかかってしまいます。
Wordpressなどはどのように記述しているのでしょうか?
0902nobodyさん2012/11/17(土) 14:33:07.69ID:Q83xuEL3
タイトル,metaなどを
ページURL取得→mysqlに問い合わせ→データ表示
というようにやっていきたいのです。
0903nobodyさん2012/11/17(土) 14:52:18.25ID:???
かなりの負荷って何だよ?Wordpressはクソ重いだろ
どのように記述されてるかは、オープンソースだから見りゃ分かるでしょ
毎回DBアクセスするのがイヤならキャッシュ化すればいい

header部分だけ取得するくらいで負荷がどうとか言い出したら何も作れんぞ
0904nobodyさん2012/11/17(土) 15:13:04.31ID:Q83xuEL3
そうですね。ありがとうございます。
キャッシュ化はよくわからないので、毎回DBにアクセスすることにします。
0905nobodyさん2012/11/17(土) 19:16:49.98ID:???
>>901
他人に迷惑掛けるような奴は鮮人認定されて当然じゃね?
俺何も間違った事いって無くね?
0906nobodyさん2012/11/17(土) 19:24:00.26ID:???
話がマジで噛み合ってないんだけど、お前らの中ではコミュニケーションとれてるの?
ほんとphp厨ってマジキチしかいないのな。
だからphpユーザーじゃなくてphp厨って呼ばれるんだよ。
0907nobodyさん2012/11/17(土) 19:42:48.32ID:???
自分に言ってんのか?
0908nobodyさん2012/11/17(土) 22:35:25.46ID:nrePNH6L
規制は解除されたかな?
0909nobodyさん2012/11/17(土) 23:49:38.04ID:nrePNH6L
WEBサーバ上のphpスクリプト

http://sub.mannkodaisuki.com?word=manko

とアクセスすると

http://sub.mannkodaisuki.com/?word=manko

という風に「/」が「?」の前に挿入されてしまうんですけど
これって仕様なんでしょうか?

どうも気持ち悪いです。そもそもURLとして正しく無い気がしておりますが
実際のところW3Cの規約的にはどうなのでしょうか?
0910nobodyさん2012/11/17(土) 23:58:40.45ID:???
スラッシュはディレクトリ名
0911nobodyさん2012/11/18(日) 00:09:44.88ID:fIpttR/I
>>910
という事は、

http://sub.mannkodaisuki.com/?word=manko

と自動で書き換えられるURLは別に不正では無いとい事でしょうか?
0912nobodyさん2012/11/18(日) 00:27:43.82ID:???
俺は .com?word= の方が気持ち悪い
0913nobodyさん2012/11/18(日) 00:28:48.96ID:???
HTTPプロトコルを勉強しなさい

スラッシュが必要な理由がはっきり分かるはず
0914nobodyさん2012/11/18(日) 00:31:12.82ID:???
ヒント


GET / HTTP/1.0
...

GET /?word=hoge HTTP/1.0
...
0915nobodyさん2012/11/18(日) 01:55:42.44ID:???
>>909
むしろ最初のURLのほうがおかしい
0916nobodyさん2012/11/18(日) 02:46:57.91ID:???
PHP関係ないし
0917nobodyさん2012/11/18(日) 02:48:07.67ID:???
>>911
それ書き換えちゃう
リダイレクトや
トラヒックの無駄遣いや
0918nobodyさん2012/11/18(日) 03:38:51.97ID:???
キチガイペチパーはHTTPのリクエストヘッダも知らないし調べようともしないんだなw
お前色々終わってるよww
0919nobodyさん2012/11/18(日) 03:49:15.81ID:???
>>917
リダイレクトはされてなくね……?
0920nobodyさん2012/11/18(日) 04:34:12.41ID:???
>>919
今のブラウザはリクエスト前に勝手にスラッシュつけてくれてますね
昔はサーバーがリダイレクトしなかったらエラーになってたような記憶が
0921nobodyさん2012/11/18(日) 06:33:10.02ID:???
せつこ、それURLやない
0922nobodyさん2012/11/18(日) 07:42:11.16ID:???
フォルダ名がないのにフォルダだったらリダイレクトが発生する
0923nobodyさん2012/11/18(日) 17:45:02.18ID:???
CC=30
BCC=chg
TO=frank
AA=ggg

のように、キー=値が改行区切りでたくさん入っているテキストファイルがあり
それを、「CCの値は**で、BCCの値は**で、」のように、**の部分をphpで自動的に入力させたいのです。
キーは変更されませんが削除の可能性はあり、削除の場合は、「-」などと入力させたいです。
値は後々、変更を加える可能性があります。
09249232012/11/18(日) 17:45:28.77ID:b+JMfR6z
どのようにすれば、実現出来るでしょうか、教えてください。
0925nobodyさん2012/11/18(日) 17:47:52.63ID:???
>>923
どこまでできんの?
それとも丸投げ?
09269232012/11/18(日) 17:50:30.45ID:b+JMfR6z
>>925
どういう風に作れば良いのか、教えていただければ
PHPの基本的な構文はわかっているので、後は自分で作れると思います
0927nobodyさん2012/11/18(日) 18:06:42.31ID:???
アルゴリズムを書いてみろ
添削してやる
0928nobodyさん2012/11/18(日) 18:23:17.98ID:???
iniファイルを読み込むだけなら
http://toro.2ch.net/test/read.cgi/hp/1351174578/316
09299232012/11/18(日) 18:29:57.37ID:b+JMfR6z
>>928
参考にしてやってみます!
0930nobodyさん2012/11/18(日) 19:17:09.81ID:???
迷惑メール送ってくるサーバーをダウンさせたいんだけど、
phpでやれますか?
ってかどこで聞いたらいいですかね?
0931nobodyさん2012/11/18(日) 19:24:07.22ID:???
>>930
サーバーに攻撃ツールをインストールして
PHPからはコマンドで叩くくらいしないと…

PHP単体ならせいぜいF5アタックくらいしかできないと思います
レス数が900を超えています。1000を超えると表示できなくなるよ。