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

【PHP】質問スレッドpart30【php】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/10/25(火) 06:50:06ID:Q4oGlTH3
PHP全般の質問スレです。
【基本ルール】
・新規質問の方は上げてください。age進行でお願いします。
・質問者は2回目以降、最初のレス番号を名前欄に入れてください。
・回答者は質問者に対して>>(アンカー)をつけてください。
・煽り・荒らしは放置。荒らしに反応した香具師も荒(ry
・解決しなくてもこたえてもらったら礼を。
【質問テンプレ】
・マニュアルを調べたか、google検索したか(調べたキーワード)
・タイトル(禁:教えてください!etc) 例:requireとinclude
・内容 例:requireとincludeはどう違うのですか?
・質問する際には環境も明記。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
【PHP マニュアル】
http://www.php.net/manual/ja/
※マニュアル上部の「search for」から検索を活用すべし(便利)。

過去スレ、関連リンク、FAQ等>>2-10辺り
0581nobodyさん2005/11/15(火) 20:20:51ID:???
>>580
関数を2回定義したらFATAL ERROR。(オーバーロードもできない)。
grepでひっかかったのって呼び出しじゃないの?
0582nobodyさん2005/11/15(火) 20:23:23ID:???
あるいは
class A { function hoge() {} }
class B { function hoge() {} }
class C { function hoge() {} }
ってオチかと
0583nobodyさん2005/11/15(火) 20:24:56ID:???
if ($foo) { function hoge() {} }
else { function hoge() {} }
もありうるな(あんまないかw)
05845802005/11/15(火) 20:28:05ID:???
>>581
早速のレスどうもです。


別ファイル[ファイルX]に記述されてるのを呼び出してるんですけど見てたら
そのファイル[呼び出し元B]自体がrequire_onceで、
他のファイル[呼び出し元A]に呼ばれてるます('A`)

[呼び出し元A]の中ではrequire_onceで10個ぐらいよびだしてるので
その中のいずれかで、call_user_funcで呼び出してるファイルを
さらに呼び出してるぽいかも。
こういう階層にするのってPHPで一般的なのかな?

grepでひっかかったのは
function 呼び出し関数名(){
ってなってるのでたぶん間違ってないと思います。
本来なら、関数名だけで判断できるように同じ関数名は避けるべきっすよね?

もうちょっと調べてみますー。おかげで考えがまとまりました。
ありがとうございましたー。<m(_)m>
05855802005/11/15(火) 20:29:45ID:PU11Oeig
>>582-583
おお、書いてる間にさらにレスが!ありがとうございます。
classは使ってないぽいです。
if文の中で関数定義なんてできるんすね。
phpって結構なんでもありだなぁ・・・。
0586nobodyさん2005/11/15(火) 20:34:45ID:???
よくわからんけど、
require_once()は、スクリプトの実行時に同じファイ ルが複数回読み込まれ、評価される可能性がある場合に、
関数の再定義や 変数値の再代入といった問題を回避するために一回だけ読み込ませるため に使用します。
(マニュアルより)

も覚えとくといいかも
0587nobodyさん2005/11/15(火) 20:34:48ID:???
次スレは爆笑質問集にスレタイ変更だな
05885502005/11/15(火) 20:49:22ID:???
みなさんのお陰で、どうにかphp-mysqlを入れることができました。

rpm -ihv http://download.fedora.redhat.com/pub/fedora/linux/core/updates/4/i386/php-mysql-5.0.4-10.5.i386.rpm

本当に有難う御座います。
0589nobodyさん2005/11/15(火) 20:53:08ID:???
>>587
ツマンネ
05905802005/11/15(火) 20:59:15ID:???
requireで呼び出してるファイル名を動的に変えて、呼び出す関数自体は
同じ名前にして処理をかえるような仕掛けでした。
人のソースはやっぱ仕掛けがわかりにくいです('A`)
どうも、お騒がせしますた。

>>587
初心者の質問なんてそんなもんじゃ?
0591nobodyさん2005/11/15(火) 21:07:42ID:???
>>590
>>589
05924902005/11/15(火) 21:21:35ID:bjEKtblW
490です。
psql --help の一部です。
Connection options:
-h HOSTNAME specify database server host (default: local socket)
-p PORT specify database server port (default: 5432)
-U NAME specify database user name (default: xxxx)
-W prompt for password (should happen automatically)
上記に合わせて、config.phpを変更しました。が、ダメでした。。。
configの書き方と設定の仕方がわるいのでしょうか?
PHPですか、postgreSQLの設定ですか?
どうしたらいいですか?急いでいます!わかる方,お願いします。
0593名無し募集中。。。2005/11/15(火) 21:26:58ID:???
configの書き方や設定の仕方じゃなくて
掲示板への質問の仕方が悪いんじゃない?
0594nobodyさん2005/11/15(火) 21:35:19ID:???
育ちが悪い
05955322005/11/15(火) 21:35:33ID:???
>592
キタノ?
本物キターーーノ?
ワクテカw
0596nobodyさん2005/11/15(火) 21:37:32ID:???
まだ聞くかw
0597nobodyさん2005/11/15(火) 21:37:53ID:???
誰か暇な奴相手してやってくれ

>>493-495の流れで
>というか、急いでるんです。
と言い出し、挙句の果てには
>>518-519
>ちょっと自分で本屋に行って勉強してみます。
等と戯けた事を言い出す始末だけどna
(つか本を買おうという気もまるでなし('A`))
0598nobodyさん2005/11/15(火) 21:37:58ID:???
期待の大型新人キタ━━━━━━(゚∀゚)━━━━━━ !?
0599nobodyさん2005/11/15(火) 21:39:49ID:???
さぁ盛り上がってまいりました
0600nobodyさん2005/11/15(火) 21:47:24ID:???
>>592
今日は、キチガイのオンパレードだな…

1) postgresへの接続は具体的なコードは?、コードはオマイが書いたのか?
2) configの書き方うんぬんと書いてあるが、configとは何?、内容は何?

>>490 のカキコより
3) エラーメッセージが "unknown host name: localhost" と表示されているが該当マシンで ping localhost はOK?
4) port=8040 となっているが、postgresの初期設定では 5432 のはず。オマイが変更しているのか?
5) 該当マシンで以下を行うと正常に接続できる?
  psql -hlocalhost -p8040 -Utestuser2 -dtestdb2
  psql -h127.0.0.1 -p8040 -Utestuser2 -dtestdb2
  psql -hlocalhost -p5432 -Utestuser2 -dtestdb2
  psql -h127.0.0.1 -p5432 -Utestuser2 -dtestdb2

後、急いでる、急いでるってバカの一つ覚えみたいにわめくな。
急いで解決したければ、質問の仕方から考え直せ。
06014902005/11/15(火) 22:01:24ID:NEc3YLTa
ping localhost 動いてます。
psql -hlocalhost -p8040 -Utestuser2 -dtestdb2
psql -h127.0.0.1 -p8040 -Utestuser2 -dtestdb2
は接続拒否でした。残り2つの-p5432の方はOKです。
config.php
<?php
if(ereg("config.php",$_SERVER["PHP_SELF"]))
{
exit();
}
define("DB_HOST","localhost");
define("DB_PORT",5432);
define("DB_NAME","testdb2");
define("DB_USER","testuser2");


define("DB_CONN","host=" .DB_HOST
."port=" .DB_PORT
."dbname=" .DB_NAME
."user=" .DB_USER);
?>
0602nobodyさん2005/11/15(火) 22:06:15ID:???
>ping localhost 動いてます。

>は接続拒否でした。残り2つの-p5432の方はOKです。

おいおいこれが釣りじゃなく本気ならやべーぞお前技術者向いてないよw
0603nobodyさん2005/11/15(火) 22:13:57ID:???
>>490
ここまでしつこい&知らないと逆に感心するなw

define(."DB_CONN","dbname=" .DB_NAME );

一度これだけでやってみれ、portは5432な
つか本買わないんだったらマニュアル読めや
0604nobodyさん2005/11/15(火) 22:16:29ID:???
やはり一味も二味も違うな
06056002005/11/15(火) 22:18:14ID:???
>>601
ポート8040ってのはどこから出てきたんだ…
その状況だと >>490 の時点とはエラーメッセージが変わってるんじゃないのか?

1) 念のため聞くが、WEBサーバー(PHPが動作しているサーバー)とpostgresが動作している
  サーバーは同じサーバー?
