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

【PHP】初心者コーナー 2 Released

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/03/24 03:06ID:???

PHPに関するアホな質問はここでやれ。今回からMySQLも受付開始。
アホな質問であっても詳しく質問すること。

PHPが大嫌いなPerl信者もぜひご参加ください。

前スレ
http://pc2.2ch.net/test/read.cgi/php/1011550860/l50  関連>>2-10

普通の質問はこっちな、【PHP】質問スレッド Part7
http://pc2.2ch.net/test/read.cgi/php/1044478561/l50
0370nobodyさん03/04/19 18:58ID:???
>>368
http://www.php.net/manual/ja/
037135603/04/19 19:02ID:UAxx4/l2
ごめん、もう少し質問。
たとえばタグが<FONT size="5">とかだったら、
$data = "<FONT size="5">";
という風に""がゴッチャにならないのでしょうか?
037235603/04/19 19:04ID:UAxx4/l2
>>369-370
なるほど、そうなんだ。勉強なりました。どもです。
0373nobodyさん03/04/19 19:05ID:???
>>371
エスケープします。

$data = "<FONT size=\"5\">";
0374nobodyさん03/04/19 19:05ID:???
>>371
いいかげんにしないと頃すぞ
037535603/04/19 19:06ID:UAxx4/l2
ワカタ!!エスケープシーケンスって奴を使う??
037635603/04/19 19:07ID:UAxx4/l2
>>373
ありがとうございます。マジで感謝します。
>>374
とりあえずお前がシネヨw
0377nobodyさん03/04/19 19:07ID:???
>>375
DOSのBASICプログラマか何かか?
0378nobodyさん03/04/19 19:09ID:???
今データベース操作のPHPを作っているんですが(MySQL)
データベース接続中にエラー表示でexit;すると、
自動的に切り離ししてくれるんですか?
0379nobodyさん03/04/19 19:10ID:???
>>378
最悪コネクション切れるからなぁ。
0380nobodyさん03/04/19 19:11ID:???
マニュアルの mysql_connect を嫁
0381bloom03/04/19 20:10ID:PZJVQOkw
http://www2.leverage.jp/start/
0382nobodyさん03/04/19 21:23ID:+e8LI5YY
大人の出逢いから ピュアな出逢いまで・・・。
素敵な お相手が貴方を待っています!
もちろん 女性は完全無料です!
http://www.sweet.st
0383動画直リン03/04/19 21:41ID:PZJVQOkw
http://www.agemasukudasai.com/movie/
0384tantei03/04/19 22:15ID:???
★あなたのお悩み解決致します!!
●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●別れさせ工作
あらゆる手段を使ってターゲットを別れさせます!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
その他人生相談からどんなお悩みでも解決いたします!!
 直通  090−8505−3086
URL  http://www.h5.dion.ne.jp/~grobal/
メール  hentaimtt@k9.dion.ne.jp
   ■グローバル探偵事務所 

