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

【PHP】下らねぇ質問はここに書き込みやがれpart17

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/02/24(金) 22:05:48ID:YHkZgU8b
PHPに関するくだらねぇ質問用スレです。 
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。 

まず読め【PHP マニュアル】 
http://www.php.net/manual/ja/

本スレ【PHP】質問スレッドpart33【php】
http://pc8.2ch.net/test/read.cgi/php/1140027592/l50

前スレ【PHP】下らねぇ質問はここに書き込みやがれpart16
http://pc8.2ch.net/test/read.cgi/php/1139146534/l50

過去スレは>>2
0305nobodyさん2006/03/03(金) 13:18:46ID:???
>>303
なんだか良く判らないけど、さようなら
030607012320212468_mb2006/03/03(金) 13:20:02ID:j89wU6/4
>>304
まさにその通りです!
0307nobodyさん2006/03/03(金) 13:27:37ID:???
>>303
$vl["body"] = 掲示板に書き込まれた本文の内容;
$i = 0;
foreach(explode('<br />', $vl["body"]) as $l) {
if(++ $i >= 5) { echo '省略して表示されています'; break; } else { echo $l; }
}
0308nobodyさん2006/03/03(金) 13:28:58ID:???
あ、$lのechoで<br/>つけるのわすれた
0309nobodyさん2006/03/03(金) 13:34:57ID:???
>>303
これじゃダメ?
$str = "str1<br>str2<br>str3<br>str4<br>str5<br>str6<br>str7";
$reg = preg_replace("/((.*?<br>){5})(.*)/","$1省略して表示されています",$str);
echo $reg;
0310nobodyさん2006/03/03(金) 13:37:08ID:???
>>306
で、どこまで出来ていて
何が判らないんだっけ?
0311nobodyさん2006/03/03(金) 13:42:59ID:???
>>309
それ、5行無かったらどうなるんだ?
03123092006/03/03(金) 13:45:01ID:???
>>311
$strがそのまま表示された。
それと俺、ど初心者だからあまり信用しないで。
0313nobodyさん2006/03/03(金) 13:46:47ID:???
>>304
昔、それのメール版を作った事あるよ。IPリーチャブルな環境じゃなかったので。
誰かが作った公開サイトもあった。今考えると何も対策もなかったので、
メールボムの温床になりかねんが、随分と大らかな時代だった。
0314nobodyさん2006/03/03(金) 14:36:04ID:???
>>306
で、>>259じゃいかんのか?
ちょっと作り変えれば、ファイル名などは任意にできるが。
0315nobodyさん2006/03/03(金) 15:55:16ID:j89wU6/4
>>314
今から書き写してテストしてみます。
0316nobodyさん2006/03/03(金) 16:29:27ID:???
>>315
今からって...ヲィ、大丈夫か?
031707012320212468_mb2006/03/03(金) 16:51:16ID:???
$path = $_POST["url"];
ファイル名を
$filename_w = dirname($path) + $n + "_" + $basename($path);
と記述しましたが、syntaxエラーが出ます。
どのようにすれば上手くいきますか?
0318nobodyさん2006/03/03(金) 17:00:54ID:???
phpって何で良くセキュリティホール見つかるの?
こんな品質じゃ仕事で使えないじゃん。
0319nobodyさん2006/03/03(金) 17:11:17ID:???
>>317
そんな質問で答えられる奴はエスパーだぞ。

「+」->「.」に汁 byエスパー2号
0320nobodyさん2006/03/03(金) 17:11:20ID:???
>>317
+