2) 現在のエラーメッセージは?
3) 接続パラメータにパスワードがないが、パスワードなしでOK?
4) 先のカキコで聞いたが、無視しやがるので再度。postgresへ接続する部分の具体的なコードは?
0606nobodyさん2005/11/15(火) 22:20:00ID:???
回答をもらってるのに部分的にスルーって時点で釣りか、精神的にアレなんじゃないのか・・・
0607nobodyさん2005/11/15(火) 22:21:25ID:???
>>605

4)は501あたりじゃね?昨日と同じなら
0608nobodyさん2005/11/15(火) 22:27:04ID:AP0zNwzy
PHPでheader("Content-type: image/png")のように画像を出力しています。
通常の画像〜.pngなどはサーバー側で更新されていなければ再取得せずにキャッシュが使われますが、PHPで書いてある場合にはどのようにしたら同じような挙動をさせることができるでしょうか?
0609nobodyさん2005/11/15(火) 22:29:05ID:???
よく考えりゃテンプレも読めなきゃレスも読めてないんだから
参考書とかマニュアルなんて読めるわけが無いよな
0610nobodyさん2005/11/15(火) 22:29:49ID:???
>>608
ブラウザに依るから何とも言いようが無い
06116082005/11/15(火) 22:32:05ID:???
>>610
むむー、そうなのですか。IEとFirefoxが大半だと思うので、この2つだけでも何とかなりませんか?
06124902005/11/15(火) 22:34:07ID:NEc3YLTa
>>603
ありがとうございます。
>>603
これでいいでしょうか?
config.php
<?php
if(ereg("config.php",$_SERVER["PHP_SELF"]))
{
exit();
}
define("DB_NAME","testdb2");
define("DB_CONN","dbname=" .DB_NAME);
?>
結果ですが、ダメみたいです。
<br /><b>Warning</b>:
pg_connect()
[<a href='function.pg-connect'>
function.pg-connect</a>]
Unable to connect to PostgreSQL server: FATAL:
user "nobody" does not exist
---------------------------------------------------
06134902005/11/15(火) 22:34:33ID:NEc3YLTa
test1.php
<?php
require("config.php");
$db=pg_connect(DB_CONN);
header("Content-Type:text/plain;Charset=EUC-JP");
if($db==FALSE)
{
echo " not connect db?n " ;
}
else
{
echo "database connect ok?n" ;
}
?>
0614nobodyさん2005/11/15(火) 22:38:35ID:???
>>611
Last-Modifiedで何とかならんかな?
0615nobodyさん2005/11/15(火) 22:39:06ID:???
490はもうスルーしようよ
0616nobodyさん2005/11/15(火) 22:45:26ID:???
>>608
rfc嫁
last-modifiedとif-none-matchをみてレスポンス返せばいいが
HTTP1.1に準拠するのは結構面倒だぞ
06176082005/11/15(火) 22:55:52ID:???
>>614
header("Last-modified: 〜")のようにすればいいのですね。

