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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/01/27(日) 18:17:59ID:jK32tI//
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

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

◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0514nobodyさん2008/01/31(木) 23:24:13ID:???
CORESERVER.JP Part8
http://pc11.2ch.net/test/read.cgi/hosting/1201260968/

これです。
0515nobodyさん2008/01/31(木) 23:25:58ID:???
鯖が原因って、、、それは原因を知ったことにはならないだろ
まずE_NOTICE、E_STRICTレベルのログくらい読むべき
変数に期待する値が来てないなら、どこでコケてるのかエコーしながら
遡って探っていく、そうやってコードのどこで問題が起きてるか特定する
そうすれば状況が見えてくるし、質問するにしても回答が得やすくなる
0516nobodyさん2008/01/31(木) 23:27:16ID:???
>>514
そこの>>1で
お前はお断りって書いてあるよ。
0517nobodyさん2008/01/31(木) 23:28:18ID:???
うっせいよぼけどもしばくぞ
0518nobodyさん2008/01/31(木) 23:28:53ID:???
>>513
よくわからんけど、
Googleでの検索結果
Fedra Core鯖 946件
hard Core鯖 962件
ハードゲイ 鯖 54,500件
ってことでハードゲイのことと思われ
0519nobodyさん2008/01/31(木) 23:29:15ID:???
PHP5でMySQLも5なのか
値段もなかなかw
0520nobodyさん2008/01/31(木) 23:29:23ID:???
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
おまえ100点>>513
0521nobodyさん2008/01/31(木) 23:30:46ID:???
じゃあ後はxreaのサポートBBSで回答を待つということで
0522nobodyさん2008/01/31(木) 23:35:13ID:???
わからんなぁ、どっちも同じじゃん。
ENT_QUOTESすることで何を防げるんだ?

<a onclick="alert('&#39;+alert(4989)+&#39;')">CLICK</a>

<a onclick="alert(''+alert(4989)+'')">CLICK</a>
0523nobodyさん2008/01/31(木) 23:45:32ID:???
>>509
textをhtml中に出力している、という前提だと

・HTMLのタグの内側かつ属性値の引用符の外側を出力中である
・HTMLのタグの内側を出力中で、属性値を引用符でくくっていない
・HTMLの属性値の出力中かつ、引用符にシングルクウォートを採用している

こういうケース以外では無問題?
05244482008/01/31(木) 23:58:27ID:Zzvt9fFU
PHP総合雑談スレ
http://pc11.2ch.net/test/read.cgi/php/1200314111/
0525nobodyさん2008/02/01(金) 00:03:13ID:???
$txt = htmlsp..($_GET["text"]);
echo "<a href='#hoge' $txt>"; //そりゃ死亡だろ。
echo "<a href='#hoge' title='$txt'>"; //うっかり死亡。
あとはjsコードジェネレーション中に同様の問題あり
htmlspecialchars忘れる可能性のほうがずっと高い気がしてきたw

あと、>>487の元記事はENT_QUOTESしてないとか、その断片的なコードの問題を
指摘してるものじゃないから、「コードの問題は何か」という質問自体が回答側の
ミスリードをさそってる。
0526nobodyさん2008/02/01(金) 00:14:33ID:???
シングルクオーテーションもタグやJavaScriptの囲みに使われるからこれも退避しないと悪用可能って話か。
0527nobodyさん2008/02/01(金) 00:17:35ID:???
いや、JavaScriptの囲みに使われるからと
囲みの中の'を&#39;にしたところで
何も変わってないよ。

>>522を見ればわかるけど、囲みの中を&#39;にしても
動作は変わらない。
0528nobodyさん2008/02/01(金) 00:20:44ID:???
括弧やセミコロンや演算子禁じたほうがよさげだな。
0529nobodyさん2008/02/01(金) 00:24:48ID:???
>>528
もうこうなってくると
htmlspecialchars の問題じゃなくて
使い方の問題だな。

