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

【PHP】くだらねぇ質問はここに書き込みやがれpart9

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/09/03(土) 11:53:32ID:7OO4C5e5
PHPに関するくだらない質問用すれです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい

・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
0074nobodyさん2005/09/04(日) 21:39:31ID:???
>>73
「トラックバック 仕様」でググる
0075nobodyさん2005/09/04(日) 21:40:06ID:???
>>73
TrackBack Technical Specification
ttp://www.sixapart.com/pronet/docs/trackback_spec
日本語だと、トラックバック仕様書 ってな感じかな。ググれば訳があるかも知れず。
0076nobodyさん2005/09/04(日) 22:49:30ID:???
>>73
MovableTypeのソースコードを覗いて研究汁!
0077nobodyさん2005/09/04(日) 23:57:45ID:???
pingだけならpostするだけだろ
0078nobodyさん2005/09/05(月) 01:05:31ID:???
ログイン中のユーザーを把握する方法について質問です。
MySQLに登録したユーザー名とパスワードを利用してログインし、
セッションを使ってサイト内にアクセスできるようなサイトを作っているのですが、
現在ログインしているユーザーを把握するにはどのような方法があるのでしょうか?

ログイン時にログインユーザー管理用テーブルにログイン日時・最新アクセス日時・ログアウトフラグ・ユーザー名を格納し、
各ページにアクセスするたびに最新アクセス日時を更新し、
設定したタイムアウト時間(30分くらい?)以内のユーザーをログイン中のユーザーと判定すればいいかと思ったのですが、
これだと最大30分の誤差が生じてしまいます。
極力誤差を小さくし、なおかつブラウザを開いたまま放置した場合のタイムアウト時間をできるだけ長く取るような方法はあるのでしょうか?

よろしくお願いします。
0079nobodyさん2005/09/05(月) 01:35:15ID:???
CGIのプログラムを作成し、サーバーにアップロードして実行すると以下のような
メッセージが表示されました。

Server error!
The server encountered an internal error and was unable to complete your request.

Error message:
Premature end of script headers: school_blog.cgi

If you think this is a server error, please contact the webmaster

Error 500

これはどのようなエラーなのでしょうか。
0080nobodyさん2005/09/05(月) 01:36:27ID:???
http ステータス
でググる。
0081nobodyさん2005/09/05(月) 01:38:45ID:???
>>78
一定時間毎に見えないサイズのiframeを更新させれば
ブラウザを閉じてしまった人間は把握できる。
開いたままの放置についてはどうしようもないけど。
0082nobodyさん2005/09/05(月) 01:39:48ID:???
>>79
ちょっとスレ違いの予感が
0083792005/09/05(月) 01:41:54ID:???
実は元のCGIプログラムを改造したときにエラーが発生したものです。

メモ帳でCGIのデータを改造したのがいけなかったのかな・・・
ちゃんと上書き保存で保存したんですけど
0084nobodyさん2005/09/05(月) 01:43:44ID:???
>>83
実は、とかじゃなくてそれPHPと関係あんの?
0085792005/09/05(月) 01:47:32ID:???
すみません・・・PHPと関係ない質問をしてしまいました・・・

