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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/06/25(水) 10:14:08ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは970が立ててください立たなかった場合は980よろ

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 69
http://pc11.2ch.net/test/read.cgi/php/1211879073/
◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を必ず明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくはトリップをつける事。

◆質問後の注意
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくは質問時のトリップをつける事。
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0449nobodyさん2008/07/06(日) 22:36:14ID:???
>>445
とりあえず標準のmail関数投げたらいけるの?
0450nobodyさん2008/07/06(日) 22:36:55ID:???
>>447
GDとか。
0451nobodyさん2008/07/06(日) 23:19:34ID:???
Xamppってなんて読んでる?
0452nobodyさん2008/07/06(日) 23:51:55ID:???
くさっ!ぷー!
0453nobodyさん2008/07/06(日) 23:54:30ID:OiP9S+tK
>>449
smtpになげたら成功しました。
ありがとうございます。

0454nobodyさん2008/07/07(月) 03:13:50ID:v4RGtv07
正規表現について質問させて下さい。
Linux(ubuntu7.1)、PHP5で動かしています。

$tst = "select";
if ( preg_match( "/[text|textarea|file|pass]$/i", $tst ) ) print "hit - {$tst}<br />\n";

このような正規表現を書いた場合に、真となり、hit - select と出力してしまうのですが何故でしょうか?
動作としては、
$tst = "text";
$tst = "textarea";
$tst = "file";
$tst = "pass";
の場合のみ、プリント文を出力させたいのです。

正常に出力されないので私が間違っているとは思うのですが、正規表現ドキュメントを見たり、このコードと睨めっこしても間違いに気づくことが
できませんでした。

お力添え頂ければ幸いです。
宜しくお願い致します。
0455nobodyさん2008/07/07(月) 03:16:37ID:???
[] -> ()
04564542008/07/07(月) 03:31:08ID:???
>>455
レスありがとうございます。
ぇっ・・・これってpreg_matchもしくはphp特有のケースでしょうか?
それとも正規表現における私の完全な勘違い?
試してみると期待通りの動作を確認しました。
とても感謝なのですが、何か頭の中でモヤモヤが。()ってパターンマッチ変数を格納する為の符号だと思っていました。
もしよろしければ少し説明もしくは該当箇所についてのサイト、ドキュメント等ありましたご紹介頂けないでしょうか。
度々申し訳ありません。
宜しくお願い致します。
0457nobodyさん2008/07/07(月) 03:56:00ID:???
とりあえず正規表現スレあるからそっちいくといいよ
0458nobodyさん2008/07/07(月) 04:00:55ID:???
[char-list]
[]の中に置かれた文字のいずれかにマッチします。

よくある勘違い
[^foo]bar という正規表現は、「fooではない文字列に続いてbarという文字列が続くもの」 ではありません。
「fでもoでもない文字に続いてbarという文字列が続いたもの」です。
[]で囲んだものが表しているのは文字列ではなく文字の集合(その中に含まれる/含まれない文字のどれか) だということに注意してください。
http://www.kt.rim.or.jp/~kbk/regex/regex.html
04594542008/07/07(月) 04:07:39ID:???
>>457
>>458
有り難う御座いました!
完全な私の勘違いでした・・・
これでスッキリしました。
本当にありがとうです。
0460nobodyさん2008/07/07(月) 04:26:31ID:???
うちのサーバーの稼働時間が400日を超えました。
私の運用能力による所もありますが、
400日も連続して働いてくれるサーバーの部品たちに感謝。

すぐ切れる子供が多いというのに、サーバーは全く切れない。
幼児教育のネタにしてほしいと思う今日この頃です。

明日は、燃料高騰とサーバー運営費との関係性についてお話します。
0461nobodyさん2008/07/07(月) 05:36:57ID:???
>>460
とりあえず、400日稼動ってことは、
セキュリティホールがある状態だから
アップデートしたほうがいいよ。
0462nobodyさん2008/07/07(月) 07:53:27ID:???
windowsを基準に考えるのはやめたほうがいいよ
0463nobodyさん2008/07/07(月) 08:02:12ID:???
windows apache2.2.9です。
httpd.confには
Options FollowSymLinks ExecCGI IncludesNOEXEC
を指定しています。
htmlファイル内に
<!--#include virtual="/common/header.html" -->
が記述されていて、
ちゃんと、includeされて画面表示できます。

ここで、phpが使いたくなり、
phpをインストール・環境設定を
行い、phpinfo.phpは正しく表示されます。
htmlの拡張子でもphpを動かしたく、
httpd.confに
AddType application/x-httpd-php .php .html
を追記し、apacheを再起動しました。
その結果、
ブラウザ画面上には
an error occurred while processing this directive
とメッセージがでて、
apacheのログには、
unable to include potential exec "/common/header.html" in parsed file hoge
と出力され、正常に動作しません。

