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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/04/05(日) 22:04:26ID:???
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。

PHP Home Page
ttp://www.php.net/
ttp://jp.php.net/

前スレ
くだすれPHP(超初心者用)5
http://pc11.2ch.net/test/read.cgi/php/1227303362/

関連スレ
PHP総合雑談スレ
http://pc11.2ch.net/test/read.cgi/php/1200314111/
PHP初心者勉強会やらんかね!
http://pc11.2ch.net/test/read.cgi/php/1209137730/
0182nobodyさん2009/05/29(金) 09:45:58ID:???
正気か・・・
0183nobodyさん2009/05/29(金) 10:03:05ID:???
>>180
カレンダーとか認証とか、pearにいくらでもライブラリすっ転がってるでしょ。
本に書いてある通りにしか書けないタイプだとしたらこの先あまりに辛過ぎる。
つーか間に合わなくてもいいからフレームワーク使っとけ。後で誰も手伝えなくなる。
0184nobodyさん2009/05/29(金) 10:09:19ID:???
>>180
とりあえず納期の事で胃を痛めてても仕方ないから2chなんて見てないで
作業進めちゃったほうがいいよ。販売云々は今は考えるな。営業の仕事だし。
一ヶ月勉強期間もらったと思えばいいんじゃない?
0185nobodyさん2009/05/29(金) 12:06:30ID:b8Gghdtq
下のような感じでページからShowRes()を呼んでデータの取得をしようとしてるんですが
どうしてもGetData()のmysql_queryで値が取れません
$dbhにはリソースIDも入っているしSQL文もphpMyAdminで実行すると問題なく通ります。
またShowRes()を関数にしないでページに直接書くと実行できます。

ずっとはまっててもうトホホな状態です。
何が悪いんでしょうか?

function ShowRes()
{
  $dbh = mysql_connect($db_host, $db_username, $db_password);
  if ($dbh === false) die("db access error!");
  mysql_select_db($db_name, $dbh);

  foreach () {
    $ret = GetData($dbh);
  }
}

function GetData($dbh)
{
  $intRet = 0;
  
  $strsql = "select 〜";
  $res = mysql_query($strsql, $dbh);
  while ($row = mysql_fetch_assoc($res)) {
    $ret = $row;
  }
  return $ret;
}
0186nobodyさん2009/05/29(金) 12:18:27ID:???
そりゃShowRes()の中で$db_host, $db_username, $db_passwordはnullなのでは?
0187nobodyさん2009/05/29(金) 12:36:17ID:???
>>186
う、もろそうでした
includeすればそのまま変数が使えるのかと思ってました。
ありがとうございます
助かりました
0188nobodyさん2009/05/29(金) 16:16:26ID:???
超初心者質問すません…。
ヘッダなどは省略しますが、Webブラウザで、

<?php
print("AAAAA");
print("BBBBB");
?>

のファイルを読み込むと、AAAAABBBBBと表示されますが、AAAAAを表示後、画面をクリ
アしてからBBBBBを表示するには、どうしたら良いでしょうか?

print("AAAAA");
--ここ--
print("BBBBB");


