【PHP】質問スレッドpart17【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/05/17 17:14ID:AT+bUkag・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。
■本家
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-4
抜けているものがあったら補足願います
0002nobodyさん
04/05/17 17:16ID:AT+bUkagPart1 : http://ebi.2ch.net/php/kako/982/982687820.html
Part2 : http://pc.2ch.net/php/kako/1003/10032/1003283567.html
Part3 : http://pc.2ch.net/php/kako/1013/10139/1013919792.html
Part4 : http://pc.2ch.net/php/kako/1022/10229/1022999539.html
Part5 : http://pc.2ch.net/php/kako/1031/10317/1031721334.html
Part6 : http://pc5.2ch.net/php/kako/1038/10389/1038988518.html
Part7 : http://pc5.2ch.net/php/kako/1044/10444/1044478561.html
Part8 : http://pc5.2ch.net/php/kako/1050/10502/1050249148.html
Part9 : http://pc5.2ch.net/php/kako/1057/10579/1057947512.html
Part10: http://pc5.2ch.net/php/kako/1064/10641/1064104114.html
part11: http://pc5.2ch.net/php/kako/1067/10676/1067635640.html
part12: http://pc5.2ch.net/test/read.cgi/php/1070639208/
part13: http://pc5.2ch.net/test/read.cgi/php/1073291978/
part14: http://pc5.2ch.net/test/read.cgi/php/1076163015/
part15: http://pc5.2ch.net/test/read.cgi/php/1078592587/
part16: http://pc5.2ch.net/test/read.cgi/php/1081267619/
※前スレからの引用修正
0003nobodyさん
04/05/17 17:16ID:AT+bUkag2ch Pear Wiki
http://pear.sakura.vg/
PHP Kitchien
http://www.phpkitchen.com/
PHP Developer
http://www.phpdeveloper.org/
phpPatterns
http://phppatterns.com/
Perl/PHP Translation
http://www.cs.wcupa.edu/~rkline/perl2php/
0004nobodyさん
04/05/17 17:17ID:AT+bUkag・参考スレとか
質問される方は聞く前に調べたほうが良いと思われます。
2ch 総合ガイド
http://www.2ch.net/guide/
CGIに関する質問はこちらで
[CGI: Common Gateway Interface part 11 ]
http://pc5.2ch.net/test/read.cgi/php/1055597189/l50
CGIとPerlの区別がつかない方はこちらも
[△▲ WebProg 初心者の質問 Part8 ▼▽ ]
http://pc5.2ch.net/test/read.cgi/php/1078568723/
※過去ログに行っている場合がありますので、
見れない方は同じような名前の板を探してください
0005nobodyさん
04/05/17 21:56ID:???00071
04/05/17 22:57ID:???http://pc2.2ch.net/test/read.cgi/php/1056969979/
Pear
http://pc2.2ch.net/test/read.cgi/php/985665522/
【PHP】Smarty【Template】
http://pc2.2ch.net/test/read.cgi/php/1047225437/
■PHP関連の書籍(但しPHP出版系お断り)
http://pc2.2ch.net/test/read.cgi/php/985315574/
見落とした...。
前スレからのコピペだけどアドレスこれで合ってる??
0009nobodyさん
04/05/18 04:30ID:???require( 'config.php' ); //$db_host user passのデータ
$dname='create'; //データベースname
$dtable = 'test'; // テーブルname
$fname = 'name'; //フィールドname
$data = 'data'; //DATA
$db=mysql_connect($db_host,$db_user,$db_pass)
or die("error [$db]");
$check=mysql_select_db($dname);
if(! $check){
print ("{$dname}を作成しました<br>");
$check=mysql_select_db($dname);
}
$test = mysql_query("SELECT $fname FROM $dtable WHERE name='$data'");
if (!$test){
mysql_query("CREATE TABLE $dtable ($fname varchar(50) NOT NULL default '')");
print("テーブル作成<br>");
}else{
$rows = mysql_num_rows($test);
}
if ($rows <= 0 || !$test){
mysql_query("INSERT INTO $dtable ($fname) VALUES ('$data');");
print("レコード作成<br>");
}
mysql_close($db);
てな感じでデータベースが無ければ作成しテーブルやレコードもなければ作成するというのを試しに作ってみたのですが、
望む結果は得られましたがこんな感じでいいのでしょうか?
よい見本などがみあたらず手探りで作ってみたので非常に不安です。
あと、もっと複雑なデータベースを作りたいときに外部のSQLファイルを読み込んで作成とかさせる場合どうしたらいいのでしょうか?
0010nobodyさん
04/05/18 06:31ID:jcKTntdattp://syokunin.no-ip.org/で配布されてるweb_cart 1.02を落としました。
手順に従って設定して、設置はできたんです。
試しに注文してみたら注文者側には確認メールが届いたんですけど、
こっち(発売側)にはメールが届かないんですよね。。。
よくよく設定ファイルを見てみたら、
メールフロムという箇所しか、メールを設定するとこがないんです。
どうやったら、発売側にメールが届くんでしょうか。。。
どなたか解る方、いらっしゃいましたら、ご教授願います。
0012nobodyさん
04/05/18 07:11ID:???何を作ってるのか・作りたいのかにもよるけど
一般的にはテーブルはあらかじめ作っておくもの
あなたが何を知りたいのかがよくわからないけど
文章から察するにもうちょっとDBをどうやって扱うか、
どういうものなのかっていうのを調べた方がいいような気がする
0013nobodyさん
04/05/18 07:14ID:???ttp://syokunin.no-ip.org/setumei/settei_php.htm
注文者が入力したアドレスと同時に、$mail_fromに設定されている
アドレス(店側)にもほぼ同じメールを送信する仕様っぽい。
その辺はちゃんと設定してあり、かつ受信できるようになってる?
・・・と言うか板違いだ(゚Д゚ )ゴルァ!!
0014nobodyさん
04/05/18 07:22ID:???ぱっと見た感じ $mail_fromに設定すれば動くはずだよ。
同じ場所でTo:違いのメールを2通送信しているので片方が届いていれば鯖のメール設定も問題なさそうだし。
ああ、リロードしたら先に書かれてるよ...鬱だ寝よう...
001510
04/05/18 07:31ID:jcKTntdaサーバーのPHPのバージョンが4みたいなんだけど、
それのせいでしょうか?
$mail_fromの箇所をhotmailに設定してみたんだけど、全然届きません。
ウワァァァァァァヽ(`Д´)ノァァァァァァン!
001610
04/05/18 07:47ID:???どうやらhotmailのせいでした。。。
プロバイダから割り当てられたメアドで試したところ、
ちゃんとメールが帰ってきました。
板違いすいませんでした。。。
m(_ _)m
>>13
>>14
ありがとうございました。
00189
04/05/18 13:38ID:???何がつくりたかというかというと、遠い道のりですが最終的にはXOOPSとかみたいなかんじで
使う人があまりDB意識せずつかえるものをつくりたいと
まずは初心者らしく
てはじめにカウンターをとおもい、MYSQL使わないものと使ったものを作り
その後ipとusernameとpassword設定しておけば
データベースやテーブル、レコードなどを自動的に作るようなカウンターにしてみたいなと思い
テーブルやレコードなどがあるか?無い場合の作成はどうすればいいのか?
を調べる意味でつくってみましたが
一般的な方法としてはどんな方法があるのかきになりまして。。
0019nobodyさん
04/05/18 13:51ID:???勉強の一環として試しに作ったのであればいいんだけど
そのソースを発展させて作り上げていくつもりなら
通常のDBアクセスと、DB構築の処理は切り分けておくべき。
一番無難なのはDB周りの処理を1つまたは複数のクラスとしてまとめて、
DB構築部分は、install/install.phpのようなスクリプトにしておく。
あとは初期化時に直接install.phpを手動で開くようにしてもいいし、
index.phpなどからinstall.phpにLocationで飛ばしてもいい。
XOOPS含め大抵の物はこういった手法でやってるよ。
先人が残してくれてるソースコードを参考にしなきゃ損々。
0020名無しさん@お腹いっぱい。
04/05/18 14:48ID:w7i8F8Vxecho "$hoge[$i][1]";
上だと値がちゃんと表示されます。
下だとArray[1]表示されてしまいます。
""で囲った形で値を表示するにはどうすりゃよいでしょうか?!
0021nobodyさん
04/05/18 14:51ID:???002220
04/05/18 15:07ID:???ありがとうございます。
0023nobodyさん
04/05/18 15:12ID:???ttp://jp.php.net/manual/ja/language.types.string.php#language.types.string.parsing.complex
0024nobodyさん
04/05/18 21:30ID:???外部コマンドを非同期で呼ぶ方法を教えてください。
時間のかかる夜間バッチを、PHPの画面からボタンをクリックして
起動するようなイメージです。
当然バッチの戻りを待つ必要はありません。
環境
RedHat 9 / PHP 4.3.5 / apache 1.3.29
exec() 等で起動したいコマンドを指定すると、起動したコマンドが終わるまで
PHPが待ってしまいますが、どうやったら待たずに、即座にPHPに処理を戻せますか?
調べたところ、下記のようにコマンドの標準出力を /dev/null にリダイレクト
させるとうまくいきましたが、これしかないのでしょうか?
exec("batch.sh > /dev/null");
下記にも似たようなことが書いてありました。
http://ns1.php.gr.jp/php-jp/archives/msg07476.html
http://www.php.net/manual/ja/function.exec.php
exec("batch.sh &");
ではうまくいきませんでした。
0025nobodyさん
04/05/19 00:02ID:???FormからpostでUTF-8の日本語ファイルを選択(ここまでは正常)してsubmitすると$_FILEで取得した日本語ファイル名が空白(NUL)になってしまいます。
なんででしょーか? $_POSTを試してみます。
0026nobodyさん
04/05/19 01:42ID:???させているのですが、再読み込みをするとインラインフレームの中が全画面で表示されてしまいます。
インラインフレームの定義を保持したままでリロードする方法を教えてください。
0027nobodyさん
04/05/19 02:01ID:???ファイル名が空白?ちゃんとファイルがPOSTされてるのは確かなの?
>>26
Javascriptでインラインフレーム内のフォームにPOSTさせるとか
0028nobodyさん
04/05/19 02:28ID:???JavascriptからPHPへの受け渡して経験ないんですが、それにしてみます。
0029nobodyさん
04/05/19 09:30ID:???003025
04/05/19 13:02ID:???ファイル名の最初が日本語だと「日本語」がカットされます。
例 あいうえお.zip
ポストすると
.zip(2000Pro+IE6)
NUL(OSX10.3+IE5.2)
NUL(OSX10.3+サファリ)
あいうえお.zip(OSX10.3+モジラ)
あいうえお.zip(OSX9.2+IE5.1)
などなど
最初はOS9でPHP作ってたから気が付かなかった...
0031nobodyさん
04/05/19 14:01ID:???targetてフレーム名でも指定できるんですね。ありがと
0032nobodyさん
04/05/19 14:02ID:OfngxgLc0035nobodyさん
04/05/19 16:22ID:7KZLVZlc入れたパソコンは問題なくp2が動作したのですが
他のパソコンから見ようとするとネットワークパスワードを求められます。
ここが問題なのですが正しいパスワードを入れても認証に失敗します。
環境
windows2000pro / PHP 4.3.5 / IIS5.0
どうすれば他のパソコンから見れるようになるでしょうか?
0037nobodyさん
04/05/19 16:44ID:7KZLVZlcめくらってなんですか?
2ch語?
0040nobodyさん
04/05/19 16:53ID:7KZLVZlc以後気をつけます
0041nobodyさん
04/05/19 17:30ID:???http://www.google.co.jp/search?q=%E3%82%81%E3%81%8F%E3%82%89%E3%81%A8%E3%81%AF&ie=UTF-8&hl=ja
0042nobodyさん
04/05/19 17:34ID:???csv形式のテキストから一文字ずつ配列に取ってきているんですが、fgetcsvでエラーが出てしまいます.
print_r ($csv)とすると
2004,記念の,テスト
となり
print "$csv[0]$csv[1]$csv[5]$csv[6]"とすると
20,記
となります。
$data = fgetcsv($csv, 10000, ",");
にするとえらーがでてしまうのですが、どうやったら$dataに","を抜いた形で配列に入れることが
できるんでしょうか?よろしくお願いします。
0044nobodyさん
04/05/19 17:54ID:???0048nobodyさん
04/05/19 18:41ID:???$lines=count($data)
for($i=0; $i<$lines; $i++){
mb_ereg_replace(",","",$data[$i]);
}
0049nobodyさん
04/05/19 18:41ID:???$csvには何が入っているのさ?
質問内容を整理して、マニュアル読んで、ぐぐって、それでもわからんかったら書き込めよ
0050nobodyさん
04/05/19 18:43ID:???0051nobodyさん
04/05/19 19:32ID:???PHPはApacheのモジュールとして動かしてるのでこのマルチバイト文字列関数を
/usr/lib/pgsrl.so
などのようにコンパイルする事は出来ますか?
PHPをソースコンパイルしろってのはナシで。そうするとApacheのコンパイルもsslやらなんだかんだoption付けないといけんので手間が掛かりすぎるからです。
ぶっちゃけマルチバイト文字列関数が使えるRHL9のrpmさえあればいいんすが...
0052nobodyさん
04/05/19 23:14ID:???0053nobodyさん
04/05/19 23:41ID:???まぁLinux板にも質問してるんだけどw
http://www.teu.ac.jp/chiit/~yuhei/rpms.html
ここから手に入れてrpm -iしてんだけど、入れ替わってくれん...
0054nobodyさん
04/05/19 23:47ID:???# rpm -qi php-4.2.2-17.2.mbsupport.i386.rpm
パッケージ php-4.2.2-17.2.mbsupport.i386.rpm はインストールされていません
なんでだ??
0055nobodyさん
04/05/20 00:16ID:???PHPをソースから入れるにはApacheもソースから入れなきゃならんと思っているのに、偽造500ウォン
んで、モジュールのみコンパイルしてインストールすることも可能なはずですよ。
0056nobodyさん
04/05/20 09:17ID:???どうすればよいでしょうか?
たとえば「12000」という数字を「12,000」として表示したいです。
0058nobodyさん
04/05/20 10:19ID:???頼むから
0059遅くなって申し訳ない1
04/05/20 10:19ID:q5E1Ags3#亀レススマソ…
☆ P H P 5 ☆
http://pc5.2ch.net/test/read.cgi/php/1056969979/
#次スレのテンプレ作成時に指摘ヨロ>>980あたり
0060nobodyさん
04/05/20 10:21ID:???0062nobodyさん
04/05/20 10:52ID:WaBVWaFV0064nobodyさん
04/05/20 12:13ID:NShBOzWM�@Perlでは別インストールで多くの人が知らないデーターベース利用を標準で使用できるようにし、「データーベースが簡単に取り扱える」というイメージを特に強く植えつけた。
�Aウェブサイト作成への特化。例えば、セッション管理がそうだ。
�Bソースの隠蔽による著作権保護を可能にした。
データーベースを使いたいが、使い方がわからない。そこに、PHPなら使えるという情報が先に入る。これで、PHPに入った人もかなり多いはず。
PHPの言語仕様はZendに大きく左右される。
二年ほど前、PHPが出始めた頃には、変数のスコープがPerlとまったく同じ仕様だった。
もともと、Perlのソースコードを改編して作成されたPHP。
↓PHPの歴史
http://php.planetmirror.com/manual/ja/history.php
PHPには、Perlコードの退行による高速化の意図が言語のいたるところに見える。
マイクロソフトは、オブジェクト指向への対応というのが大義にVB6.0からVB.NETに言語仕様を大幅に変えた。
今後も大きく言語仕様が変わることはないのか?
オープンソースとは言っても、Zend社の
http://www.zend.com/management.php
の数人のスタップによって大きく左右される。
再帰的定義とされる「PHP:Hypertext Preprocessor」という名前にも理由がある。これは、要するに、正確には、「Perl Hypertext Preprocessor」としたいところだが、GNUの「GNU is Not UNIX」という再帰的な定義をもじったものだ。
要するに、「GPLのフリーソフトのライセンスには違反していませんよ!」と一つには主張し、また、一つには、「PHP is Not Perl」とでも言って、Zendの社としての姿勢を、先人の「Perl開発者たち」から擁護する意図があったのだろう。
Nではなく、Hなのが、そのための味噌だ!Perl開発者たちは、当然、面白くないはずだ。
PHP信奉者は、六芒星(hexagram)マークのユダヤ教にでも、入信せよ!
…といいつつ、かく言う私も、PHPに乗り遅れまいと必死だが…。(^^;)
0065nobodyさん
04/05/20 12:23ID:???ぶっちゃけ55氏の指摘に追加で500ラデック
PHPのビルドは、はまると結構掛かるので
ttp://www.softagency.co.jp/mysql/LAMP/download.html#aka9
辺り使っといたら?MySQLサポート外すならSRPMからリビルドね。
0067nobodyさん
04/05/20 14:50ID:???素人ながらオブジェクト指向なコーディングをするように考えていますが、
なるべく単純で、良いお手本となるソースを公開してるところはありますか?
0068nobodyさん
04/05/20 15:00ID:???0069nobodyさん
04/05/20 15:01ID:???0070nobodyさん
04/05/20 15:13ID:???めくら:目が見えない人
文盲:字が読めない人
明盲(あきめくら):字は読めるが文章が理解できない人
0071nobodyさん
04/05/20 16:24ID:YWvMGF1q通常のメール送信はできるのですが
メール送信を行った後、別のページ(例:thanks.html)
へ飛ばしたいのですが、
if (mb_send_mail($To, $MailSubject, $MailMessage, "From:$From")) {
header("Location: thanks.html");
}
else {
echo "$cnf_NgMsg\n";
}
これだと下記のエラーがでます。
Warning: Cannot add header information - headers already sent by (output started at /home/***/***/***/index.php:6) in /home/***/***/***/mail/mail.php on line 140
form/index.php にフォームがあり、form/mail/mail.phpへ引数を渡して、
mail.phpでメールを送信している感じです。
このような場合locationを使うのは不適当なのでしょうか?
007271
04/05/20 16:26ID:YWvMGF1qメール自体は送信できるのですが、別ページに飛ばす事ができませんです。。。
007371
04/05/20 16:35ID:YWvMGF1qお邪魔しました。。
0076nobodyさん
04/05/20 18:55ID:???0079nobodyさん
04/05/20 20:02ID:???0080nobodyさん
04/05/20 21:18ID:???例えば"あひゃ"を反転させ、"ゃひあ"にしたいんですが
現時点では"痰ミあ"となってしまいます。
0081nobodyさん
04/05/20 21:23ID:???0083nobodyさん
04/05/20 22:22ID:???ここにある高速チャットを設置すると以下のようなエラーメッセージが出るんですが
どうすればうまく行きますか?
Warning: session_start(): open(/tmp\sess_7bede8e58cf70ade30189aa799a60b24, O_RDWR) failed: No such file or directory (2) in C:\home\chat.php on line 2
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at C:\home\chat.php:2) in C:\home\chat.php on line 2
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at C:\home\chat.php:2) in C:\home\chat.php on line 2
Warning: Unknown(): open(/tmp\sess_7bede8e58cf70ade30189aa799a60b24, O_RDWR) failed: No such file or directory (2) in Unknown on line 0
Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0
0084nobodyさん
04/05/20 22:23ID:???Perlの時に動いていたSuexec機能はPHPでは効いていないようで、PHPから作成したファイル・ディレクトリが全てapacheのデフォルトの権限で作成されてしまいます。
なんとかPHPでもSuexec機能を使うことはできませんでしょうか?
環境は
FreeBSD 4.9
Apache 2.0.49+PHP4.3.6+MySQL4+Suexecです。
宜しくお願いします。
0085nobodyさん
04/05/20 22:34ID:???いわゆるオブジェクト指向的な
プログラミングの参考には
それほどならないだろう。
0088nobodyさん
04/05/20 23:36ID:???アプリの使い方は、アプリのところ(最も適した場所)で訊きなさい。
>>84
PHPをApacheのDSOとして組み込んじゃなくて、
CGI版のPHPをsuExecと組み合わせる。
今のバージョンのPHPはデフォルトでCLI版はビルドするけど
CGI版はオプションつけてやらないと生成しなくなってた気がする。
ところで"Suexec機能"って何?
その辺で認識違がある気がしないでもない。
0089nobodyさん
04/05/20 23:37ID:???アプリの使い方は、アプリのところ(最も適した場所)で訊きなさい。
>>84
PHPをApacheのDSOとして組み込んじゃなくて、
CGI版のPHPをsuExecと組み合わせる。
今のバージョンのPHPはデフォルトでCLI版はビルドするけど
CGI版はオプションつけてやらないと生成しなくなってた気がする。
ところで"Suexec機能"って何?
その辺で認識違がある気がしないでもない。
009089
04/05/20 23:37ID:???0091vv
04/05/21 02:16ID:???レンタル鯖使ってケータイ用サイト作ってます。
が、エンコード方法で困ってます。
やってること:
1 EUCで保存しているテキストファイルを読み込み
2 Shift-Jis変換してEchoで表示させる
ということをしたいのですが
mb_http_output('SJIS');
とかやってもうまくいきません。
なにか別の方法があるのでせうか?
0092nobodyさん
04/05/21 04:03ID:???echo mb_convert_encoding($str, "sjis", "euc");
とりあえずこれでやれ
それでなんでうまくいかないかは調べろ
てかマニュアル嫁
0094nobodyさん
04/05/21 13:35ID:9biQDb7uサイト閲覧者のブラウザー情報のうち、
表示領域の高さを取得することってできますでしょうか?
わかるかた、おながいします!
0096nobodyさん
04/05/21 13:45ID:???0097nobodyさん
04/05/21 13:50ID:???0098nobodyさん
04/05/21 13:55ID:9biQDb7u分かるのかな。などと、考えていたの私が愚かでした。
java縄で首括ってきます。
ブラウザーの検出方法
ttp://hotwired.goo.ne.jp/webmonkey/review/index82_page2.html
色深度の検出方法
ttp://hotwired.goo.ne.jp/webmonkey/2001/18/index0a.html
0099nobodyさん
04/05/21 14:02ID:???PHPで色深度検出ってなんじゃそりゃって思ったら、そういう環境変数を吐くブラウザの話じゃねーか
同じことしたいなら環境変数に「表示領域の高さ」吐くブラウザ作れ
でもってその場合もやっぱり板違い
0100nobodyさん
04/05/21 14:04ID:9YHKUH0F0101nobodyさん
04/05/21 14:12ID:???板違い
■ このスレッドは過去ログ倉庫に格納されています