今すぐ回線切って首吊ってきます・・・
0086nobodyさん2005/09/05(月) 02:12:11ID:???
>>78
「誤差」の意味がわからん。ブラウザを閉じてるか開いてるかを見分けたいってこと?
それだったら>>81のiframeか、もしくはユーザーに気づかれずにやるならAjaxで、短めな一定時間ごとにサーバーにリクエストを送信。
その上でブラウザ放置を見分けるのに「30分」など長めの時間を設けるのもいいし、JavaScriptでキーボードやマウスのイベント発生に関して適宜リクエスト送るっていう荒業でもよいかと。
あとはWeb製作板などの関連スレへ。
0087782005/09/05(月) 02:25:50ID:???
>>81,86
レスありがとうございます。
iframeを埋め込んでおくのが簡単そうなので試してみることにします。
「誤差」というのは、「ブラウザが閉じられてからログアウト判定されるまでの時間」ということです。
「開いたまま放置」はログインしていると判定して問題ないのでiframeで解決しそうです。
008832005/09/05(月) 05:56:36ID:???
>>40
まさにそれです。
日本語下手ですみません。
危険はあるでしょうか?
0089nobodyさん2005/09/05(月) 07:19:20ID:???
質問です
クライアントから送信されるcookieの有効期限を取得する方法はないでしょうか?
0090nobodyさん2005/09/05(月) 07:27:47ID:???
>>89
無いですね。
どうしても有効期限を取得したければ、値の一つとしてcookieに入れておくしかないです。
0091892005/09/05(月) 09:28:45ID:???
やはりそうですか
わかりましたありがとうございました
0092nobodyさん2005/09/05(月) 11:42:15ID:???
echoとprintの違いはなんでしょうか?
0093nobodyさん2005/09/05(月) 11:50:53ID:???
>>92
ttp://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40
0094nobodyさん2005/09/05(月) 12:06:30ID:REUncSgb
会員制サイトを作ろうと思っています。

で、セッションを勉強したいのですけどわかりやすい解説サイトありますか?

(PHP公式マニュアル以外で)
0095nobodyさん2005/09/05(月) 13:52:51ID:???
PEAR::Logってログローテーションできるのかな
0096nobodyさん2005/09/05(月) 14:10:36ID:CxM3rFfK
SELECT * FROM (テーブル名) WHERE (変数) =\"".$(☆)."\"";

↑のSQLの☆の部分にGETで値を引き渡す時に#が入っていると(例:ABC#DE)、
#以降の値が送られないんですが、どうすればいいんでしょうか?
0097nobodyさん2005/09/05(月) 14:12:03ID:???
\#
0098nobodyさん2005/09/05(月) 14:26:10ID:???
>>96
そのSQL文というより、$_GET['〜'] 自体の#DE部分が削られているんじゃないの?
<a href="〜.php?hoge=ABC#DE">link</a>とかになっている場合は、
ブラウザが #DEを削って 〜.php?hoge=ABC とするのは、正しい動作だよ。
どうしても#を入れたい場合は、#の代わりに%23を使って hoge=ABC%23DE のようにする。
0099nobodyさん2005/09/05(月) 14:26:28ID:???
system関数で出力される内容が強制表示されてしまうのですが消す方法はありませんか?
0100nobodyさん2005/09/05(月) 14:31:38ID:???
>>97-98
ありがとうございますた
0101nobodyさん2005/09/05(月) 14:51:17ID:???
FTPについて

$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);

の$destination_fileと$destination_fileの書き方がよくわかりません。
何度やってもサイズ0のファイルが作成されるだけでうまくいかんのです。
0102nobodyさん2005/09/05(月) 14:54:24ID:RuKSzRaH
phpで、ある習い事の申し込みをWEBでできるようなプログラムを作りたいと考えています。
どのようなサイトを参考にすればよいでしょうか?
ちなみに、メールフォームのような形にするのではなく、申し込みの内容をデータベースで保存したいと思っています。
なにかサンプルプログラムなどが置いてあるサイトなどはありませんでしょうか?
アンケートフォームなどを参考にしたらいいんでしょうか?
0103nobodyさん2005/09/05(月) 15:09:40ID:???
外注すればいいと思うよ
0104nobodyさん2005/09/05(月) 15:18:55ID:???
PHP+MySQLとか書いてある本を買って読むといいよ。
プログラミングの分野に明るければ(それなら質問しないだろうけど)ネットのリファレンスとか見れば作れるだろうけど
分からないならネットで調べていちいち質問するよりも、一通り本を読んで分からなかったところを聞いた方がいい。