--ここ-- に何を書けば良いのか見当がつきません。
どうか教えてくださりませ。
0189nobodyさん2009/05/29(金) 16:17:51ID:???
クリアって?
0190nobodyさん2009/05/29(金) 16:26:51ID:???
画面を一旦まっさらにすることです。
今まで表示されていた内容を一旦全部消したいのですが…。
0191nobodyさん2009/05/29(金) 16:31:18ID:???
Aは何秒表示するの?
0192nobodyさん2009/05/29(金) 16:46:35ID:???
秒数ではなく、AAAAA画面内でボタンのクリックがあったらBBBBBへ移行したいです。
0193nobodyさん2009/05/29(金) 16:48:26ID:???
Bのページへのリンクを張っておけばいいだけの話ではなくて?
それとも画面遷移なしで変化させたいと?
0194nobodyさん2009/05/29(金) 16:53:03ID:???
AAAAA画面内で、ダウンロード用データの生成を行っているのですが、結構大きなデータで、生成に時間がかかります。
そこで、生成中はAAAAA画面で「生成中です。しばらくお待ちください」のメッセージを表示して、生成が完了したら、
画面遷移なく、「生成中〜」をクリアして、ダウンロード用のボタンを表示したいのです。
0195nobodyさん2009/05/29(金) 16:55:23ID:???
最初にそう言えよ
0196nobodyさん2009/05/29(金) 16:57:46ID:???
超初心者ですから。
やさしくお願いしますです。
0197nobodyさん2009/05/29(金) 17:03:32ID:???
<div id="hoge">生成中です。しばらくお待ちください</div>
処理が終わったらJavascriptで
document.getElementById("hoge").innerHTML = "<input type='button' 〜"
0198nobodyさん2009/05/29(金) 17:54:47ID:???
あざっす!
解決しました。
0199nobodyさん2009/05/29(金) 19:25:42ID:05XbjRtm
PHPでの簡単な入力フォームに挑戦しています。

今の所POSTとsessionを使って
入力ページ(a.php)、確認ページ(b.php) 完了ページ(c.php)
という流れで、

入力したデータをPOSTでb.phpに送る、
b.phpではSESSIONにPOSTを格納、POSTの内容をユーザーに確認させ、
問題なかったら送信をクリック、
c.phpページで「送信しました」表示と共に
指定のメールアドレスにmb_send_mailでSESSION内容を送信して
session破棄
とまでは出来たのですが、

b.php、c.php共にに直接アドレスを入力すれば表示できてしまう状態です。
c.phpではmb_send_mailを使っているので、c.phpに直接アクセスされると
空のメールを指定したアドレスに送信してしまう始末です。

これを
b.phpはa.phpを
c.phpはb.phpを経由しないとアクセスしないようにしたいのですが、
どのようにすれば言いのでしょうか?

リファラで、前のページを取得して、b.phpではa.php以外なら
c.phpではb.php以外なら、error.htmlに飛ばすような概念でしょうか?
0200nobodyさん2009/05/29(金) 19:48:09ID:???
>>181>>182
正気みたいです。毎日社長が進歩確認しにきます。
>>183
フレームワーク聞いてみました。
だめだそうです。手続き型で書いてくれとのこと。
うちの会社だれもフレームワーク使えないからが理由らしいです。
本当はZend Frameworkを使いたかったのですが。
>>184
はい。がんばります。
0201nobodyさん2009/05/29(金) 19:50:41ID:???
なんだネタか…
0202nobodyさん2009/05/29(金) 21:15:52ID:???
a.phpでSESSION変数に何か書きこんで、b.phpでその値を参照&破棄するというのは?
02031992009/05/29(金) 21:36:35ID:???
>>202
レスどうもです。
なるほど、a.phpのほうからb.phpの方へも別のsessionをわたして
issetで判定すればいいんですかね。
c.phpの送信完了画面ではb.phpでSESSIONにPOSTが
すでに格納されてるわけですから、
c.phpでもSESSIONの空判定をすれば
c.phpで空メールが送られてくることもなく
b.php、c.phpともにSESSIONが空の場合、if分岐でエラーの表示をだせばいけそうですね。
sessionで判定という脳みそがなかったです。
ありがとうございます。

