トップページ⇒php
986コメント299KB

【PHP】初心者コーナー 

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。02/01/21 03:21ID:???
長島も阪神のコーチになった。
仕方ない、人気のないPHPを応援してやる。 

データベース禁止 MySQL PostgreSQL はどっかいけ。
純粋にPHPプログラミングだけ。
初歩的な事ならWebProg板の誰かが素早く教える。
もちろんPerlプログラマーも手伝ってくれ。
ほんじゃ質問してみ。

 >>2-9 誰か情報かいてくれ。
0751nobodyさん03/03/04 02:25ID:???
そんな事かく間にPerlなりPHPを本を読んで実践すればと思うのだが。
どんな良い学校いっても繰り返し書かなきゃ身につかんぞ。
075274403/03/04 02:31ID:+uHTLPA4
    >/////ノノノノノ
    ミム     \     
   |ラ  \ / |
   |/  (・) (・)|  / ̄ ̄ ̄ ̄ ̄
   (6     ......>...| < >>750両方いっぺんにかよ!
   |   / ̄ ̄7|  \_____
    \   ̄::: ̄∠
    /^ ∠U>_」ニ了

まぁ、もしか簡単なイントラ向けcgiならトライするのも有りかと。
0753 ◆kaHG.XGS1s 03/03/04 08:24ID:???
>750
http://itb-tech.itboost.co.jp/
ここ見ながら何とかならないですかね。

というか、やっぱどっちか片方に絞った方がいいと思うけど。
何か一つさわって、次っていうのと、二つ同時にさわるってのは
やっぱ難易度違うと思うよ。
0754nobodyさん03/03/04 08:29ID:???
>>753
つぅか思想の時点で違うからなぁ・・・。
0755SMTP03/03/04 12:13ID:h/lVtdgr
漏れはデザイナからスクリプター(PHPやPerlでプログラマっていうのも
おこがますい。)に転身すますた。もともとデザインの才能がなかったか
ら漏れとしてはWEBで比較的なPerlから入れたのはラッキーだった。
もうデザインの仕事なんて全然してない。結局誰にも教わらなかったし
周りにそんな事をやってるヒトがいなかった。今もだけど・・・。
しかし。。。やはりオブジェクトの世界にはもう一歩踏み入れない壁が
あるのも確か。やる気があるなら基本を学校で学ぶのも一つの道かもと
思ふ。
0756 ◆STEELmK8LQ 03/03/04 12:16ID:???
>750
 簡単に言うと

Perl:
 ウェブでドライヴするためには「CGI」として駆動させるため、少なからずapcheなり
TCP/IPなり、あるいはHTTPの仕組みを理解することが必要。
 一例を挙げると、フォームなりなんなりで取り込んだデータをHTTPリクエストから
取り出したり、あるいはスクリプト内部でHTMLを生成してHTTP様式を調えた上で
返したり、という部分を(ライブラリや外部モジュールがあるにせよ)スクリプト内部で
全て面倒見てやらなければならない。

PHP:
 ご自分でお書きになっているようにHTML内部に書いていけるので、スクリプタと
デザイナさんの間でコラボが割とラク、DreamWeaverなどのデザインツールが使える
のは大きい。
 ただし、処理が一筆書き(最初から最後まで一度舐めておしまい)なので処理の
順番をきちんと組み立てる必要がある。
 フォームやDBとの連携がラク
 ただし、PHP自体のバグ(4.2.3ではバグモジュール組み込むとフォームの頭4byteが
消えてしまったり)が割とあるので情報収集が欠かせない。

 というかんじでしょうか。

 どちらかというとスクールに通うよりは、まず一つ何か良くできたPHPのスクリプトを
探してきて、徹底的にそれを解析した方が良いと思いますよ。

 例えば、の話ですが簡易掲示板のスクリプトをどこかからか見つけてきて、それを
徹底的に解析していれば、いろいろと「ここをこうしたら」的な思いつきが出てくる
でしょうから、それにもとづいてリファレンスを読みつつ手を加えていく・・・みたいな
順番が一番判りやすいのではないかと。
0757 ◆STEELmK8LQ 03/03/04 12:19ID:???
>756
 ちなみに>756では、なにやらPerlに制約が大きいような話をしてますが、それはあくまで
CGIとしてPHPと比較した場合の話であって、ふだんのサーバ管理にはPerlにお世話に
なってます。
 非常に幅広い能力と柔軟性は、わしのようなニセサーバ管理者にとっては手放せない
ほど、本当に便利に使わせてもらってるんですが、特定分野に限って特化したものと
比較すれば・・・とい宇話だとおもってくだちぃ

 ちなみに、わしは鯖缶からスクリプトいじるようになりました。
 PerlもPHP(+MySQL)も両方とも大変便利に使わせていただいておりますです。
0758SMTP03/03/04 13:16ID:h/lVtdgr
$test と ${'test'} が同じというのはいったいどういう事なんだ?
こういう事はエセスクリプターにはよくわからん。

PerlとPHPかぁ。うーーん。PHPは若い言語だから、バーションやら設定やら
でいろいろ違うし、まずは安定感のあるPerlの方がそれなりに洗練された本
やら説明が多いので無難なのでは・・。
0759nobodyさん03/03/04 13:21ID:sa1CIWq+
>>758
Perlだと、${'test'}はシンボリックリファレンスとして扱われる。
$test = 'hoge'; $$test = 1;
print $hoge; #これは1になる!!
0760nobodyさん03/03/04 21:47ID:???
>>759
【待望】PerlユーザのためのPHP入門
http://pc2.2ch.net/test/read.cgi/php/1046326634/l50

ウザイのでこちらでどうぞ。
0761の03/03/04 23:27ID:CT6PyLHU
>>736
おっと、タグ内のアイテムを分解してるのか。
次のように修正してみ。

@@ -68,7 +68,7 @@
$arItems[$itemCount]->xTitle = $data;
}
elseif ($curTag == $itemLinkKey) {
- $arItems[$itemCount]->xLink = $data;
+ $arItems[$itemCount]->xLink .= $data;
}
}
--
俺的ポータルサイトを作ろう
http://mysite.ddo.jp/
0762nobodyさん03/03/05 02:04ID:???
>>761
これ、なんか凄いな。
俺もこういうにが作りたい・・・
0763nobodyさん03/03/05 14:23ID:???
俺もこういうにが(・∀・)イイ!!
0764nobodyさん03/03/05 14:27ID:ynGx9XlK
PHP4のセッションでhtml内のソースに勝手に<form action...>の後に
<input type="hidden" name="PHPSESSID" value="********" />
を付けて返してくる事があるんだけど、これはなんでだ?