その習い事の申し込みで会員だけ予約出来る、みたいな事がしたいなら
アカウントの認証とかいう内容にも触れられてる本を選ぶといい。
0105992005/09/05(月) 15:21:19ID:???
事故解決しました
0106nobodyさん2005/09/05(月) 15:48:04ID:???
質問です。
なにも規則性のない数字を一文字ずつ区切るには
どのようにすればできますか?
0107nobodyさん2005/09/05(月) 15:57:44ID:???
>>106
$a = '12316579843654654987354';

for($i=0;$i<strlen($a);$i++){
$b = substr($i,1);
$c .= "".$b." ";
}
echo $c;
初心者です。こんな感じでできませんか?
テストしてません。

preg_replaceとかでもできるかも?
プロの方より良い方法あったら教えてあげてください。
0108nobodyさん2005/09/05(月) 16:38:29ID:???
自己解決したらしたで、後続のためにヒントだけでも欲しいもんだ

>>106
数字の入った文字列であれば、数字を数字+区切り文字に置き換えればいい。
<?
$string = '0123456789'; //置換対象文字列
echo preg_replace('/(\d)(?=\d)/', '${1},', $string); // "後に数字が続く"数字の後に,(カンマ)を挿入
?>
こんなもんでどう?
0109nobodyさん2005/09/05(月) 16:51:55ID:???
>>106
php5ならstr_splitで一文字ずつの配列に出来る
0110nobodyさん2005/09/05(月) 16:56:31ID:???
>>106
まず「区切る」の意味がわからない。
とりあえずPHP5ならstr_splitで、PHP5でないなら、
$array = array_splice(preg_split('//', $numbers), 1, -1);
で1文字ずつ取り出して配列にできるから、
あとはスペースだのコンマだの何かを挿入したいならimplode($separator, $array);で。

