のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,683,104人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレくだすれPHP(超初心者用)6

php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
251 : nobodyさん - 2009/06/01(月) 15:41:44 ID:??? (+59,-30,+0)
問い合わせフォームなのですが、イレギュラーな行為をしようとすると
挙動がおかしくなってしまいます

form.html→[POST]→confirm.html→[SESSION]→complete.html
              ↓     ↑
           [SESSION]  [POST]
              ↓     ↑
              rewrite.html

基本的に上のような形で作っていて
基本的な動作には問題がないのですが、
ちょっとイレギュラーな動作として、confirm.htmlで確認した後、complete.htmlへのリンクを押さずに、
(confirm.htmlでは「送信する」と称したcomplete.htmlへのリンクがあります)
アドレス直打ちでform.htmlへ戻り、
form.htmlで再度記入して、記入漏れがあった場合
rewrite.htmlでは記入がある問題のない項目は$_SESSIONで自動的に表示されるのですが、
その$_SESSIONが古いままなのです。

分かりにくいですね・・・すみません。例えばですが、初回の訪問で
form.htmlで名前に「太郎」と記入、メールは未記入、確認submitボタン→
confirm.htmlでは$SESSIONに$POSTを代入、その次にメールが空欄なので自動判定してrewrite.htmlへ飛ばす
rewrite.htmlでは名前の項目に$SESSIONを受け取るので「太郎」と表記、そしてメール項目は空欄で、
メール項目の上にメールが未記入ですと表記する。
メールを「123@abc.com」とrewrite.html画面で記入して確認submitボタン→
confirm.htmlでは今度は未記入項目がないので、「問題なければ送信(complete.htmlへのリンク)」をechoで表示、
そして本来ならここで、送信をクリックしてcomplete.htmlへ行くところを・・・・・

クリックせずに、form.htmlと直打ちして最初のフォーム画面に戻る、
そこで今度は名前の項目には「花子」と入れ、メールを空欄のまま確認submitボタン→
confirm.htmlがメールが空欄なので自動判定してrewrite.htmlへ飛ばす
すると何故か、名前欄、メール欄ともに先ほどの「太郎」と「123@abc.com」が表示されてしまうのです。
本来なら、ここでは名前欄に「花子」、メール欄は空欄でメールが未記入です警告がでるはずだと思うのですが・・・。
252 : 続き - 2009/06/01(月) 15:44:08 ID:??? (+3,-30,-223)
すいません、長文ですが、もう少しあります。

それでsessionを破棄していないせいかと思い、form.htmlの最初に
session_start();
$_SESSION=array();
session_destroy();
を付け加えてやったのですが、挙動はかわりません。

クッキーやキャッシュのせいかと思って
if(isset($_COOKIE[session_name()])){
setcookie(session_name(), '', time()-42000, '/');}

header('Pragma: no-cache');
header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
もform.html追加したのですが、相変わらずです・・・・。

原因はどこだと思われますか?
255 : nobodyさん - 2009/06/01(月) 17:05:31 ID:??? (+74,+29,-66)
>>251
フォームのデザインパターンがぐたぐた。
もっと参考書見た方がいいよ。
文章わかりずらいす。
ちゃんと読んでないけど、セッションの代入で失敗してるでしょ。
セッションに値が入ってるか一行ずつ確認してみ。
256 : nobodyさん - 2009/06/01(月) 17:15:22 ID:??? (+19,-29,+0)
>>254
array_count_values
257 : nobodyさん - 2009/06/01(月) 17:23:16 ID:??? (+55,+24,-16)
>>256
ありがとうございます。
PHPは関数が豊富で使いやすいですね。
258 : 251 - 2009/06/01(月) 17:27:19 ID:??? (+12,-30,-259)
>>255
レスありがとうございます。
わかりずらくてすみません。

あれからずっと検証してたのですが、
どうやら未入力があった場合にheader(location)で
再入力ページに飛ばしてたのですが、
手動でリンククリック移動にすれば問題なく動作しましたので
header(location)で飛ばす時にsessionが切れてしまうっぽい感じです。

sessionの保存先など再検証してみます。