ちなみに、ちょっと調べてたらセキュリティソフト等の関係でリファラを残さない人や
ブラウザのプラグインで同じような事をしている人がいるとかで
リファラチェックはあまり使わないほうがいい、という情報もみかけましたが
普通みなさんは、特定のページのみからアクセスを許可させたい場合
どのような処理をされてるのでしょうか?
やはりsessionですか?
02041992009/05/29(金) 22:31:49ID:???
>>202
追記です。おかげさまで解決しました。
最初issetで判定してたのですが、うまくいきませんでしたが
!emptyでSESSIONの空判定をおこなったところ、
SESSIONデータの有無で表示の分岐ができました。
ありがとうございました。
0205nobodyさん2009/05/29(金) 23:26:09ID:???
>>180
できあがったものを売るとして、
wordpressに勝てると思った理由は聞いたのか?
0206nobodyさん2009/05/30(土) 01:00:52ID:???
そもそもWordpressベースのカスタマイズでも自社パッケージにできるのでは
GPLだからソースは出さなきゃならんけど
0207nobodyさん2009/05/30(土) 01:07:23ID:???
ソース出したくない場合、
MySQLみたいにデュアルライセンスの
ブログってないの?
0208nobodyさん2009/05/30(土) 02:05:27ID:???
ライセンスが緩いのは有名どころではApache Rollerくらいじゃね
Javaだけど
0209nobodyさん2009/05/30(土) 02:30:08ID:???
>>180
PHPで出来る部分はさておいたとして、
WYSIWYGとか、どうするんですか。

アメーバとか見たこと無いけど、wordpressとかその他ブログとかCMSに必須ってぐらい
くっついてるけど。
0210nobodyさん2009/05/30(土) 03:22:31ID:???
WYSIWYGこそTinyMCEとかでいいのでは
0211nobodyさん2009/05/30(土) 03:32:05ID:???
LGPLか。
GPLと名のつくものは何となく怪しい雰囲気が満載だな。


0212nobodyさん2009/05/30(土) 03:39:16ID:???
GPLがなんなのかすら理解してないなら使うなよ
0213nobodyさん2009/05/30(土) 03:53:23ID:???
おう、なんなのか理解できないから使わないぜ。
別のライセンスを有するものにGPLライセンスのライブラリを組み込んだらGPLになるのかとか、
さっぱりわからん。
mysqlのFLOSSもさっぱりだったよ。
0214nobodyさん2009/05/30(土) 06:01:27ID:QHjSHhWO
>>205
もうね。だめだよ。
wordpress使うより自社で作ったほうがいいとのこと。
よくわけがわからん。
今日も泊りだな。なにやっているんだが。
>>209
WYSIWYGなんか考えてません。
逃げることを考えています。
0215nobodyさん2009/05/30(土) 12:12:30ID:???
tinyMCE、すごくいいんだが日本語環境は基本、考慮されてないので時々送信内容が消えたりする。
バージョンアップされてさらにバグるようになったし、ダメぽorz
なにかいい代用WYSIWYG、ないもんかのう・・・
0216nobodyさん2009/05/30(土) 12:24:50ID:???
今時日本語だから駄目なんだとかトンチンカンなこと言ってる奴いるのか
0217nobodyさん2009/05/30(土) 21:20:27ID:MvhC1epf
Web制作から来ました
HTMLトップページの一部に文章を書き、その部分が数日経てばor文章が数本溜まれば、
過去ログとしてその部分が「○日の更新」として別のページに自動的に溜まって行くという
簡単なブログのようなシステムを作りたいです

Web制作板でPHPの存在を知って、過去ログの方に自分で文章を書き、
そこから一部分をトップページに反映させるというシステムの方が良いと思いました
とりあえずPHP5とPHPテンプレートエンジンのSmartyはダウンロードしましたが、
そこからどうしたら良いのかさっぱり分かりません
ご教授お願いします
0218nobodyさん2009/05/30(土) 22:13:47ID:SuG3TKng
やり方は無限にあるから、コレ一個で答えられないよ。

簡単な方法は、CSVファイルに、

"年月日","文章"
"年月日","文章"
"年月日","文章"
.....