同じサーバで運営してるアプリで出るヤツと出ないヤツがある。
0765nobodyさん03/03/05 14:28ID:???
>>764
いや、セッションID・・・。
0766>>76503/03/05 15:05ID:???
それはわかるんだけど、セッションIDはクッキーで受け渡してる
んじゃなかったけか?他のアプリではHTMLソースに勝手にhidden
でセッションIDを付け加えるなんて事なかったのになんでこれだけ・・。
0767nobodyさん03/03/05 15:07ID:???
>>766
cookieを受け付けないUAもいるからね。それ対策だよ。たしか。
0768nobodyさん03/03/05 15:12ID:???
マニュアル嫁
0769nobodyさん03/03/05 15:25ID:???
session変数って配列を格納することはできますけど、
配列で格納することってできるんでせうか。
$_SESSION["test[]"] = 値;
こんな風に
0770nobodyさん03/03/05 15:31ID:???
>>769
$test = array();
$_SESSION["test"] = $test;

状況は変数と同じ。
0771>>737 >>76803/03/05 15:32ID:???
わかった。php.iniのsession.use_trans_sidをOnにしとくと
クッキーが使えない環境の場合勝手にhiddenを埋め込むんだ。
じゃぁ、なんで漏れのブラウザはクッキーだめなんだ??
って他のサイトではクッキーバリバリ食ってるのに???
あっ、汚してスマソ。