セッションはheader(location)でページ移動さえしなければ
全てのページで問題なく想定したものがechoで表示できましたので、
代入は問題ないかと思います。
ありがとうございます。
259 : nobodyさん - 2009/06/01(月) 18:01:12 ID:??? (+4,-29,-33)
headerで飛ばすときにSIDを入れたらどうなんの?
っつかSID発行されてる?
260 : nobodyさん - 2009/06/01(月) 18:15:52 ID:??? (+4,-30,-21)
headerで飛ばすのはフォームのパターンですので、
関係ありません。
session_Startちゃんとしてますか?
261 : 251 - 2009/06/01(月) 18:44:40 ID:??? (+3,-30,-294)
>>259
>>260
ありがとうございます。

SIDはについてはまだ検証してませんが
(というかSIDをまだよく理解してないので、勉強します。すみません。)
初心者的な見解ですが、どうやらこれが原因っぽい所にいきつきました。
やはり自分の単純ミスだと思います。
ご指摘の通りheader自体が悪さしてるわけでもないですよね、誤解をあたえるような
記述になってしまいましてすみませんでした。
どうやら自分のheaderの書き方に問題があるんだと思います。

header("location: ******")の****のところを
絶対パスを記入していたのですが(http://www.abc.com/rewrite.htmlのように)
手打ちでform.htmlに戻る時に、アドレスがhtttp://abc.com/form.htmlのようにwwwが抜けていたので
サーバアドレスが変わったと認識されてsessionが切れていたのだでしょうか・・・?
これを相対パスで記述した所、全ての動作が想定したものになりました。

お騒がせしてすみませんでした。ありがとうございました。

ちなみに・・・header("location:")は絶対パスで書くべき、いや相対パスでいい、いやどちらでもなく
完全な形のURL(?)で書かないといけない、と色々情報を見つけたのですが
正式なlocationヘッダの記述の仕方とかあるのでしょうか?
というか、書き方もめちゃくちゃで知識もグダグダだと思うので
色々長文書いてしまいすみません。色々と勉強して出直してきます。失礼しました。
262 : 237 - 2009/06/01(月) 23:30:31 ID:ff8Q7K7b (-26,-30,-100)
ロリポップで借りてWordpressを設置できました
トップページのHTML内の一部分にWordpressから最新記事2件を全文表示で
載せたいのですが、Wordpressの最新記事の呼び出し方が分かりません
>>224の<?php include_once('blog_reader.php'); ?>でも()内が分からず、
他、調べて出てきたものを試してみてもできませんでした
教えてください、お願いします
263 : nobodyさん - 2009/06/01(月) 23:44:41 ID:??? (-29,-29,-6)
WordPress (ワードプレス) その12
http://pc11.2ch.net/test/read.cgi/blog/1237205315/
264 : nobodyさん - 2009/06/01(月) 23:49:01 ID:??? (+72,+29,-16)
>>262
なんつーか全力で遠回りするタイプの人だなぁ
265 : 262 - 2009/06/02(火) 00:04:45 ID:nshP4Iwz (+43,+29,-55)
>>264
本当にど素人ですみません
5日前までHTMLを拡張子だとしか認識してなかったレベルです
3日前までPHPは新書の出版社名だと思ってました

>>263のスレに行ってきます
お世話になりました、また移動しますノシ
267 : nobodyさん - 2009/06/02(火) 08:14:19 ID:??? (-1,-29,-27)
データベースの文字コードをJISにする
以上。
268 : nobodyさん - 2009/06/02(火) 08:16:20 ID:??? (+15,-30,-128)
>262
PHPを出版社だと思ってたなんて・・・ま、オレもそうだったけどw
Wordpressって使ったことないんだけど、RSS出力とかないのかい?

>266
文字コードが違うと文字化けするのは当たり前だろう・・・
HTMLがSJISならDBからの出力もSJISにしないと。
出力するところだけmb_convert_encodingで変換させるといいよ。
DBに登録するときは反対にSJISからUTF-8に変換しないとDBのほうが化けるからね。
269 : 265 - 2009/06/02(火) 11:16:28 ID:QiIiWnUH (+42,+29,-66)
>>268
あります
でも俺の技術力じゃどうにもできません
今は、
WordPressループを挿入?トップページを静的ページに?
テーマ変更?ページテンプレート使用?
どれがいいか向こうで聞いてます
やっぱり本当は自分でデザインしたHTML内部に埋め込みたいなあ
270 : nobodyさん - 2009/06/02(火) 11:34:43 ID:??? (+13,-29,-143)
技術力がないっていっても、ページの中の一部分にWordpressの記事を埋め込みたいのならRSSがベストじゃないかな。
ググればなんぼでもRSSに関する事が出てくるから調べてみるといいよ。
PEARなんか使えば簡単に使えるから。
PHP5なら最初からRSS関係の関数はあるんでもっと簡単だよ。
配列にRSSで読み込んだ記事が入るんで、普通にそれをprintやechoで出力するだけだし。
271 : nobodyさん - 2009/06/02(火) 12:00:45 ID:??? (+57,+29,-14)
そもそもphpがまったくわかって無いと見たが。
やりたいことのレベルに達するのはかなり苦労しそう。
272 : nobodyさん - 2009/06/02(火) 14:49:38 ID:??? (-1,-29,-37)
DBの文字コードをJISにするって新し過ぎだろ
メール専用DBか?
273 : nobodyさん - 2009/06/02(火) 14:53:47 ID:??? (+2,-20,-15)
だな
普通はEUCだよな
274 : nobodyさん - 2009/06/02(火) 15:01:45 ID:??? (-10,-29,-29)
>>266
docomoの古めの機種は対象外と割り切って、
出力もUTF-8にすればよろし。
275 : nobodyさん - 2009/06/02(火) 18:45:59 ID:??? (-6,-29,-3)
utf-8使えよ
276 : 269 - 2009/06/02(火) 19:03:40 ID:??? (+12,-17,+0)
>>270
RSSでできました!
本当にみなさんありがとうございました
277 : nobodyさん - 2009/06/02(火) 19:09:02 ID:??? (-1,-29,-15)
DBは普通はUTF-8だよな。
最近はHTMLもUTF-8にしてる。
携帯のサイトはSJISだけどね。
278 : nobodyさん - 2009/06/02(火) 23:08:51 ID:yP1TTuLt (+69,+29,-50)
WordPressのソースコード見て疑問に思ったんです。
基本オープンソースのアプリケーションてMVCはっきりしていないですよねって


実際プロの人っていうか、金もらってWebアプリ作られている方は
どんな感じでコーディングなさっているのかなぁって思ったんです。

279 : nobodyさん - 2009/06/02(火) 23:17:04 ID:??? (-1,-29,-15)
このスレの奴数人は多分SJISとJISの違いを解ってないっぽいな
280 : nobodyさん - 2009/06/02(火) 23:26:34 ID:??? (+95,+29,-148)
DBとコードは全てUTF-8。HTML出力は基本UTF-8で、必要な場合はShift_JIS。

>278
プログラミングでは、上のほうのレベルでは金をもらっているかもらっていないかはあまり関係ない。
Linux開発者は基本的に金をもらっていないわけだが、彼らの技術力には疑問の余地はないだろ。

んで、実際だが。
PHP開発の大半はフレームワークに移行しているらしい(ソースは『PHPプロ!』)ので、恐らく大半がMVC。
うちは自社サービスだが、フリーダムすぎて恐らく参考にならない。
同じサービスのはずなのにエンドユーザ側と管理側でフレームワークが違う、とかあったからな。誰か言えよと。

ちなみにWordPressはプラグインなどの拡張性を考えた結果の設計だろう。特殊な例だと思う。
281 : nobodyさん - 2009/06/02(火) 23:34:03 ID:yP1TTuLt (+60,+19,-61)
>>280
たしかにプラグイン関連を考えると特殊ですね

お聞きしたいのですがMVCのvはどんな感じでコーディングなさってます?

自分はZF,Smartyです。
282 : nobodyさん - 2009/06/03(水) 00:34:52 ID:??? (+62,+29,-58)
うちではフレームワーク使ってないなぁ。
フレームワークを使う利点がイマイチわからないんだよね。
設計・開発・管理を全て一人でやってるし・・・。
でもそのうちフレームワークに移行しないといけないな、とは思ってる。
思ってるけど時間がなくてなかなか移行に踏み切れない。
283 : nobodyさん - 2009/06/03(水) 00:47:44 ID:??? (+57,+29,-33)
一人なら別にいいんじゃない?
自分なりのフレームワークもどき出来てきちゃうし。
284 : nobodyさん - 2009/06/03(水) 01:28:18 ID:??? (+57,+29,-76)
この自分なりのフレームワークもどきがネックで
色々ごてごて機能追加とか思いついたことくっつけてくと
下位互換が無くなったりして、古いアプリケーションとか放置になるという。
285 : nobodyさん - 2009/06/03(水) 01:57:55 ID:??? (+53,-30,-121)
http://php.dori-mu.net/search.html
これ見て勉強中です。
search.phpのスキルの部分で
$temp_where .= "skill REGEXP '$value' || ";
という部分があるんですが、
これは$temp_where .= "'$skill' REGEXP '$value' || ";
ではないのでしょうか。
なんでskillだけなんでしょうか?
すいません。教えてください。
286 : 285 - 2009/06/03(水) 01:59:39 ID:LH3y5rMl (-2,+7,+1)
すいません。教えてください。
287 : nobodyさん - 2009/06/03(水) 02:21:04 ID:??? (+5,-30,-235)
>>285
foreach($skill as $value) {
$value = addslashes($value);
$temp_where .= "skill REGEXP '$value' || ";
}
の部分が、ナニしてるか理解出来てないみたいだね。

例えば、$skill = array('a', 'b', 'c')の場合
$temp_whereは
skill REGEXP 'a' || skill REGEXP 'b' || skill REGEXP 'c' ||
という文字列になる。

意味は、取得するレコードを、skillの内容がaまたはbまたはcを含む場合のみに絞り込むってこと

skillはテーブルの列のことであり、$skillとは関係ないの
同じskillという文字が入っているから、勘違いしたんだと思うけど
289 : nobodyさん - 2009/06/03(水) 10:33:47 ID:??? (+65,+29,-32)
>>285でお前が出してるurlに全部書いてあるわけだが、
そもそもデータベースそのものが理解できて無いのか?
だとするとphpの前に勉強することいっぱいあるぞ。
290 : nobodyさん - 2009/06/03(水) 10:50:55 ID:??? (+57,+29,-25)
そのページざっと見てみたがDBの仕組みについてはほとんど触れて無いんだな。
解説も雑だし初心者用としては不向きだと思われ。まだ本買ったほうがいい。
291 : 280 - 2009/06/03(水) 23:14:21 ID:??? (+60,+19,-120)
>281
テンプレートエンジンは基本的にはSmarty一本。デザイナーや企画者に無駄な負荷をかけないための措置。
デザイナーが携わらない社内利用モノとかも、面倒という理由でそのままSmartyになってる事が多い。
ビュー層がHTMLではない場合(CSVとかXMLとかJSONとか)は単純なPHPで処理してる場合もある。
292 : nobodyさん - 2009/06/04(木) 00:27:07 ID:??? (+57,+29,-68)
Smartyってどっちかというとデザイナーに負担掛かるテンプレートな気がする
293 : nobodyさん - 2009/06/04(木) 00:36:02 ID:??? (+39,+27,-32)
プログラミング未経験でこれから始めようと思うのですが
おすすめの参考サイトがあれば教えてください。
294 : nobodyさん - 2009/06/04(木) 00:40:09 ID:??? (+62,-3,+1)
>>293
公式
295 : nobodyさん - 2009/06/04(木) 00:49:02 ID:??? (+48,+25,-7)
http://www.php.net/manual/ja/
このサイトは便利でいいよね
296 : nobodyさん - 2009/06/04(木) 01:06:34 ID:??? (+39,+14,+0)
>>293
プログラムを教えてください
http://pc12.2ch.net/test/read.cgi/tech/1243778529/
298 : nobodyさん - 2009/06/04(木) 06:38:42 ID:??? (+110,+29,-19)
>>294,295
ちょっと自分には難しかったです。
>>296
このスレは分かりやすいですねでも
51レスで終わってるのでそれ以降が分からないorz
299 : nobodyさん - 2009/06/04(木) 07:37:25 ID:??? (+105,+29,-26)
>>298
「2時間目」の講義を希望してるってこと?
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について