という風にデータを用意して、PHPで一行づつ読み込む。
年月日と現在日を比較して、条件が合えばトップページに表示し、それ以外は過去ログページに表示するなど。
因みにsmartyは必須じゃない。プログラムとデザインテンプレートを分ける必要があれば使うだけのもの
0219nobodyさん2009/05/30(土) 23:11:23ID:???
ブログ使え
0220nobodyさん2009/05/30(土) 23:19:11ID:???
>>217
まずblogを触って、自分好みにカスタマイズするところから始めたほうがいい。
一から作るのは大変だし、それで文章書く気力失っちゃうのはもったいない。
0221nobodyさん2009/05/31(日) 02:06:11ID:ONuTHT0e
トップページにブログがあるとブログサイトになってしまうのでそれは避けたいです
あくまでトップページの端の短いコラム的な位置づけでやりたいんですが
ブログの日記の部分だけをHTMLの一部に組み込めないですかね
弄ろうとはしてみたんですがどうしても要らないところが残るし、
そのページ全体がブログになってしまいます
PHPをもう少し勉強してみて無理そうだったらHTMLで手動でするしかないですかね
0222nobodyさん2009/05/31(日) 02:37:18ID:V0G3lcFV
>>221
http://www.yumemaboroshi.net/cgi4682/
この手のよくある無料配布モノを弄る所から始める、じゃ駄目なの?
0223nobodyさん2009/05/31(日) 03:29:49ID:ONuTHT0e
>>222
それ落とせなかったので似たようなの探してみました
今まではHTMLでどうにかしようとしかしていなかったので、
PHPのブログ系のものを弄ってみたいと思います

とりあえずPHPとApacheはインストール、設定できました
http://www.rocomotion.jp/php/p_diary_r.phpこれを落してみたのですが、
PHPファイルが関連付けられていないためPHPファイルが弄れません
PHPが正しくインストールできていないのでしょうか?
0224nobodyさん2009/05/31(日) 04:06:56ID:???
俺だったら

・適当なブログを(トップ以外に)入れる
・トップのブログ読み込み部分に<?php include_once('blog_reader.php'); ?>
 とか書いて
・そこで直接DB覗いて新しいのを拾ってくる

とかかな。一からブログ作るなんて面倒すぎ
0225nobodyさん2009/05/31(日) 04:29:37ID:V0G3lcFV
>>223
拡張子が関連づけられてないだけなんじゃないかな。
環境は整っているのなら。

好みや扱う規模によって人それぞれだろうけど、
自分はこのPHPエディタ スタンドアローン版(無料)ていうので十分事足りてるよ
http://phpspot.net/php/pg%82o%82g%82o%83G%83f%83B%83%5E_standalone.html

0226nobodyさん2009/05/31(日) 07:46:48ID:???
初歩的な質問ですみません
GET変数やDB由来のid用変数をいままでctype_digit()でチェック後
念のため(int)で整数化していたのですが10桁を超えると整数の範囲制限に
引っかかるのでこの方法が使えなくなってしまいました
文字列を数字のみにする関数というのはないでしょうか
0227nobodyさん2009/05/31(日) 08:02:24ID:7JVzR7n2
性器表現
intvalじゃだめかぁ
       -2147483648 〜 2147483647

10桁ってどんなサイトmaking doing
0228nobodyさん2009/05/31(日) 09:22:48ID:???
>>227
専用の関数はなさげですか
正規表現は精通してないので漏れがあったらいやだなと思ってたんですが
ctype_digit()を通してからなのでそもそも変換は必要ないともいえるので
preg_replaceで代用してみようと思います。
0229nobodyさん2009/05/31(日) 12:43:25ID:???
大量のCSVデータを読み込んでDBに登録するシステムを作ってるんですけど、
プログレスバーを作ろうとob_flushを使うとfgetcsvで読み込んだデータが化けるんですけど
そんなもんなの?
大量のCSVを読み込ませる時って放置プレーにしてる?
0230nobodyさん2009/05/31(日) 17:51:54ID:???
バーでどの進捗を表そうとしてるのか知らんが、ob_flushで化けてるデータって単に文字コード違いかバイトずれじゃない?
というか加工の必要が特に無いならDB側で直接取り込んで、phpからはレコード数見ながらバー出せばいい話じゃないのかい
0231nobodyさん2009/05/31(日) 18:39:34ID:???
化けるというよりは、データが欠落する感じです。
例えば10行のCSVがあって、foreachかforで10回、回して一行づつSQLを発行して登録する場合、
(取り込むデータを確認して、必要に応じて変化させる必要があるため、LOAD DATA INFILEは使っていません)
4行目までは正常なSQLを発行するのに、5行目からは空白になったり
explodeを使って取り込んだ行を配列に分解するんだけど、正常に分解してくれなかったり
その他の行はちゃんと日本語になってるのに、特定の行だけ意味不明な数字の羅列になったり・・・。
ちゃんと正常に最後まで行くときもあったり、かと思うと次同じ事をやったら今度は化けたりで安定しません。
ob_flushを外すと何回やっても正常に登録されるのでob_flushが原因ではないかと思った次第です。
0232nobodyさん2009/05/31(日) 18:56:27ID:???
ob_get_contentsをコールして無いとかいうオチじゃあるまいなw
0233nobodyさん2009/05/31(日) 20:57:25ID:???
>232 使ってないですね〜