$numbersに数字以外が含まれる可能性もある場合に、数字だけを取り出すなら
preg_match_all('/\\d/', $numbers, $matches);
$array = $matches[0];
あとはスペースだのコンマだの(ry
01111062005/09/05(月) 17:23:30ID:???
>>107-110
オマエラすご過ぎマジ感謝です!!
0112nobodyさん2005/09/05(月) 17:33:11ID:???
結局、>>106では、どんな事がしたかったんだろう……。
具体的に言っても貰わんと、どう書いていいのか迷うよな。
せめて、入力データと期待する出力例を言ってくれれば迷わずに済むのに。
0113nobodyさん2005/09/05(月) 17:38:58ID:???
文字列にマルチバイト文字が含まれるかどうかを判定するにはどうすればよいのでしょうか?
パスワードを登録する際の文字列の判定をしたいのですが、
半角英数字のみを受け付けるにはどうすればよいのでしょうか?
ctype_alnumを試したところ半角の記号でも全角ひらがなでもfalseが返ってくるので
これでいいのかとも思うのですが確信がもてません。
0114nobodyさん2005/09/05(月) 17:44:03ID:???
>>112
スマソ。
>>110のとうり不規則な数字を一文字ずつ
配列に分布したかったのです。
0115nobodyさん2005/09/05(月) 17:56:24ID:???
>>113
シングルバイト(a-Zと0-9ぐらいでいいと思うけど)以外の有無で
判定すればどうか。
01161132005/09/05(月) 18:04:23ID:???
>>115
レスありがとうございます。
「以外の有無」の判定はどうすればよいのでしょうか?
1文字ずつ分割してそれぞれチェックし、a-Z・0-9と一致しなければエラー、と考えればよいのでしょうか?
正規表現で「任意の文字以外」という条件の設定が分かりませんでした。
0117nobodyさん2005/09/05(月) 18:21:04ID:???
>>112
>>106からはどう頑張っても配列に格納なんて事は汲み取れないような・・・

>>116
[abc]っていう文字クラスでabcのいずれか、ってのは分かるべ?
んで、[^abc]でabc以外の文字って意味になる。

^[許可する文字クラス]*$ // 許可する文字が最初から最後まで続く = 許可する文字以外が存在しない
[^許可する文字クラス] // 許可する文字以外が存在する
のどっちかが一番手っ取り早いかと。

長さ0の文字列を拒否したいなら[許可する文字クラス]* の * を + に。
0118nobodyさん2005/09/05(月) 18:29:58ID:???
>>107
ヌルーされてるけど一応…

× $b = substr($i,1);

◯ $b = substr($a,$i,1);
01191132005/09/05(月) 18:33:01ID:???
>>117
どうもありがとうございます。
^で否定できるのは知りませんでした。
ereg("[^a-z|A-Z|0-9]",$_POST["password"])
とすれば半角英数字のみに対応できているようなのですがこれで正しいでしょうか?
|で区切った場合、^が[]の全体に作用するのか|で区切られた部分のみに作用するのかいずれなのでしょうか?
0120nobodyさん2005/09/05(月) 18:33:13ID:???
>>113
あんまり好きな方法じゃないけど、

mb_convert_kana で半角に変換して元の文字列と長さを比較
違ってたらマルチバイトがあるって判定法を昔やったな。
0121nobodyさん2005/09/05(月) 18:35:11ID:???
>>119
それは | 無しで [^0-9a-zA-Z] だけでいいよ。
-を含める時は [^0-9a-zA-Z-] って最後につければよかったはず。
0122nobodyさん2005/09/05(月) 18:41:09ID:???
>>114にはこれがお似合い
$a = '12316579843654654987354';
for($i=0;$i<strlen($a);$i++){
echo $a[$i]."\n";
}
01231132005/09/05(月) 18:48:46ID:???
>>120,121
うまくいきました。
とりあえずマルチバイト文字があるかどうかというよりは
指定した文字のみを許可する方向で行きたいので
121の方法でやってみます。
どうもありがとうございました。
0124nobodyさん2005/09/05(月) 18:55:02ID:???
phpのプログラムを作成して実行したときに
『Fatal error: Call to undefined function: form() in /var/www/html/vivid/school/pre.php on line 14』
というエラーメッセージが表示されました。

下がそのエラーが発生するプログラムです。

FORM("pl_info","./insert.php");
echo "<B>入 力 情 報</B><BR>\n";
TABLE("500","1","#AAEEFF","CELLSPACING=0");
echo "<TR>\n";TD("150","#CCEEFF","LEFT","COLSPAN=2","タイトル");TD("350","#FFFFFF","LEFT","",$title);echo "</TR>\n";
echo "<TR>\n";TD("150","#CCEEFF","LEFT","COLSPAN=2","文章");TD("350","#FFFFFF","LEFT","",$text01);echo "</TR>\n";
echo "<TR>\n";TD("150","#CCEEFF","LEFT","COLSPAN=2","画像選択");TD("350","#FFFFFF","LEFT","",$upfile);echo "</TR>\n";
echo "<TR>\n";TD("150","#CCEEFF","LEFT","COLSPAN=2","経歴");TD("350","#FFFFFF","LEFT","",$text02);echo "</TR>\n";
echo "</TABLE>\n";
echo "<BR>\n";
TABLE("500");
echo "<TR>\n";
SUBMIT("INSERT_DB","登録する");
TD("250","#FFFFFF","CENTER","",$TEXTVALUE);
HIDDEN();
HIDDENDATA_ALL();
echo "</FORM>\n";
これは14行目の
『FORM("pl_info","./insert.php");』
が間違っているというのは分かるのですが、「pl_info」が間違っているのか「insert.php」のプログラムが
間違っているのかあるいはFORMの囲み方が間違っているのかがさっぱり分かりません。
どうか回答の程よろしくお願いします。
0125nobodyさん2005/09/05(月) 18:55:26ID:???
ちなみに、文字クラス内で|を使うと、orではなく、"|"という文字として扱われる。
文字クラス内では、文字クラス内の全ての文字が対等にorの関係になる。
0126nobodyさん2005/09/05(月) 19:00:28ID:???
こりゃまたえらくでかい釣り針がぶら下がってるな
大きすぎて口に入らんぞこれは
01271072005/09/05(月) 19:05:56ID:???
超ハズい
0128nobodyさん2005/09/05(月) 19:21:55ID:???
>>124
>Call to undefined function: form()
0129nobodyさん2005/09/05(月) 19:42:04ID:???
>>124
バカ?
0130nobodyさん2005/09/05(月) 19:48:22ID:???
エラーメッセージが読めていないことだけは確かだよな。
0131nobodyさんNGNG
>>96
そんのやり方はソースが読みにくくなるので
俺だったら、JavaのPreparedStatementに相当する、
PEAR::DBのpreapare系使ってプレースホルダ?を設定して
使っちゃうな。
0132nobodyさんNGNG
>>101
PEAR::FTPは使い心地が悪いですか?
0133nobodyさんNGNG
>>124
そのソースコード、
可読性としてちょっとねえ。

とりあえずHTMLタグは小文字で、
関数も小文字のほうがいいんでない?

それ以前に、オブジェクト指向化して
設計を見直したほうがよさそう。
あと、テンプレート使ったほうがいいと思う。
0134nobodyさん2005/09/05(月) 21:15:45ID:???
自鯖が不安定なので、別に鯖を借りて、そこに自鯖が落ちてなかったら自鯖のサイトを読み込んで表示し、落ちてたら、その鯖にあるサイトを読み込んで表示するようなものを作りたいのですが、どうしたらいいのでしょうか?
php5でお願いします。
0135nobodyさん2005/09/05(月) 21:43:36ID:2xvv82Xw
質問があります。
自分の管理外のホームページに、
フォームから情報を入力して、Submitボタンを押すと
その関連情報結果が表示される・・・といったPHPが設置されています。

そこで、自分のサイトにPHPを置いて、その情報を
自分のPHPから呼び出す事は出来るんでしょうか?

そのページ(自分の管理外のホームページ)へアクセスし、
情報を表示すれば良いだけなのですが、その手間を省きたいです。
セキュリティ的にも、やれてもやってはいけない事でしょうか?
0136nobodyさん2005/09/05(月) 21:53:56ID:???
>>134
自鯖の方に判別プログラムをおいて新しい鯖からそれを呼ぶ。
値が得られた場合と得られなかった場合とで呼び出すファイルを変えれば良い。
エラー回避を忘れずに。
0137nobodyさん2005/09/05(月) 21:57:36ID:CGyYRIw9
>>135
その関連情報ってのが何かしらんけど、そのサイトにおいてあるデータベースから何か取得してるとかなら、
データベースの権限無いだろうし無理だろうな
0138nobodyさん2005/09/05(月) 22:07:17ID:???
>>134
phpじゃなくて、もっと下の層で二重化するような方向の方が自然な流れな気がする。
ちゃんとした奴はそれなりの金が必要だけど。
あと、どういうシステムを動かしてるのか知らないけど、どういう方法で二重化するにしても、
物によってはデータの同期の問題やら何やらでややこしくなるかもしれないんで気をつけて。

それより、不安定な鯖なんて鯖にあらずな気がするというか、
>>134の要件だと、別鯖が常に動いて自鯖と同じ動作してくれるという前提みたいだから、
素直に別鯖に移行して、自鯖をテスト環境にするとかした方がいいと思うんだけど……。
0139nobodyさん2005/09/05(月) 22:12:13ID:???
>>135
可能。技術的には特に問題なし。
規約とか著作権の上でNGっぽいけど。

>>134
そんな馬鹿げたな設計はやめて鯖を安定させるんだ。
0140nobodyさん2005/09/05(月) 22:17:53ID:???
>>135
自分のサイトでsubmit->そのサイトに移動して結果を表示、というだけなら
がっちりセキュリティ対策してなければ出来る可能性が高い。
しかし、セキュリティ的にもマナー、モラル的にも不味い。

自分のサイトにフレームとかでなく通常の方法で結果を埋め込みたい、というのなら
DBなりデータファイルなりへのアクセス権限が必要。
管理者がアホなら出来るかもしれないけど、可能性は低い。
下手にやるとマナーどころか法的にも不味いことになりそうな予感。

どっちの方法にしろ、人様の作ったフリーでない物を使いたければ、まずは管理者・作成者に連絡するべき。
人によってはソースツリー+データのコピーを提供とか、読み込み専用のDBアカウントを発行してくれるかも知れない。
01411342005/09/05(月) 22:26:41ID:???
ご返事ありがとうございます。
>>136
そこまでは分かるのですが、具体的にどのようにして、鯖の読み込みの可否を判定できるのかが分かりません。

>>138
別鯖(レンタル鯖)ではphpのsimplexmlなどの関数が使えないため、自鯖をメインとしています。
0142nobodyさん2005/09/05(月) 22:27:53ID:lQwp6BJc
よく一部の携帯サイトで見受けられるリンクを分けずにワンクリック(一つのコンテンツのみ)で機種ごとに対応させるにはどうしたらできる?例えば着メロとかはキャリアごとに形式違いますよね。
知ってる人はよろしく
0143nobodyさん2005/09/05(月) 22:30:50ID:???
各キャリアのUser-AgentかIPの範囲を調べて出力を変えれいいよ。
01441352005/09/05(月) 22:40:40ID:???
皆様レスありがとうございます!
技術的に可能なことだけでも知れてよかったです。
つーか、よく分からないし、倫理的に問題あるとのは
間違いないと自分でも思うので諦めます。
0145nobodyさん2005/09/05(月) 22:57:40ID:???
>>142
マルチスレッドご苦労様です。

>>144
基本的なとこだと、formパクってきて、action属性でリモートにあるこっそり使いたいphpのurlを指定してやればいいだけ。
Google検索を自サイトに置くのと技術的には一緒。
0146nobodyさん2005/09/05(月) 22:57:54ID:???
>>142
糞マルチ死ねよ
糞マルチ死ねよ
糞マルチ死ねよ
糞マルチ死ねよ
0147nobodyさん2005/09/05(月) 23:00:12ID:???
>>146
あっちにも書いたのかよw
0148nobodyさん2005/09/05(月) 23:02:42ID:???
>>141
ping飛ばして見るとかどうでしょうか。
simplexmlの使えるサーバに鞍替えするか
自分のサーバを安定させるかした方がいい気がしますが。
01491342005/09/05(月) 23:12:19ID:???
あぁ、php pingtと検索してやっと見つけることができました。
鯖の安定化も頑張ってみたいと思います。
色々とありがとうございました。
0150nobodyさん2005/09/05(月) 23:24:07ID:???
$_SESSIONに画像格納しちゃだめですか
0151nobodyさん2005/09/05(月) 23:48:59ID:???
phpで確認画面を作成しているのですが上手くいきません。
inputのデータを別のページで反映させるにはどのようにすればよいのでしょうか。

CGIは難しい上にプログラムするのに時間がかかってしまうのでなるべくPHPで作成したいのです。
もし他に効率の良い方法がございましたらぜひ教えて下さい。
どうかよろしくお願いします。
0152nobodyさん2005/09/06(火) 00:01:23ID:???
>>151の人は確認画面だけ作って何をするつもりなんだろうか
っていうかCGIって

<!-- 送信側 hoge.html -->
<form action="./hage.php" method="post>
<input id="hoge" name="hoge" type="text" value="">
<input id="submit" name="submit" type="submit" value="送信">
</form>

<!-- 受信側 hage.php -->
echo $_POST['hoge']; // submitしたformの子要素のname
0153nobodyさん2005/09/06(火) 00:12:48ID:???
最近セッションに挑戦して、いままでhiddenで値を持ち回していて、「こりゃ楽だ」と感動してるのですが、このセッションを使って値を持ち続けるのってどの程度信頼性があるのですか?
なんかの拍子に消えたりとかしないですか?
0154nobodyさん2005/09/06(火) 00:29:50ID:???
$arr = array("alpha", "beta", "gamma", "delta", "epsilon");
foreach ($arr as $key => $val)
{
  echo "キー:$key 値:$val\n";
}

このようなforeach文で、値が「beta」の時、前後の値である「alpha」、「gamma」も
表示したいのですが、どのようにして実現すればいいのでしょうか?
01551512005/09/06(火) 01:12:43ID:???
>>152
説明が足りなくて申し訳ございません。

 実はメール送信フォームの確認画面ではなくインターネット回線を通して
どこからでも文章の入力や画像データの貼り付けを行うことができる
画像掲示板のようなデータベースを作成しております。
 入力フォームのphpデータは完成したのですがphpデータのinputの情報を
別のページに反映させることが出来ません。
(例えばphpデータAのinputの情報を確認画面のphpデータBに反映させ、
それで登録しても良いのであればphpデータCで登録の処理を行うといった
流れのデータを作成したいのです。)
0156nobodyさん2005/09/06(火) 01:19:01ID:???
>>155
data_a.phpで、
<form action="./data_b.php" method="post>

data_b.phpで、
<form action="./data_c.php" method="post>

ってことか?

>>152 は、メール送信フォームじゃないけど?
0157nobodyさん2005/09/06(火) 01:24:32ID:???
>>153
クライアント側のCookieが消えるとか、セッションタイムアウトとか可能性はある。

>>154
前戻りだけなら、読んだ時に前のデータを変数に格納しておけばいいけど、
前後とも表示したいならforeachよりもfor使った方が簡単。

配列の端での動作によってソース変わってくるけど、
端でも前後あわせて3つずつ表示する場合は
for($i = 1; $i < (count($arr)-1); $i++);
で無条件に $i-1, $i, $+1 を表示。

端では2つずつ表示する場合は
for($i = 0; $i < count($arr); $i++);
で、基本は上と一緒だけど、$i <= 0 の時は $-1 の部分を、 $i >= count($arr) の時は $+1 の部分を表示しないようにする。
01581512005/09/06(火) 01:33:00ID:???
>>156
例えば「data_a.php」に
<input type="text" name="title" size="30">
というプログラムがあるとしますと、titleに入力した文字を「data_b.php」
に表示させたいのですが「data_b.php」に「data_a.php」のtitleをどうやって
反映させるのかがわからないのです。
0159nobodyさん2005/09/06(火) 01:34:44ID:???
>>156
あ!画像データがあるのか。
じゃ俺にはわかんね。
画像を二度送信させるのは無駄っぽいし。
0160nobodyさん2005/09/06(火) 01:35:11ID:???
>>155
入力フォーム->確認画面->DB登録って流れだろ?
>>152でいいじゃないか。
あとは、確認画面のformの中にhiddenで値埋め込むなり
確認画面を表示するphpで$_POSTで受け取ったデータをセッションに格納して
DB登録のphpでセッションから引っ張ってくるなり好きにすればいい。

<!-- >>152の改良版 受信側 hage.php -->
お名前 : <?=$_POST['hoge']?>
<form action="./db_insert.php" method="post">
<input id="hoge" name="hoge" type="hidden" value="<?=$_POST['hoge']?>">
<input id="submit" name="submit" type="submit" value="送信">
</form>

<!-- っていうか、入力側のphpってただのHTMLな気がするんだけど…… -->
0161nobodyさん2005/09/06(火) 01:37:27ID:???
えっと、FORMでの値の受け渡しが分からないってことなのか?

#まずは入門書を読みませう。
01621602005/09/06(火) 01:38:54ID:???
あ、俺も画像忘れてた。

画像あるんだったらセッションにバイナリごと入れちゃうのが一番楽かな。
OKだったらファイルに書き込むなり、DBのBLOB型カラムに入れるなり。
01631542005/09/06(火) 01:46:32ID:???
>>157
ありがとうございます
やはりforを使うしかないのですね

$arr = array("one"=>"alpha", "two"=>"beta", "three"=>"gamma","four"=> "five", ""=>"epsilon");

例えば上記の場合、for文では限界があると思うのですが、この場合は
どのようにして実現するのでしょうか?
01641542005/09/06(火) 01:47:57ID:???
間違えました。。

$arr = array("one"=>"alpha", "two"=>"beta", "three"=>"gamma","four"=> "delta", "five"=>"epsilon");

に修正です
01651572005/09/06(火) 01:55:32ID:???
>>154
foreach使っても出来るには出来るけど、
それってforeach使う意味は?みたいな感じになる。

んで、配列のキーを配列に格納するarray_keys()という関数がある。
http://php.s3.to/man/function.array-keys.html
01661542005/09/06(火) 02:13:14ID:???
>>165
その関数を使うことでなんとかなりそうな気がしてきました
本当にありがとうございます
0167nobodyさん2005/09/06(火) 02:16:56ID:???
IEのスタイルシートのバグの多さから、
UA取得して、IEで閲覧時にはIE用のスタイルシート。
といった感じに、スタイルシートをブラウザごとで使い分けるために
PHPを使用しようと考えているのですが、
そういうことはPHPでできそうでしょうか?
0168nobodyさん2005/09/06(火) 02:21:35ID:???
MDB使ってんだけど、
DBに登録するときにエラーチェックしてる?
漏れ、最近べつに必要ねぇんじゃねーか?
と思い始めた。
$result = $db->query($sql);
if (MDB::isError($result)) {
die ($result->getMessage());
}
0169nobodyさん2005/09/06(火) 02:34:20ID:???
>>167
可能だけどphpを使わずに
ブラウザバグを回避する方法も色々開発されている。
01701672005/09/06(火) 02:35:48ID:???
>>169
レスどうもありがとうございます。
回避する方法も開発されているのですかー。
それは知りませんでした。
少し回避する方法を探してみてだめそうならPHPでやってみたいと思います。
0171nobodyさん2005/09/06(火) 02:37:32ID:???
>>167
サーバサイドでやるなら、HTML内に各ブラウザ用のCSSを埋め込むか、
各ブラウザ用のCSSを予め用意しといて、外部CSSを読み込ませる部分の記述を動的に変えるとか。

あと、サーバサイドでやらんでも、クライアントサイドで各UAのバグ・実装不足などを突付いて
CSSの特定の部分を特定の部分だけ読めないように記述するCSSハックという手法もある。

>>168
sql投げたら勝手にquery送ってdieまでやってくれるメソッドを実装しちゃえば気にしなくて済む。
01721672005/09/06(火) 02:42:23ID:???
>>171
レスどうもありがとうございます。
クライアントサイドでやるならJSかと思ってたのですが、
CSSハックというやり方もあるんですね。
聞いたことがない言葉なので早速調べてみたいと思います。
0173nobodyさん2005/09/06(火) 07:44:51ID:???
>>164
俺ならeach(),prev(),next()使う
01741512005/09/06(火) 11:29:55ID:???
>>159-162
皆様のおかげでinputのテキストのデータを反映させることが出来るようになりました。

しかし同じ方法で画像データを反映させると画像のある場所が文字データとなって反映されてしまうのですが・・・
ちゃんと画像データとして反映させる方法があったら教えて下さい。
■ このスレッドは過去ログ倉庫に格納されています