0385山崎渉03/04/20 05:58ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
0386山崎渉03/04/21 00:46ID:???
∧_∧
(  ^^ )< ぬるぽ(^^)
0387nobodyさん03/04/21 12:56ID:AYv3e7ja
携帯からPOS送信でPHPにデータをおくってるんですが
NAME指定がないので$HTTP_POST_VARSで受信できません。
なにかPOST使用で方法ないですか?
0388nobodyさん03/04/21 14:21ID:5cXc42kk
ホントに初心者でバカな質問だと思いますが、
phpの処理後に特定のページに強制的にジャンプさせる方法はないでしょうか?
html側での話かもしれませんが関連本を読んでも分かりませんでした。
0389nobodyさん03/04/21 14:48ID:6OPNxtTd
>>388
http://www.php.net/manual/ja/function.header.php
見よ
0390nobodyさん03/04/21 14:56ID:???
あたり前の事だけどPHPマニュアルって便利だよね。
0391nobodyさん03/04/21 15:36ID:???
>>387
phpinfo()で どこに値が入ってるかみてごらん
0392動画直リン03/04/21 15:41ID:ukRLYPuy
http://homepage.mac.com/hitomi18/
0393nobodyさん03/04/21 15:55ID:AYv3e7ja
>>391
携帯からのPOSTなんでして
ただphpinfo();だけをかいたら携帯の方に
出力してしまってエラーになると思います。
結果をファイルに保存とか可能でありますか?
0394nobodyさん03/04/21 17:08ID:???
>>387
php.ini
; Always populate the $HTTP_RAW_POST_DATA variable.
always_populate_raw_post_data = On
0395nobodyさん03/04/22 10:24ID:XwTWu/DF
>>394
当方phpinfo();を使用してバージョンみてみますと
PHP Version 4.2.3となります。
php.iniをみてもalways_populate_raw_post_dataと
いう項目が存在しません。
追加して書いてもよろしいでしょうか?

データベースにある得点のランキングを作ろうと
してましてそのランキングに対して順位をつけるには
上位からカウントすればいいんですが同じ点数があった
時の処理の方法がわかっておりません。ご教授して
いただければうれしいです
0396bloom03/04/22 10:26ID:+bjLBjB/
http://homepage.mac.com/ayaya16/
0397nobodyさん03/04/22 14:14ID:XwTWu/DF
always_populate_raw_post_dataを追加することに
よりPOSTでもGETでも読み込めるようになりました。
今データベースの値の最大値を取得する構文を考えて
います。MySQLのコマンドプロンプトからでは
select max(SCORE) from rankで最大値が求められますが
これをPHPから取得するにはどうのようにするのでしょうか?
0398nobodyさん03/04/22 14:22ID:???
>>397
mysql_connect()
mysql_select_db()
mysql_query()
mysql_fetch_***()
マニュアル嫁
0399bloom03/04/22 14:27ID:+bjLBjB/
http://homepage.mac.com/ayaya16/
0400nobodyさん03/04/22 14:45ID:XwTWu/DF
データの更新追加などはわかるんです。
SQLでMAXとかCOUNTとか
の結果を取得方法がわからないんです。
0401nobodyさん03/04/22 15:07ID:???
>>400
http://jp.php.net/manual/ja/ref.mysql.php
の例で分かりませんか?
0402nobodyさん03/04/22 15:15ID:XwTWu/DF
>>401
よくみてるんですがね。今のところ
$TOP=mysql_query("select max(SCORE) from rank");
$TOP=mysql_fetch_object($TOP);
print_r($TOP);
という構文で
stdClass Object ( [max(SCORE)] => 15 )
と最大の15はとりだせてるのですが
欲しい値は15だけですからsplitを
つかって分解しないといけないんですかね。
もっとスマートなやり方があるとは思いますが。
0403nobodyさん03/04/22 15:27ID:???
>>402
$max=mysql_fetch_row($TOP);
echo $max[0];
とか?
0404nobodyさん03/04/22 15:33ID:???
>>402
$TOP=mysql_query("select max(SCORE) as max from rank");
$TOP=mysql_fetch_object($TOP);
echo $TOP->max;

もしくは、

$TOP=mysql_query("select max(SCORE) as max from rank");
$TOP=mysql_fetch_array($TOP);
echo $TOP['max'];

あるいは、>>403
0405nobodyさん03/04/22 15:34ID:XwTWu/DF
>>403
すごいすごい、やっと表示できました。
これで先にすすめることができる。
ありがとうございます。
次の目標的にはPOSTで送られてきた
データが現在何位という表示をさせることです。
また、時間かかりそう
0406nobodyさん03/04/22 22:32ID:tN1GJC+t
PHPに直接アクセスするとトップへ転送させ、トップからリンクをたどって
そのPHPファイルにたどり着かせることは可能でしょうか?

