トップページ⇒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/
0153nobodyさん2009/05/28(木) 17:32:55ID:???
phpメールフォームを設置しようと思い"sendmail.php"というものをDLしました。
フォームの設置ができ、試しにフォームからメールを送信したのですが指定先に届きませんでした。。

ググったら"sendmail path"というものの設定をしなきゃいけないと出て
書いてあるとおりに設定したのですが、php.infoを見ると"sendmail path"の所が
"no value"となったまま変わらないんです。。
Apacheをリスタートしても変わりませんでした。

教えて頂きたいです。

[php.ini]
[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
sendmail_from [email protected]

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =/usr/sbin/sendmail -t -i

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =
0154nobodyさん2009/05/28(木) 17:39:03ID:???
セミコロン外す必要があるよ
php.iniの編集したことなかったん?
0155nobodyさん2009/05/28(木) 18:04:16ID:???
>>154
ありがとうございます!
やってみます。

はい、編集初めてなんす。。
趣味の範囲でなんですけど俺には難しいっす。
0156nobodyさん2009/05/28(木) 20:36:59ID:pePXJ68I
>>151
仕事です。
>>152
MovableTypeは使いません。
ブログシステムを作るということです。

がんばってみます。
すいません。
泣き言を言って。でも1人で作るというのが怖い。
もし納期に間に合わなかったらとか。
どこかブログの作り方を説明しているサイトはないかな?
本とか。
0157nobodyさん2009/05/28(木) 20:42:18ID:???
>>156
blogの作り方そのものを書いてるサイトはあまり無さそう。
フリーで公開されてるものは多々あるから、それの中身見たほうがいいと思う。
本はそれなりに大きい本屋行けば簡単に見つかると思うが。
0158nobodyさん2009/05/28(木) 20:45:10ID:???
ん、まて。納期って検証込みで一ヶ月か?
本来無茶な期間ではないが、お前さんのスペック(検索力込み)の低さでは無茶かも。
職場の先輩とか相談できる相手いないのかい?
0159nobodyさん2009/05/28(木) 21:02:42ID:???
>>152
おまえのアレ、OpenPNEのソースパクってきて、
見た目を変えただけやん。
0160nobodyさん2009/05/28(木) 21:04:15ID:???
ブログって1から作るのメンドクサイだろ。
ページングやらカレンダーとのリンク、画像のアップロードやらは必須だろうから、素人が1ヶ月では無理だよ。
セッション管理とかからんだら限りなく無理。
0161nobodyさん2009/05/28(木) 21:06:48ID:???
仕様書が無いと仕事ができないくせに、

「プログラマーが一番偉い仕事なんです」

とかってふんぞりかえるのって、なんなの?
0162nobodyさん2009/05/28(木) 21:12:24ID:???
Webアプリでガチガチの仕様書なんて要らないよ。
Amazonやら楽天なんかのシステム規模ならともかく。
要件聞いたらプロトタイプさくっと作って、デモしながら基本設計固めたほうが早い。
0163nobodyさん2009/05/28(木) 22:56:27ID:???
file_get_contentsを使って.txtファイルを読み込んだら
ファイルの中身が改行されずに表示されたんですが
どうすれば改行が反映されるのでしょうか?
0164nobodyさん2009/05/28(木) 22:58:26ID:???
content-typeをtext/plainにするか、改行をbrタグに変換
0165nobodyさん2009/05/28(木) 23:01:28ID:???
>>157
webサイトがないんですよ。
ECサイトは1ヶ月で作ったことがあるんですが、
ブログとなると、カレンダーや画像やRSSやいろいろ
絡んできて。
本でいいのありますか?この間ジュンク堂行ってきたんですが、
カスタマイズ本しかなかった。


>>158
納期って検証込みで一ヶ月です。
ECのほうはそういう本があって無事作れたんですが、
ブログは参考になる本がなくて、webも。
先輩も忙しくて自分で作ってといわれると胃がキリキリ
いたんで。仕様書も自分で作って。
アメーバブログ並を求められるのですが。
これみなさん作れますか?

>>160
めんどくさいというかわからない部分が聞けない
>>162
客に説明しないといけないので、仕様書必須です。
後ブログサイトのデザインもします。
0166nobodyさん2009/05/28(木) 23:10:55ID:???
>>165
ameba級を仕様書+設計+制作+検証込みで一ヶ月か。おまけにサイトデザイン?
そりゃ無理とは言わんが相当無茶なスケジュールだ。先輩が忙しくて構ってられんのも頷ける。
明らかにプロジェクト組んでる奴(上司)がおかしい。

でもECよりは楽だと思うんだけどなぁ。とりあえず考える前に作ってみたら?
0167nobodyさん2009/05/28(木) 23:12:53ID:???
フレームワーク使えるなら一週間でプロトは出来るでしょ
そこからが長いけどw
0168nobodyさん2009/05/28(木) 23:13:05ID:???
なんでwordpressのカスタマイズではダメなのか、
理由は聞いたのか?
0169nobodyさん2009/05/28(木) 23:13:48ID:???
フレームワークってのは
プロトタイプを作るためのものなの?
0170nobodyさん2009/05/28(木) 23:14:09ID:???
ameba並って管理側のシステムも含めてるのかな。だったら無謀。
0171nobodyさん2009/05/28(木) 23:15:17ID:???
>>169 たぶんプロトタイプの解釈が異なってるw
0172nobodyさん2009/05/28(木) 23:21:25ID:???
>>169
お前は何を言っているんだ
0173nobodyさん2009/05/28(木) 23:33:16ID:???
>>164
レスサンクス、だめでした。エディターはEMエディター使っているんですが
改行設定が悪いのかもしれません。どこで設定できるのかわかりませんが
もうちっと調べて見ます。

>>165
ブログ作成なら「作って覚えるPHP+MySQLアプリケーション―
ブログ、ショッピングサイトからマッシュアップまで 」とか言うのがありますが
アマゾンのレビューは良くないですね。
0174nobodyさん2009/05/28(木) 23:47:39ID:???
アメーバブログ級か・・・
見る側のみなら大丈夫かもしれないけど、管理側までとなると一ヶ月では難しいんじゃまいか。
仕事と自分の体、どっちが大事かよく考えて受けた方がいいんじゃない?
01751732009/05/28(木) 23:57:19ID:???
自己解決しますた
01761532009/05/29(金) 03:27:15ID:3dHCHvMm
失礼します。

先ほどsendmailについて質問をさせてもらったものですが、やはり出来ませんでした…
パスを/usr/sbin/sendmail -t -iにするには、何かインストールする必要があるんでしょうか?
Xmailというものが引っかかりDLしていろいろやってみましたがダメでした。
0177nobodyさん2009/05/29(金) 06:51:54ID:???
sendmailのpathが合って無いんじゃない?
which sendmailで探してみ
0178nobodyさん2009/05/29(金) 08:17:22ID:???
localhostが名前解決できてない可能性もある
0179nobodyさん2009/05/29(金) 08:48:02ID:???
つかログくらい見ろって話だ
0180nobodyさん2009/05/29(金) 09:11:52ID:4+pBIE+V
>>166
ECは大角本があって非常に助かりました。
ブログはいい本やサイトがないですが、がんばります。
簡単なのは作れたんですが、カレンダーや管理画面等
が難しく。
>>167
フレームワークはできません。手続き型です。
>>168
自社で開発して販売にもっていこうとしているみたいです。
>>170
そうですか。どうしよう。
>>174
胃が痛いし、夜も眠れません。
0181nobodyさん2009/05/29(金) 09:26:37ID:???
>>180
出来上がったら売るのか…
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を受け取るので「太郎」と表記、そしてメール項目は空欄で、
メール項目の上にメールが未記入ですと表記する。
メールを「[email protected]」とrewrite.html画面で記入して確認submitボタン→
confirm.htmlでは今度は未記入項目がないので、「問題なければ送信(complete.htmlへのリンク)」をechoで表示、
そして本来ならここで、送信をクリックしてcomplete.htmlへ行くところを・・・・・

クリックせずに、form.htmlと直打ちして最初のフォーム画面に戻る、
そこで今度は名前の項目には「花子」と入れ、メールを空欄のまま確認submitボタン→
confirm.htmlがメールが空欄なので自動判定してrewrite.htmlへ飛ばす
すると何故か、名前欄、メール欄ともに先ほどの「太郎」と「[email protected]」が表示されてしまうのです。
本来なら、ここでは名前欄に「花子」、メール欄は空欄でメールが未記入です警告がでるはずだと思うのですが・・・。
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追加したのですが、相変わらずです・・・・。

原因はどこだと思われますか?
■ このスレッドは過去ログ倉庫に格納されています