>>769
それは無理じゃない。
0772nobodyさん03/03/05 15:50ID:???
>>769
$_SESSION["test"][] = 値;
0773nobodyさん03/03/05 15:54ID:???
>>770
あーその方法は無理っぽいです。
A(フォーム)→B(セッション変数に格納)→A→B...C(DB登録)
って風にBに行くたびAの内容をセッション変数に入れて、
最終的にCで配列を結合して一行の文字列にしてDBに登録っていう
ややこしいことをやってるんですよー(そういう仕様で作らなくてはいけないらしいのです)。
なんで個人的には登録済みのセッション変数を検索できたら一番いいんですが。

>>771
無理ですかー。どうもです。
0774769=77303/03/05 15:56ID:???
>>772
773書いてる間に見過ごしてました。
試してみます。
0775 ◆Kiss.FX29M 03/03/05 16:23ID:???
>>771
1発目は出てくるかもしれんが、2発目からは出てこなくなるだろう。
077676903/03/05 16:38ID:???
>>772
その方法でできましたーありがとうございます!

>>770 >>771
重ねて御礼申し上げます。
参考になりました〜。
0777nobodyさん03/03/05 16:50ID:???
うんこ
0778nobodyさん03/03/06 00:49ID:/MagQTVJ
そう言えば俺の作ってるアプリでセッション使ってるんだけど
時間帯によって Cookie だったり hidden(URL) 埋め込みだったりするんだけどこれなんで?
家からアクセスするとCookieになるが、会社で昼の糞重い時にアクセスするとURLにくっついてきた。
でも会社からでも4時ごろの比較的回線の空いてる時間なら Cookie・・・・。

???
0779nobodyさん03/03/06 11:31ID:???
CGIでよくある投票ができるPHPスクリプトをフリーで配布されてるところ
ご存知ないでしょうか?
自分で作れるほど根気がないので、いただけるところを探しているのですがなかなか
見つかりません。↓が唯一みつけたところですが、ほかにご存知でしたら教えて
下さい。CJ-clubさんのVotec.cgiみたいのをさがしてるのですが。。。
ttp://wapiko.net/home/akane/php/php_dl.php
0780>>77803/03/06 11:54ID:???
前にも書いたが、漏れの場合、同じサーバ内のアプリ毎に
セッションの受け渡し方が違っちゃう。

>>779
自分で作ろう!その方が早い気がするがするニダ。それ程
難しくないぞ。
078177903/03/06 12:53ID:???
>>780
自分で・・・ですか。
とほほさんところみたいに分かりやすくて、オフラインでじっくり読める
PHPの解説サイトあったら教えてください。
常時接続ではないのでなるべくオフでみながらやりたいので・・・
0782nobodyさん03/03/06 15:52ID:???
>>781
保存すればいいじゃん。
0783nobodyさん03/03/06 16:00ID:???
>>761
@@ -68,7 +68,7 @@の箇所でParse error

内容はよー分からんが、このスクリプトって
自分のサイトのヘッドラインを表示させる為だけのものだと思う
改造して他で使うには無理があるような気がするが・・・
0784nobodyさん03/03/06 17:43ID:???
>>781
つか、chm版のPHPマニュアル落としたら?
4M強あるけど。
0785nobodyさん03/03/06 18:01ID:???
>>784
ダイアルアップだと20分近くかかってしまう罠。
0786nobodyさん03/03/06 19:37ID:???
>>785
その数十倍の時間にらめっこするわけだが?
簡単なトレードoffじゃないか。
0787の03/03/06 21:12ID:wBqlWOJl
>>783
diff の表示をそのまま入れてどーする。"." を一個入れるだけだ。
元のコードも直してあるから、diff が判らなんならこっち。
http://vivian.mysite.ddo.jp/~nobu/xmlcastrss.txt
同じく動いているのは、.php だ。
--
俺的ポータルサイトを作ろう
http://mysite.ddo.jp/
0788nobodyさん03/03/06 23:55ID:???
>784
DLしたchmを開いたら「ページを表示できません」言われました…
0789nobodyさん03/03/07 00:37ID:???
>>788
このスレの>>582から読んでみ
0790nobodyさん03/03/07 18:08ID:???
>789
過去ログを読むと言う基本を忘れてました(つかリアルタイムで読んでたのに)
ありがと

