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

【PHP】質問スレッド Part15

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん04/03/07 02:03ID:???
PHP全般の質問スレです。
上級者用や雑談スレを立てたくなった場合は後から適宜立ててください。

■本家
 http://www.php.net/

■日本 PHP ユーザ会
 http://www.php.gr.jp/

■PHP マニュアル
 http://www.php.net/manual/ja/

■PEAR マニュアル
 http://pear.php.net/manual/ja/

過去スレ, 関連スレ及び注意事項等は、 あふぉが居なけりゃ>>2-5
054954704/03/20 13:52ID:???
あー、すいませんだいぶ勘違いしてました。

単にフォームからデータを受け取る時にうまく
受け取れてないだけのようです。

失礼しました。
0550nobodyさん04/03/20 14:17ID:g6YYdXkP
失礼します。誘導してもらってこちらに来ました。

imgタグ付きのテキストリンク(広告)を
phpでランダム表示させたいのですが、
phpでテキストリンクをランダムに表示させるには
どの様にすればいいでしょうか?
分かる方いたらお願いしますm(_ _)m

簡単にそのランダムさせる文面を
追加できれば嬉しいです
0551nobodyさん04/03/20 14:17ID:???
WinXP+Apache1.3.29

PHP5b4は問題なかったのに
RC1がインストールできなくなったんだけど俺だけ?
(php5ts.dllが駄目だとかでapacheが強制終了)
0552nobodyさん04/03/20 14:31ID:???
>>550
こういうのか?
<?php
$com = array("広告0", "広告1", "広告2");
srand(time());
print $com[rand(0,count($com) - 1)];
?>

-------------------------------------------------
で、私も質問。
フォームで日本語が文字化けするですよ。
--html--
<FORM METHOD='post' ACTION='utf.php' accept-charset='UTF-8' NAME="FormItemWrite">
<INPUT TYPE='text' NAME='fname' VALUE='あいうえお' />
<INPUT TYPE="submit" value="Go" />
</FORM>
--php--
<?php print $_POST["fname"]; ?>