HTTP_REFERERを使うというところまではご教授してもらったのですが
だんだんずれてきたんで移動してきました。

ご教授ください
0407nobodyさん03/04/22 22:44ID:???
>>406
CGIのやり方は見つけたらしいから、それと同じやり方でいいよ
0408PHPよろ03/04/23 17:59ID:???
・AAAA
・BBBB
・CCCC
とあり、AAAAをクリックすると
・AAAA
内容内容内容内容内容
内容内容内容内容内容
・BBBB
・CCCC
さらにCCCCをクリックすると
・AAAA
内容内容内容内容内容
内容内容内容内容内容
・BBBB
・CCCC
内容内容内容内容内容
内容内容内容内容内容
となり、AAAAをクリックすると
・AAAA
・BBBB
・CCCC
内容内容内容内容内容
内容内容内容内容内容
となるPHP教えてください。
javascriptで可能ですが、できるならばPHPで、と思っての質問です。
0409nobodyさん03/04/23 19:05ID:???
PHPでやるならクリックする度にサーバに接続するけどいいの?

<a href="myself.php?flag_a=on&flag_b=off&flag_c=off">AAAA</a>って感じでフラグ付きで呼び出して、
myself.phpではflag_aの値をチェックして、
<a href="myself.php?flag_a=off&flag_b=off&flag_c=off>AAAA</a>を生成。
これをBBBB,CCCCに対しても行う。
DDDDが出てきた時に面倒だと感じたらもっとキレイなやり方を次に考えてみる
0410nobodyさん03/04/23 21:25ID:???
>javascriptで可能ですが、できるならばPHPで、と思っての質問です。
アホ
0411PHPよろ03/04/23 22:27ID:???
>>409
サンクス。
0412質問さん03/04/23 22:53ID:m9D4gJ4Y
あっあのう、まだPHP始めたばかりなのですが、
Perlであったqq();のような関数はPHPにはないのでしょうか?
エスケープシーケンスで\"とかやるのはHTMLが見にくくなって嫌なのですが・・・。
よかったら誰か教えてくださいお願いします。。。
0413nobodyさん03/04/23 23:41ID:???
ないです
0414nobodyさん03/04/23 23:48ID:pKnrziPv
>412
ない(と思う)。
つかHTMLのクォートは''とシングルクォートでは駄目なの?
文法的にはどっちでも構わないから。

折れダブルクォートの変数展開も使わないで、基本的にドットで
結合するスタイルだから、エスケープがどうとかあんまり気になんない
0415nobodyさん03/04/23 23:51ID:???
>>412
変数が展開されないが、シングルで括るとか。
数行あるならヒアドキュメントにするとか。
0416nobodyさん03/04/24 04:51ID:vt0uN1CM
PHPのオブジェクトライフサイクルがわけわかめです。
データーベースの持続的接続ってどんな状態だ?
CGI=リクエストごと
サーブレット=常駐
PHP=KEEP_ALIVE が終了したらexit?
なんでしょうか。PHP本を何冊も立ち読みしたけどわからない。
使用した感じではリクエストごとにdb切断されているように感じるのですが。 
0417nobodyさん03/04/24 04:54ID:x2ip/9xn
http://www.boreas.dti.ne.jp/~keitarou/img1.html
0418nobodyさん03/04/24 05:13ID:???
>>416
httpdのchild process単位で接続と切断する感じ。
phpinfo()で何本持続的接続しているかわかる。
0419nobodyさん03/04/24 06:52ID:psTbw05H
質問させてください。
PHP + PHPLib でセッション管理しているのですが、
$sess->register()
の部分で以下の警告がでます。

Warning: Unknown(): Your script possibly relies on a session
side-effect which existed until PHP 4.2.3.
Please be advised that the session extension does not consider
global variables as a source of data, unless register_globals is
enabled. You can disable this functionality and this warning by
setting session.bug_compat_42 or session.bug_compat_warn to off,
respectively. in Unknown on line 0