>>616
if-none-matchというのもこれから調べてみます。

ありがとうございました。
0618nobodyさん2005/11/15(火) 22:57:48ID:???
>>617
違う。304レスポンス/ステータスを返す
Web鯖がやってるのと同じことをする
ところで下のほうにくだスレがあるの見えてる?
0619nobodyさん2005/11/15(火) 22:58:47ID:???
>>615
釣りか、知能が異様に低いかのどっちかだな。

前者なら良いが、もしも後者なら490が不憫で・・
06206002005/11/15(火) 22:59:11ID:???
>>607
サンクス。>>490 からのスレを全部読んでいなかった漏れが悪かった。
で、全部読んだら脱力した…。今回とほとんど同じ流れじゃん。
>>490 からすると同じ事を何度も聞きやがって、と思うかもしれんが
聞かれてもしょうがないよな…
スマンが、この件からは離脱するわ。付き合いきれん。
0621nobodyさん2005/11/15(火) 23:02:48ID:???
>>616
つ if-modified-since
0622nobodyさん2005/11/15(火) 23:05:27ID:???
>>620
一つだけ言っておこう。

「おまいは別に悪くないぞ」
0623nobodyさん2005/11/15(火) 23:07:42ID:???
>490

test1.php
<?php
$db=pg_connect("dbname=testdb2 user=testuser2");
if($db==FALSE) {
echo "NG";
} else {
echo "OK";
}
?>