.
に変えろ
0321nobodyさん2006/03/03(金) 17:24:40ID:j89wU6/4
>>319-320
できました!ありがとうございます!
あとは3g2ファイルのヘッダを付加して
DL用の<OBJECT>タグをつければ完成です!
0322nobodyさん2006/03/03(金) 17:39:07ID:???
>>321は絶対にまた帰って来ると思う。
でもそのときには「スレ違い!」の一言で片付けられる
と予言してみるテスト
0323nobodyさん2006/03/03(金) 18:06:04ID:Mb/ANEcx
犯罪とかのニュースのたびに怒りでどうしようもない
http://life7.2ch.net/test/read.cgi/jinsei/1140716130/l50
ここで偽善者がオナニー暴れしてます
0324nobodyさん2006/03/03(金) 19:00:13ID:???
>>318
Windows って何でよくセキュリティホール見つかるの?
こんな品質(略
0325nobodyさん2006/03/03(金) 19:18:24ID:???
>>318
MS-DOSってほとんどセキュリティホール見つからないね。
仕事に使うものとしては最高じゃん!
0326nobodyさん2006/03/03(金) 19:26:10ID:???
俺のエニーちゃんのオナホールは最高だよ
0327nobodyさん2006/03/03(金) 19:32:11ID:???
ちょっと貸してくれないか
0328nobodyさん2006/03/03(金) 20:15:27ID:???
断る
0329nobodyさん2006/03/03(金) 20:21:25ID:???
分割の人はここのヤスタカだったんだな
中学生くらいかな。頑張れ。

http://c.m-space.jp/bbs.php?ID=nullpo&serial=22733&page=9&sort=0&action=next
033007012320212468_mb2006/03/03(金) 20:30:06ID:???
>>329
ちょwwwwwうぇwwwそうだけどさ、2chで晒さなくてもいいじゃないか。
かそれ本名なんですから。
あと、僕は高校生ですよ!リアル工房ですよ!
触ったことある言語N88BASICとJavaScriptぐらいでこれでも頑張ってるんですよ!
0331nobodyさん2006/03/03(金) 20:31:45ID:???
かそれ→それ
指摘される前に訂正。
0332nobodyさん2006/03/03(金) 20:44:08ID:???
本名でも仮名って言っときゃいいのに
0333nobodyさん2006/03/03(金) 20:49:27ID:???
そこまで予想して本名と言ってる(実際は仮名)…てことはないな。
しかし、N88BASICを触ってる時点で結構なものと思うんだが。
兎にも角にも頑張れ。
0334fusianasao2006/03/03(金) 20:49:28ID:???
>>332
あなた、頭いいですね
0335nobodyさん2006/03/03(金) 20:52:09ID:???
よく言われる
0336nobodyさん2006/03/03(金) 20:52:22ID:???
いまどきの高校生でN88BASICなんぞ触る機会があるのか?
普通に学校の授業であるのかな?
0337nobodyさん2006/03/03(金) 21:01:53ID:???
>>336
中学1年の2学期までパソコン室がPC-9801でした。
その頃に少し遊んだだけです。
その後は校舎新築で富士通のWindows2000搭載のコンピュータに変わりましたが。
0338nobodyさん2006/03/03(金) 21:02:22ID:???
思ったんだが、携帯でDLして転送するって事はパケットは定額制だよな?
それなら携帯を安いプランにしてブロードバンドに乗り換える方がいいんじゃまいか
0339nobodyさん2006/03/03(金) 21:10:32ID:???
>>338
痛いとこ突かれたorz
でもこのツールを完成させたいんです!
0340nobodyさん2006/03/03(金) 21:20:46ID:???
BASICはMSXで覚えた。
N88-BASICも使った。
PC-8800もさわった。
COBOLもFORTLANも使ったことある。
でも25歳。
0341nobodyさん2006/03/03(金) 21:27:04ID:???
ポケコンで数字インベーダーゲームを打ち込んでたヲヂさんが来ましたよ。
0342nobodyさん2006/03/03(金) 21:32:37ID:???
>>336
教える側が趣味でやってたBASICくらいしか教えられないというミスマッチが教育の現実です。
0343nobodyさん2006/03/03(金) 21:44:38ID:???
>>342
いや、科学部という名のパソコンクラブが放課後に遊んでただけですよ。
0344nobodyさん2006/03/03(金) 21:52:12ID:???
>>342
高校の「数学」の教科書にBASIC載ってるしな。
センター試験でBASIC選ぶと、他の問題に比べてめちゃくちゃ簡単なんだが。
CやJavaは変数の型とかあるから、数学の授業では無理があるだろうけど。
そういう意味ではPHPはうってつけか。
「情報」の授業ってプログラミングやるのかな?
0345nobodyさん2006/03/03(金) 21:56:04ID:???
現場経験も無い世間知らずしか授業出来ないんだからしょうがないよなぁ
中高ぐらいからもっと実践的な講師呼んだ授業やったら学校も楽しそうだなぁ

ってここなんてスレ?
0346nobodyさん2006/03/03(金) 21:59:01ID:???
>>344
word、excel程度の授業しかなくてがっかりした。
>>345
PHPくだ質スレですよ。
0347nobodyさん2006/03/03(金) 22:13:16ID:???
>>345
技術者の取り込みを狙ったのか、高校「情報」の教免は一般試験があったぞ。
今はもうないが。
教育現場も規制緩和して、実技科目に関しては教免なくても
外部の講師を呼べるようにすればいいのに。
0348nobodyさん2006/03/03(金) 23:01:58ID:???
くだ質スレが、ただのくだスレになってるな…
0349nobodyさん2006/03/03(金) 23:35:20ID:???
多少、趣旨を外れても本スレがあるという安心感があるからな。
0350nobodyさん2006/03/03(金) 23:48:32ID:???
じゃあくだらない質問を一つ。
マニュアルのサンプルで

$foo = $foober() or die();

という文をよく見かけるんですけど
これってどういう仕組みなんでしょうか?
0351nobodyさん2006/03/03(金) 23:57:26ID:???
>>350
if ($a == 1 or $a == 2) の"or"と仕組みは同じです。

$foober()が真を返せば、orの後ろは実行されません、
$foober()が偽を返せば、orの後ろのdie()が実行されますから、
die()によって処理がそこで止まります。

ファイルのオープンとか、DBの接続とかで使用することが多いでしょうか。
私はあまり使いませんが。
0352nobodyさん2006/03/04(土) 00:35:17ID:???
PHPの関数とかいろんなもののベンチマーク結果を載せてるサイトないかな。
0353nobodyさん2006/03/04(土) 01:00:17ID:???
私からも、下らない質問をひとつ

ループで得られる1000行程度のEUCコードの文字列を
最終的にSJISでファイル保存する場合、
一旦全てを変数に格納して、最後にSJIS変換して書き込むのが良いのか?
それともループ内で随時SJIS変換しながら書き込んでいくのが良いのか?

さぁ、DOTCH?
0354nobodyさん2006/03/04(土) 01:13:51ID:???
>>351
そういえばCを勉強した時に同じような話を聞いた覚えが・・・
ありがとうございます。
0355nobodyさん2006/03/04(土) 01:30:53ID:???
>>354
Cでこんな感じの話?…
Cだと|は後ろが先に評価されるコンパイラがある可能性があるので、あんましこういうのは推奨されてないはず…
うろ覚えでスマソ
0356nobodyさん2006/03/04(土) 01:45:48ID:???
>>353
やってみてくれ
0357nobodyさん2006/03/04(土) 01:58:04ID:???
>>354
Cでそんな書き方するやつにはまずお目にかからないが…
Perlではこれは常套句だな。
0358nobodyさん2006/03/04(土) 02:01:48ID:???
>>355>>357
こういう書き方もあるって感じで、予備知識としての話だったと思います
使わない方がいいとも言われました
0359nobodyさん2006/03/04(土) 11:41:48ID:???
HTMLフォームのhiddenコントロールとしてセッションIDを引き渡す。

<input type="hidden" name="PHPSESSID"
     value="5fb6b70b37b53114518ce19ac215e8ea">

こういうやり方でユーザー認証などを行う場合、セキュリティ的に問題などありますか?
教えてください。よろしくお願いします。
0360nobodyさん2006/03/04(土) 11:52:06ID:???
>>359
Cookie使えなきゃそれかGETでURLに含めるしかない
0361nobodyさん2006/03/04(土) 11:57:17ID:???
>>359
タイムアウト実装のあるセッション ID を hidden で受け渡すだけなら
問題はないが、他のパラメータには使わないように。

参考: IPA/ISEC セキュアプログラミング講座
ttp://www.ipa.go.jp/security/awareness/vendor/programming/a01_05.html
0362nobodyさん2006/03/04(土) 14:58:31ID:???
セッションID総当たりすれば、ユーザ認証突破可能?

最後まで文字列を操作するかじゃね?
EUCで生成すること自体勧められないけど。SJISで保存するなら最初からSJISで生成すべき。
文字化けが許容出来ないなら、文字コード変換したら負けだよ。
0363nobodyさん2006/03/04(土) 15:38:43ID:???
>362
日本語でおk
0364nobodyさん2006/03/05(日) 00:19:00ID:j6g607oY
http://www.mysql.gr.jp/mysqlml/mysql/msg/12071
>もちろん、クライアント側のアプリでは階層の深さを直接
>提示するでしょうが。ウエブの開発者はツリーをループしながら、
><li></li> と <ul></ul> のタグを深さが増えたり、減ったりする
>毎に、追加します。

これのやり方がいくら考えても分からないのですがどうやったらいいのですか?
0365nobodyさん2006/03/05(日) 00:28:33ID:???
+----------------------+-------+
| name             | depth  |
+----------------------+-------+
| ELECTRONICS        | 0    |
| TELEVISIONS         | 1    |
| TUBE              | 2    |
| LCD               | 2    |
| PLASMA             | 2   |
| PORTABLE ELECTRONICS | 1   |
| MP3 PLAYERS         | 2   |
| FLASH              | 3    |
| CD PLAYERS          | 2   |
| 2 WAY RADIOS        | 2    |
+----------------------+-------+
↑を<ul><li>を使って↓みたいにしたいんです。
 ・ELECTRONICS
  ・TELEVISIONS
   ・TUBE
   ・LCD
   ・PLASMA
  ・PORTABLE ELECTRONICS
   ・MP3 PLAYERS
    ・FLASH
   ・CD PLAYERS
   ・2 WAY RADIOS
0366nobodyさん2006/03/05(日) 00:44:55ID:???
一度に1000人以上のアクセスがあれば
お詫びの文章を出してスクリプトをストップ!
ってのはどうやってやるんだ?
03673642006/03/05(日) 00:53:08ID:???
そーす
http://aazukan.s201.xrea.com/test.txt

動作
http://aazukan.s201.xrea.com/test.php

ここまでやってみました。
0368nobodyさん2006/03/05(日) 01:17:45ID:???
AA図鑑・・・
03693642006/03/05(日) 01:19:49ID:???
>>368
そこに触れるのはヲチ板でよろしく
>>364についてお願いします><
0370nobodyさん2006/03/05(日) 01:46:26ID:yRA2j2Vb
>>364
DBの設計が激しく間違っている気がするが?
→そうなの?
板違いなのでDB板で勉強して来い

→わかってます
正しくソートされていると仮定

$depth = -1;
foreach($categories AS $category) {
  while ($depth<$category['depth']) {
    echo "<ul>\n";
    $depth++;
  }
  while ($depth>$category['depth']) {
    echo "</ul>\n";
    $depth--;
  }
 : echo '<li>', $category['name'], '</li>', "\n";
}
while($depth>=0) {
  echo "</ul>\n";
}

こんなかんじかな。 デバッグもしてないし適当だから保障しない。参考程度に。
03713702006/03/05(日) 02:19:56ID:???
:echo は echoね
んで
while($depth>=0) {
  echo "</ul>\n";
  $depth--;
}
ね。
03723642006/03/05(日) 02:41:57ID:???
>>371
色々書いて頂いて申し訳ないのですが、
↓で100点になるようなものがよかったので使いませんでした
http://openlab.ring.gr.jp/k16/htmllint/htmllint.html

そーす
http://aazukan.s201.xrea.com/test.txt

動作
http://aazukan.s201.xrea.com/test.php

これでとりあえず動くのですがもうちょっとスマートにできませんか?
0373nobodyさん2006/03/05(日) 02:59:51ID:???
if($depth < $category['depth']) {
$list .= "<ul><li>";
} else {
if($depth > $category['depth']) {
$list .= str_repeat("</li></ul>", $depth - $category['depth']);
}
$list .= "</li><li>";
}
03743642006/03/05(日) 03:03:47ID:???
これでいくことにしました、ありがとうございます。
0375nobodyさん2006/03/05(日) 03:15:29ID:???
いつからここは丸投げスレになったんだ?
0376nobodyさん2006/03/05(日) 04:04:12ID:???
doui
0377nobodyさん2006/03/05(日) 05:24:59ID:8JhBJBZ6
すみません、ちょっと質問なんですが・・・PHPスクリプトをいじってるんですけれど、

$m_header = $_SERVER['DOCUMENT_ROOT'] . '/header.php';

この $_SERVER['DOCUMENT_ROOT'] を自分のサイトのmain root pathに変更しろとあるんですが、
これはこのままじゃダメなんでしょうか?
ググっても解らず、困っています。
解る方がいらっしゃいましたら教えて下さい。
0378nobodyさん2006/03/05(日) 06:19:26ID:???
>>377
$_SERVER['DOCUMENT_ROOT'] の値がちゃんと取れてるなら、そんままで良いんでね。
取得できない事(環境によっては無いわけでもない)を、作者が考慮して
確実に動くように手動で明示しとけと言ってるのかな。
そのアプリは何?
0379nobodyさん2006/03/05(日) 06:21:09ID:???
>>377
・・・ん?
まずは変えてみたの?変えて駄目だったの?
0380nobodyさん2006/03/05(日) 06:33:28ID:8JhBJBZ6
>>378
ありがとうございます。そのままでも大丈夫なんですか・・・。
じゃあスクリプトが動かない原因は他にありそうです。
実はアメリカのなので私も良く解ってないんですが、
登録したサイトを閲覧できる(?)というものなんです。

>>379
すいません、書き方が悪かったです。
変えようにも、何を変えていいのか解らなかったので。
もしかして/usr/bin/phpなのか?と思って適当に変えてみたりはしたんですが。
的外れだったみたいです。
0381nobodyさん2006/03/05(日) 07:56:49ID:???
>>378
それは自分のWebサーバのドキュメントルートを取得するスーパーグローバル変数だよ
オレの環境では

<?
 echo $_SERVERT['DOCUMENT_ROOT'];
?>

で、ブラウザからアクセスしたら「C:/Program Files/Apache Group/Apache2/htdocs」って表示されたよ
03823782006/03/05(日) 07:59:18ID:???
ごめん、$_SERVERね

あと、ちゃんとheader.phpっていうのはあるのかい?
0383nobodyさん2006/03/05(日) 08:37:22ID:???
会員数万人のDBがあって、その会員リストに随時メールを送ったり
したいんだけど、メールが1日に数万通〜数十万通ともなると、すごい負荷かな??
別のメール配信専用サーバみたいなのを用意したほうがいいんでしょうか。
仮に用意できたとして、どうやってメール作成スクリプトからその配信専用サーバに
メール配信の指示を出せばいいの? メール作成スクリプトで「mb_send_mail」を
実行しちゃったらその鯖から送信されちゃうだろうし・・・。
0384nobodyさん2006/03/05(日) 12:08:41ID:???
>>383
そこまで何もわからないならちょっと自分で勉強してみないと
話が理解できんと思うよ
0385nobodyさん2006/03/05(日) 13:15:17ID:???
>>383

日本語でおk
0386nobodyさん2006/03/05(日) 13:26:20ID:???
>>383
業者に依頼しろ。
無知な人間が適当に作って、情報漏洩なんかした日には、会社つぶれかねんぞ。
0387nobodyさん2006/03/05(日) 13:55:53ID:???
>>383
>別のメール配信専用サーバみたいなのを用意したほうがいいんでしょうか。
ですな。サーバだけじゃなくて回線もね。
あと同じドメイン宛に短時間に大量のメールを出すと、
相手の接続拒否リストに載せられることもある。
その辺も絡めて勉強して、業者に依頼することをお薦め。
(最低限の勉強をしてないと業者の良否判断や注文も出来ないからね)
実際のメールの出し方については、その業者とすりあわせ。
0388nobodyさん2006/03/05(日) 14:27:55ID:???
最低限、MTAの仕組み、SMTP実装、ここいらは理解してこい。
PHPには関係ない。
0389nobodyさん2006/03/05(日) 18:25:30ID:???
>>384-386
無知なバカども、分からないなら「分かりません」と言えばいいのに。知ったかぶるな。
お前らが知ってる程度の知識なら俺も持ってる。端折って書いてるだけ。

>>387 ありがとう。でも、なるべく自前でやりたいんだけど・・・。
>>388 SMTP実装かぁ。プロトコルの話だよね? それを勉強したとして、PHPで実現できる??
0390nobodyさん2006/03/05(日) 18:28:04ID:???
>>389
0391nobodyさん2006/03/05(日) 18:29:32ID:???
>>389
>お前らが知ってる程度の知識なら俺も持ってる。
例えば?
0392nobodyさん2006/03/05(日) 18:36:57ID:???
>>389
あなたをリビングレジェンドに認定します。
0393nobodyさん2006/03/05(日) 18:44:13ID:???
>>389
> >>388 SMTP実装かぁ。プロトコルの話だよね? それを勉強したとして、PHPで実現できる??
お前できないの?バカじゃね?
0394nobodyさん2006/03/05(日) 18:52:04ID:iaaLXl/X
if($_POST['name'] = "") $err.= "名前が入力されてないぞ";

こんな感じで、$_POST['name']が空の場合、文字例を出力させるには
どうすれば良いでしょうか?

それから、POSTデータを取得出来ない場合、
$err.= "POSTデータが不正ですよん。。";

みたいにさせるにはどうやれば良いでしょうか?
応用力がなくてすみません。
03953842006/03/05(日) 18:55:51ID:???
[訂正]
if($_POST['name'] == "") $err.= "名前が入力されてないぞ";
0396nobodyさん2006/03/05(日) 19:05:58ID:???
>>394
・・・本当にわからないのか?if文が解らないのか、文字列を表示する方法が解らないのか

あと、余談だけど、POSTデータが取得できない場合は取得できてないんだから$_POST['name']
の中身はもちろん空だよね?
だからこれも表示するエラーメッセージは「名前が入力されていません」にしたほうが良いんジャマイカ?
0397nobodyさん2006/03/05(日) 19:10:50ID:???
>>396
俺も初心者なんだが trim()を使うのは駄目かなぁ?
if(trim($_POST['name'] == "")) $err.= "名前が入力されてないぞ";
0398nobodyさん2006/03/05(日) 19:16:21ID:???
>>397
何の意味が!!!
0399nobodyさん2006/03/05(日) 19:28:49ID:???
emptyとか
0400nobodyさん2006/03/05(日) 19:28:56ID:???
>>397
trim()は改行コードとかを除けてくれる便利な関数だけど今回のでは必要無いっぽいぞ?
でも、どう考えてそういう答えに至ったかは解らないけど、自分で考えて何か仮定を立てる
ことの出来るお前は偉い。

あとはその仮定をどうやってテストして実証していくかの方法を身につけるんだ!
0401nobodyさん2006/03/05(日) 19:50:00ID:???
>>396
ん〜、何も入力しないでPOSTで上げたフォームのテキストの値($_POST['name']の事ね)をtrimでスペースとか除けても
issetにかけると値がある、って判断されるっぽいね。何が入ってるんだろ?

出来るならemptyか$_POST['name'] == "" とかで判断したほうが良いと思う。
04024012006/03/05(日) 19:50:36ID:???
ごめん、>>397
0403nobodyさん2006/03/05(日) 19:58:27ID:???
そこまでするなら===で比較すればいいわけで
その例ならif(!$_POST['name'])
0404nobodyさん2006/03/05(日) 20:11:32ID:???
>>390-393
知ったかぶりのバカども乙wwwwwwwwwwwwwwwwwwwww

何も具体的なことを言えないヤツの説得力はゼロ。
ウンコなクズは氏ね。
■ このスレッドは過去ログ倉庫に格納されています