session.bug_compat_warn をOff にすれば警告が抑制されるのは
わかるのですが、できれば警告がでないようにコーディングしたい
と思っています。
この警告がでないようにコーディングすることはできるのでしょうか?
0420nobodyさん03/04/24 16:23ID:505S5lqZ
今MKDIRによる排他制御をつくってますが
何かの原因で異常終了してしまっていた場合に
RMDIRしたいのですがOSがWinでどう
異常終了のシグナルを受け取ったらいいのでしょうか?
Perlだと
SIG{'TERM'} = $SIG{'PIPE'} = $SIG{'HUP'} = "sigexit";
sub sigexit { rmdir($lockdir); exit(1); }
なやりかただとおもいますがPHPだとどうなるのですか?
0421nobodyさん03/04/24 20:03ID:???
>420
http://www.php.net/manual/ja/features.connection-handling.php
0422nobodyさん03/04/25 00:07ID:???
セッションを使わずにheader( "Location: hogehoge.php" )
で移動した先のスクリプトにデータを渡す方法はありませんか?
0423nobodyさん03/04/25 00:19ID:n9QsKzvY
>422
Locationで指定するURIに?以降を付けて、
GETで渡すのは駄目?HTTPリダイレクションは
ブラウザの動作に依存すると思うし、
実際にやったことないんだけど。
あとはファイルやDB等に書きこんでおいて、
それを先方で読み込むとか。同じサイト下の
スクリプトならcookieという手もあるかな。
セッションを使わない=cookieは使わないという
意味かもしれぬが。
0424nobodyさん03/04/25 01:01ID:???
header("Location: 〜")はGETになるみたいだね。IE5.5@Win2k
フォームからGET、POSTで渡すだけなら、フォーム自体のactionを変えるのもいいかも
042542203/04/25 01:41ID:rPJQ8b/F
>>423-424
GETでの受け渡し成功しました
ありがとうございました
0426nobodyさん03/04/25 13:15ID:???
変数や関数の名前の付け方がイマイチはっきりしません。
マンモス本見ても
clasn HogeHogeFunction () {
function printTableHeader() {}
function IsPageChangeRequested() {}
}
のようにクラスのメンバ関数が大文字で始まってたり小文字で始まってたりします。
0427nobodyさん03/04/26 00:32ID:cOpB+yiK
>426
あの本は何人かの共著で、残念ながらサンプルコードの
コーディングの規約は必ずしも統一されたものとなっていません。
言語上の制約を受けない部分(が多い)なので、自分の中で決めるか
どこかの規約に従うとかそういう感じになります。

http://utvikler.start.no/code/php_coding_standard.html#names
というのもありますが、私は他の言語(Javaとか)で比較的多く使われる
スタイルに合わせています。メソッドの動詞部分は小文字等々。

