【PHP】下らねぇ質問はここに書き込みやがれ 34
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/12/08(金) 04:22:54ID:???まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 33
http://pc8.2ch.net/test/read.cgi/php/1164209222/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc8.2ch.net/php/subback.html
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで http://pc8.2ch.net/db/subback.html
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
しかし初心者が目的も定めずに速度を気にしたところでほとんど意味は無いぞ
0653nobodyさん
2006/12/15(金) 14:50:43ID:???0654nobodyさん
2006/12/15(金) 14:54:42ID:zjrdLe6Pバイナリをbin2hexで16進数に変換したあと、それをまたバイナリに戻す事は可能でしょうか?
色々みたけど見当たらない・・・packっていうのがそれっぽかったけど、使い方がよく分からない。
識者の方、ご指導よろしくお願いします
0655nobodyさん
2006/12/15(金) 14:55:38ID:???1)痴漢したくないものだけ、htmlspecialcharsに影響されなず、
一般的に使われる事の無いような特殊文字列に痴漢
2)htmlspecialchars 実行
3)特殊文字列を元に戻す
0656軟式PHP
2006/12/15(金) 14:59:05ID:???そのpackでできるよ。
<?php
$str = 'その通り';
$hex = bin2hex( $str );
print 'Hex:' .$hex . '<BR>';
$bin = pack("H*",$hex);
print 'bin:' . $bin . '<BR>';
?>
0657nobodyさん
2006/12/15(金) 15:04:06ID:zjrdLe6Pおおー!
素晴らしい!
"H*"ってのを指定したらいいのか。
色んなオプション突っ込んで途方にくれてたところですw
ありがとうございました。
0658645
2006/12/15(金) 15:05:16ID:???1.<と>だけを置換
2.ダブルコーテーションとシングルコーテーションを置換
3.trim
4.mb_convert_kana
これくらいでいいのでしょうかね?
0659nobodyさん
2006/12/15(金) 16:22:41ID:???0660nobodyさん
2006/12/15(金) 16:46:31ID:9BwOCrLJ都道府県を選択後、自動で選択した都道府県の市区郡がselectできるよう(表示される)
ようにしたいのですが、どうすればいいんでしょう?
0661nobodyさん
2006/12/15(金) 16:53:39ID:qvbJOa4k0662645
2006/12/15(金) 16:58:17ID:???えーと。(ユニコードは使いません)
掲示板などで、投稿された文字をそのままアップじゃやばいですよね。
だから、何か処理をしなければいけない。ってことはわかりますが
その処理は、>>658に書いた4つの処理でいいのでしょうかね?
0663nobodyさん
2006/12/15(金) 17:29:08ID:???以下のコードでサーバー上に圧縮ファイルは出来上がり、このファイルをFTPでDLして中身を見てみると、確かに圧縮されています。
メールにもファイルは添付されてきます。しかしファイル名は hogehoge.gz ですが、中身も容量も圧縮前のcsvデータそのままになってしまいます。
base64にエンコードする際に圧縮ファイルの中身の文字列を圧縮されたままエンコードしているつもりなのですが、
どうやらcsvデータをそのまんまエンコードしてしまっているように思われます。
正しくエンコードしてやるにはどのように書いたらいいのでしょうか??
0664nobodyさん
2006/12/15(金) 17:33:15ID:???//■■取得したデータ($getdata)から圧縮ファイルを生成
//圧縮ファイルのオープン
$filename = mb_encode_mimeheader("hogehoge").".gz";
$fp = gzopen($filename,'w');
//圧縮ファイルに書きこみ
gzwrite($fp,$getdata);
gzclose($fp);
//圧縮ファイルのオープン
$fp = gzopen($filename,'r');
//圧縮ファイルの読みこみ
do {
$data = gzread($fp, 10000);//←�@ gzread で解凍せずに読み込んでるつもり
if (strlen($data) == 0) {
break;
}
$contents .= $data;
} while(true);
gzclose($fp);
//エンコード
$f_encoded = chunk_split(base64_encode($contents)); //←�A エンコードしてるつもり
//body文字列の生成(添付部分)
$body .= "\n\n--$boundary\n";
$body .= "Content-Type: application/zip; name=\"$filename\"\n";
$body .= "Content-Transfer-Encoding: base64\n";
$body .= "Content-Disposition: attachment; filename=\"$filename\"\n";
$body .= "$f_encoded\n";
$body .= "\n\n--$boundary--\n";
0665nobodyさん
2006/12/15(金) 17:40:52ID:???どうして普通に読まないんだよ。
0666nobodyさん
2006/12/15(金) 17:48:23ID:???//エンコード
$f_encoded = chunk_split(base64_encode($filename));
でいいんでしょうか??
0667nobodyさん
2006/12/15(金) 17:49:51ID:???$fp = gzopen($filename,'r');
これがだめぽ
0669nobodyさん
2006/12/15(金) 17:53:33ID:???・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
0670nobodyさん
2006/12/15(金) 17:55:41ID:o16g8Qpy0671nobodyさん
2006/12/15(金) 18:09:59ID:???そろそろ"gz"で読むのがまずいことに気付いたかな?
0672645
2006/12/15(金) 18:10:22ID:???僕の質問よろしくお願いします。
0673nobodyさん
2006/12/15(金) 18:12:51ID:???もう色々教えてもらったんだからそれで動かしてみて問題があればそこを直せばいいじゃん。
XSSは大抵防げるだろうけど、CSRF、DB使ってるならSQLインジェクションやら
考えることは山ほどあるんだ。ってことで勉強しつつ作ってくれ。
0674nobodyさん
2006/12/15(金) 18:15:09ID:???それに入力の検査自体が別にphp固有の問題じゃないし。
0676nobodyさん
2006/12/15(金) 18:18:08ID:o16g8Qpy0677nobodyさん
2006/12/15(金) 19:31:24ID:???ttp://www.777777.net/magmag/codelock.php
の評価を教えてけれ
ワシの高級PHPソースを見られたくないのです。
レンタル鯖なので、Zend系とかサーバにインストールする系は
無理なのでございます。
0678nobodyさん
2006/12/15(金) 19:36:26ID:???0679nobodyさん
2006/12/15(金) 19:37:32ID:???高級PHPソースの割にはこのスレに質問しにくるとはアホなのか。
なんか、ereg関数とか使ってそうだなwww
0680PHP出版
2006/12/15(金) 19:46:44ID:???0681nobodyさん
2006/12/15(金) 21:28:41ID:???馬鹿ですねwwww
0682nobodyさん
2006/12/15(金) 21:49:55ID:Xtqi0V4I0683nobodyさん
2006/12/15(金) 22:06:28ID:g5A+TTGd0684nobodyさん
2006/12/15(金) 22:13:36ID:???0685nobodyさん
2006/12/15(金) 23:15:32ID:???0686nobodyさん
2006/12/16(土) 01:07:59ID:???ereg関数は別に使ってもいいけど、ereg関数にマルチバイト文字列を含む
パターンを使ってるのを見ると「あぁ、こいつは経験が浅いな」と思う。
ereg('[あ-んア-ン]', $string)
こういうの、なんか気持ち悪い。
0687nobodyさん
2006/12/16(土) 01:18:20ID:???>ereg('[あ-んア-ン]', $string)
この場合「こういうの、なんかいやらしい。」が正解だろ?
0689nobodyさん
2006/12/16(土) 01:44:07ID:???つーか、よくそんな怪しいソフトを使う気になるねぇ。
他にいくらでも有名なソフトあるのに。
もしかして「本人宣伝乙」ってヤツ?www
0690nobodyさん
2006/12/16(土) 02:01:13ID:kvjqtHVCでもなぜか俺は文字数数える仕事ってないんだよね。バイト数を数えるのは多いんだけど
0691690
2006/12/16(土) 02:01:45ID:???0692nobodyさん
2006/12/16(土) 02:09:11ID:???ヘボカス初心者がやらかす三大意味不明行為(ウェブ開発編)
1.「JavaScriptによる右クリック禁止」
2.「HTMLソース表示妨害(無駄な努力)」
3.「自分の書いたしょぼいコードをやたら大事にして隠したがる」
てめえの書いたしょぼいコードなんか、誰も見たがったりしねぇよ。
宣伝目的ならスレ違いだから消えな。
0693nobodyさん
2006/12/16(土) 03:00:30ID:???結果がどうしても同じにならないのですがなぜでしょうか?
<?php
$a = 300.10;
$b = 0.10;
$a_b_sum = $a + $b;
var_dump ($a_b_sum); // float(300.2)
$c = 300.20;
var_dump ($c); // float(300.2)
if( $a_b_sum > $c) {
echo "NG"; // こっち
} else {
echo 'OK';
}
if(300.2 > 300.2) {
echo 'NG';
} else {
echo 'OK'; // こっち
}
?>
0694nobodyさん
2006/12/16(土) 03:13:46ID:???文句があるなら下駄でも履かせやがれこんちくしょーっ!
0695nobodyさん
2006/12/16(土) 05:26:57ID:???http://jp.php.net/manual/ja/language.types.float.php
$a_b_sum = $a + $b;
↓
$a_b_sum = bcadd($a, $b);
するとOKOK
(BCMathはWinか--enable-bcmathコンパイル必要)
0696nobodyさん
2006/12/16(土) 07:31:58ID:HXTFaSG20697nobodyさん
2006/12/16(土) 10:45:33ID:???俺もereg関数でマルチバイト文字使ってるんだけど駄目なのか・・・
別の関数を使ったほうがいいんでしょうか?
素人ですまんが教えてください。
0698nobodyさん
2006/12/16(土) 10:58:59ID:???そう言うわけで教えて欲しいのですが、
xxx.php?page=10&block_num=girl_list
のような?の後に続くのは、どう言う意味なんでしょうか?
なにぶんPHPと言うモノを知ったのが、今日なんでサッパリわかりません。
0703nobodyさん
2006/12/16(土) 11:24:51ID:???>>698
girl_listワロタ・・
それはPHPというよりHTMLの内容じゃまいか?
0704nobodyさん
2006/12/16(土) 11:25:17ID:???見てたのは確かにアダルトなんですが、普通のURLってxxx.phpてな感じで終わるじゃ〜ないですか。
疑問は、この?page=10&block_num=girl_listの部分なんです。なんの為に、こんなのがひっついているのですか?
なんの為に、こんなのがあるのか興味があるんです。
0705nobodyさん
2006/12/16(土) 11:38:52ID:???やぱっりそうなのかよww まぁ、こうもあっさり認められると
これ以上つっこみようもないが。
?以降は(この場合)PHPプログラムに情報を渡すために使われるんだよ。
例えばblock_numの値に応じてページの内容を変えることができる。
block_num=girl_listならお前の好きな女の子のページが表示されるだ
ろうし、block_num=boy_listなら(開発者がページを用意してれば)男だ
らけのページが表示されるかもな(キモすぎる...)。
page=10をpage=11とかpage=09にすると違うページが表示されるかもな。
そのへんは自分で?のついたURLをいろいろいじくってるとなんとなく実感
がわいてくるんじゃない?
0706nobodyさん
2006/12/16(土) 11:41:35ID:????page=10&block_num=girl_listが付いてると不安になるの?
その辺を聞きたい。
0707nobodyさん
2006/12/16(土) 11:43:55ID:???0710nobodyさん
2006/12/16(土) 11:59:32ID:???>君のレスの、
>「って気になったんです。」
>も気になるよ。
と、下らなすぎるレスをしてしまったんだろ?って気になったんです。
0712nobodyさん
2006/12/16(土) 12:08:27ID:???0713645
2006/12/16(土) 13:03:42ID:???結論として
掲示板に投稿されたデータは
特殊文字を表示させたいならhtmlspecialcharsは使わない
<と>と'と"を置換する。
以上でよろしいのでしょうか?
0714nobodyさん
2006/12/16(土) 13:35:16ID:???0715nobodyさん
2006/12/16(土) 13:42:21ID:M68Se3i9おまい次第
0716nobodyさん
2006/12/16(土) 13:42:43ID:???0717nobodyさん
2006/12/16(土) 13:55:25ID:???$array['usa'] = "アメリカ";
$array['uk'] = "イギリス";
から
jp = 日本, usa = アメリカ, uk = イギリス
という文字列を表示させたいのですが、
何か簡単な関数はあるでしょうか?
0718nobodyさん
2006/12/16(土) 14:07:09ID:???echo $key.' = '.$value.', ';
0719nobodyさん
2006/12/16(土) 14:47:41ID:???0720nobodyさん
2006/12/16(土) 15:09:26ID:???危ないやり方だな。
フェイルセーフを考慮するなら、「まずはエスケープする」べし。
お前の考え方は「まずはエスケープしない」になっている。
0721nobodyさん
2006/12/16(土) 15:20:39ID:???0722nobodyさん
2006/12/16(土) 16:12:02ID:???題名、URL、記事をHTML形式で出力したいんですが、どうすればいいですか?
0723nobodyさん
2006/12/16(土) 16:49:47ID:???0725nobodyさん
2006/12/16(土) 16:57:32ID:???0727nobodyさん
2006/12/16(土) 17:51:14ID:???まずフェイルセーフの概念をよく理解しろ。用語の意味くらい自分でググれ。
で、その概念をシステム制作に当てはめて考えろ。
そしたら>>713のやり方がいかに危なっかしいかが分かる。
重要なのは「優先順位」だ。どんな処理を優先させるのか。
安全対策に万が一「抜け・ミス」があったときにでも危険を防ぐにはどうしたらいいのか。
よく考えろ。考えても分からなければ、危険なので難しいことはやろうとするな。
0728nobodyさん
2006/12/16(土) 17:54:20ID:???っていうかお前さ、>>720をよく読めよチンカス。
せっかく重要な答えをズバリ書いてやってんのにそれを無視して、
「<と>と'と"を置換するだけじゃ危険なのですか?」などと的外れな質問を繰り返しやがって。
何をエスケープするかじゃねぇんだよ。どのように、どの順番でエスケープするかが大事なんだよ。
0730563
2006/12/16(土) 18:03:51ID:???ありがと〜
逆順はできたのですが、ちょっと意図したものと違いました。
CSVから整形して出力してるのですが、これを、例えば5番目の配列を基準に逆順にソートして出力させたいのです。
rsortだと、そういった指定ができなくて。
<table>
<?php
$Data=file('db.csv');
for($i=0;$i<sizeof($Data);$i++){
$line=explode(",", $Data[$i]);
?>
<tr><td><?=$line[0]?></td><td><?=$line[3]?></td></tr>
<?php
}
?>
</table>
言葉足らずで申し訳ありませんでした。
0731nobodyさん
2006/12/16(土) 18:09:01ID:???普通はリレーション使うと思うのですが、
phpからの操作が非常に面倒になりませんか?
リレーション使わずに
一旦あるフィールド値を取得してから
そのフィールド値で別テーブルを検索して値を取得、
とかやってる人っていますか?
今までリレーションの存在を知らずに(涙)
この方法でやってたのですが、
リレーションを使うのもかなりだるく(慣れていないだけの可能性もありますが)、
過去の手段もかなりだるくなってきました・・・
他に良い方法がありましたらきぼんぬです。
0732nobodyさん
2006/12/16(土) 19:29:26ID:vIgGXUoj配列Bの[0]の要素を表示するということをしたいのですが・・
$common_word = array_intersect($array_A,$array_B);
$array_count = count($common_word);
if($array_count >= 5)
{
}
いまのところ、このようになっておりますが、どのようにしたら良いのか
分からなくなりまして。。。よろしければ、ご教授願いたいのですが。
0734713
2006/12/16(土) 19:47:29ID:???言いたいことは大体わかるよ。
でも具体的に言ってもらわないとわからない。
<と>と'と"を置換するだけで問題ないでしょ?
>>728みたいな、どうでもいい薀蓄みたいなこと言う人はレスしないでください。
0735nobodyさん
2006/12/16(土) 21:11:07ID:a8ebIslZ『扱えない拡張子です,<br />PHPの設定をチェックしてください。』
と表示されます。
PHP.iniでは
extension=php_mysql.dll
と設定して再起動も完了しました。
ですが、同じエラーのままです。
何か他に考えられることがありますでしょうか?
0736732
2006/12/16(土) 21:23:54ID:vIgGXUojわざわざ人に聞くようなレベルの話ではありませんでした。
0738nobodyさん
2006/12/16(土) 21:30:39ID:???結論から言うと危険
「マルチバイト XSS」 でぐぐってみ
あとはHTTPヘッダーで文字コード宣言を必ずすること
これがXSS対策の基本
0739696
2006/12/16(土) 21:44:32ID:HXTFaSG2ピクセル単位ですか・・・
俺もそうかと思ったんですが、
だとすると1インチあたりのピクセル数の指定が
どこかにあると思うんです。
PDF って印刷物指向ですよね。
0740735
2006/12/16(土) 21:54:02ID:a8ebIslZえ?どういうことですか?
0741nobodyさん
2006/12/16(土) 22:12:27ID:???php.iniの設定だろうね
俺はここでちゃんとできたよ
http://www.srvmap.com/windows/php5.html
0743nobodyさん
2006/12/17(日) 00:24:20ID:???Apache2.2
PHP5.2
MySQL5.0.27
文字化けで困っています。
MySQLはSJISに設定しています。
コマンドプロンプトからMYSQLを使用すると正常出力
phpMyAdminを使用すると正常出力
PHPをブラウザで使用すると文字化け(mysql_client_encodingで調べるとlatin1)
→2バイト文字が?と表示されます。
解決策をご存知の方助けて下さい。
0744nobodyさん
2006/12/17(日) 00:41:20ID:???できる。
そもそも、基本的なHTML(CHTML・XHTML)などは3キャリア側のサーバーで
自動変換してくれるから問題ないと思いますよ。
ただし、HDML(古いAU端末とTuka端末)のform処理などは対応できていないので注意!
うちは、HTMLを各ノード単位で分割してコンバーター(HTML・CHTML・XHTML・HDNL変換)を通して
表示するようなフレームワークを作って使ってます。
0745nobodyさん
2006/12/17(日) 00:44:02ID:ilUpD26lset name sift-jis
みたいにすればいいんじゃね?
0746nobodyさん
2006/12/17(日) 03:44:42ID:irlLnY560747nobodyさん
2006/12/17(日) 03:47:19ID:???お前、どうしようもねぇバカでクズだな。
何様のつもりだ。
せっかくもらったアドバイスを無視した挙句に、逆に批判かよ。
お前マジで氏んだほうがいいよ。
0749nobodyさん
2006/12/17(日) 07:56:55ID:fDowNRkw「きょうから使えるphpサンプル500」っていう本で php.ini の設定しています。
そのなかで、mbstring.script_encoding=EUC-JP という設定を変更するように
書いてあったんですが、ファイルのソースを見たら mbstring.script_encoding が
ありません。
これは追加で書き足していいものでしょうか?
また、デフォルトで ; でコメントアウトされてるmbstringパラメータは全部コメントアウト解除
すべきですか?
あと、phpではないんですが、httpd.confの設定で、
AddDefaultCharset none という項目を編集するように書いてあるんですが、
この項目もhttpd.conf にありません。やはり追加書き足しすべきでしょうか?
phpのバージョンはphp-5.2.0 OSはwinXP Apache2.2です
0750nobodyさん
2006/12/17(日) 08:09:42ID:???まずはデフォルトで起動してみて以後自分の設定に変えていけば
あなたの設定したい項目は文字コードにかかわる部分なので
設定しないと起動しないような項目ではない
FA : 書き足す必要は無い
0751nobodyさん
2006/12/17(日) 08:19:09ID:fDowNRkwすばやい回答ありがとうございます
そうですか、とりあえず、書き足さないで出来るところからやろうと思います。
いま、環境変数を返すphpを作って(サンプルにしたがって)見たんですが、
ブラウザに表示しないでファイルをダウンロードしてしまいます。
これはなぜですか
かなりショボイ質問だと思いますが、、php.iniの設定がおかしいんでしょうか
0752nobodyさん
2006/12/17(日) 08:57:15ID:???Apache の設定の方に
AddType application/x-httpd-php .php
これを書き加える
0753nobodyさん
2006/12/17(日) 09:11:25ID:???■ このスレッドは過去ログ倉庫に格納されています