実際のソースです。

function setCSVdata($file="") {
setlocale(LC_ALL, 'ja_JP');
$csvrows = count(file($file));
$handle = fopen($file, "r");
echo str_pad(" ",4096)."<br />\n";
ob_end_flush();
ob_start('mb_output_handler');
ob_flush();
flush();
for ($i=0; $i<=$csvrows; $i++) {
$csv = trim(fgets($handle));
$obj = explode(':', $csv);
  〜〜 SQLを発行 〜〜
  ※この時点で化けます
echo "<script type="text/javascript">setProgressBar(".$i.",".$csvrows.")</script>";
ob_flush();
flush();
}
fclose($handle);
}
0234223(221,217)2009/05/31(日) 21:09:21ID:ONuTHT0e
なんとかブログを設置することが出来ました
設定弄って設置するだけで丸一日かかった…orz
設置したのはこれです↓
http://www.rocomotion.jp/cgi/roco_diary_r.php
で、>>224のようにしたいのですが、設置したものがcgiファイルなんです
しかも言語はPerl?全くPHP関係ないじゃんってなって困っています

できれば一日がかりで設置したのでこのまま先へ行きたいのですが、
今入れたブログに文章を書く→その文章から最新2件をトップページのHTMLの一部分に展開して表示
が理想ですが、無理そうなので
トップページに文章を書く→今入れたブログへコピペ
で妥協するしかないっぽいです
0235nobodyさん2009/05/31(日) 21:23:23ID:???
まぁ初心者が一度に事を進めると大概わけわからなくなって進まなくなるから
妥協の連続で理想に近づけていけば良いんじゃない
0236nobodyさん2009/05/31(日) 21:24:50ID:???
そもそもなんでこのスクリプトを選んだのか
そして元がKENTのCGIらしいがこれじゃ苦労するしかないぞ
02372342009/05/31(日) 21:44:08ID:ONuTHT0e
>>235
ありがとうございます

>>236
設置すらままならず、ググってそれっぽいの一通り設置しまくって
唯一上手く設置出来たのがこれです…orz

その後の調べでJavaScriptでHTMLへcgiのテキストデータを埋め込めそうな気配です
ただ素人目で見ても日記の展開が厄介そうなので別のブログも検討してます
おすすめありますか?
0238nobodyさん2009/06/01(月) 02:25:22ID:???
WordpressかMovableTypeだったら既成のプラグイン組み合わせで全部できそうな気もするが
0239nobodyさん2009/06/01(月) 08:45:06ID:???
>>233
ob_flushは色々気をつけたほうがいい。ググったら速攻で出てきたページを貼っておく。
ttp://d.hatena.ne.jp/shimooka/20070426/1177571621
0240nobodyさん2009/06/01(月) 11:48:51ID:/vKaesuU
php初心者です。
phpには、64bit整数が無いみたいですが、みなさん、どのようにして32bit以上の整数を扱ってますか?