#でもtabはスペース3文字だけどなー
042842603/04/26 00:59ID:hwQat90v
>>427
(´▽`)アリガトです。
こういうページ見つけられずにPHPのpear/にあるPHPとCODING STANDARDSを参考にしてました。

最初に
/* vim: set expandtab tabstop=4 shiftwidth=4: */
っていうのはがあって、これってviで何かのオプションを指定すると4個スペースタブで開けてくれるんだろうか?
とか関数の
/**
* Create a new DB connection object for the specified database
* type
*
* @param string $type database type, for example "mysql"
*
* @return mixed a newly created DB object, or a DB error code on
* error
*
* access public
*/
こういう統一されたコメントとかってソース読み込んでドキュメント化してくれるツールがあるんだろうなあと、
今はわからず、とりあえず真似てかいてます。
0429nobodyさん03/04/26 06:33ID:???
突然の質問、失礼します。
フォームに書き込まれた内容とホストをログファイルに書き込む方法を教えていただけませんでしょうか?
どうか、お願い致します。
0430nobodyさん03/04/26 08:40ID:???
>>429
初心者とそれ未満は明確に区別/差別される。
0431nobodyさん03/04/26 14:57ID:hwQat90v
index.htmlというトップページにダイナミックコンテンツを埋め込みたいと思い、
PHPが実行可能になるように.htaccessファイルにAddTypeを記述して、PHPが実行されるようになりました。

そうすると以下のディレクトリ全てにこの設定が適用されてしまいます。
”そのディレクトリだけ”(以下は含まない)にするにはどうすればいいでしょうか?
0432nobodyさん03/04/26 14:59ID:???
やってないので適当だが、
<Files index.html>
 AddType 〜
</Files>
でどうだ?
0433nobodyさん03/04/26 15:13ID:???
>>432 
それってindex.htmlという名前全てに適用されると思ってました。
やってみます。ありがとう。
0434nobodyさん03/04/26 15:31ID:???
>>432
駄目でした。
以下のディレクトリの全index.htmlでタイプが変更されてしまいました。

0435nobodyさん03/04/26 15:41ID:???
>434
ファイル名をPATH付きで書いて、他の"index.html"にマッチしないようにしたら?
0436nobodyさん03/04/26 15:43ID:???
<Location>てのもある
043743503/04/26 16:00ID:???
<Files>ディレクティブの説明みてみたけど、パス付きの指定は出来ないかも。
だとしたら、下位ディレクトリ毎に.htaccess置いて上位の指定を打ち消すかかね。
043843403/04/26 16:00ID:???
やっぱり駄目でした。

<Files /usr/local/apache/htdpocs/index.html>
 AddTyoe
</Files>
これでも駄目だし、パスの部分を/index.htmlに変えてもも駄目。
<Files>を<Location>に変えてもうまくいきませんでした。

043943503/04/26 16:20ID:???
>434
良い解が浮かばないので、続きは「.htaccessの偉い人 Part3」でヨロ
http://pc2.2ch.net/test/read.cgi/php/1019888234/l50
0440nobodyさん03/04/26 16:25ID:???
>>439 
どうもす。けど、そのスレ初心者向きじゃないので書き込み躊躇してます。
こういう方法で誤魔化そうかとも思ってます。
<frameset rows="100%,*"" frameborder="NO" border="0" framespacing="0">
<frame src="index.php">
<frame src="dummy.html">
</frameset>
0441nobodyさん03/04/26 22:20ID:???
PHPでエラーが起きたときにエラーメッセージを出さずに、
「サーバーメンテナンス作業中です。しばらくお待ちください」
って出すことってできるのでしょうか?
0442nobodyさん03/04/28 00:39ID:???
echo "サーバーメンテナンス作業中です。しばらくお待ちください";
0443nobodyさん03/04/28 00:41ID:???
>>441
apacheってエラーコードごとに表示するページって設定できなかったっけか?
0444キッチン排他@職場03/04/28 00:43ID:Zm4ixUay
>>440
DirectoryIndex index.php index.html

ってのは、どうでしょうか?
URLは、/止めにしないと駄目ですけど。
0445nobodyさん03/04/28 01:56ID:???
保守

PHPに関するアホな質問はここでやれ。今回からMySQLも受付開始。
アホな質問であっても詳しく質問すること。
0446nobodyさん03/04/28 02:19ID:Sq8FYfsY
png2wbmp関数の引数int thresholdには何を指定するのでしょうか?
マニュアルにも書かれていないようなので。
http://www.php.net/manual/ja/function.png2wbmp.php
0447nobodyさん03/04/28 02:28ID:???
>>441
エラー処理関数を使う。
http://www.php.net/manual/ja/ref.errorfunc.php
0448動画直リン03/04/28 02:29ID:uuOaaVb8
http://homepage.mac.com/hitomi18/
0449初心子03/04/28 09:37ID:NNGjuzbA
データベースの操作の際に
While ($row = mysql_fetch_array ($int_result)) {
$hoge[] = $row['hoge'];
$moge[] = $row['moge'];
}
↑のような感じで $フィールド名[レコード番号] にしているんですが
$data[フィールド名][レコード番号] という感じで二次元配列にしたい場合には
どうしたら良いのでしょうか?
0450nobodyさん03/04/28 10:32ID:6M2G463M
linux板で聞けとか怒られそうなのですが質問させてください。
ある時間になるとPHPスクリプトを走らせたいのですが、
cronでブラウザ(mozilla等)を起動し、phpファイルを走らせようと安易に考え
下記のような感じでcrontabを書きましたが、その時間になっても実行されません。

17 * * * * mozilla http://*******.php &
(毎時間17分に******.phpを実行)

どのような方法でphpスクリプトの自動実行を行ったほうがよいのですか?
教えてください。
0451nobodyさん03/04/28 10:48ID:???
>450
どっかで、外サバからつついてくれる無料サービス見た。
0452nobodyさん03/04/28 11:08ID:???
>>450

CLI版のPHPで実行じゃだめなの?
0453nobodyさん03/04/28 14:20ID:???
>>450
.php をURLで指定してるの?
0454nobodyさん03/04/28 14:41ID:???
>>450
普通、wgetを使う。
0455nobodyさん03/04/28 15:15ID:???
>>450
cron から mozilla を起動しようとするその発想に桃の木
0456nobodyさん03/04/28 15:19ID:6s4F0ZI3
IISでPHP 4.3.1(Win32)のISAPI版をインストールしたんですが、
フォームから入力した値をphpに渡そうとすると
変数が空になってしまうのですが何か設定が悪いんでしょうか?

こんな現象ないですか?
0457nobodyさん03/04/28 15:35ID:???
phpinfo();
0458nobodyさん03/04/28 15:35ID:???
>>456
あんたの頭がglobal_register
045945603/04/28 15:49ID:6s4F0ZI3
phpinfo();はフツーに表示されます。

XOOPSもちゃんと動いてんだけどなあ・・・
単純にフォームからphpに値を渡すスクリプト書いただけなのに
うまくいかないんだよ。謎
0460nobodyさん03/04/28 15:49ID:???
>>459
ソースup
046145603/04/28 15:55ID:???
>>460
<?php
phpinfo();
?>
0462nobodyさん03/04/28 15:58ID:???
>>461
なめてんのか? 
046345603/04/28 15:59ID:6s4F0ZI3
>>460
ありがとー

ソースっつってもこれのサンプルをコピペしただけなんだけど
ttp://itb-tech.itboost.co.jp/php/php_09.php

461は騙りだよ
ID出しといてよかった
046445603/04/28 16:02ID:6s4F0ZI3
あ、php4つかってるから.php3は.phpに直した
0465nobodyさん03/04/28 16:09ID:???
>>463
なら、答えは>>458だね。マニャール読みましょ。
http://www.php.net/manual/ja/tutorial.forms.php
046645603/04/28 16:22ID:6s4F0ZI3
>>465
おおお、ありがとう!おかげでどうにか動きました。

この設定、4.2.0以降はデフォルトでoffになってるのネ
前にちょっとPHP触ったとき特に意識しないで動いたから
今思えば4.1.xだったのかも。

とにかくひとつ勉強になりました。ありがとう!
0467nobodyさん03/04/28 16:23ID:???
phpinfo(); だけだと不親切だったか...

フォームの値を受け取るスクリプトにphpinfo()を付け足すと、
値が渡ってるか・どんな変数に入ってるか分かる。
046845603/04/28 16:25ID:???
>>467
なるほど、ありがと
0469bloom03/04/28 16:29ID:uuOaaVb8
http://homepage.mac.com/ayaya16/
■ このスレッドは過去ログ倉庫に格納されています