んで、大本のmatzの記事には使い方が書いていない。
0530nobodyさん2008/02/01(金) 00:35:01ID:???
>>529
そういう表層的な問題じゃないと思うよ。
長男は嫌だとか、年収は1000万円以上じゃないと嫌だと女がいるが、
そういう女は本気の恋愛をしてことがない女。
0531nobodyさん2008/02/01(金) 00:35:35ID:???
要するに釣りってことか
0532nobodyさん2008/02/01(金) 00:43:40ID:???
いっそ英数字以外全部?nnn;にするくらいでないと起きそう。
そしてそこまでやってるのは言語に関わらずろくにいないだろうな。
文字の退避はしてても文字コード指定しない方がはるかに多いだろうし。
0533nobodyさん2008/02/01(金) 00:45:10ID:???
釣りも社会勉強の一つで、色々な釣りにどのような反応を示すかを見て、
社会復帰のための勉強をしている人も俺を含めて結構居ると思うよ。
いつか、社会復帰できるようお付き合い下さい。
0534nobodyさん2008/02/01(金) 00:45:46ID:???
いきなり定義されてないかもしれない変数渡すなやΗεΗεΗε

てこと
0535nobodyさん2008/02/01(金) 00:48:43ID:???
どこから引用したコードか知らんが、100行程度のトイアプリでPHPで語ってたら笑うな
0536nobodyさん2008/02/01(金) 00:49:51ID:???
トイアプリって何のこと?
0537nobodyさん2008/02/01(金) 01:17:24ID:???
トイ=おもちゃ
0538nobodyさん2008/02/01(金) 01:20:47ID:???
PHPSPOTってサイトに
htmlspecialcharsを使いましょうって書いてあった。
それだけでいいのか?
matzの思うつぼw
0539nobodyさん2008/02/01(金) 01:53:10ID:7ncIvXJm
質問させてください
プルダウンのオプション部分を自動生成するプログラムを書いてて
makePullDown(){
$option="";
for($i=0;$i<47;$i++){
 $option.="<option value=\"";
 $option.=setVal($i);//valueを呼び込む関数
 $option.="\">"
 $option.=setNamae($i);//名前を呼び込む関数
 $option.="</option>\n";
}
return $option;//この返り値を<select>{$pd}</select>のようにして使う
}
というようなものを作っています
が、「$option.="<option value=\"";」の行に対して、unexpected '.'というエラーが
標準出力されてしまいます。
同じ構造のプログラムを他の場所で作っていて正常に動いているので、それを元にして
作ったのですが、今回なぜエラーになるのかわかりません。
どこが問題そうというのがあったらご指摘いただけないでしょうか? すみませんがお願いします
0540nobodyさん2008/02/01(金) 02:11:58ID:???
>>539
$option.="\">";
0541nobodyさん2008/02/01(金) 02:18:47ID:???
>>539
質問するなら再現するコードをもってこい
0542nobodyさん2008/02/01(金) 02:36:44ID:6ktoEY5E
質問です。正規表現による置換がどうしてもうまくいきません。。。
<?php
$comment = "aabb/*ccdd*/eedd*/";
?>
<HTML><BODY>
<?php
$ok = preg_replace("/\*.*?\*/","!",$comment);
$ng = preg_replace("/\*.*?dd" ,"!",$comment);

printf("OK:" . $ok . "<BR>NG:" . $ng . "<BR>");
?>
</BODY></HTML>