SSI使用及びPHPを拡張子htmlで実行したいのですが、
どこが間違っているか分かる方、ご教授ください。
0464nobodyさん2008/07/07(月) 09:46:50ID:???
>>462
Linuxのセキュリティ情報見たほうがいいよ。

いや、マジでw
0465nobodyさん2008/07/07(月) 10:04:02ID:???
>>464
枯れたkernelなら400日くらいの稼働もめずらしくないがな
daemonのアップデートなんて再起動は必要ないんだし
0466nobodyさん2008/07/07(月) 10:04:21ID:???
uptimeが400日越えでも>>460がちゃんとパッチあててるならいいんじゃね?

>>464
>>442はWindowsみたいにサーバ再起動を要求する
セキュリティフィックスばかりだと思うなって事だとオモ
0467nobodyさん2008/07/07(月) 11:13:24ID:???
>>460
400日で自慢されても・・・
0468nobodyさん2008/07/07(月) 11:21:19ID:???
40日セックスしてません!
0469nobodyさん2008/07/07(月) 11:21:34ID:???
400日の間に再起動が必要なkernelの
アップデートぐらいあるだろ。常識で考えて。
0470nobodyさん2008/07/07(月) 11:23:56ID:???
類は友を呼ぶ
0471nobodyさん2008/07/07(月) 11:38:38ID:hqpY620v
質問です。

携帯サイトを構築してるのですが、画像のダウンロードボタンを
作成する場合、どのようにしたらいいのでしょうか?

ググったけど分からずに困っています・・・。
もしかして、携帯で画像の自動ダウンロードはできないのでしょうか?