なら、どうよ?
0624nobodyさん2005/11/15(火) 23:11:07ID:???
>>490
user "nobody" does not exist
なんだと思う?
気づけよ┐(´ー`)┌

#623をやって、今度はパスワでエラーかもw
0625nobodyさん2005/11/15(火) 23:14:58ID:???
ダメなのはなんとなく理解しているが、
どうしてダメなのかはサッパリ分かってないし、分かろうともしていない
0626nobodyさん2005/11/15(火) 23:18:02ID:???
このまま尻切れトンボで収束して、明日はまた最初からだな。
急いでいるみたいだから、みんな準備しとけよ。
0627nobodyさん2005/11/15(火) 23:18:41ID:???
>>625
昨日も相手したんだけどねぇ
ぷっスマの時間なので後は頼んだw
0628nobodyさん2005/11/15(火) 23:51:35ID:???
期待の大型新人もぷっすまかな?

”ある意味”こっちのほうがレベル低いよねw

明日こそ旨く伝えられるようにがんばるぞ!
0629nobodyさん2005/11/15(火) 23:55:07ID:???
じゃあ、期待の大型新人はこちらで育成よろしく。
PostgreSQLスレでは、育てきれません。
0630nobodyさん2005/11/16(水) 00:21:48ID:???
>>629
イヤン。お持ち帰り下さいませ。
0631nobodyさん2005/11/16(水) 00:31:30ID:???
>>549が正論だな
下質スレは下質スレなりにレベルを保つって事だな
0632nobodyさん2005/11/16(水) 03:49:50ID:???
くだスレどこがまともなの?
0633nobodyさん2005/11/16(水) 03:53:16ID:???
期待の新人君が沸いて楽しいぞ
0634nobodyさん2005/11/16(水) 06:55:21ID:???
phpizeって何ですか?
06356342005/11/16(水) 07:44:56ID:???
すみません他のスレに行きます。
0636nobodyさん2005/11/16(水) 08:01:21ID:???
>>635
他の星へ行け
0637nobodyさん2005/11/16(水) 11:27:45ID:???
くだらない質問なんだろうなぁと思う奴は控えめ→くだ質へ→控えめなので丁寧に質問→丁寧故に回答を得る→結果的に良質なスレへ
0638nobodyさん2005/11/16(水) 12:30:06ID:???
なんか妙にくだスレをヨイショしたがってる池沼がいるな。
全体的によく見比べれ。つーか低脳はくだスレに帰れ。
0639nobodyさん2005/11/16(水) 12:34:04ID:???
↑みたいなレスが増えると糞スレになってくる。
質問と回答以外書き込まなければいいと思うよ。
0640nobodyさん2005/11/16(水) 12:35:10ID:???
念のため書いときまーす

【基本ルール】
・煽り・荒らしは放置。荒らしに反応した香具師も荒(ry

(>>1より一部引用)
0641nobodyさん2005/11/16(水) 13:59:29ID:???
echo ってなんですか?
0642nobodyさん2005/11/16(水) 14:11:46ID:???
http://php.net/echo
0643nobodyさん2005/11/16(水) 14:20:49ID:pHA2FDGy
配列に関する質問です。
数値をキーとする配列(キーそのものにはあまり意味はないです)に含まれる値だけを取りだして、それをキーとするにはどのようにしたらよいでしょうか?(検索効率を上げるため)
生成された配列の値は使用しないので何でもよく、(キーにするという性質上)重複は削除するものとします。
何か案をお持ちの方いらっしゃいましたらよろしくお願いします。
0644nobodyさん2005/11/16(水) 14:32:10ID:???
array_combine
0645nobodyさん2005/11/16(水) 14:48:02ID:???
>>643
案っていうか、オマイさんが言ったことをゴリゴリと書いても大した手間ではないだろうに。
確かにPHPの関数を使った方が短く書けるだろうけど、それに拘るのなら自分で PHP マニュアルの
array_xxxx 関係を読めばいいのではないのか?
多分、array_values、array_combine 辺りで可能だと思う。
0646nobodyさん2005/11/16(水) 14:51:21ID:pHA2FDGy
>>644
レスありがとうございます。
実はarray_count_valuesで一発だったようです。
array_combineも便利そうですね。
どうもありがとうございましたm(_ _)m
0647nobodyさん2005/11/16(水) 15:03:11ID:???
セッションの管理について詳しく書いてるとこない?
0648nobodyさん2005/11/16(水) 15:47:45ID:???
>>647
マニュアル読んだ?
>>1読んだ?
0649nobodyさん2005/11/17(木) 00:40:21ID:???
490の大型ルーキー今晩こなかったなあ。

生活にハリがなくなったよ。しょぼーん。
0650nobodyさん2005/11/17(木) 00:56:25ID:???
>>649
をを、そういえばこなかったな。
0651nobodyさん2005/11/17(木) 01:20:25ID:???
そのうちまた来るさ。
0652nobodyさん2005/11/17(木) 03:25:55ID:V06oZKlx
任意の正規表現に対して、その正規表現がマッチする文字列をランダムに生成する方法がわかりません。
たとえば$pattern = "/[0-9]{1,2}[A-Za-z]{3,4}/";なら
51TuAG
8ntQb
93dzL
:
のように複数の文字列をランダムに生成する形です。
どなたかご教授いただけますでしょうか?
0653nobodyさん2005/11/17(木) 03:59:17ID:???
性器表現道場へ逝け
06546522005/11/17(木) 04:47:47ID:V06oZKlx
すみません。正規表現そのものの質問ではなく、与えられた正規表現に対するPHPを用いた処理の仕方の質問です。
うまく伝えられなかったようなので申し訳ありません。
0655nobodyさん2005/11/17(木) 04:59:32ID:???
>>654
いきなり"."がくるかもしれなくて"["もくるかもしれなくて
その場合どこかに"]"があって……
と考えてコードを書けばええやん。
パターンがもっと限定されてるなら、それはそれでやりようあるし。
0656nobodyさん2005/11/17(木) 06:15:07ID:???
>>652
やりたいことがよくわからんが、uniqid か何かで出した文字列に
preg_replaceで s/[^任意の正規表現]//g やればええんちゃう?
運が悪いと1文字も残らないかもしれないけど
0657nobodyさん2005/11/17(木) 06:16:49ID:???
うわ、文字位置まで限定か。
だったら配列に使える文字入れてrandとかで一文字ずつ決めちゃった方が簡単でしょ
0658nobodyさん2005/11/17(木) 09:33:53ID:???
>>654
ランダムな文字列生成関数を作って、
それが正規表現にマッチするまでぐるぐる回したら?
重くはなるかとは思うが。。。
0659nobodyさん2005/11/17(木) 09:36:29ID:???
658よりは、657の一文字づつランダム決定の方が軽そうね
06606582005/11/17(木) 09:44:54ID:???
ただ、それだと同じ文字列がでやすくなるかなぁとは思うけど
気にしないならいいや
0661nobodyさん2005/11/17(木) 09:46:33ID:???
>>660
そうなの?
確率的には同じような気がするけど
0662nobodyさん2005/11/17(木) 10:31:12ID:???
そか
そう言われれば確率的には同じだな。。。
0663nobodyさん2005/11/17(木) 12:02:09ID:???
Mysqlで新しいデータから参照するにはどうしたらいいのでしょうか?
掲示板を作成していて古い順に並ぶので
0664nobodyさん2005/11/17(木) 12:06:12ID:???
OrderBy

ってか、それはPHPの質問かと小一時間
0665nobodyさん2005/11/17(木) 16:20:31ID:???
>>663
DESC
0666nobodyさん2005/11/17(木) 16:28:45ID:???
こんな椰子が作成する掲示板って怖いな。
0667nobodyさん2005/11/17(木) 16:33:19ID:???
SQLインジェクションされたい放題になる予感
0668nobodyさん2005/11/17(木) 16:34:30ID:???
>>663
PHPでやるなら全部配列に入れてrsort()
0669nobodyさん2005/11/17(木) 16:37:22ID:???
DB使う意味ねぇ〜
0670nobodyさん2005/11/17(木) 16:38:27ID:???
ファイルアクセスよりは早いと思うよ(ぷ
0671nobodyさん2005/11/17(木) 16:44:22ID:???
HAHAHA ナイスジョーク
0672nobodyさん2005/11/17(木) 16:49:11ID:???
>>667
ttp://php.s3.to/db/src/source.php?p-bbs-db.php
(^ω^;)
0673nobodyさん2005/11/17(木) 16:57:20ID:???
(ノ∀`)アチャー
0674nobodyさん2005/11/17(木) 17:03:24ID:???
そのサイトのトップページに
 PHPをバージョンアプしましょう!
 PHPに重大な脆弱性
 PHPに関するセキュリティ情報
とあるのがまたなんとも言えず。。。

ところで「バージョンアプ」って。
0675nobodyさん2005/11/17(木) 17:06:59ID:???
意味は通じるだろ
0676nobodyさん2005/11/17(木) 17:13:24ID:???
>>674
掲示板も非常に芳ばしい感じです
0677nobodyさん2005/11/17(木) 18:46:51ID:???
いまPHP勉強中なんですが>>672のソースはどこがまずいんでしょうか。
0678nobodyさん2005/11/17(木) 18:53:57ID:???
>>677
>>667の対策をしていない
0679nobodyさん2005/11/17(木) 19:00:18ID:???
>>677
http://www.atmarkit.co.jp/fsecurity/rensai/webhole02/webhole01.html
0680nobodyさん2005/11/17(木) 19:12:16ID:???
レッツも長いことPHP使ってる(ないのか?)んだから
公開してるサンプルソース全部見直したらいいのに...
初心者が真に受ける率が高いって判って放置してんのかな。
■ このスレッドは過去ログ倉庫に格納されています