$okには/*...*/を!に置き換え、$ngには/*...ddを!に置き換えるつもりのコードです。
出力結果は
OK:aabb/!/eedd*/
NG:
となってしまいます、
$okのほうは正しく/* */が最小一致で置き換えられていますが、
/* ddのほうがなぜか文字列が返りません。何か特別なルールがあるのでしょうか?
0543nobodyさん2008/02/01(金) 03:13:35ID:???
>>539
$option.="\">" ←セミコロンがない
0544nobodyさん2008/02/01(金) 03:17:15ID:???
よくある凡ミスだがIDE入れればそんなミス起こらない
というわけでIDEで開発しれ
0545nobodyさん2008/02/01(金) 03:34:06ID:ShuZZjDk
PHPもある程度わかってきたので、SmartyとPEARを勉強したいと考えています。
オススメのサンプルサイトもしくは、推奨の本を教えてください。
よろしくお願いします。
0546nobodyさん2008/02/01(金) 03:45:16ID:???
>>545
公式サイトのマニュアルと各ライブラリのドキュメント
0547nobodyさん2008/02/01(金) 03:45:37ID:???
Smarty PEAR フレームワークの話題は>>1を100万回読んでからしてくださいね
0548nobodyさん2008/02/01(金) 08:21:40ID:7ncIvXJm
やっぱりみんなpearって使ってるんですか?
0549nobodyさん2008/02/01(金) 09:00:49ID:???
>>548
ずばり言うわよ

0550nobodyさん2008/02/01(金) 09:03:11ID:???
Smartyはアフォ
0551nobodyさん2008/02/01(金) 09:05:08ID:???
smartyのサイトが数日前から落ちてるようなのですが、
どこかでDLできるところ知りませんでしょうか?
smartyスレも落ちてるし…
0552nobodyさん2008/02/01(金) 09:06:15ID:???
使うなってことだろw
0553nobodyさん2008/02/01(金) 09:06:45ID:???
>>551
鉄の掟ローカルルールに従いなさい
0554nobodyさん2008/02/01(金) 09:37:10ID:???
落ちてるなら立てればいいじゃない
0555nobodyさん2008/02/01(金) 13:03:40ID:???
>>542
Warningとか出てないかい?
$ng = preg_replace("/\*.*?dd/" ,"!",$comment);
ddの後ろに/
0556nobodyさん2008/02/01(金) 14:53:57ID:wTHzZE81
書き込みスレが間違っていたらすみません。
質問があります。

SWFファイルを、Linuxサーバー上でスクリーンセーバー(SCR)に変換できるようなプログラム/サーバーソフトというものは、ありますでしょうか?
開発言語はPHPなのですが、PHPで可能でしょうか?

どなたかお知りでしたら、何卒ご教示をお願い致します。

0557nobodyさん2008/02/01(金) 15:17:47ID:???
mysql_pconnect が機能しているかどうか
どうやって確認したらよいでしょうか
持続的接続がどこかにあるのかな

それとも、コマンドラインからの起動だと
mysql_connectと何も変わらないとか?
0558nobodyさん2008/02/01(金) 15:19:41ID:???
かわらない
0559nobodyさん2008/02/01(金) 15:38:49ID:???
>>556
PHPで可能
win鯖なら簡単だがLinux鯖なら少し手を加える必要がある
手っ取り早く拡張モジュールで作成することもできる
拡張モジュールの作り方はググれ
ただし蔵側にはFlashPlayerがインスコされていることが条件
0560nobodyさん2008/02/01(金) 16:05:35ID:wTHzZE81
>>559
素早いご回答、ありがとうございます。
貴重な情報、とても助かります。
ググッて、色々調べてみます。
0561nobodyさん2008/02/01(金) 18:23:13ID:???
>>560
最初からググレカス
0562nobodyさん2008/02/01(金) 18:31:55ID:???
>>561
スレタイ嫁カス
05635572008/02/01(金) 18:47:24ID:???
>>558
そうですか。かわらないですか。

ところで、CLIでなくCGIのときに
mysql_pconnectが有効に機能していることを
確認する手段はありますか?
0564nobodyさん2008/02/01(金) 18:58:06ID:???
http://jp.php.net/manual/ja/features.persistent-connections.php
これでも読んでくれたまへ。
05655572008/02/01(金) 19:09:22ID:???
>>564
ちゃんと再利用しているかどうかを知る方法
がわかんないんです(><)
0566nobodyさん2008/02/01(金) 20:12:47ID:AYOwH3yN
imagickを使いたいんですが
機能が多すぎて何がなんだか・・・
わかりやすく説明してるサイトがあれば教えて下さい
0567nobodyさん2008/02/01(金) 20:20:44ID:???
>>566
マヌアル
0568nobodyさん2008/02/01(金) 20:34:02ID:WTHcD/an
<A href="1.html">テスト1</A>
<A href="../menu.html" target="_self">
  テスト2</A>
<A href="5.html" target="top">テスト3</A>
<A href="34.html" target="top">

テスト4</A>
_______________________________________________
上記のようなソースをあり、<A>タグで囲まれた部分だけを抽出したいのですが、、

preg_match_all("/<a.*> ?(.*) ?.?<\/a>/i", $str, $matchtitle);

これで取得すると、
テスト1とテスト3だけしか取得できません
テスト2と4はソース上で改行しているせいだと思いますが、
改行部分を含んで取得するにはどうしたらいいでしょうか
0569nobodyさん2008/02/01(金) 20:36:22ID:???
>>568
s
0570nobodyさん2008/02/01(金) 20:39:04ID:???
>>568
先に開業コード痴漢しちゃえば?
考えんのめんどくせ
05715682008/02/01(金) 20:54:45ID:WTHcD/an
<A href="1.html">テスト1</A>
<A href="../menu.html" target="_self">
  テスト2</A>
<A href="5.html" target="top">テスト3</A>
<A href="34.html" target="top">

テスト4</A>
_______________________________________________
test.txt



<?php
$str = implode (file ( "test.txt" ));
preg_match_all("/<a.*> ?(.*) ?.?<\/a>/i", $str, $matchtitle);
$i=0;
foreach($matchtitle[1] as $title[$i]){
print $title[$i]."<br>\n";
$i++;
}
?>

ソースはこうです
>>569さんの意見を参考に
preg_match_all("/<a.*> ?(.*) ?.?<\/a>/i", $str, $matchtitle);
preg_match_all("/<a.*> ?(.*) ?.?<\/a>/is", $str, $matchtitle);
に変えてみましたがだめでした
0572nobodyさん2008/02/01(金) 21:06:49ID:???
俺は基本Umsにしてる
0573nobodyさん2008/02/01(金) 22:40:59ID:WPh0v7gm
>>571
preg_match_all("/<a.*?>(.*?)<\/a>/is", $str, $matchtitle);
0574nobodyさん2008/02/01(金) 22:51:30ID:???
http://atress.kensyou.org/upload/up167.jpg
0575nobodyさん2008/02/01(金) 23:01:18ID:oS+/fqhr
PHPからシェルプログラムを実行させることは可能?
0576nobodyさん2008/02/01(金) 23:05:00ID:???
yes
0577nobodyさん2008/02/01(金) 23:11:44ID:oS+/fqhr
PHPから受け取った変数をもとにシェルプログラムを実行させることは可能?ってnoだよな。何言ってんだ、、、
0578nobodyさん2008/02/01(金) 23:15:51ID:???
普通にできるよっていうかマニュアルみろカス
0579nobodyさん2008/02/01(金) 23:16:21ID:oS+/fqhr
くだらねぇ質問でスマソ
0580nobodyさん2008/02/01(金) 23:19:26ID:???
>>1を読んだ上でくだらない質問をすること
05815682008/02/01(金) 23:24:59ID:WTHcD/an
できました!
本当にありがとうございます
とても助かりました!
0582nobodyさん2008/02/01(金) 23:57:45ID:4fv7t71O
smartyでデータベースから引っ張ってきた値だけ文字化けするんですがどうすればいいですか?
var_dump()で出力した結果は文字化けせず、assignしたら文字化けするんですが・・・。
あと、Smarty内でceil関数とか使えないんですか?
05835822008/02/02(土) 00:03:55ID:qL81uK5h
あ、スマソ、文字化けはmb_strimwidthで半バイト切り取られていたのが原因でした
0584nobodyさん2008/02/02(土) 00:04:58ID:???
>>582
文字化けするようにmeta書いたら化けて当然。

ceilも使える。
05855822008/02/02(土) 00:12:15ID:qL81uK5h
とりあえず文字化け解決しました
{$item.string|mb_strimwidth:0:100:"...":"UTF-8"|escape}

ceil関数使うのってどうすればいいんですか?

{ceil($item.id/$item.id2)}
じゃエラーが・・・・
0586nobodyさん2008/02/02(土) 00:18:02ID:???
そろそろいい加減Smarty専用スレたてないか?
ここ最近多すぎる。
0587nobodyさん2008/02/02(土) 00:21:30ID:???
たてたよ

【PHP】 Smarty 隔離スレ 【テンプレート】
http://pc11.2ch.net/test/read.cgi/php/1201879269/
0588nobodyさん2008/02/02(土) 00:39:57ID:???
phpinfoみたら使わないライブラリが結構組み込まれてるんですが
これ機能使わなくても入れておくだけでメモリ消費しますよね?
0589nobodyさん2008/02/02(土) 03:00:39ID:???
インストールしただけで使ってたらおかしいだろ常識的に考えて
呼び出したときに初めて使われるわけで
0590nobodyさん2008/02/02(土) 03:09:51ID:???
消費するよ
アパッチの子プロセスがえれえ多い場合にはSSLとか削ったほうがいいこともあるちゃが
削ってもバイナリは大して小さくならんし起動時間も短くならんけん放置推奨ばい
0591nobodyさん2008/02/02(土) 03:41:32ID:???
レスありがとうございます。
関数でいつでも呼び出せる状態にしておくための
関数テーブルのようなものをメモリに読み込んで
その部分だけ消費するって感じでしょうか。
関数がやたらに多いライブラリもあるので
アイドリング時の消費がどの程度なのかちょっと気になります。
0592nobodyさん2008/02/02(土) 04:42:25ID:???
imagettftextの
size=フォントサイズ。GD のバージョンに依存し、ピクセルサイズ (GD1) もしくはポイントサイズ (GD2) で指定する必要があります。
って改悪では?
webで扱う時に問題になるのはほとんど常にピクセルサイズなのに
ポイントサイズって何?
何でこんな改悪が行われたの?
0593nobodyさん2008/02/02(土) 11:12:21ID:???
sprintfの書式を調べたが分からなかったので。
カンマ区切りの数値にするにはどうしたらよい?
たとえば「1234567」なら「1,234,567」みたいに出力したいです。
0594nobodyさん2008/02/02(土) 11:16:53ID:???
>>593
number_format()で解決しる
0595nobodyさん2008/02/02(土) 12:32:28ID:???
>>594
さんくす!
0596nobodyさん2008/02/02(土) 12:44:39ID:???
>>565
同じリソースIDが返るが、異なるプロセスだと
偶然重なるとこはあり得るし判別には使えないな。

mysqlだったらTEMPORARYテーブルに何か書き込んで
それが残ってるかで見たら?あれは接続毎に独立してる領域だから。
0597nobodyさん2008/02/02(土) 12:50:28ID:???
imagettftextで縦書きするプログラムを書いてるんですが
。とか、を縦書きすると位置が不自然になります
いい方法はないですか?
0598nobodyさん2008/02/02(土) 12:51:15ID:???
ミニミニミクロ電子幼稚園っていつの間にか終わってたのか
0599nobodyさん2008/02/02(土) 14:18:51ID:???
>>597
回転か専用のフォントで上手くいかないか
0600nobodyさん2008/02/02(土) 16:00:43ID:f9Zd2DDP
form.htmlで取得した

$sex
$age
$com

の3つをcsvに書き込むのにはどうしたらいいでしょうか?

また、次に書き込む際に一度書き込んだデータを消さずに
次の行に書き込んでいくにはどうしたらいいでしょうか?

以下のような感じです

   A    B    C
1  男    34    1
2  男    24    2
3  女    45    1
4  男    38    1

よろしくお願いします
0601nobodyさん2008/02/02(土) 16:13:29ID:???
>>600
form.htmlのformタグを以下のように書く。
<form method="POST" action="test.php">

[test.php]というファイルを作り、以下の内容を記述する。
<?php
$line = $_POST["sex"] . "," . $_POST["age"] . "," . $_POST["com"] . "\n";
$fp = fopen("test.dat", "a");
fwrite($fp, $line);
fclose($fp);
?>

[test.dat]というテキストファイルを作り、何も書かずに保存する。

test.phpとtest.datをform.htmlと同じディレクトリに置き、
ブラウザからform.htmlでデータを入力する。
06026002008/02/02(土) 16:49:50ID:???
>>601
早速ありがとうございます。
そのままの記述でテストしたところ

Warning: fopen(test.dat) [function.fopen]: failed to open stream: Permission denied in /var/www/vhosts/localhost/httpdocs/test.php on line 3

Warning: fwrite(): supplied argument is not a valid stream resource in /var/www/vhosts/localhost/httpdocs/test.php on line 4

Warning: fclose(): supplied argument is not a valid stream resource in /var/www/vhosts/localhost/httpdocs/test.php on line 5

とのエラー文が出てしまいます。
0603nobodyさん2008/02/02(土) 16:52:31ID:???
>>602
パーミッションに関するエラーが出ているので、[test.dat]もしくは
そのディレクトリのパーミッションを見直してみるといいよ。
書込みが禁止になってないかな?
0604nobodyさん2008/02/02(土) 16:53:29ID:???
>>602
なにこいつ。ゆとりやな。
06056002008/02/02(土) 16:54:41ID:???
>>601
出来ました!
datファイルのパーミッションの設定に誤りがありました。

ありがとうございました!
0606nobodyさん2008/02/02(土) 16:58:57ID:???
$LoginID = trim($_POST["LoginID"]);
$LoginID = strip_tags($LoginID);
$LoginID = htmlspecialchars($LoginID);

$LoginIDはログインID&名前みたいなもので、
サイトで表示したりPostgreSQLで使用するのですが、こんな対策で大丈夫なんでしょうか?
0607nobodyさん2008/02/02(土) 17:04:58ID:???
>>605
ゆとり用の隔離スレなのだから、仕方ないw


>>606
一般的にはそれでおk。
SQL実行が不安だったら、ログイン部分をデータベース参照する
処理じゃないようにして、テキストファイルの中身との一致を
確認する処理にしてしまうのも手だ。
それをやれば、中身は文字列一致しかしないのだから、どんな
記号を入れてこられてもおk。
06086062008/02/02(土) 17:18:07ID:???
>>607
確かにその方法だと安心ですね。
ありがとうございました。
0609nobodyさん2008/02/02(土) 17:27:46ID:???
えー
必要な時に必要な分必要なだけチェックする方がいいよ
ひろみつ先生に怒られるし
0610nobodyさん2008/02/02(土) 17:36:50ID:???
>>606
一般的にはそれでは90点くらい。
使い方によっては脆弱になりかねない。

ENT_QUOTES
0611nobodyさん2008/02/02(土) 18:18:18ID:???
implodeやらfputcsvやらname[]やら使わないのは何ゆえ?
0612nobodyさん2008/02/02(土) 18:19:36ID:???
DBに投げる値にhtmlspecialcharsかけんの?ありえねー。
0613nobodyさん2008/02/02(土) 18:19:46ID:pDDEbWQ1
index.phpで読み込み、書き込みするファイルlog.txtを
一般ユーザーからの直リンクで一切表示させない方法ってありますか?

index.phpファイルの実行時のみlog.txtを操作出来るようにしたいのですが、
パーミッションの設定など試してみましたが無理でした。
■ このスレッドは過去ログ倉庫に格納されています