今後の人のために:ここから→ttp://www.php.gr.jp/project/doc/
(日付は本家のものより古いようですが内容の差異については不明です
作業をされていらっしゃる方々に感謝します)
079173603/03/08 06:36ID:???
>>761
おおっ 動きました
そうか・・・結合演算子だけでよかったのですね
難しく考えすぎておりました なんにせよわざわざありがとうございました。
0792nobodyさん03/03/08 07:21ID:???
<?php
$a_array = array("1:b","1:a","11:a");
sort ($a_array);
foreach ($a_array as $value){
print $value."\n";
}
?>
を実行すると、
11:a
1:a
1:b
となってしまいます。
1:a
1:b
11:a
としたいのですが、どのようにすれば良いのでしょうか。
079379203/03/08 08:40ID:???
natsort();
でうまくいきました。
失礼しました。
0794nobodyさん03/03/09 02:39ID:???
>>739
デザイナーだったら、2進法とか、バブルソートとかから勉強した方がいいのでわ?
0795nobodyさん03/03/09 10:34ID:???
>>794
Web制作板ではデザイナーはその辺のコーダとは住む世界が違う人間だそうだ。
0796nobodyさん03/03/09 18:58ID:/LDM9G/p
会社のマシンにApacheとか入れてテストするのは危険ですか?
0797nobodyさん03/03/09 19:02ID:???
>>796
ローカルでやる分には全然問題ないかと。
0798nobodyさん03/03/09 19:52ID:???
いちよー80以外の適当なポートにして・・大丈夫だろうが、危険因子は排除
0799nobodyさん03/03/09 23:47ID:/LDM9G/p
>>797 >>798
アドバイスありがとうございます。

ところで、MySQLとPHPを使ったデータベースを作成するなら、
まずどちらを先に勉強したほうがいいでしょうか?
0800nobodyさん03/03/10 00:32ID:???
>>799
どっちでもいいよ、結局どっちも知らなきゃ組めないし。
0801nobodyさん03/03/10 00:57ID:???
>>799
結局同時進行になると思われ。
まぁ、作りながらならPHP > NySQL > PHP > MySQL
ってな感じになると思うけど。
0802nobodyさん03/03/10 07:38ID:???
    _____
   /二二ヽ
   ||・ω・||  <俺、失職しちゃったよ
.  ノ/  / >      俺、失職しちゃったよ
  ノ ̄ゝ
0803nobodyさん03/03/10 13:41ID:2kdAUSJ0
PostgreSQL 7.2.3からPostgreSQL7.3.2に変更したところ、
PHPでlo_unlinkを使用する箇所で下記のようなエラーが出ました。

[ SQL文 ]は失敗しました。
ERROR: Function lo_unlink(text) does not exist Unable to identify a function
that satisfies the given argument types You may need to add explicit typecasts

動作的に使用しなくても問題はないように思えます。
postgreSQLのバージョンアップにより、lo_unlinkは使用しなくても良くなったのでしょうか?

「環境」
Red Hat Linux 7.2
PostgreSQL7.3.2
php-4.2.3
apache_1.3.27
0804bloom03/03/10 14:36ID:3QAlitRl
http://www.agemasukudasai.com/bloom/
0805nobodyさん03/03/10 14:50ID:ethusIs+
携帯のサイト作ってるのですが、
掲示板に行くのページに一番最後に書き込んだ人の名前と日にちが、
でるようにしたいのですがどうしたらよいでしょうか?
0806nobodyさん03/03/10 17:03ID:???
>>803
エラーメッセージを見る限り、引数の型が間違っているようですが。
その辺は確認しました?
080760703/03/10 21:42ID:y6h+x0ia
>>805
掲示板がどんなヤツなのかよく解らんが、
書き込まれたデータをテキストで保存している形式なら
CGIで最後のコメントだけ抽出して表示すればいいかと。