で文字化けするんですが、何がいけないんでしょ。
環境はLinux系の何か+PHP4.3.?です。
055355004/03/20 14:34ID:g6YYdXkP
>>552
ありがとうございます。
"広告0", "広告1", "広告2"の部分に
<a href="http://"">テキスト</a>といれればいいのでしょうか?
055455204/03/20 14:38ID:Hxt1FY25
"<a href='http://a.b.c'>;D</a>"か
'<a href="http://a.b.c">D</a>'な。
ダブルクオーテーション(")の中にダブルは使えないのでシングルで代用。(')
もしくは逆。
0555nobodyさん04/03/20 14:46ID:3WXcgaTH
PHPをやろうかなともってるのですが、難しいですか?
ちなみに今ある知識はHTMLのみです。
0556nobodyさん04/03/20 14:53ID:???
>>555
スクリプト言語が何のか?ということがわかればさほど難しくないです
0557nobodyさん04/03/20 14:56ID:???
>>555
HTMLに混ぜて書けるんで簡単です。
0558nobodyさん04/03/20 14:59ID:???
>>551
WindowsXP Pro+Apache1.3.29
- Apache/1.3.29 (Win32) PHP/5.0.0RC1
WindowsXP Pro+Apache2.0.48
- Apache/2.0.48 (Win32) PHP/5.0.0RC1
どっちも普通に動いてるけど?
php5ts.dll、RC1ので上書きしてないんじゃないの。


PHP5b4は問題なかったのに
RC1がインストールできなくなったんだけど俺だけ?
(php5ts.dllが駄目だとかでapacheが強制終了)
0559nobodyさん04/03/20 15:01ID:3WXcgaTH
>>556
>>557
ありがとうございます。
やってみよかと思います。
0560nobodyさん04/03/20 15:03ID:???
>>552
accept-charsetは気休め。
本当にUTF-8で渡ってきてるか、渡ってきてるなら
PHPで受け取りに至るまでの変換処理でおかしな設定
になってないか調べてみ。ただ、PHP4.3.xで細かく
マルチバイト周り修正されてるので、その辺の差異にも注意。
0561nobodyさん04/03/20 15:07ID:3WXcgaTH
Apache Web ServerとMySQLをwindowsXPにインストールしても
インターネットとかできますよね?
0562nobodyさん04/03/20 15:11ID:???
>>561
貴方のPCがインターネット上の重要なノードを担っていない限り
インターネットは大丈夫だと思うよ。
0563nobodyさん04/03/20 15:14ID:3WXcgaTH
>>562
ありがとうございます。
0564nobodyさん04/03/20 15:30ID:???
なんでコレがエラーになるのか・・・

$sql = "select * from members limit $_GET['st'], $_GET['n']";
0565nobodyさん04/03/20 15:33ID:???
スーパーグローバルを普通の変数に直す。
056655504/03/20 15:43ID:3WXcgaTH
Apache Web Server をインストールしようと思うのですが
途中で↓を入力する画面がでてきます。
いったなにをいれればいいのでしょうか?

Network Domain

Server Name

Administrator'sEmailaddres


ご指導のほどよろしくお願いいたします
0567nobodyさん04/03/20 15:48ID:???
>>564
String中では$_GET['hoge']じゃなくて$_GET[hoge]と書く。
つまり
$sql = "select * from members limit $_GET[st], $_GET[n]";
0568nobodyさん04/03/20 15:48ID:???
>>566
スレ違い
0569nobodyさん04/03/20 15:49ID:???
お好きなように。
0570nobodyさん04/03/20 15:51ID:???
>>567
あとあとトラブルの元だから

 { }

で囲むことをお勧めする。

$sql = "select * from member limit {$_GET['st']}, {$_GET['n']}";

だな。まぁもっと言えばわかりやすい変数に代入しておく方がいいと思うが。

$st = $_GET['st'];
$n = $_GET['n'];
057156404/03/20 15:58ID:???
>>570
あっ!エラーが消えた・・・

技術評論社の

実例で身に付ける
MySQL×PHPによる
本格Web-DBシステム入門

と、いう本で勉強しています。p66

ありがとうございました。m( _ _;)m
057256404/03/20 16:00ID:???
>>567
あぁぁぁ!

これでもエラーが消える・・・

本が間違っているのかなぁ・・・?

057356404/03/20 16:03ID:???
みなさんありがとうございました。

m(__)m
0574nobodyさん04/03/20 16:03ID:???
>>571
print $sql; を実行してればすぐ解決したのにな(w
0575nobodyさん04/03/20 16:30ID:???
>>573
恐ろしいので、普通は $_GETや$_POSTで取って来た値を
そのまま使ってSQL文を生成しない。今後のために
"SQLインジェクション"で探して勉強しとけ。
057656404/03/20 16:40ID:???
了解!
∠(`・ω・´)シャキーン
057755004/03/20 16:42ID:g6YYdXkP
どうもありがとう御座いました。
無事表示できました。しかし、ランダムではなく
リロードすると並べた順番に出るような。。。
057855504/03/20 18:14ID:3WXcgaTH
Apache Serverをインストールしたのですが。
ブラウザにhttp://127.0.0.1、http://localhost
サーバーが見つからないか、DNS エラーです。
となってしまいます。

http://aki.adam.ne.jp/php/apache_install.htm

このページを参考にしました。
Apacheが動作していないようです。どなたかおしえてください。
0579nobodyさん04/03/20 18:20ID:???
サーバにアップされたテキストファイルを書き換えようとしています。
読む単体と書く単体はできるのですが書き換えができません。

流れとしては、ファイルの中身を削除→新しい内容の書き込みでいいんでしょうか?
ファイルの内容を削除する方法を教えてください。
0580nobodyさん04/03/20 18:28ID:???
>>578は空気も読めないし、まして日本語の>568も読めないようだ。
0581nobodyさん04/03/20 18:35ID:???
>>579
fopen("hoge.dat","w");
0582nobodyさん04/03/20 18:43ID:???
>>581
あ、wでいいんだ。ありがとうございます。
058355504/03/20 21:38ID:3WXcgaTH
apache,PHPをインストールして、test.PHPをhtdocs
の中に保存したのですが
http://localhost/test.php
みると真っ白なページがでてきます。
右クリックしてソースを見ると

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>無題ドキュメント</title>
</head>
<body>

<?
echo "PHPインストール成功!!!";
?>

</body>
</html>

となっています。なぜ実行されないのでしょうか
どなたかアドバイスしてもらえないでしょうか
今日はすでに12時間ぐらい四苦八苦してます。集中力が
なくなりアドバイスをもとめました。
0584nobodyさん04/03/20 21:47ID:???
>>578の次のページの
http://aki.adam.ne.jp/php/php_install.htm
は、当然読んでるんだよな?
httpd.conf書き換えて再起動はOK?

つか、とりあえず寝れば?
058555504/03/20 21:56ID:3WXcgaTH
>>578
もちろん読みました
今確認したところ問題ないのですが
他に考えられる原因はないでしょうか?
このままでは練れません
0586nobodyさん04/03/20 22:08ID:???
じゃあ>584のページの10-11番、phpinfoの出力は試した?
それが動いて>583が動かないならショートタグの問題だろ。
ショートタグ使わないか、php.iniいじれ
058755504/03/20 22:12ID:3WXcgaTH
<?php
phpinfo();
?>

だけ記述してみたら
こんどは、

<?php
phpinfo();
?>

↑が表示されました
0588nobodyさん04/03/20 22:24ID:???

.            |
〜〜〜〜〜〜〜〜|〜〜〜〜〜〜〜〜〜〜
.   >( c´_ゝ`)  |
.            |
.>( c´_ゝ`)     J
     >( c´_ゝ`)



.            |
〜〜〜〜〜〜〜〜|〜〜〜〜〜〜〜〜〜〜
.            |     >( c´_ゝ`)
.            |       
.            J   >( c´_ゝ`)
                    >( c´_ゝ`)
0589nobodyさん04/03/20 22:30ID:???
釣れませんなあ〜
0590nobodyさん04/03/20 22:32ID:???
>>587
PHPがapacheに組み込まれているかどうか確認してみよう。

コマンドプロンプト(DOS窓)を開き、
 telnet localhost 80
と入力してリターンキーを押す。以下 リターンキーを[R]で表す。
画面がクリアされ、入力待ち状態になる。
 GET / HTTP/1.0[R][R]
と入力する。打ったはずの文字が表示されないが気にするな。
画面に表示される文字の中に Server: Apache/〜 の行があるはずだ。
オイラの環境では、Server: Apache/1.3.27 (Win32) mod_jk/1.2.0 PHP/4.3.4 と表示される。
この行にPHPという文字が含まれているか確認汁。
059155504/03/20 22:41ID:3WXcgaTH
ありません
0592nobodyさん04/03/20 22:50ID:???
httpd.confに AddModule mod_php4.c を加えるのかもなぁ。
他にAddModule 〜 って沢山書いてある行があるから、
その下あたりに、
AddModule mod_php4.c
を追加してから、apacheを再起動してみ。
0593nobodyさん04/03/20 22:53ID:???
12時間は嘘だね。


566 :555 :04/03/20 15:43 ID:3WXcgaTH
Apache Web Server をインストールしようと思うのですが
途中で↓を入力する画面がでてきます。
いったなにをいれればいいのでしょうか?
(以下略)

583 :555 :04/03/20 21:38 ID:3WXcgaTH
apache,PHPをインストールして、test.PHPをhtdocs
の中に保存したのですが
http://localhost/test.php
みると真っ白なページがでてきます。
右クリックしてソースを見ると
(略)
となっています。なぜ実行されないのでしょうか
どなたかアドバイスしてもらえないでしょうか
今日はすでに12時間ぐらい四苦八苦してます。集中力が
なくなりアドバイスをもとめました。
059455504/03/20 22:57ID:3WXcgaTH
できませんでした。

>>593
本とです今日朝5時ぐらいからやってるんで
俺ばかか(w
0595nobodyさん04/03/20 23:03ID:???
じゃあなんだ9時間かけて>555だったわけだ( ゚д゚)
059655504/03/20 23:10ID:3WXcgaTH
そうです(w
今日からPHPをやってみようともって
それでいろいろ調べたりしてたんで
apacheの存在を知ったのは今日です
0597nobodyさん04/03/21 00:49ID:???
>555
何も解らないならphpdev使っとけ。
それが一番早道だ。
0598nobodyさん04/03/21 03:24ID:???
ApacheをWinに・・・だが、
http://allabout.co.jp/career/database/closeup/CU20020713/
に連続数掲載を参考にする方がイイよ。
私もコレで動かしています。

0599>525>53604/03/21 13:03ID:???
おかげさまで実用レベルまで速度を上げることができました。
それでも web 用なのに処理に 0.75 〜 0.9 秒ほどかかりますが…。
速度アップのポイントは、以下の通りでした。

1. 値をリファレンスで渡したり、変数に保持する
2. array_push() のかわりに [] メソッドを使う
3. ereg() のかわりに preg_match() を使う

1. は、大きな配列をリファレンスで渡すのはもちろん、
count() に渡す配列をリファレンスで渡すことが
大きな速度アップになりました。

2. は、array_push() を使うより [] メソッドの方が速いそうです。(常識?)
微妙な速度アップですが、役に立ちました。
060056404/03/21 13:14ID:2W7KIwm2
技術評論社の

実例で身に付ける
MySQL×PHPによる
本格Web-DBシステム入門

の関連ですが、同社のHPで検索をするとサンプルプログラムが出てきますね。
http://www.gihyo.co.jp/
やっぱ、本とはちょっと違うようです。

ではでは(´・ω・`)ノ
060155504/03/21 13:26ID:xd8jBeYb
やりました!

<?
echo "PHPインストール成功!!!";
?>

PHPインストール成功がちゃんと表示されました。
感激しました。みなさんありがとう。
白い巨塔最終回より感激したかも(w
0602nobodyさん04/03/21 14:04ID:???
一応オッケーなのと適切に設定できたは違うんだけどな
ApacheにしろPHPにしろ細かい調整はまだまだ・・・
0603nobodyさん04/03/21 15:34ID:???
555はちと生き急ぎすぎ
0604nobodyさん04/03/21 17:34ID:jmarRdj5
PHPでXML-RPCクライアントをつくり、接続しまいしたが、
どうしても下記のようなエラーが出てしまいます。
X-Cache: MISS from xxx.xxx.domein
が問題の部分だと思うのですが、
ASP+XMLRPCクライアントでは繋がるのでプロキシーサーバーの設定
が問題ではないようです。
PHPにて、XMLRPC通信をしたことある人でこのようなエラーを解決された方
いましたらご助言いただけませんか?
恐らくXMLRPCが問題ではなく、PHPとPROXYの間での問題だと思うのですが。

HTTP/1.1 200 OK
Date: Sat, 20 Mar 2004 15:39:07 GMT
Server: Apache/1.3.29 (Unix) mod_perl/1.29
Content-Length: 446
Content-Type: text/xml
SOAPServer: SOAP::Lite/Perl/0.55
X-Cache: MISS from xxx.xxx.domein
Connection: close
0605nobodyさん04/03/21 20:32ID:???
鯖がsafemodeでPHP動かしてるのでheader()関数が使えません。何か変わりになる関数ないでしょうか?
0606nobodyさん04/03/21 20:55ID:???
仮に2ちゃんねるのような掲示板をPHP+MySQLで実装する場合、
スレッドごとにテーブルを持つべきですか?それともすべてのレスをひとつのテーブルにぶち込みますか?
0607nobodyさん04/03/21 21:00ID:???
>>606
スレごとにテーブル
0608nobodyさん04/03/21 22:34ID:???
>>606
・スレごとにテーブル
・全てのレスを1つのテーブル
は同じでは?
0609nobodyさん04/03/21 22:53ID:???
>>606
スレ数可変なんだから1つ1つをテーブルにする奴は基地外
0610nobodyさん04/03/22 02:12ID:zKPdzv8E
function abc($arg){}

と定義して、call_user_func('abc', "hogehoge");
で関数を呼ぶことができますが、
'abc' が関数として、定義されているかどうかを
調べる関数があれば、教えて下さい。
0611nobodyさん04/03/22 02:16ID:???
>>599
MMcache や APC 使えばいいのに、と呟いてみる。
まぁそういう検証も面白い&役立ちますよね。
こんなのも参考にどうぞ。
http://www.blueshoes.org/en/developer/php_bench/
0612nobodyさん04/03/22 02:18ID:???
>>610
http://jp2.php.net/manual/ja/function.get-defined-functions.php
0613nobodyさん04/03/22 02:20ID:???
>>610
次の方法で見つかりましたが、何か。

・func でマニュアル内を検索
・call_user_func が掲載されているチャプターの導入にある関数一覧を見る

マニュアル代わりのage厨は逝っていいよ。
0614nobodyさん04/03/22 02:26ID:???
>>612
ありがとうございます。

>>613
・func でマニュアル内を検索
なーるほど。
0615nobodyさん04/03/22 02:29ID:???
マニュアルの歩き方を覚えないと PHP は書けません。
一通り目を通して、、
似たような関数からチャプター遡って調べるのが王道。
0616再度質問です04/03/22 02:30ID:ebdZYBT6
PHPでXML-RPCクライアントをつくり、接続しまいしたが、
どうしても下記のようなエラーが出てしまいます。
X-Cache: MISS from xxx.xxx.domein
が問題の部分だと思うのですが、
ASP+XMLRPCクライアントでは繋がるのでプロキシーサーバーの設定
が問題ではないようです。
PHPにて、XMLRPC通信をしたことある人でこのようなエラーを解決された方
いましたらご助言いただけませんか?
恐らくXMLRPCが問題ではなく、PHPとPROXYの間での問題だと思うのですが。

HTTP/1.1 200 OK
Date: Sat, 20 Mar 2004 15:39:07 GMT
Server: Apache/1.3.29 (Unix) mod_perl/1.29
Content-Length: 446
Content-Type: text/xml
SOAPServer: SOAP::Lite/Perl/0.55
X-Cache: MISS from xxx.xxx.domein
Connection: close
0617nobodyさん04/03/22 11:22ID:zmRA/0fr
サイト全体をphpで記述して、
なおかつ、smartyを使用していると
templatesフォルダの中が
激しくごちゃごちゃになるのですが、
みなさんはどうされてますか。
0618nobodyさん04/03/22 12:08ID:???
パスワードをmd5関数でハッシュ値に変換して、DBへ格納するのですが、
ハッシュ化された文字列には英数字以外の記号は含まれるでしょうか?

DB格納時にquoteするかどうかなんですが、数個のサンプルを見る限り
quoteしている例が無かったのですが…。
0619nobodyさん04/03/22 12:32ID:WuJHjyKE
PHP4のセッション管理って下記のどれを使っているのでしょうか?
1.クッキー
2.URLに引数として渡す(http://url.com/test.php?hennsuu=100)
3.hidden属性でHTMLに埋め込む
4.その他

その他の場合は、具体的にどうやっているのかお教え下さい。
(おそらく設定で変更できるんだろうけど、現在のうちの環境は
どうも1,2,3のどれでもないような・・・)
062061904/03/22 12:41ID:???
詩んできまつ。
0621nobodyさん04/03/22 12:50ID:???
>>618
MD5ハッシュ値は32文字の16進数となります。
062261804/03/22 13:04ID:???
>>621
なるほど。ではquoteしなくても良いですね。
ありがとうございました。
062361704/03/22 13:09ID:???
やっぱり
マニュアルに載っていない
質問は
答えてもらえないことが
多い。
062461804/03/22 13:15ID:???
>>623
これという正解がないからじゃない?
私も同じように作ってますが(PHP+smarty)、カテゴリー別に
prefix付けるくらいですかね。
0625nobodyさん04/03/22 13:27ID:???
はぁ?
猫でも考えれば分かりそうな事だからだろ。何悩んでるのか分かんねーよ。
サブディレクトリで分けたり、phpファイルと同じフォルダに置いたり、何とでもなる。
0626nobodyさん04/03/22 13:59ID:???
>>623
逆。>>625 のいう通り何を悩んでるのか、釣りなのか。
それとも共通テンプレの整理の仕方の工夫でも聞きたいの?
0627nobodyさん04/03/22 16:17ID:???
>>619
1,2,3しか無い。
0628nobodyさん04/03/22 16:21ID:???
>>627
>>620で氏んでるので許してやれ
0629nobodyさん04/03/22 17:27ID:WuJHjyKE
おすすめのエディタを教えて下さい。
0630nobodyさん04/03/22 17:28ID:???
ageんな。検索しろ。
終了。

自分である程度探して試してどれにしようか迷っています、他にオススメがあれば等の聞き方ならまだ分かるが。
0631nobodyさん04/03/22 17:29ID:???
ここに移動汁

使いやすいエディタって何よ?
http://pc2.2ch.net/test/read.cgi/php/991372719/
063262904/03/22 17:38ID:???
>>630
再び詩んできまつ。

>>631
ありがとうございます。
0633nobodyさん04/03/22 17:51ID:???
>>629
俺は業務ではZendStudio。
個人では秀丸。
0634nobodyさん04/03/22 18:25ID:???
>>629
PHPエディタ
ttp://fol.axisz.jp/php/
の作者、頑張ってるよね。

自分は xyzzy を使っているけど。
0635nobodyさん04/03/22 18:52ID:eAoDZUbp
クッキーが使用可か不可か判定するにはどうしたらいいでしょうか?
教えてください。お願いします
0636nobodyさん04/03/22 18:56ID:???
xyzzyこの2日試してるけどカーソルがスクロールで移動しちゃうのがな〜・・
063761804/03/22 18:57ID:???
>>635
適当なcookieを食わせて、セットされているか確認する。
0638nobodyさん04/03/22 18:58ID:???
>>635
setCookieで食わせて確認したら?
0639nobodyさん04/03/22 19:27ID:???
WindowzならEmEditor最強
HTMLもCSSもJSもPHPもPerlもXMLもJavaもCもC++もC#もこれ一つで事足りる。
0640nobodyさん04/03/22 20:12ID:???
おれはMeadow2とgtagsを組み合わせているな

PHPを使ってスクリプトを作成するとき、デバッガって
つかっています?
ZendStudioはついていましたよね。
0641nobodyさん04/03/22 20:14ID:???
>>639
最強はMeadow。
しかし俺はvivi。
0642nobodyさん04/03/22 20:16ID:3C9md7bY
>>623
おれはサブディレクトリに置いているな

で呼び出すときは
$smarty->display('bar/foo.html');
0643nobodyさん04/03/22 20:47ID:???
だから他所でやれよ>エディタ厨
0644nobodyさん04/03/22 20:54ID:???
使いやすいエディタって何よ?
http://pc2.2ch.net/test/read.cgi/php/991372719/l50
0645nobodyさん04/03/22 21:36ID:???
>>643
まぁ最初のネタ振りが悪かったのでスルーして欲しかったのだが、 >>643 の言い分も分かるが、PHP には IDE があるしな。建設的な議論も出来るよ。
それにみんなこの手のネタ好きだよね。一度出たら必ず反応してくれる。

今使ってるのは Eclipse + Xored だが、更新遅いので他も探してる。色々あるけど、マルチバイト文字化けるのが多いんだよね。
PHP5 への対応も、どうしてもワンテンポズレるし。

Eclipse メインで、emacs 系のエディタも使って対応って感じ。
0646nobodyさん04/03/22 23:12ID:???
EmEditor入れてみたけど1分経たずに削除した
どこが最強なのかわからん

SakuraにJavascriptのキーワードファイルと
Zend並みの補完機能があれば言う事ないんだが、、
064755804/03/22 23:43ID:???
>>551
ウチでも結局、色々設定変えていくつかの主要Exteinsion加えてみたら、
Startupでロードエラーで落ちるようになった...
結局βに戻しますた。RC1なんか良くない。
0648nobodyさん04/03/22 23:50ID:???
>>647,551
・・あの。PHPの使われ方を考えても、まずLinux版から力が入ってWindows版は後回しだと思うんですけど。
■ このスレッドは過去ログ倉庫に格納されています