ちなみに、現在、MySQLのbigint型の値をどのようにしてphp側に受け取ろうか、という点で悩んでます。
0241nobodyさん2009/06/01(月) 12:48:49ID:FEmWlQvb
>>240

32bit以上の整数を使ってどんなサイト作ってるの?

オレ初心者だけど文字列として扱うけど
0242nobodyさん2009/06/01(月) 12:57:19ID:???
BCMath?
0243nobodyさん2009/06/01(月) 13:38:00ID:???
pg_copy_fromで一括登録しようと思うのですが、TABLEのPrimary KeyをSERIALで設定しています。

この場合、登録しようとしている配列にはPrimary Keyの設定が必要になってくるのでしょうか?
教えて貰えれば幸いです。

NULLで突っ込めば、データベース側がINSERTと同じように自動的に振ってくれるのかな?
0244nobodyさん2009/06/01(月) 13:39:51ID:???
試してみりゃすぐ分かんだろ
0245nobodyさん2009/06/01(月) 14:02:04ID:/vKaesuU
>>241
32bit整数は単純にDBのサロゲートキーとして使用しています。
なので、php側ではあまり意味を持たないのですが、主キーなので必須なのです。

ちなみに、データは延々と増え続けるので、32bit整数だとすぐオーバーフローになってしまいます。
なので64bit整数を採用しているわけです。

単純にphp側で64bit整数を用意して受け取りたいだけなんですけどね。
それが駄目らしいです<php
0246nobodyさん2009/06/01(月) 14:09:23ID:???
4294967295件もレコードあんの?
0247nobodyさん2009/06/01(月) 14:17:59ID:/vKaesuU
>>246
毎日数千〜数万件のレコードが作成されるので、数年運用すると32bit以上はいくと思います

0248nobodyさん2009/06/01(月) 14:27:17ID:???
>233です。
ob_start('mb_output_handler');

単に
ob_start();
にしたら問題なく登録されました。
日本語が含まれてるのでmb_output_handlerを入れたのですが、これが駄目だったみたいですね。
CSVがShift-JISでDBがUTF-8だったので変換がうまくいかなかったのでしょうか?
0249nobodyさん2009/06/01(月) 14:27:46ID:???
その計算はちょっとおかしいと思うが
まぁPHPでもBIGINTが使いたいなら>>242も言ってるようにBCMathでいいじゃない
0250nobodyさん2009/06/01(月) 14:33:28ID:/vKaesuU
>>242
>>249
ふむふむ
BCMathですか
調査します
0251nobodyさん2009/06/01(月) 15:41:44ID:???
問い合わせフォームなのですが、イレギュラーな行為をしようとすると
挙動がおかしくなってしまいます

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」が表示されてしまうのです。
本来なら、ここでは名前欄に「花子」、メール欄は空欄でメールが未記入です警告がでるはずだと思うのですが・・・。
0252続き2009/06/01(月) 15:44:08ID:???
すいません、長文ですが、もう少しあります。

それで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追加したのですが、相変わらずです・・・・。

原因はどこだと思われますか?
02532372009/06/01(月) 16:53:29ID:ff8Q7K7b
niftyの無料のやつで作っていたんですが、PHPに対応していないことが発覚しました
通りで設置できないわけだ
>>238のWordpressを導入してみたいのでxrea.comに移ります
0254nobodyさん2009/06/01(月) 16:58:20ID:kn+vnO2F
配列について質問です。
arr=("青","青","青","青","赤","赤")
上記の配列で、countでは、要素数は確認できますが、
青の要素数を数えるには」どうしたらよろしいでしょうか?
0255nobodyさん2009/06/01(月) 17:05:31ID:???
>>251
フォームのデザインパターンがぐたぐた。
もっと参考書見た方がいいよ。
文章わかりずらいす。
ちゃんと読んでないけど、セッションの代入で失敗してるでしょ。
セッションに値が入ってるか一行ずつ確認してみ。
0256nobodyさん2009/06/01(月) 17:15:22ID:???
>>254
array_count_values
0257nobodyさん2009/06/01(月) 17:23:16ID:???
>>256
ありがとうございます。
PHPは関数が豊富で使いやすいですね。
02582512009/06/01(月) 17:27:19ID:???
>>255
レスありがとうございます。
わかりずらくてすみません。

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

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