マジレス
0808nobodyさん03/03/11 02:09ID:???
>>805
一番最後に書き込んだ人の名前と日にちだけを記録したファイルを作るといいよ。
requireするだけで表示できるし。
0809nobodyさん03/03/11 09:13ID:???
>>808
ダセぇ。
0810nobodyさん03/03/11 09:39ID:???
>>807
こんなやつ作りたいんですけど…
ttp://xx.alpha-sv.com/vf4/cgi/update_bbs.cgi
0811nobodyさん03/03/11 10:04ID:???
>>810
使い倒して仕様を掴む。ソースがある場合は死ぬ気で読み解く
      ↓
判明した仕様通りにコーディング
0812nobodyさん03/03/11 11:10ID:???
>>808
キャッシュ生成すんのがダサいコーディングか?
バックグラウンドがDBだろうがファイルシステムだろうが、
検索コストに比べりゃキャッシュ使うべきところだろ。

ま、名前と日にち"だけ"のキャッシュってことはありえんだろうが。
0813nobodyさん03/03/11 11:13ID:???
>>812
>検索コストに
一番上。
0814nobodyさん03/03/11 11:13ID:???
>>812
なんかphpスレ一帯に煽り耐性のない学生が出没してるな・・・
0815nobodyさん03/03/11 11:35ID:???
>>811
初心者なので全然わけがわからないです。
一応そこの管理人さんにソース?もらったのですがさっぱり…
081681503/03/11 11:41ID:???
他のとこでも聞いてきます。phpで出来なさそうなので
CGIでがんばります
0817nobodyさん03/03/11 11:41ID:???
>>816
そのレベルだとどこ行っても一緒だとは思うけどね。
0818nobodyさん03/03/11 13:04ID:???
>>815
Hello world
からプログラムやり直せ。
081981203/03/11 21:33ID:???
そうか、隠れた指摘でもあるのかと思って反応したのだが、
単なるカルシュウム不足だったのか。牛乳飲んで出直してくるよ

>813
折れの書き方が悪かった。
検索に掛かるコスト>キャッシュに掛かるコスト だから後者を選ぶべきという事が言いたかった。
ただDBMS使っててクエリキャッシュが効いて、そっちの方がコストが小という場合があるかも知れん。
0820nobodyさん03/03/12 04:29ID:???
>>805
$files = file($dat);
$line = $files[0];
0821nobodyさん03/03/12 09:25ID:???
>>820
キャッシュすれば良いんだってさ。わざわざファイル作って。
0822nobodyさん03/03/12 11:47ID:???
>>806
その通りでした。テーブル定義がtextのカラムをlo_unlinkしていたみたいです。
バージョンアップと共にチェックが厳しくなったんですね・・・。
0823nobodyさん03/03/12 20:28ID:Q/ug/Lhk
初心者ですいません、質問ですが、
mb_convert_encodingを使おうとするとエラーが出ます。
undefined function: mb_convert_encoding() とか言われます。
php4.3.1は使える関数じゃないのでしょうか?
使っているバージョンはphp4.3.1+IISです。データベースはMYSQLです。
どうかご教授ください、お願いします。
0824nobodyさん03/03/12 21:15ID:???
>823
php.ini
0825nobodyさん03/03/12 21:55ID:Q/ug/Lhk
>824
ありがとうございます。
いじってみましたがよくわからないのです・・・
php.iniのどれをいじればよいのでしょうか・・・
0826nobodyさん03/03/12 22:06ID:???
mbなんちゃら;
0827nobodyさん03/03/12 22:22ID:???
>823
php.iniの設定も必要(PHP4.2の頃から設定が変わったので注意)だけど、
その4.3.1が--enable-mbstring付きでコンパイルされてないと駄目。
(RCの頃にはデフォルトで有効だったんだけどね…次回バージョンまでに多言語関係の熟成に期待)
再makeするなら、--enable-mbstring=allとして他の言語も入れといて良いんじゃないかな。
その分大きくなるけど。
0828nobodyさん03/03/12 23:26ID:???
>>827
Windows用として配布されてるのはそんな心配ないよ。
php.ini だけ。
0829nobodyさん03/03/13 11:36ID:???
少しPHPから外れちゃうかもしれないんですけど、
登録してもらうときにとりあえず登録してもらって表示するときにいらない要素を排除するのと、
登録の際に評価して削るのはどっちが素敵ですかねぇ〜?
DBの容量も考えたら後者なのかもしれないんですが、少し迷ってみたり。
0830nobodyさん03/03/13 11:38ID:???
>>829
きれい事を言えば後者でしょう。
083182903/03/13 11:43ID:5jM1K4IS
>>830
ソース的にも後者ですかね?
083282903/03/13 11:44ID:???
ageてもうた・・・ハドゥカティ〜
逝ってきます・・・
0833nobodyさん03/03/13 11:46ID:???
>>831
DB使うなら後者でも良いと思いますけど。どうせマーシャル処理が入るんだし。