PCサイトみたいにheaderで作成してもできませんでした。
よかったらご教授願います
0472nobodyさん2008/07/07(月) 11:45:04ID:???
PHPのゆの字も出てこないな
0473nobodyさん2008/07/07(月) 12:51:14ID:???
>>471
<input type="button" value="Download">
で表示されるだろwww
0474nobodyさん2008/07/07(月) 13:54:05ID:???
JpGraphでフォーマットをgifで出力すると背景色を白にしても少し黄色み(#FCFEFC)がかっています
pngやjpgはちゃんと真っ白(#ffffff)になります
gifでも真っ白にしたいのですがどうすればいいでしょうか?
ご教授ください
0475nobodyさん2008/07/07(月) 13:58:47ID:hqpY620v
>>473
表示されて、メニューから保存ではなく、
自動的にダウンロードされるようにしたいのですが

動画などは<a>タグや<input>で問題ないのですが
画像は別画面になるだけですので・・・
0476nobodyさん2008/07/07(月) 14:02:56ID:???
>>475
携帯は知らんけどContent-Disposition指定すればいけるんじゃ?
0477nobodyさん2008/07/07(月) 14:07:07ID:hqpY620v
>>476
phpのheaderで
header("Content-Disposition: attachment; filename=hoge.jpg");

これを指定してもだめでした
0478nobodyさん2008/07/07(月) 14:11:36ID:???
ぐぐったらこんなのあったよ
http://oshiete1.watch.impress.co.jp/qa3994529.html
http://oshiete1.goo.ne.jp/qa2511541.html?ans_count_asc=1
http://mwweb.cocolog-nifty.com/blog/2008/01/softbank3gp_7f43.html
キャリアにもよるんじゃね?
0479nobodyさん2008/07/07(月) 14:19:14ID:???
>>478
すでにリンクが赤くなってますw

.htaccessなども色々試したのですが、言われてる通り
キャリアによってできたりできなかったりしますね。

<object type="image/jpeg">などもやったのですが、
auだけ動いて、他のキャリアは動かなかったりとか・・・

headerの指定で、携帯用などがあるのであれば、
どなたかご存知の方がいるかなと思いレスさせていただきました
04804712008/07/07(月) 14:20:15ID:hqpY620v
↑すみません471です
0481nobodyさん2008/07/07(月) 14:23:35ID:???
そういうこと言うんだったらもう知らん。勝手にやってくれ。
0482nobodyさん2008/07/07(月) 14:23:57ID:???
>>469
出来合いのカーネルならね。
>>465 は自前でリビルドしたやつ使ってるんでしょ。
セキュリティフィックスに該当する部分が
最初から入ってなければ、問題は出ない。
0483nobodyさん2008/07/07(月) 16:25:04ID:???
> セキュリティフィックスに該当する部分が
> 最初から入ってなければ、問題は出ない。

で、セキュリティフィックスに該当する部分を
最初っから入れないようにするにはどうするの?
0484nobodyさん2008/07/07(月) 16:30:07ID:???
枯れたの使ってるんでしょ
0485nobodyさん2008/07/07(月) 17:26:04ID:???
配列に関する質問なのですが、よく配列操作をする際にcountを使うように解説されています。
いろいろ弄っていて気づいたのですが以下の場合ではcountが目的通り機能しません。
配列要素の最後の配列数を取得するような関数は御座いませんでしょうか?

$a[0] = "";
$a[1] = "1";
$a[3] = "3";
$count = count( $a );
print "{$count}<br />\n";
print_r( $a );

$countは3になり、print_rでも$a[2]は欠落した状態で表示されます。
事前に$a[2] = "2";と定義すれば$countも4となり、print_rでも$a[2]は空変数として表示されます。

このような配列を
$c = count( $a );
for( $i = 0; $i < $c; $i++ ) {
print "{$i} - {$a[$i]}<br />\n";
}
の式でループすると$iの配列ポインタが一致せずに
0 -
1 - 1
2 -
と表示されてしまいます。
0 -
1 - 1
2 -
3 - 3
と表示するようにしたいのです。
アドバイスの程、どうぞ宜しくお願い致します。
0486nobodyさん2008/07/07(月) 17:28:59ID:???
枯れた技術っていう言葉使うのはやめてください。
お客さんが勘違いしますし、日本語としても間違っています。

使うなら、「熟した技術」という言葉をお使い下さい。
お願いします。
0487nobodyさん2008/07/07(月) 17:29:23ID:???
foreach
0488nobodyさん2008/07/07(月) 17:30:17ID:???
もしくはmax(array_keys())とか
0489nobodyさん2008/07/07(月) 17:50:55ID:???
>>486
熟したと枯れたは違うだろボケ。
0490nobodyさん2008/07/07(月) 17:55:20ID:???
熟した女
枯れた女
大違いだ
0491nobodyさん2008/07/07(月) 18:11:45ID:???
>>488
おお、これでいけました。ありがとうございます。
0492nobodyさん2008/07/07(月) 18:57:25ID:cOv9SSky
セレクトボックスについてなんですが

<select name="color1">
<option value="白">ホワイト</option>
<option value="赤">レッド</option>
<option value="黄">イエロー</option>
<option value="青">ブルー</option>
<option value="緑">グリーン</option>
</select>

これで例えば黄を選んだとき300円
緑を選んだとき200円
といったnedanと言う値をPOST値に加える場合どうしたらいいんですかね
0493nobodyさん2008/07/07(月) 19:12:27ID:YMIYH7F4
class Base {
// Singletonパターン
static function get_instance() { /* 略 */ }
function main() {$instance = self::get_instance(); $instance->exec()}
}

class Ex extends Base {
function exec() { /* 略 */ }
}
このとき、ある場所からEx::main()と呼び出したときに、"Ex"という継承クラスの名前を
Baseクラスで知ることができる方法がありましたら、ご教授お願いします。
もしあれば、継承クラスのget_instance()などをまとめて指定できて、すっきりできるのですが…。
0494nobodyさん2008/07/07(月) 19:16:48ID:???
>>492
POST値に加える必要ないだろ
サーバー側で黄→300円、緑→200円の変換をかけるんだ
HTMLに手を加えられて
0円とか、-100,000,000円とか
送られてきたらどうするんだよ
0495nobodyさん2008/07/07(月) 19:17:00ID:???
改竄できるから値入れるのどうかと思うが。
value=200,黄色
でなんとか出来たらいいよね。
0496nobodyさん2008/07/07(月) 19:17:08ID:???
>>492
switch使うくらいしか未熟な自分には出来ないなw
他にいい方法あるだろうけど。
0497492 2008/07/07(月) 19:22:20ID:cOv9SSky
改竄は戻ってきたときに検証かけるから
OKなんですが、別鯖に送るときはきちんとデータを
送らないといけないんですよね>>494-496

自鯖内でもいっかいPOSTしてswitchするのが
一番ですかね。
0498nobodyさん2008/07/07(月) 19:27:58ID:???
>>493
いまのところそれを知る方法は無いよ。
PHP5.3.0とかPHP6.0だったらわかるようになるはず。
0499nobodyさん2008/07/07(月) 19:29:33ID:???
>>497
何を言ってるのか分からん
0500nobodyさん2008/07/07(月) 19:38:32ID:???
エスパーの修行が足りませんね
0501492 2008/07/07(月) 19:42:00ID:cOv9SSky
>>499
どの変が分からないですか?
05024932008/07/07(月) 19:46:32ID:YMIYH7F4
>>498
回答ありがとうございます。やはり無理でしたか…。
今のところは我慢して継承クラスに書くことにします。
0503nobodyさん2008/07/07(月) 19:47:52ID:???
>>497
どうしても送りたいならJavaScriptでやればいいでしょ。
0504nobodyさん2008/07/07(月) 20:09:12ID:???
>>497
俺も判らん。
突然別サーバの話とか出されても
先にどういうシステムか説明してよ。

自鯖内でもいっかいPOSTって何言ってんのさ。
正しい値で別サーバに送ればいいじゃん。

てか改ざんチェックして別サーバに送るなら
最初から200円とか面倒を起こす必要ない情報をPOSTしなければいい。
0505nobodyさん2008/07/07(月) 20:16:38ID:PSaYvrzk
おれも全く意味がわからない。
日本語か?
0506nobodyさん2008/07/07(月) 20:55:24ID:???
「○○なPHPのスクリプトはありますか」っていう質問はどこですればいいですか?
0507nobodyさん2008/07/07(月) 21:00:48ID:???
形容動詞?
ex. 大きなPHPのスクリプトはありますか
0508nobodyさん2008/07/07(月) 21:01:07ID:???
自分で探せボケ
0509nobodyさん2008/07/07(月) 21:05:18ID:???
多分、つまらない質問だと思いますが、教えてください。

index.htmlからsub.phpを引数つきで呼び出したいのです。

例えば、

index.htmlで、

<?php
call "sub.php 3";
?>

というような感じで呼び出して、

sub.phpで2倍してechoするというような仕組みが作りたいです。

以下はsub.phpの例えです。

<?php
return (argv[1]*2);
?>

エスパー様、教えてください。
0510nobodyさん2008/07/07(月) 21:07:48ID:???
死ね
05115092008/07/07(月) 21:10:19ID:???
まじで教えてください
0512nobodyさん2008/07/07(月) 21:11:21ID:???
>>509
エスパーも何も、拡張子がhtmlのファイルにphpのコードを入れてどうするのw
0513nobodyさん2008/07/07(月) 21:11:43ID:???
1もマニュアルも読まない人間がまじで質問してるとは到底思えない
05145092008/07/07(月) 21:14:04ID:???
>>512
拡張子がhtmlでもphpは実行できますよね?
apacheのhttpd.confの
AddHandler application/x-httpd-php html
の指定で。
0515nobodyさん2008/07/07(月) 21:16:35ID:???
>>512はニワカ
0516nobodyさん2008/07/07(月) 21:18:16ID:???
ああ、確かに>512はPHPの拡張子は.phpだけだと思ってる素人だな。
05175092008/07/07(月) 21:20:12ID:???
俄さんでもいいんで教えてください。
0518nobodyさん2008/07/07(月) 21:24:01ID:???
そんなやり方はおすすめされないが>>512は初心者

 
0519nobodyさん2008/07/07(月) 21:27:36ID:???
俺もindex.htmlにphp入れてどうすんのさっていいたいからいってみる。
0520nobodyさん2008/07/07(月) 21:28:33ID:???
>>512
お前は黙っていたほうが良かった
0521nobodyさん2008/07/07(月) 21:28:53ID:???
俺だったらcall "sub.php 3";はあきらめる。
0522nobodyさん2008/07/07(月) 21:29:19ID:???
関数じゃだめなの?と一応聞いておく
0523nobodyさん2008/07/07(月) 21:31:03ID:???
俺エスパーどころかクラスとか使ったことない初心者だからincludeしてfunctionでポン
05245092008/07/07(月) 21:31:54ID:???
>>522
関数でもなんでもいいです。
ただ、index.html内にphpのコードを書くのではなく、
外部ファイルのphpに引数を渡してechoの戻りが
欲しいのです。
お願いします。
0525nobodyさん2008/07/07(月) 21:41:47ID:???
<?php
echo file_get_contents('http://hogehoge.jp/sub.php?arg=3');
?>

sub.php
<?php
if (isset($_GET['arg']) == false) {
 exit;
}
$arg = $_GET['arg'];
echo $arg * 2;
?>

まぁsystemとかでphp -f使えとかいわれそうな気もするが
拡張子が.htmlの場合phpにするか
そのファイルだけphpにするという設定を.htaccessに書くかけば動くよ
05265092008/07/07(月) 21:43:09ID:???
>>525
ありがとうございます!!!
明日、試してみます。
0527nobodyさん2008/07/07(月) 21:46:29ID:???
function
0528nobodyさん2008/07/07(月) 21:48:50ID:???
>>526
散々駄々こねといて
明日かよ!みたいな
05295092008/07/07(月) 21:55:59ID:???
>>528
すみません。
明日でお願いします。
0530やらたん2008/07/07(月) 22:17:23ID:e8gC2p2T
セキュリティホールがあればFireFoxを使って、ブラウザだけでスクリプトが見れるとききました。
実際にFPには、穴があって、スクリプトを見るのに使えるらしいのですが、どうやるか知っていますか?
引数?idに、何か%00のような値を入力したら、バグってみれるそうです。ヌルバイト攻撃でしたっけ…
http://tool-1.net/index.cgi

それを使ってみたいのですが、どうやったらいいかわかりますか?


TELNETでは無理でした。
0531nobodyさん2008/07/07(月) 22:34:31ID:???
Firefoxだし、意味がわからないので却下
0532nobodyさん2008/07/07(月) 23:03:44ID:???
>>440です。昨晩は申し訳ありませんでした。
仕切りなおしさせてください。
昨日の書き込みはお見捨て置きください。
●PCスペック
XPPro Ver2002 / SP2 / HP Compaq dx7300 Slim Tower Intel(R)
Celeron(R) D CPU 3.46GHz
3.46GHz、488MB Ram
●症状
Eclipseというアプリで、プロジェクトを作成しようとすると、
Java heap spaceというエラーが出る。
●補足
この言葉をネットで検索すると「メモリの割り当てを増やすと解決する」
とあったので、348MBまで増やしたのですがそれでもダメでした。
再インストールしてもダメでした。

他に手はないでしょうか。先輩方、どうかよろしくおねがいもうしあげます。
0533やらたん2008/07/07(月) 23:19:22ID:e8gC2p2T
単刀直入に申しますとFirefoxを使って、CGIソースを見たいです。やりかた教えてください。
0534nobodyさん2008/07/07(月) 23:21:38ID:???
>>532
そのメモリじゃ動作してもきつい気がするが、、、
JDKから入れなおしてみ。
0535nobodyさん2008/07/07(月) 23:30:44ID:0vUgsI9q
phpからhtpasswdを呼び出したいんだけど、パスワードとリタイプの所をうまくクリアする方法ってないですか?
0536nobodyさん2008/07/07(月) 23:34:37ID:???
最近スレタイ通りの愚質問多くね?
0537nobodyさん2008/07/08(火) 00:13:27ID:???
まあそのためのスレだし
0538nobodyさん2008/07/08(火) 00:52:17ID:???
>>533
なるほどそんな方法があったのね。
やってみたら見れたよ
教えてくれてありがとう。
自分のスクリプトにも対策を施しておこう。
0539nobodyさん2008/07/08(火) 00:59:27ID:???
>>533
×単刀直入
○単刀直乳
0540nobodyさん2008/07/08(火) 01:57:01ID:4wqeMBNv
どうやってみるの?
0541nobodyさん2008/07/08(火) 02:16:01ID:???
>>540
バカでなければわかる。バカなら諦めたら?
0542nobodyさん2008/07/08(火) 02:36:00ID:???
>>483
これが無いと動かないっていうモジュール以外をできる限り外して、
カーネルをリビルドして、バージョンを固定する。
該当するセキュリティホールが出たら、また、手動でリビルドする。
入っているモジュールが絞られているので、引っかかる可能性が
下がる。運がよければ2年くらいそのままで行けることもある。
2000年頃のサーバ関連の本だと、出来合いのカーネルは使わ
ないのが常識くらいに書いてあるよ。
0543nobodyさん2008/07/08(火) 05:15:28ID:sA/0fAo9
>>535 お願いします。
0544nobodyさん2008/07/08(火) 05:35:06ID:???
>>509
htmlでサーバサイドインクルード使うって手もあるんだが。
0545nobodyさん2008/07/08(火) 08:02:36ID:???
>>543
意味がわからないんだよ
もっと具体的に
0546nobodyさん2008/07/08(火) 09:24:07ID:???
>>535
パスワード生成したいだけならcryptでいいよ
0547nobodyさん2008/07/08(火) 09:35:47ID:???
ああ、そういうことか。
htpasswdと同等の機能があればいいなら>>546の通りだな
0548nobodyさん2008/07/08(火) 10:30:22ID:???
htpasswd --helpしたら、

htpasswd -b[cmdpsD] passwordfile username password
と、パスワードをコマンドライン上に書ける書式があるようなのだが。
■ このスレッドは過去ログ倉庫に格納されています