セッションはheader(location)でページ移動さえしなければ
全てのページで問題なく想定したものがechoで表示できましたので、
代入は問題ないかと思います。
ありがとうございます。
0259nobodyさん2009/06/01(月) 18:01:12ID:???
headerで飛ばすときにSIDを入れたらどうなんの?
っつかSID発行されてる?
0260nobodyさん2009/06/01(月) 18:15:52ID:???
headerで飛ばすのはフォームのパターンですので、
関係ありません。
session_Startちゃんとしてますか?
02612512009/06/01(月) 18:44:40ID:???
>>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ヘッダの記述の仕方とかあるのでしょうか?
というか、書き方もめちゃくちゃで知識もグダグダだと思うので
色々長文書いてしまいすみません。色々と勉強して出直してきます。失礼しました。
02622372009/06/01(月) 23:30:31ID:ff8Q7K7b
ロリポップで借りてWordpressを設置できました
トップページのHTML内の一部分にWordpressから最新記事2件を全文表示で
載せたいのですが、Wordpressの最新記事の呼び出し方が分かりません
>>224の<?php include_once('blog_reader.php'); ?>でも()内が分からず、
他、調べて出てきたものを試してみてもできませんでした
教えてください、お願いします
0263nobodyさん2009/06/01(月) 23:44:41ID:???
WordPress (ワードプレス) その12
http://pc11.2ch.net/test/read.cgi/blog/1237205315/
0264nobodyさん2009/06/01(月) 23:49:01ID:???
>>262
なんつーか全力で遠回りするタイプの人だなぁ
02652622009/06/02(火) 00:04:45ID:nshP4Iwz
>>264
本当にど素人ですみません
5日前までHTMLを拡張子だとしか認識してなかったレベルです
3日前までPHPは新書の出版社名だと思ってました

>>263のスレに行ってきます
お世話になりました、また移動しますノシ
0266nobodyさん2009/06/02(火) 05:39:38ID:td4jeRp0
携帯サイトの文字コードについての質問です。
現在、php+MySQLで携帯サイト(3キャリア対応)を作成しているのですが
文字コードの問題で文字化け等で困っています。
MySQLは文字コードがutf-8です。

始めは、utf-8でコーディングしていたのですが、携帯サイトはShift-JISの方が良いとの事で
コーディング自体をShift-JISに変えてみたのですが、今はDBからの値が文字化けしてしまっています。
いまは文字コードがバラバラになってしまい統一出来ていない状態です。

・出力部分だけをShift-JISに変換して表示させた方がいいのでしょうか?
(例■$html = mb_convert_encoding($html, "SJIS", "UTF-8");

・それと「SJIS-win」などは使った方がいいのでしょうか?
絵文字などは

mb_substitute_character('none');//存在しない文字コードの処理を設定。
$Pictograph = mb_convert_encoding($Pictograph, 'Shift_JIS', 'Shift_JIS');//絵文字削除

上記のような事をして削除しておりました。
しかし、正常に表示(3キャリア)されるのなら絵文字表示してもいいかなと思っている状態です。

長文申し訳ありません。
0267nobodyさん2009/06/02(火) 08:14:19ID:???
データベースの文字コードをJISにする
以上。
0268nobodyさん2009/06/02(火) 08:16:20ID:???
>262
PHPを出版社だと思ってたなんて・・・ま、オレもそうだったけどw
Wordpressって使ったことないんだけど、RSS出力とかないのかい?

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


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

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

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

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

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

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

自分はZF,Smartyです。
■ このスレッドは過去ログ倉庫に格納されています