テキストファイルの時はそのままPOSTメッセージを保存したりもしますけど。
083482903/03/13 12:22ID:???
>>833
自分も後者がいいような気がしてきました。
とりあえずそっちでやってみます〜ありがとうございました!
0835nobodyさん03/03/13 12:53ID:???
>828
おぉう、IIS(=Windows)って書いてありましたな。確かに
0836nobodyさん03/03/13 14:43ID:???
(; ´∀`)?
0837nobodyさん03/03/14 02:37ID:???
揚
0838nobodyさん03/03/14 03:30ID:bKVRIfIQ
アンケートに協力して!

http://multianq3.uic.to/mesganq.cgi?room=yasuhito

毎月アンケートの内容が変わるよ。
0839nobodyさん03/03/14 13:53ID:???
CSVファイルを使っているページで、検索を行う場合、
どのような処理が理想なのでしょうか。
preg_grepで配列に入れて、該当した順番に吐き出したのですが、
マッチする場合とマッチしない場合が出てしまいます。
084083903/03/14 14:58ID:???
PHP 4.0.4以降、preg_grep()により返された結果は、
入力配列のキーを使用して添字が設定されます。
を見落としてました恥
0841nobodyさん03/03/14 20:32ID:???
Perlだとflockでロックして解除しなかったら
ファイル閉じたときに自動的に解除されるけどphpも同じでしょうか

0842nobodyさん03/03/15 12:24ID:???
>>841
直接システムコールを叩いてるだけなら一緒じゃないの?
どっちにしろ激しく非推奨。
0843sage03/03/16 23:41ID:MfieTvGJ
PHPもPostgreSQLも初心者ですparse errorが続出でデバックにかなりの時間
掛かっています、200行こえるとかなりきついっす
あきらめて一晩たってよく見れば } の付け忘れとかどうしたらこういうケアレスミスをふせげるでしょうか、まじ情けないです。
0844nobodyさん03/03/16 23:44ID:???
ちゃんと集中する。
0845nobodyさん03/03/16 23:54ID:???
parse errorを取ることはデバッグといわない罠
0846nobodyさん03/03/17 00:04ID:???
度々再々とチェックする。
0847nobodyさん03/03/17 00:24ID:WZEdmRHq
>>843
844はもっともな答えだが、PHPはスクリプト言語なので、
ケアレスミス程度なら体が覚えるまでerror→訂正ぐらいの
気軽さで勉強しても構わないよ。

昔、パンチテープ(工作機の制御用にまだ使ってた(笑))の時は
そりゃあ、机上デバッグに力入れたもんだが…
0848nobodyさん03/03/17 01:03ID:???
ちょっと聞きたいんですが
Warning: pg_query() query failed: ERROR: parser: parse error at or near "1" in /home/hoge/public_html/hoge.php on line 83
これって2つのエラーメッセージですよね
Warning: pg_query() query failed
これはpg_queryって関数が無いってことでいいのかな?
parse error at or near "1" in ?
or near "1"っこれがちょっとわからないんですが、教えてけれ。

0849nobodyさん03/03/17 01:12ID:???
>>848
んにゃ、pg_query()に渡したsqlが間違っている。
0850nobodyさん03/03/17 03:56ID:???
>>843
そんなもの防ぐ必要がない。
parseエラーなんか、出たら修正すればいい。
メッセージちゃんと読めばすぐ見つけれるようになる。
エラーメッセージ嫁!
■ このスレッドは過去ログ倉庫に格納されています