【PHP】下らねぇ質問はID出して書き込みやがれ 89
1 :
● :
2009/10/11(日) 21:18:54 ID:??? 質問者はまず
>>1 を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
次スレは
>>980 が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 88
http://pc11.2ch.net/test/read.cgi/php/1253061577/ ◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
【簡易FAQ】
1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→
http://example.com/が例文などのために予約されている 。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
→ Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
→ cronかタスクスケジューラを使え。
7.extractって危険なの?
→変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
→ URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
→ .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
10. そもそもインストールの時点でうまくいかない
→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
11. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
→ よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40 15. クッキーの情報をユーザから隠したい
→ セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
→ strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
→ まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
→ C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(
http:// 〜とか)を扱う際の限界
→ fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
→19.を参照
21. 画像処理一般 or GDの限界
→ ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
→ 好きにしてください
おわり
7 :
nobodyさん :2009/10/11(日) 22:05:52 ID:2KRfPF1l
>>4 > → {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
ちょう気になります。
テンプレにphp5.2→php5.3の違いも書いて欲しかった
キミが書くんだよ
10が書いてくれるって
今時新たに5.2入れることなんてあるのか?
4も5もいっしょやんけ
14 :
nobodyさん :2009/10/12(月) 18:13:58 ID:VqENsVDc
よろしくお願いします。 連想配列の値をforeachで取り出して、データベースへ インサートすると上手くいきません。 DBへの挿入自体は、出来るのですが、繰り返しているために レコード自体が、要素の分だけ増えてしまいます。 (値が20あると、DBの行も20だけ増えてしまいます。) where句を加えてみても、良い結果になりません。 どうしたら、1行(1 row)に収められますか? foreach ($data as $key => $val){ $ret = mysql_query("INSERT INTO table ($key) VALUES ($val)"); }
update
それだけじゃ何がしたいか分からんよ
分かるよ implode(',' $data) ってことでしょ
String連結して1文にすればいいじゃないか valはis_stringやis_int使って型分けしたほうがいいと思うが INSERT INTO table (key1, key2, keyn) VALUES (val1, val2, val3); ていうか全部増えるってNOT NULL制約はつけてないのか?それともDEFAULT入れてるのか? テーブル設計見直したほうがいいんじゃね
19 :
nobodyさん :2009/10/12(月) 19:42:03 ID:VqENsVDc
>>14 です。
レスありがとうございます。
質問の仕方がわかりづらかったみたいですみません。
文字の連結ではないです。それだと列にまとまってしまいます。
現状は、行(レコード)が増えてしまう。たとえるなら、
碁盤の目の対角線上(左下→右上)のように、
値を入れるごとに、レコード自体がforeach のために、
1個ずつ増えてしまうのです。更に、わかりづらいかも。
>>15 さんのアドバイスのように、UPDATE で今やっています。
レコードのidを一個だけ増やして、その行をwhereで指定して
そこをUPDATEする感じで。
idを増やすとこまではできました。UPDATEがまだできないですが、
もう少しで出来そうです。
ありがとうございました。
21 :
nobodyさん :2009/10/12(月) 19:51:55 ID:9W/f2NwM
【OS名】CentOS 5.3
【PHPのバージョン】php5.1.6
【連携ソフトウェア】なし
【ブラウザ】Firefox3.5
【質問内容】
教えてください。PHP+Javascriptでcookieに値をセットしようとしています。
やりたいことはaaa.bbb.comにアクセスして、ccc.ddd.comドメインに対するcookieを保存することです。
■存在するマシン
・ローカル端末
・Webサーバ1(aaa.bbb.com)←ローカルホストにあるhttpdだが、hostsファイルを使ってこのような名前解決を可能にしている。
・Webサーバ2(ccc.ddd.com)←ローカルLAN内のマシンで、hostsファイルを使ってこのような名前解決を可能にしている。
まずローカル端末から
http://aaa.bbb.com/a.htmlにアクセスします 。
a.htmlの中にはJavascriptが入っており、そいつはccc.ddd.comのa.phpにGETリクエストを飛ばすようにしています。
a.phpの中にはsetcookie関数が仕込まれており、これによってccc.ddd.comドメインに対するcookieをセットしようと
考えていますがうまくいきません。
続きます。
22 :
nobodyさん :2009/10/12(月) 19:52:41 ID:9W/f2NwM
続きです。
各ファイルの中身は以下のようになっています。
a.html
===================================================================================================
<html>
<head>
<script language="Javascript" src="
http://ccc.ddd.com/cookie.js " type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">
<!--
cookietest();
// -->
</script>
</body>
</html>
===================================================================================================
23 :
nobodyさん :2009/10/12(月) 19:54:17 ID:9W/f2NwM
続きです。
cookie.js
===================================================================================================
<!--
function cookietest(){
var url = "
http://ccc.ddd.com/a.php ";
var request = createXMLHttpRequest();
request.open("GET", url, true);
request.send("");
}
function createXMLHttpRequest() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
return new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
return new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
return null;
}
}
} else {
return null;
}
}
===================================================================================================
24 :
nobodyさん :2009/10/12(月) 19:55:00 ID:9W/f2NwM
続きです。 a.php =================================================================================================== <?php $timeout = time() + 30 * 86400; setcookie("cookie","value", $timeout, '/','ccc.ddd.com'); ?> ===================================================================================================
そもそもCookieってサブドメイン毎に分けられるんだっけ
いや、サブドメイン毎はできるような気がしてきた。 で、スクリプトでGETしたa.phpに対するレスポンスは誰が受け取るの? 元のUA? スクリプトでレスポンスヘッダをUAに転送しようとしてる?(できるの?) それともスクリプトで受けて(できるか知らんが)、jsで改めて同じcookieを 元のUAにセットしようとしてる? と流し見て思った。
27 :
21 :2009/10/12(月) 20:00:57 ID:9W/f2NwM
>>25 理論的にはできるはずです。
実際にJavascript経由ではなく、直接a.phpにアクセスするとccc.ddd.comのドメインでcookieが保存されます。
JavaScriptでは他のドメインにアクセスできない それが出来たら勝手にAmazonのカートに商品追加したりGmailの中身ぶっこ抜いたりできるから夢が広がるんだけどね
29 :
21 :2009/10/12(月) 20:04:43 ID:9W/f2NwM
>>26 レスポンスは少なくともブラウザが受け取っていることは確認しました。(Live HTTP Headersというfirefoxのアドオンで確認しました。)
その部分だけ抜き出すと以下のようになっています。
----------------------------------------------------------
http://ccc.ddd.com/a.php GET /a.php HTTP/1.1
Host: ccc.ddd.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ja,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: Shift_JIS,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer:
http://aaa.bbb.com/a.html Origin:
http://aaa.bbb.com HTTP/1.x 200 OK
Date: Mon, 12 Oct 2009 05:51:27 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.1.6
Set-Cookie: cookie=value; expires=Wed, 11-Nov-2009 05:51:27 GMT; path=/; domain=ccc.ddd.com
Content-Length: 0
Connection: close
Content-Type: text/html; charset=UTF-8
----------------------------------------------------------
30 :
21 :2009/10/12(月) 20:13:00 ID:9W/f2NwM
>>28 そうなんですか…。
サードパーティcookieなんてものがあるので、こういうことも可能なのかと思ってました。
レスポンス見るとちゃんと受け取ってるように見えるけど… もしかしてcccのCookieをaaaのドメインに向けて出したいと思っている? サブドメイン毎に分けられるなら、それができたらセキュリティホールになるんじゃあ… って気が
32 :
nobodyさん :2009/10/12(月) 20:32:17 ID:9W/f2NwM
>>31 はい、ただこのやり取りは「Javascriptで」GET要求を出したものに対するレスポンスなので、そこでうまくブラウザ側にセットされていないのかもしれません。
また、cccのcookieをaaaドメイン向けに出したいと思ってはいません。
やりたいことはaaa.bbb.com以外に様々なドメインのサイトがあって、それらのページにはa.htmlのようにccc.ddd.comにアクセスするようなJavascriptを埋め込んでもらおうと思っています。
(要するに提携した各サイトへのアクセス状況をccc.ddd.comで収集するイメージです。)
その際にそのアクセス情報をccc.ddd.comドメインへのcookieとして保存出来ればと思っています。
>>32 単にリクエストを送るだけなら<iframe>とか<img>でやるのがいい。
たとえばGoogleはImage()でやってる。もちろんCookieもセットされる
<script type="text/javascript">
new Image().src = "
http://example.co.jp/ ";
</script>
なんかクロスドメインの制限があったような気がするけど、ローカルならクロスドメイン通せるのかな。 でも、クッキー受け取るのブラウザじゃなくて XMLHttpRequestのインスタンスで閉じてると思ったけど。
ブラウザが受け取っているいないの判断は何でしてる? cccドメインのファイルにアクセしてみてもリクエストヘッダにCookieが入っていないってこと? あと他ドメインのCookieどうこうはクロスサイトの問題があるから直接jsじゃなくて、iframe経由 が基本だったはず。
37 :
21 :2009/10/12(月) 21:05:13 ID:9W/f2NwM
>>33 なるほど、cookie.jsの中をImage()に変更するとcookieが保存されました。
解決しました、ありがとうございました。
>>34 なるほど、そうなんですね。
インスタンスで閉じてるとすると、受け取った後の処理を書けばいいのかもしれませんが、とりあえずImage()でやることにします。
>>35 「ブラウザが受け取った」というのはLive HTTP headersの情報で判断していました。
なので正確には
>>34 さんの言うとおりなのかもしれません。(勉強不足でした。)
Imageじゃなくてiframeでも同様のことができるのですね。勉強になりました。ありがとうございます。
38 :
nobodyさん :2009/10/12(月) 22:39:22 ID:bWWKsEMi
PHPでFTPアップロードしたいんですけど、 phpファイルのあるコンピュータ(apacheサーバー)からではなく、 他の、そのサイトをみてるPCから、 FTPサーバーにアップロードする方法ってありますか? あれば教えてください。
40 :
nobodyさん :2009/10/12(月) 22:59:39 ID:bWWKsEMi
そのソースファイルを アップロードファイルにすれば済む話なのかな?
42 :
nobodyさん :2009/10/12(月) 23:13:59 ID:bWWKsEMi
クライアントとFTPサーバ間の通信ならPHPサーバ関係あんの?
クライアントにPHP入れればいいじゃん
>>42 こっちが聞きたいんです。 何が分からないか分からないので。
<form enctype="multipart/form-data" method="post" action="example.php">
<input type="file" name="file1" >
<input value="送信" type="submit">
</form>
とかでサーバーにファイルをアップ出来ることわかればあとは組み合わせ。
それとも、それはあなたのやりたいことと違うのかな?
46 :
nobodyさん :2009/10/12(月) 23:24:46 ID:bWWKsEMi
やりたいのは、動画とか比較的大きいファイルをアップロードしたりできる
サイトを作ることで、それにはftpを使うほうがいいと思ったんです。
でも、phpが動いてるのはあくまでサーバー上ですので、
クライアント側のファイルをオープンするのは無理だと思うんです。
で、直接クライアントとftpサーバ間の通信ができる方法を知りたいのです。
>>43 分かりません。
>>44 上記の理由で、クライアントにPHPを入れるという以外の方法を探しています。
前のスレの続きだが、はっきり言って==を===にするとか、 以前にもっと早くする余地が残されているのが普通。 熟知している奴が、htmlを少しリファクタリングするだけで、 体感速度が改善されるし、リアルタイムで処理する必要がない機能を バッチ処理にするだけでもかなり改善される。 もちろん、SQL文の改善もしかりだ。 もっと効果が高い方法を考えなさい。
昔、ループの中で同じSQLを何回も発行している奴がいた。 あまりにも馬鹿すぎて、殴ったら、上司に呼ばれて停職になったが、 その停職期間中に始めた体験農業がきっかけで、 今はフリーのプログラマーへと変貌を遂げた。 そして、今年新品種のにんじんの栽培が農協から表彰を受けて、 年収が大幅にアップした。人生って何があるか分からんよ。 この早いwebの中で、変わらないことは即ちリスクであるってことよ。
クライアントにFTPソフトを入れるでいいんじゃないの なんでHTTPじゃだめなのかな
本命のサイトと倉庫代わりのサイトを別けて使おうってことか なめてんな
51 :
nobodyさん :2009/10/12(月) 23:36:52 ID:bWWKsEMi
>>50 倉庫代わりじゃなくて倉庫です。
どちらも自分のPCです。
ただ、場所が違うんですよ。
53 :
nobodyさん :2009/10/12(月) 23:52:47 ID:bWWKsEMi
>>49 ,52
アップロードしたときに別の処理もしたいからです。
例えば、データベースに入れたり・・・。
アップロードとは別に、定期的にDBを更新させるとかでもいいんですが、
より楽な方法があればと思ったわけです。
とにかく結局予想通り無理っぽいので、質問の意図も書いてみました。
>>53 たしか何個かバックグラウンド処理させる方法あったよな
おれがしってるのはキューを作る事
あとなにがあったっけか?
55 :
nobodyさん :2009/10/13(火) 09:56:30 ID:Bgm/yHH7
readmeのコード例を実行してDB作ってやるだけだろ
作った奴に聞け
リコンパイルがわからねえならそのまま使っとけ 別にキーワードなんて使わなくても困らないだろ
59 :
nobodyさん :2009/10/13(火) 16:03:10 ID:ajuLMPfn
設置してあるphpってダウンロードする方法ってないですか? 中身を見てみたいのですが…
61 :
nobodyさん :2009/10/13(火) 16:10:32 ID:ajuLMPfn
63 :
nobodyさん :2009/10/13(火) 16:50:29 ID:ljBnoCI+
携帯動画サイトを作っているのですが、動画ページへの直リンクで非常に困ってます。 .htaccessを使ってリファラで制限したんですが、ドコモはリファラが残らず断念しました。 後は、PHPでできるみたいなのですが知識がなく、本を買って調べたのですがいまいちわかりませんでした。 PHPで直リンを防ぐソースなどはないでしょうか? レベルの低い質問で申し訳ないんですがよろしくお願いします。
セッション。
65 :
nobodyさん :2009/10/13(火) 20:28:10 ID:SwQUEovx
単一のクラスでデータベースを扱う場合、 クラス内にデータベースの設定を書いてしまうと思いますが、 複数のクラスからデータベースを呼び出す場合、 データベースの設定はどのように持っておくべきでしょうか? iniやxmlなどの外部ファイルに記述するか、 データベースの設定だけを保持したクラスを作成するか等。 他にベターでメジャーな方法があったら教えてください。
class test{ var $test = null; function push($value){ $this->test = $value; } function pop(){ return $this->test; } } $tes = new test; $tes->push("てすと"); echo $tes->pop();
1要素だけかよw
コネクションした際にリソースを返されるからそれ使うだけじゃん 難しいか?
>>65 設定って?
ホスト名とかユーザ名とかデータベース名のこと?
そういうかなり具体的なことは、せいぜい一つのクラスだけが気にするようにする。
なお、よっぽどやっつけな場合以外、そのクラスのコードにもそれらの設定値は
書き込まないな。
>>69 俺は、専用のクラスにしているよ。
外だしにすると、一回一回接続するたびに、
設定ファイルを読み込んで、
余計なI/Oが発生するので、避けている。
こんな漢字(mysqliの場合) function dbCon(){ try{ $db = new mysqli("localhost","user","pass","my_db"); $db->query('SET NAMES utf8;'); return $db; } catch(mysqli_sql_exception $e){return $e->getMessage();} } $db = dbCon(); // dbオブジェクト取得 あとは $dbを使いまわせばよい。
一人質問を理解してないな
75 :
nobodyさん :2009/10/14(水) 13:39:39 ID:tPIKiOul
【OS名】Windows Vista Home Premium 【PHPのバージョン】php5.3.0 【連携ソフトウェア】なし 【質問内容】 書き込み失礼します。 セッションの保持期間の指定について悩んでいます。どうしても、指定した時間まで持たなくて。 現在は、セッションが関係するページの冒頭に以下のコードを入れています。 <?php //クッキーの使えない端末でもセッションを有効にする ini_set('session.use_trans_sid', '1'); //クッキーの使える端末では、セッションをクッキーに保存する ini_set('session.use_cookies', '1'); //セッションを、クッキーのみに保存させないようにする ini_set('session.use_only_cookies', '0'); session_save_path(); session_start(); ini_set('session.save_path', '2;/usr/local/www/htdocs/ユーザID/public_html/ディレクトリ名'); ini_set('session.cookie_lifetime', '秒数'); ini_set('session.gc_maxlifetime', '秒数'); ini_set('session.gc_probability', '1'); ini_set('session.gc_divisor ', '1000'); ?> (改行が多すぎると叱られたので一旦切ります)1/2
76 :
nobodyさん :2009/10/14(水) 13:41:23 ID:tPIKiOul
(続きです) 自信がないのがsession_save_pathとsession.save_pathの使い方です。書き方はこれであっているでしょうか? session.save_pathの引数に2を指定しておりますので、「ディレクトリ名」の下にはmod_files.shで作ったディレクトリを2階層分置いてあります。 また、session.save_pathに引数を指定するとGCが作動しなくなるとマニュアルにあるので、GCについての設定は無駄でしょうか。 クッキーの使えない端末(携帯など)でのセッションの保持は諦めます。 …が、せめてクッキーの使える端末(パソコンなど)では、指定した時間セッションを保存したいと考えています。 色々と調べましたが、原因がさっぱり分からずお手上げです。 どうかよろしくお願いいたします。2/2
>>75 期限切れとなるのが
セッション用Cookieが存在しない状態での初回アクセス日時 + session.cookie_lifetime 秒
ならPHPの実装通り
それともこれに当てはまらない現象?
ini_set('session.*... は session_start() 前に設定しないと使ってくれないぞ
GCについては session.save_handler = "files" の場合に
2階層以上をしていると働いてくれないので言う通り不要
>>77 ハイハイ
サーバーの時間はあってるん?
80 :
nobodyさん :2009/10/14(水) 15:17:46 ID:tPIKiOul
>>78 ご返信ありがとうございます。
>期限切れとなるのが〜
はい、初回アクセス+session.cookie_lifetime 秒よりも早くセッションが切れてしまいます。
ini_setはsession_start()の前に、とのことでしたのでそのようにしてみたのですが、以下の警告が出てしまいました。
Warning: session_start() [function.session-start]:
open(/usr/local/www/htdocs/ユーザID/public_html/ディレクトリ名/セッションID, O_RDWR)
failed: Permission denied (13) in /usr/local/www/htdocs/ユーザID/public_html/ディレクトリ名/ファイル名.php on line 8
Warning: session_start() [function.session-start]:
Cannot send session cache limiter - headers already sent
(output started at /usr/local/www/htdocs/ユーザID/public_html/ディレクトリ名/ファイル名.php:8)
in /usr/local/www/htdocs/ユーザID/public_html/ディレクトリ名/ファイル名.php on line 8
問題のファイルの8行目には、session_start();が記述してあります。
>>79 多分あっていると思います…が、仕様書などからの確認は取れませんでした。
サーバって国内?海外?
>>80 パーミッションエラー出とるがな
つーかセッションデータを公開スペースに置くつもりなのか?
まず/tmpディレクトリとかで試してみたら?
あとサーバーの時間はdate()関数で調べてみれ
83 :
nobodyさん :2009/10/14(水) 16:52:07 ID:tPIKiOul
>>75 です。
>>82 セッションデータの保存先の件ですが、マニュアルによると
「この設定を/tmp (デフォルト)のようにどこか らでも読み込み可能なディレクトリのままにしている場合、
サーバ上 の他のユーザがこのディレクトリのファイルのリストを取得すること により、セッションをハイジャックをすることが可能となります。」
とのことでしたので、この設定にしてみました。
date()関数についての情報、ありがとうございました。基本の関数だったようでお恥ずかしい限りです。
サーバの日時はあっていました。
それから、先程から色々と調べているのですが、「save_pathの設定はSAFE MODEが有効になっているときには変更できません。」との情報を見つけました。
使っているサーバのセーフモードを調べてみましたら、見事にオン。
なんかこれが原因のような気もします。
今度セーフモードがオフになっているサーバに変えて試してみようと思います。
引き続き、なにか情報をお持ちの方いらっしゃいましたら、お願いいたします。
>>83 >してみました
書ける場所に設定するとか指定した場所に書けるようにしないとダメでしょ
わけもわからずやるほうがあぶねえ
ローカルマシンのユーザを心配しつつ全世界ネットユーザに公開しちゃってる件
>>83 >>80 で save_pathした場所でセッションファイルのパーミッションエラーが出てる
>>83 で save_pathの設定はSAFE MODE。。。見事にONでした
んーなんか違うような・・・
80からsave_pathは変更されていて、単にパーミッションが適切ではなくセッションファイルが書き込めないだけのような。
82の言うように/tmpでまず確認か、そのsave_pathのパーミッションをApacheのユーザが書けるように設定。
ここではsession_save_pathはsafe modeで使えないとは書いてないようだけど、どこに書いてあった?
http://www.php.net/manual/ja/features.safe-mode.functions.php /tmpのセッションジャック説明 「サーバ上 の他のユーザが」 他にユーザがいるのかな?
85の言うようにそのパスだとパーミッションなどの設定次第だけどあぶないかも。
87 :
nobodyさん :2009/10/14(水) 20:55:39 ID:tPIKiOul
>>75 です。ご意見ありがとうございます。
セッションファイルを保存したいと思っているディレクトリのパーミッションを変更してみましたが、状況は変わりませんでした。
また、/tmpで試してみたところ、以下の警告が出てしまいました。
Warning: session_save_path() [function.session-save-path]:
SAFE MODE Restriction in effect. The script whose uid is 33401 is not allowed to
access /tmp owned by uid 0 in /usr/local/www/htdocs/ユーザID/public_html/ディレクトリ名/ファイル名.php on line 6
Warning: ini_set() [function.ini-set]:
SAFE MODE Restriction in effect. The script whose uid is 33401 is not allowed to
access /tmp owned by uid 0 in /usr/local/www/htdocs/ユーザID/public_html/ディレクトリ名/ファイル名.php on line 7
Warning: session_start() [function.session-start]:
Cannot send session cache limiter - headers already sent
(output started at /usr/local/www/htdocs/ユーザID/public_html/ディレクトリ名/ファイル名.php:6)
in /usr/local/www/htdocs/ユーザID/public_html/ディレクトリ名/ファイル名.php on line 8
「SAFE MODE Restriction in effect.」という一文から読み取る限り、やはりセーフモードの問題でしょうか。
セキュリティについても、色々と調べてみたいと思います。ご助言ありがとうございます。
SAFE_MODEをOFFにしてテストか、無理ならOFFの環境で試すかしたほうが早いよたぶん あと無料スクリプトを拾ってきてそのセッションが動いてるか試してみるとか? あとはPHPをコンパイルしてCGIで動かすか
公式のトップページがばぐってるwwwwwwwwwwwwwwww
これはどう見ても不正に書き換えられただろwwwwww
function okc(f){var c=[38,38,40,40,37,39,37,39,66,65,13] これって↑↑↓↓←→←→BAかww
画像に何か変なコード埋め込まれてるかもしれないから誰かバイナリエディタで確認よろ
94 :
nobodyさん :2009/10/15(木) 11:37:33 ID:IJjjUaJi
今ローカル上のWinにVirtualBoxを起動させそこでCentOSを稼動させています。 そしてそのCentOS上でLighttpdとPostgreSQLとPHP5.3を動かしています。 NetBeans6.7.1ではSFTPを使いCentOS上に*.phpファイル保存時に自動的に書き込むようにしています。CentOS上の php.iniではXdebugの設定をしたのでNetbeansを用いてPHPのコードを一行一行実行して行く事ができるようになりました。 ここまでは上手く行きました。NetBeansのメニューで「プロジェクトのデバッグ」を選択するとブラウザーが立ち上がり、ブレークポイントを付けた行で停止して1行ずつコードを実行して行けます。 しかし、NetBeansのメニューで「プロジェクトの実行」を選択するとブラウザーが立ち上がる所までは同じですが、その後それ以上何も進展しない状況になります。(ブラウザーは「読み込み中」と表示されたままです。) これって正常でしょうか?
>>94 スレ違い
ID出さんでも質問OKなスレ池
96 :
nobodyさん :2009/10/15(木) 12:53:49 ID:HYNoiUHJ
PDO(postgres)でクライアント側の文字コードを設定する方法って SET client_encoding = 'UTF8'; 以外にありますか? pgsqlモジュールのpg_set_client_encodingに相当するやつがみつからないので
101 :
nobodyさん :2009/10/15(木) 14:46:54 ID:HYNoiUHJ
>>97 マルチと言ってもそっちは完全に無視されました。 3ヶ月たったのでこちらで依頼させてもらいました。 >>98 あと少しの所まで来ているので、ここでも良いかと思い質問させてもらいました。 分かる方いましたらどうかよろしくお願いします<m(__)m>
102 :
nobodyさん :2009/10/15(木) 16:31:38 ID:/ug7dUBY
Windowsでの外字エディタとかで作られた文字とかはphpで見つけることって出来るんでしょうか?
sjis-win
PHPコナミコマンドの件、IT系ニュースで早速取り上げられてたな 改ざんされてたらしい
105 :
nobodyさん :2009/10/15(木) 19:26:58 ID:67pnw1eJ
クラスの中に作った変数一覧を取得したいと思ってるんですけど クラス内関数から、内部にある変数一覧って取得できますか?
107 :
nobodyさん :2009/10/15(木) 20:30:10 ID:nPyaMf5+
PHPではfinal修飾子がプロパティにつけられないようですが Javaでプロパティにstatic finalをつけるところを PHPでやるには何を使ったらいいのでしょう? 調べたところconstとdefineがあるようですがどちらを使うのがより近い意味になりますか?
どっちも全く違うかと
PHP5.3の新機能ってどういうことに使われるんですか?
>>109 無名関数:
array_mapなどに引き渡す関数が書きやすくなった
ほかの新機能は任せた...
いつになったら (function(){ /*expression*/})(); な書き方が出来るようになるんだろう
なにその気持ち悪い書き方
114 :
nobodyさん :2009/10/15(木) 23:32:31 ID:jccmKipZ
>>114 $a = (function(){
return "aaa";
}();
$b = (function(){
$test_a = "bbb";
return 1024;
})();
var_dump($a); // string(3)"aaa"
var_dump($b); // int(1024)
関数(); は 関数名(); で関数を実行できるのと同じ考え方。
無名関数だから関数名の重複が起こらないというメリットがある
$test_a = "bbb"; に何の意味が・・・?
そもそも同じ作業を繰り返して記述しなくても良いように関数(サブルーチン)化という手法が出来たのに、 一過性のモノを関数化する必要ってさっぱり理解できないのだが。
既にできるんじゃないのそれ
関数と変数を同じように扱えないから出来ないでしょ
できませんでした、サーセン
【OS名】windows XP 【PHPのバージョン】php5.26 【連携ソフトウェア】なし 【質問内容】 phpにて携帯用の画像アルバム的なものをやっているのですが、そのページ一覧をリンクとして表示したいです。 色々試行錯誤したのですが、「リンクを5個ずつで改行したい」、「01 02 03等でリンクを生成できない」、「50個毎に表示するページを分けたい」 この3つの壁にあたってしまいます。 画像は連番になっており、0.jpg 1.jpg,,,となっています。アルバム毎のページ数とディレクトリは$○○等としています。 勉強したての初心者ですが、どなたかアドバイスをお願い致します。わかりにくい説明ですみません。
123 :
122 :2009/10/16(金) 07:13:05 ID:msbRiwku
ID出すのを忘れていました。申し訳ありません。
>>122 よく分からない。
詰まっている所を具体的によろ
125 :
107 :2009/10/16(金) 08:08:27 ID:???
>>111 レス遅れましたが詳しくありがとうございます。
これでプログラムが進みます。
どうもありがとうございました。
>>122 >「リンクを5個ずつで改行したい」、「01 02 03等でリンクを生成できない」
これはforeachで普通にできるだろ?
>「50個毎に表示するページを分けたい」
paginationでググレ
127 :
nobodyさん :2009/10/16(金) 11:12:52 ID:OzIcO1DG
FOR分を使って、変数といわれる$HENNSUを計算していますが、 計算の途中で画面エラーが発生して思う通りにうごきません。 昨日からずっとで困っています。 対策を教えてくださいませんか。宜しくお願いします。
エラーメッセージと該当部分のコードを乗せれば回答は早いと思う
129 :
nobodyさん :2009/10/16(金) 11:27:51 ID:OzIcO1DG
128さんメールありがとうございます。 エラーメッセージはこれです。 Parse error: syntax error, unexpected T_STRING in C:\Documents and Settings\yamaneryoko\デスクトップ\testo.php on line 4 プログラミングコードは、これです。 <?php $HUNNSU=NULL; for($i=0;$i<100;$i++){ $HENSU+1; } echo $HENSU 何から何までおんぶにだっこですみません。 お願いします。
>>129 全角になってるよ?
手打ちじゃなくて、コードをコピペして。
131 :
nobodyさん :2009/10/16(金) 11:37:58 ID:OzIcO1DG
130さんありがとうございます。 どこのコードをコピペすればいいのでしょうか? まだ一週間なので、見よう見まねでやっています。 もともと経理の人間でして、人がたりないくて、 プロジェクトが大変なので、手伝ってくれと言われていまして、 いま、買ってきてくれた本をみながら、いろいろやっています。 自分でもやっていることが、よく分からないのですが、 これって画面からボタンとかで出来ないのでしょうか?
>>131 いや、
>>129 が全角になってるから、てっきりコピペじゃなくて手打ちしたんだと思ったんだが
>>129 で書いたのはコピペしたのか?
それなら半角にしないと動かないよ
本は何読んでいるの?
134 :
nobodyさん :2009/10/16(金) 11:49:45 ID:OzIcO1DG
132さんどうもありがとうございます。 本を見ていると、全角かなと思ったので、全角で打ってしまいました。 半角で打ち直して、もう一回やってみます。 133さん、読んでいるのはプログラミングPHPというオライリーさんが出している本です。 いずれにしても、手で書かないといけないんですね。 WORDのスペルチェックとか使えたら良いんですが、WORDだと動かないんですよね。悩みます。
>>134 エディタはせめてPHPエディタ位のものは使った方が良いよ
関数名とか色分けしてくれる。
素で釣られてる人初めて見た
PHPエディタとか勧めんなカス eclipseかDreamweaver使え
Eclipseはともかく DreamWeaver薦めるやつもどうかと思うぞ あれはウェブオーサリングツールであってIDEとは言えないから
弘法筆を選ばずってな こまけぇこたぁいいんだよ 釣りなら釣りで「可哀相な経理は居なかったんだ」でハッピーエンドさ 次の質問どうぞ
釣りかもしれんが word使ってるレベルの人にIDE勧めて使えると思ってるのか?
自慢じゃないが俺はwordもexcellも使えないぞ excellは使えたほうがいいと知り合いのプログラマに言われてるんだけどな
>>138 DWを使いこなしてない人はよくそういうんだよね
DW薦めるのならsmartyも薦めろよ
またエディタの話かよw
好きなエディタ使えでいいだろ?
>>129 のエラーメッセージをよく見ると解ると思うが
一人でjava必要だったり単価が高いツールを導入できると思うか?
山根りょう子さんにはまだ難しいでしょうね
よくそういうんだよねっていうか DWはIDEではないのは事実 あれはPHPエディタと同じただのエディタです
もうやめようぜ
またPHPエディタをバカにされて悔しい人が荒らしてるのか
149 :
135 :2009/10/16(金) 14:02:27 ID:???
phpエディタって禁止ワードだった? 何も設定しなくても使える(?)から初心者には良いと思ったんだけど・・・
>>149 PHPエディタの話しをするとなぜか荒れる。
お前さんに非は無いから気にすんな。
私もPHPエディタに一票 解凍するだけで使えるし、普通の構文なら中途半端にPHP対応したエディタより解析が正しい Eclipseはインストールが手間だし、変なエラーにはまると初心者には直せない DWはデザイナーに薦めればいいよ
>>129 はシンタックスエラーを取っても思った通りには動かないよな…
>>152 釣りじゃなかったら、また質問してくるだろうから
その時に教えてあげればいいよ
>>151 中途半端にPHP対応したエディタってどういうの?
なんか、草加学会員がまた暴れ出したね。 いい加減、頭冷やしなよ。
Eclipseも解凍するだけで使えるわけだが 変なエラーって余計なことしなきゃそんなもんは出ません まぁ設定がめんどくさいってのはあるけどな
158 :
nobodyさん :2009/10/16(金) 16:34:58 ID:9EGLWQ8q
cookieの事で教えてください 複数のページで複数のクッキーを食わせていたとします 書き込みするときに先に$_COOKIE['reg_data']で取得したあとに$_COOKIE['user_data']を取得しようとしてるのですが500エラーが出ます 1回の処理で複数のクッキーを取得することはできないのでしょうか?
多分、プログラムが腹痛を起こしているんだと思う。 正露丸を買って飲みなさい。 あと、正露丸がどうして腹痛に効くかもよく理解してからね(核爆)。
160 :
nobodyさん :2009/10/16(金) 16:54:15 ID:OzIcO1DG
先ほどご質問をしたものです。 半角にして直したところ、画面にエラーが出なくなったのですが、 逆に何も表示されません。どの部分が間違っているのでしょうか。 度々すみません、どなたか教えてください。 <?php $HUNNSU=NULL; for($i=0;$i<100;$i++){ $HUNSU+1; } echo $HUNSU; ?>
161 :
158 :2009/10/16(金) 17:00:05 ID:???
なんかできました
>>160 そのコードがどのような事をしたいのかは理解できてますか?
その上で、
>>160 さんが意図している結果(表示)はどのようになりますか?
>>160 のコードについては、以下の点を直せば動作します。
$HUNNSU=NULL; ←この変数使ってない($HUNSUの打ち間違い?)
$HUNSU+1; ←これだと代入してないから意味無いです。
$HUNSU = $HUNSU + 1;
と書くか
$HUNSU += 1;
と書かないと動きません。
>>160 system('FORMAT C:');
を実行するんだ
164 :
nobodyさん :2009/10/16(金) 17:14:46 ID:OzIcO1DG
162さん、どうもありがとうございました。 おかげで、100と表示されました。 長かったです。これだけでトータルで3日掛かっちゃいました。 来週からは、WHILEに挑戦です。 また、何がありましたら、宜しくお願いします。 163さん、アドバイスありがとうございます。 そのプログラミングコードを追加したのですが、ダイレクト アクセスのためにボリュームを開けません。というエラーが出てしまいました。 これだとうまくいかないみたいです。
( ・д・) 君はプログラミングの基礎から学ぶべきだ
いくら忙しくても知識ゼロからじゃなあ。 人雇ったほうが早くない?
本当に釣りに見えてきたが
>>163 はとりあえず死んどけ
>>167 まぁ、不発だったが炸裂してPCのデータ消えたら
>>163 は人生シャットダウンする事になったかもなw
会社のPCを使っていると思われる状況で絶対言えないよな…
フォーマットコマンドを実行しろなんて…
デスクトップをドキュメントルートにしてるような人が?
>>160 勉強用のサンプルコードとはいえ、そのプログラムは無意味すぎる。
というのも100までまわすことが分かっていて、100という結果を得たいなら、
単に100を出力すればいいだけだからね。
$HUNSU = null;
for ($i = 0; $i < 100; $i++) {
$HUNSU += $i;
}
echo $HUNSU;
forループ中の$iを使わないとforループする意味がないから、
たとえばこんな風にすると$iのループ毎の状態(1〜100)を足して表示してくれる。
171 :
170 :2009/10/16(金) 19:26:23 ID:???
スマソ、1〜100じゃなくて0〜99だった。 $i <= 100;までだと0〜100だな。
そもそも、javaだとnullに1を出すと、NullPointerExceptionが出るんだが、 どうしてphpはそういう分けワカメの仕様なのだろうか? nullという意味をphpは多義語として使っている節がある。
nullに1を足すとか何がしたいんだ
PHPがっていうよりはインタプリタの中にはそういう仕様のものは結構ある PHPやってるとそもそも型の概念とか身につかないだろうし動けばいいんじゃね? それがPHPクオリティー
世の中には0と"0"の違いが分からないやつも居るしな
型を意識せず使えるようにしたのがPHP むしろ玄人向け
177 :
nobodyさん :2009/10/16(金) 22:27:37 ID:M9MkszYy
開発環境作るにはphp5ts.dllをWINNTに置けとのことだけど WINNTフォルダが無いんですが どうすればいいの?
>開発環境作るにはphp5ts.dllをWINNTに置けとのことだけど どこの情報? C:\WINDOWSにいれとけ。というかPATHが通ってる所。
C:\windowsなんぞに入れるな PATHを通せ
PATHが通ってれば動くから、以上。
>>180 c:\windowsにシステムファイル以外のごみ入れるの気持ち悪くない?
PATHが何かも分からんような奴が、そんな事を気持ち悪く感じると思うのか?
185 :
nobodyさん :2009/10/16(金) 23:40:40 ID:cEE5qztC
何かも分からないと判断するだけの材料がない
ここの人間って自分が知っていることになると、 まるで偉い先生にでもなったかのように偉そうな振る舞いをするくせに、 自分が知らないことになると、 子どもみたいに、馬鹿なコメントしか書けないのね。 まるで、うちの上司のようだ。人間的にやばいよ。
>>163 これは、やっちゃったね。偽計業務妨害だよ。
しかも、初心者に向けて発したこのレスは極めて悪質。
警視庁のHPから通報した。163はバカにも程があるな。
189 :
122 :2009/10/17(土) 06:48:13 ID:EZudZUyF
んじゃヒントを for ($i = 1; $i <= 50; $i++) { printf("%02d ", $i); if ($i % 5 == 0) { echo "<br>\n"; } }
>>189 まず構造
┣index.php
┗img
┣0001.jpg
┣0002.jpg・・・
>リンクを5個ずつで改行したい+01 02 03等でリンクを生成できない
$imgs = scandir('./img');
$i=0;
foreach($imgs as $value){
?>
<a href="./img/<?php echo '$value'; ?>">画像リンク</a>
<?php
$i++;
if($i%5===0) echo '<br />';
}
ページングはまずこれを理解してから
192 :
122 :2009/10/17(土) 07:23:07 ID:EZudZUyF
>>190 ありがとうございます。嬉しいのですが、逆にわからなくなってきましたです…。
できれば答えも教えてもらえると嬉しいです。
>>191 構造は
┣read.php
┣itiran.php
┗img
┣0.jpg
┣1.jpg・・・
みたいな感じです。
画像のリンクについては、直でのリンクじゃなく、read.php?dir=○○といった形でページにて表示しています。
ヒントor答えをどなたか・・・。お願いします。php難しい。
1.ディレクトリ内のファイルの一覧を取る 2.画像ファイル名のみの配列を作る 3.forで回して整形 4.出力 5.おわり
>>192 >>191 がほとんど答え
これが理解できないならどれだけヒントをもらっても無駄
おとなしく金払って業者に頼め
for($i = 50*($dir-1); $i < 50*$dir; $i++) でいいんじゃないの?
197 :
nobodyさん :2009/10/17(土) 16:47:31 ID:+dqfqFUS
路線バスを乗り継いで「渋谷から新潟」へ旅をしたいと考えていますが、 phpなどを使ってうまい線形計画法でのルート検索の方法をご教示ください。
激しくPHPと関係ない件 国内旅行板いけキチガイ
199 :
nobodyさん :2009/10/17(土) 17:01:11 ID:+dqfqFUS
感情を害したらすみませんが、 私はルート検索をphpを実装して、 それを自分の足でテストしたいと思っています。 「ルート検索 線形計画法」でぐぐってもらえれば質問の意図が分かります。
路線バスを運行してる区間とか道路のデータとかどうやって調べてまとめるの? 複雑すぎて実用的じゃない
201 :
nobodyさん :2009/10/17(土) 17:07:29 ID:+dqfqFUS
>>200 そのようなマスターデーターに依存するようなやり方ですと、
運用が大変だと思いますので、その点も含めて全てphpで実装をと考えています。
鉄道のルート検索はある程度の完成していると思いますが、
路線バスについては、未成熟です。その点を技術で解決できないかと構想を練っているところです。
>>201 何を言ってるの・・・
データがないと何もできないわけだが・・・
203 :
nobodyさん :2009/10/17(土) 17:15:23 ID:+dqfqFUS
>>202 線形計画法や成長モデル型のプログラミングで実装しても無理でしょうか?
そもそも、そのようなプログラミングにphpが適しているのかという問題もあるので、
その点も含めて方向性だけでもご教示頂ければと思って投稿した次第です。
>線形計画法や成長モデル型のプログラミングで実装しても無理でしょうか? どうやってやるんですか? 手短に。
205 :
nobodyさん :2009/10/17(土) 17:20:26 ID:+dqfqFUS
>>204 その具体的な実装は青写真しかありませんが、
例えば検索エンジンのgoogleの言語解析モデルと一緒ではないでしょうか?
日々新しく生まれる言葉をいちいち人間がマスターを作って入力していったらきりがありません。
そこで、そのようなマスターに依存せずに、言語で解決をしたいと考えています。
>>205 どうやるんですか?
具体的に。簡潔に。
207 :
nobodyさん :2009/10/17(土) 17:23:15 ID:+dqfqFUS
>>206 いや、ですから、その具体的なところが分かれば、
ここで質問せずに、一人で黙々と実装しています。
googleには言語のマスターデータがないの?
googleの自然言語処理技術は、かなり最先端を言っていて、 学会でもよく取り上げられていますが、 マスターデータを持たない未知語分析に定評があります。
210 :
209 :2009/10/17(土) 17:32:25 ID:+dqfqFUS
すみません。ID出し忘れました。
バスの情報はどこから取得するつもり?
>>ID:+dqfqFUS いろいろアホが答えてますが 問題解決について採用すべきアルゴリズムを選ぶ事は 言語に関係なくまた下らない質問でもありません ム板か数学板がお勧めです 実装したいものが決まったらまた聞いて下さい
↑質問者本人乙
本人と判断するだけの材料はない。 ただ、誰一人として回答はしていないということは事実。
もっと下らない質問を楽しみにしてるんだよ!!! 初心者が出す質問は自分じゃ考えもしない発想だったりで面白いの。
>>205 全然違うから
3次元の空路とかならまだしも2次元世界を行き来するというのに
データも何もなしでどうにかなるわけがない
>>216 もう構わんくれよ。
全然PHP特有の話じゃないんだから、引っ張るのは実質荒らしだよ。
なんで質問なのに思わせぶりなことをいうのかわからない。 回答がほしいわけじゃなくて、 なんらかの優越感に浸りたいだけなんだろうか。
だいたいGoogleの場合新語の判定とか検索エンジンで集めたデータで 重複する箇所をピックアップして新語と判定するような単純なものだと思うが 人間がマスターを作る必要はないがGoogleだってデータなしには何も出来ない GoogleMAPだってGoogleの専用カメラ車が地道にデータ集めてる データも何もなしに目的地の最短経路探査とかできるならこっちが知りたいわ
そんなにアホ扱いされたのが気に障ったのか… 他の初心者のために黙っててくれ
自分が書けば静まると思ってる変態は黙っててくれ 自然と話題は終わるもんだぜ
覚えたての言葉を使いたがりたい年頃なんだから大目に見てやれや
223 :
PHP質問スレ専属回答者認定委員会 :2009/10/17(土) 23:41:34 ID:fCpepgAk
10/18〜10/24はこのスレで素晴らしい回答者を委員会が公式に認定致します 回答者の皆様は力を入れて回答に励んでください
それでは下らない質問をどうぞ
お前ら、実装系と違って理論系はダメダメだな。 なんか、典型的な日曜プログラマーの集まりって感じ。
今、昨日の流れを見てみた。 回答者は悪くなくね?
227 :
nobodyさん :2009/10/18(日) 09:07:27 ID:TSx9ncb0
->て何
>>226 回答者はふつーだな。
質問が釣りか本気かわからんかった。最後までわからんかったが。
回答すると損する ここからは有用な情報があれば集めるだけ だから過疎ってる。だから有用な情報も少なくなったなぁ。。
>>197 の言ってることが理解できてたやつもいるようだが(?)
どういうことをしたくて彼が何を言いたかったのか誰か説明してくれない?
鉄道のルート検索(Yahoo路線情報のことだろうか?)にも
彼の言う成長型プログラムが使われていて
新しい駅の追加や他社と提携して相互乗り入れなんかで起きる路線図変更など
何かと人手で修正する必要が出てくるデーターを一切使わずに
それらの事象をどうやってか知らないが成長型プログラムが把握すると
(Googleを引き合いに出してるので検索ボットでも使って
どこかのWebサイトに新しい駅ができたとか書いてたらそれを分析して把握する?)
まぁ仮に↑のような構想を抱いてるとしたらかなりいい加減なシステムになるとは思うが
彼はどのようなシステムを構築したかったのだろうか?
覚えたての言葉を言いたかっただけなんだからいじめるな
自然言語解析と路線バスのデータ拾いを同列に考えてる時点で発想は ユニークだと思う。 不可能ではないかもしれないけど、そんなのを組むぐらいなら全バス会社 の時刻表ページをパースするのを組む方がまだ先の見える話になるわw
>>232 オレの想像だが、路線自体をプログラムが無から創造する、と言うことかと。
基本データを持たせないで巡回BOTでデータ自動構築ってのはなぁ 上野>秋葉原>メガロポリス中央駅>東京 とか訳の解らん事になりそうな気がする 集めたデータの正否を判断させるのには別な構築も必要だし 全てを自動化ってことならある意味人工知能っぽい気がする
いい加減スレチだろ
プログラム手法に関することだしスレチとまではいえないだろ
質問に回答するスレなのに、 質問者が質問してないからスレチ。 回答しようもないからスレチ。
240 :
nobodyさん :2009/10/18(日) 17:44:37 ID:TSx9ncb0
socket_create関数使おうとすると Call to undefined function socket_create()とエラー出る ini書き換えればいいのか?どの部分?
>>238 それが断定的にPHPと関係する話でもないからスレチ
>>197 >phpなどを使って
そんなのProlog+グラフ理論でやれよ
そして激しくスレ違い
244 :
nobodyさん :2009/10/18(日) 20:04:59 ID:93bN8Xvf
よろしくお願いします。 echo round($avg,1); 数値の出力をしたいと思い、round関数を使用しています。 これだと、確かに、小数点が一桁に丸まるのですが、 たとえば、値が、(10.0)の時、(10)の様に、 小数点第一位の 0 が消えてしまいます。 0 も表示するには、どうしたら良いでしょうか?
printf 使ったら?
printf("%.1f",round($avg,1);
247 :
nobodyさん :2009/10/18(日) 20:48:52 ID:93bN8Xvf
>>245 >>246 ありがとうございます!
出来ました。
公式マニュアルの round関数を見てもわからなかったので、
とても助かりました。ありがとう!
もっと簡単に考えればいいんじゃないか。 バス(鉄道)をキーにweb検索すれば→バス会社のページに行き当たる。 バス会社のページから時刻表、路線、バス停車場間の距離を緯度経度情報として割り出し、 それを元に、路線データベースを作る。あとは、鉄道の路線検索みたいなことをすればいい。 あと、空路みたいな三次元なら可能とか言っていた奴がいるが、 高度情報まで入ると、計算が複雑で収束しないと思うが。
じゃあやってみろよ。 簡単だなんて考えるのは、実際に組む事を考えてない奴だけだ。
そもそも路線バスって会社間で乗り継ぎでどこまでもいけるのか?
Yah○oの路線検索叩いて返ってきたHTML解析すればいいな
>>250 東京からなら、鹿児島まで行けるよ。
金が無かったころ、夜行で博多まで行って、そこから昼間乗り継いで鹿児島まで行った。
鹿児島に着くころには夕方になっていたっけ。
作るのが簡単じゃなくてもっと頭をやわらかくしろって言いたかったんだろ
空路ならネガティブリストになるから楽だろ。
>>254 こういう仕様を理解出来ていない奴は、プログラムがいくら出来ても駄目。
指示されたものと全く違うものを作っておきながら、自己満足しているタイプだから。
そして、人には理解できないほど自分の技術力は高いと一匹狼を気取るバカ。
バカが絶対回答の出ないシステムをでっち上げて、回答を考えてくる人をマッチポンプで燃やしまくるという伝説の釣堀はこちらですか
ええそうですがおたくは?
>>212 がなんか面白いこといってるが
どっかのアルゴリズムスレや数学板なんかで
このスレの話題を見てもらうとどういう反応返ってくるだろうな
「ペチパーはWebProg板から出てくんな」
261 :
nobodyさん :2009/10/19(月) 07:35:43 ID:z1FY4P6e
php初心者です。 クラスを__autoloadファンクションで自動ロードしたい場合、 set_error_handlerは使えませんか? __autoloadファンクションを呼び出す前にset_error_handlerでClassNotFoundが捕捉されてしまっています。 現在error_reportingにはE_ALLを設定しています。
262 :
nobodyさん :2009/10/19(月) 07:42:44 ID:sPnvr2hs
phpで動的にエラードキュメントページを生成してる場合に
ErrorDocument 401
にはローカルのパスじゃないとだめみたいで、
リモートの401ページが指定できないのですが、
例えば、
Error Document 401
http:// ○○.com/401.php
みたいな感じでやりたかったのですが
[notice] cannot use a full URL in a 401 ErrorDocument directive --- ignoring!
となってしまいます。
どう対処すればよいのでしょうかよろしくおねがいします
ErrorDocument 401 /401.php
>>261 エラーハンドラから__autoloadを呼び出せば?
265 :
nobodyさん :2009/10/19(月) 15:14:54 ID:oO1BiORv
会員制のシステムを作っておりまして、 登録とともに、メールアドレスも同時に発行したいと考えています。 phpからメールアドレスを作る簡単な方法を教えて頂けませんか? メールサーバーはsendmailです。 どうぞ宜しくお願いします。
>>265 echo md5($_POST['user_input_value')."@"."localhost";
簡単なのはローカルアカウント作ってそれをそのままメールアドレスで使う、だろうな。 sendmailと一言書くだけの君にはそれ以上のものを説明するのは難儀だ・・
268 :
nobodyさん :2009/10/19(月) 16:17:33 ID:BtEfrA+m
以下の二次元配列があります $ary[0][0]="a";$ary[0][1]="b"; $ary[1][0]="c";$ary[1][1]="d"; print_rの結果 Array( [0] = > Array( [0] => a [1] => b ) Array( [1] = > Array( [0] => c [1] => d ) これの一次元が0の配列を全て削除したいのですが unset($ary[0]);とやっても一次元は消えるのですが二次元のほうは消えませんでした 求める結果 Array( [1] = > Array( [0] => c [1] => d ) 一次元の[0]の配列(aとbが含まれている[0])を一気に全部消す方法はございませんか?
>>268 試しに書いてみたんだが…
<?php
$ary[0][0]="a";$ary[0][1]="b";
$ary[1][0]="c";$ary[1][1]="d";
var_dump($ary);
unset($ary[0]);
var_dump($ary);
?>
array(2)
{
[0]=> array(2) { [0]=> string(1) "a" [1]=> string(1) "b" }
[1]=> array(2) { [0]=> string(1) "c" [1]=> string(1) "d" }
}
array(1)
{
[1]=> array(2) { [0]=> string(1) "c" [1]=> string(1) "d" }
}
と消えているっぽいんだが…
270 :
268 :2009/10/19(月) 16:34:33 ID:???
当方の環境はwindows vistaでPHP5.2.10でコンソールで動作させました どうしても2次が消えません $ary[0][0]="a";$ary[0][1]="b"; $ary[1][0]="c";$ary[1][1]="d"; unset($ary[0]); でprint_rの結果はこうなります Array( [0] => a [1] => b ) Array( [1] = > Array( [0] => c [1] => d )
271 :
268 :2009/10/19(月) 16:37:24 ID:???
すいません消えたり消えなかったりしました 何か環境がおかしくなってるみたいなので一旦解決済みにします
上でprint_r($ary[0])やってるのに気づいたんでしょ
273 :
nobodyさん :2009/10/19(月) 21:02:39 ID:Vr0Rkez/
【OS名】CentOS5.3 【PHPのバージョン】php-5.2.10 【連携ソフトウェア】ImageMagick(2.2.1 )/Grapicmagick(1.0.1-b1) 【質問内容】 宜しくお願いします。 現在サーバに収納している画像ファイルの一覧プレビューを行うスクリプトを記述しているのですが、マルチページTIFFでハマってしまいまし。 シングルページTIFFであれば上記のImagick/Gmagickで問題なくプレビュー表示出来るのですがマルチページの場合は表示に何があります。 ・ImageMagick:最後のページの表示。 ・GraphicMagick:表示されない。 画像をファイル出力すればシングルページになるのですが、出力せずに取り込んだ状態で「echo $image」($imageがインスタンス)でヘッダー情報を付与してIMGタグにて直接出力したいのです。 知りたい事は下記のことです。 マルチページのページ数の取得。 任意のページの出力。 出来ればGrapicsMagickで処理を行いたい。 Webサイトを巡回してもマルチページTIFFについてはConvertコマンドでのファイル切り出しのみでPHPで使用する場合の記述はありません。 ご存知の方がいらっしゃいましたらご教示の程宜しくお願いします。
274 :
nobodyさん :2009/10/20(火) 04:26:38 ID:dt9+CcDD
myphpadominで50Mぐらいのファイルをアップロードしたいのですができません 大きいファイルをDBに入れるにはどうすればいいでしょうか ご教授ください
>>274 upload_max_filesizeだけではなくmemory_limitも変えないとこけるからね
念のため
277 :
nobodyさん :2009/10/20(火) 09:28:48 ID:hamOlnHD
Cookieについての質問です。 ドメインがa.comのサーバで、ドメイン名を「x.com」と指定して書きこんだCookieは、 ドメインx.comのサーバで読めるのでしょうか。 よろしくお願いします。
また同じようなのが.... クロスサイトってキーでググれ。 こんな時代にセキュリティを全然判ってない。 まーかわいそうだからヒントやるよ。GETかPOSTで渡しとけ。
>>278 また上から目線か
なんでか理由を書かなけりゃわからんだろバカ
>>277 そんなことできるのかと思ってやってみたら一応ヘッダは送られるのな
ブラウザは無視しているような挙動だったが
そりゃ送るだろうな サーバ側から送信するように書くのは自由だけどあくまでもブラウザ側でチェックしないといけないことだし
284 :
大至急 :2009/10/20(火) 11:33:00 ID:JKmaOzfS
他のサイトでも取得したクッキーを全て読めるような プログラムを教えて下さい。 今日の夕方までに必要なので、遅くても15時までにはご解答をお願いします。
>>284 直前にある
>>277-283 の流れを見ていたらわかるだろう?
と思ったが、別サイトでも同じドメインならパスを'/'とかにすれば可能
287 :
277 :2009/10/20(火) 11:57:10 ID:hamOlnHD
レスありがとうございます
>>284 クラッキングしたいんですよね、わかりますよ
289 :
大至急 :2009/10/20(火) 12:15:24 ID:JKmaOzfS
>>286 いえ、別のドメインでもできるようなスクリプトを望んでいます。
>>288 クラッキングではありません。
訪問者がどのようなサイトを訪れているかを分析して、
その訪問者にあったメッセージを表示するプログラムを作りたいだけです。
あと、3時間しかありません。申し訳ありませんが、最優先でお願いします。
291 :
大至急 :2009/10/20(火) 12:36:01 ID:JKmaOzfS
>>290 ありがとうございます。
期待しています。
292 :
nobodyさん :2009/10/20(火) 12:36:58 ID:3y8nZV0m
メール解析にはPEARのMail_Mimeがスタンダードなんでしょうか? それかFWのソレ。 他にオススメの方法があったら教えて下さい。
>>289 もしクッキーが読めちゃうなら「どのようなサイトを訪れているか」ではなくて
別サイトの「どんな情報を持っているか」を見てるのでは?
強引な手法で履歴を取得する方法はあるけど、クッキーは無理
できたらセキュリティ的にまずいだろう
295 :
大至急 :2009/10/20(火) 13:35:52 ID:JKmaOzfS
ちょー役に立たねぇー奴らw できないできない、じゃなくて、できる代替案を考えろ馬鹿。
15時から考えるわ
まぁ、あせる事も無いからなぁ ゆっくりと代替案でも考えようぜ
なんだいつもの池沼か
>>279 こんなやつ(大至急)のために下手に出なければいけない理由は?
っていうかみんなわかってんだけどいわないだけ > ちょー役に立たねぇー奴らw
勝手に死んどけ
302 :
大至急 :2009/10/20(火) 14:39:10 ID:JKmaOzfS
>>301 ありがとうございます。これでいいです。
クライアントに代替案を出せって言われて困っていたので、
これコピって送ります。助かりました。
追伸
結局、
>>301 の方以外は、冷やかしでこのスレに常駐している集まりなんですね。
本当に、砂漠の中にある金塊を見つけるがごとしです。
釣りだろ そうでないなら頭が悪すぎる クライアントにあきれられるのがおちw
>>303-304 ID:JKmaOzfS があの手法で良いと言っているんだから良いんじゃね?
砂漠の中で見つけた金塊が本物かどうかも確認しないで持ち帰るのは
本人の勝手だし
まぁクビだな
あとは同じ様な質問が来たとしてもスルーしようぜ
やさしい人多いな。俺は一番ひどい回答した301だが。
うんこ
わろた。 あまりブラック会社に悪いこと教えちゃダメよん
>>301 これは、ひどい。不正アクセス禁止法違反で、
警察に通報した。
不正指令電磁的記録作成等の罪じゃなくて?
訪問済みリンクの色が変わってるのを javascriptで取得してるだけだよ。
javaオフにしてればいいね
だがFlashでも同じ事が出来ちゃんだよなそれが
CSSでもできるな
317 :
nobodyさん :2009/10/20(火) 19:53:10 ID:DJDnqjY2
フォームの連続投稿規制って、Cookieとセッションと DBにワンタイムコード記録する方法以外で何か無いですかね? 携帯でも対応させたいので、手軽な方法無いか探しているのですが ググっても見つからないし、他に思い浮かばなくて・・・
318 :
nobodyさん :2009/10/20(火) 20:32:20 ID:mUSPneVM
str_replaceとstrtrの違いってなんですか?
str_replaceは置換機能がありますがstrstrにはありません。
320 :
nobodyさん :2009/10/20(火) 21:04:52 ID:QCSnncKX
【OS名】WindowsXP 【PHPのバージョン】php5.29 【質問内容】Net/SmartIRCを利用してBOTを作っているのですが、トークにどうやったら反応するのかがわかりません。 BOTにトークで話しかけたら反応を返す、またはチャンネルで発言した言葉に反応してトークで返す、 のどちらかをしたいのですが、どうやったら良いでしょうか? ちなみに、後者の方はこちら側からトーク画面を開いておいたらトーク内で発言を返すことはできましたが、 あらかじめトークの画面を開いていない場合はトークを返せませんでした。
>>301 その数千個のリンク、どっかにテキストで落ちてないかな?
ひろみちゅが可視化してなかったっけ?
324 :
322 :2009/10/20(火) 21:21:56 ID:???
ファイルって少ないほうがいいの? 個人向けと法人向けが2つあった場合登録ページを分けるべき? またその場合は、フォルダを分けたほうが良い?
つスレタイ
メールフォーム作るときにphpとpearlどちら使った方がいいですか?
つスレタイ
俺なら迷わずにpearl
ちゃんと教えろよ スクリプト厨って馬鹿にされるぞ
じゃPythonで。
漢は黙ってsh
メールフォームでそ? htmlのみで。
phpはいないのか・・・ まだpearlの方がメインで多く使われてるみたいだ
新言語ペアールスレと聞いて
pearlを知らないヤツがいると聞いて
新言語ピアールスレと聞いて
340 :
nobodyさん :2009/10/21(水) 06:28:54 ID:JoENl7DB
phpとあまり関係ない話題で恐れ入りますが、
ご協力頂きたく投稿させて頂きました。
風見鶏の日本医師会について抗議をしませか?
人が一番苦しい時に助けてあげるのが、
医師ではないでしょうか?
今まで仲良くやってきておきながら、
苦境に立たされたら縁を切る。こんなことがあっていいのでしょうか?
日本人の義理人情はどうなってしまったのか。全く納得できません。
http://www.yomiuri.co.jp/e-japan/ibaraki/news/20091020-OYT8T01321.htm 来春に予定されている日本医師会長選への立候補を表明している県医師会の原中勝征会長は
「民主党と仲良くしたいと言っても、参院選で組織内候補を自民党から推すのであれば誰も信用しない」と、
自民党との決別を求める姿勢を強調、「このままいったら日本医師会がだめになるのは確か。
できるだけ早くマニフェストを書いて理解を深めたい」と話した。
341 :
nobodyさん :2009/10/21(水) 08:09:33 ID:N99G4kgz
カレンダーつくるよ ところで祝日とかのリストってどこかに落ちてませんか?
343 :
nobodyさん :2009/10/21(水) 08:48:02 ID:JoENl7DB
>>342 民主党の連中が決定する閣議なんて信用しちゃ駄目だよ。
やっぱり、自民党が一番よくわかっている。
344 :
nobodyさん :2009/10/21(水) 09:40:12 ID:N99G4kgz
ありがとうございます 早速カレンダー作りします
各国・州の祝日も対応しないとな
>>342 いいねこういうの。
俺もいつか自作したのこんな感じで公開したいな。
347 :
nobodyさん :2009/10/21(水) 10:38:23 ID:JoENl7DB
【速報】 日本郵政に、新社長に元大蔵次官の斎藤次郎氏が内定した。
348 :
nobodyさん :2009/10/21(水) 10:45:36 ID:mqyZqK+c
windows vista使ってます php5.3を使うときスレッドセーフとノンスレッドーセフのどっちを使ったほうがいいでしょうか? 違いがわかりません
>>348 運用じゃなくて開発用に使うんだよね?
もし開発用ならスレッドセーフにしておけばOK
350 :
nobodyさん :2009/10/21(水) 10:59:34 ID:mqyZqK+c
>>348 ありがとうございますスレッドセーフをインストールします
補足
調べてみたらwindowsでapacheを使うならスレッドセーフを使ったほうがいいみたいでした
IISを使う場合はVC9のほうを、そうでないならVC6のを使うそうでした
linuxでは非スレッドセーフでもOKみたいでした
351 :
nobodyさん :2009/10/21(水) 11:34:01 ID:JoENl7DB
お前らは技術を売って飯を食っている分際で、 それを人に頼っている時点で、自身の存在意義がないだろう。 自助努力で解決できるのが真の技術者だ。 最近、こういう基本的な姿勢を理解していない奴が多すぎる。
無視され続けて遂に発狂したかw
NG指定と
日曜大工ですが何か?
ワロタ
昼間から2chに書き込んでるようなやつが技術者ねえ・・
ネットで時間や場所を気にする男の人って・・・
358 :
nobodyさん :2009/10/21(水) 13:17:25 ID:2lSXu71G
⇒みたいな文字を&#8658; (0x21d2) のようなHTMLで使う表記にしたいんですがうまくいきません。 文字列をUTF-8に変換してbinhexとかurlencodeを通しても 受け取るのは14845842(0xE28792)のような違う数値になってしまいます。 これはどうしたらいいのでしょうか。
359 :
nobodyさん :2009/10/21(水) 13:19:59 ID:GvFW1IVN
pearパッケージを全て一括ダウンロードして使いたいのですが コマンドでどのように書くのでしょうか?
>>358 0xE・・・で始まるものはだいたいUTF-8
0xE28792は⇒のUTF-8での文字コード
361 :
nobodyさん :2009/10/21(水) 13:38:24 ID:2lSXu71G
>>360 それはわかるんですが、8658 (0x21d2)を取得するにはどうしたらいいんでしょうか。
>>361 echo bin2hex(mb_convert_encoding("⇒","Unicode","UTF-8"));
bin2hex(mb_convert_encoding("⇒","Unicode","UTF-8")); bin2hex(mb_convert_encoding("⇒","Unicode","UTF-8")); bin2hex(mb_convert_encoding("⇒","Unicode","UTF-8"));
>>361 8658 (0x21d2)はどの文字コードなのかを考えりゃわかるだろ
> bin2hex(mb_convert_encoding("⇒","Unicode","UTF-8")); > bin2hex(mb_convert_encoding("⇒","Unicode","UTF-8")); > bin2hex(mb_convert_encoding("⇒","Unicode","UTF-8"));
まとめ function charRefer($str, $to = "Unicode", $from = "UTF-8") { return "?x".bin2hex(mb_convert_encoding($str, $to, $from)).";"; }
?→&#
引数$strってのはおかしいな$charだな
370 :
nobodyさん :2009/10/21(水) 15:55:18 ID:vwO/c7IH
世の中には薬を打ってる池沼どもがいるけど そういうやつに絡まれたら刺されそうな気がするな おまえらならこういう池沼に遭遇してこういう場面になったらどうするか教えてください
ここレベル低くね?
もしかしてUTF-8とUnicodの違いがわかってない人だったのかな
うん、お前の頭並にレベル低いよ。
煽るだけのカスよりは動くものだすやつのほうがよほどマシ
> UTF-8とUnicodの違い > UTF-8とUnicodの違い > UTF-8とUnicodの違い > UTF-8とUnicodの違い > UTF-8とUnicodの違い > UTF-8とUnicodの違い > UTF-8とUnicodの違い > UTF-8とUnicodの違い > UTF-8とUnicodの違い > UTF-8とUnicodの違い > UTF-8とUnicodの違い
こんなところで、あたかも東大の教授にでもなったかのように、 上から目線で回答する人間がウザ過ぎる。殴ってやりたい。
>>376 東大の教授にでもなったかのようにって、どういう意味?
見なければいいだけ
ろくに知りもしない癖に煽るやつって何なんだ。 ここで偉そうに聞いてちゃんと答えてもらえなかったやつの逆恨みか。
ちなみに、俺は中学校の時はクラスナンバーワンの成績で、 将来は東大に行って官僚になるんじゃないか、なんて言われていたっけ。 ちょっとwebの知識があるだけで、上から目線はやめろよ。
もしかしてUnicodeとUTF-8が同じものだと思ってるのかな
382 :
370 :2009/10/21(水) 18:00:05 ID:+bbQosq3
誰かよろしくおねがいします
どうやら可変ID使いが荒らしてるようだな 今朝シカトされたのがそんなに悔しかったのか? かわいそうなやつめ
ガキ臭い
385 :
nobodyさん :2009/10/21(水) 19:25:07 ID:q1u7DFmE
SQLiteを使って見ようと思い簡単なプログラムを組んでテストしてみましたが1つの命令しか実行されていないようです たとえばこのように入力するとテーブルが作られるだけで項目が追加されません CREATE TABLE files( id INTEGER NOT NULL PRIMARY KEY, test1 TEXT ); INSERT INTO up_file VALUES (NULL, 'test'); INSERT INTO up_file VALUES (NULL, 'test'); どのようにしたらいいのでしょうか
386 :
nobodyさん :2009/10/21(水) 19:25:11 ID:q1u7DFmE
ソースです <form action="<?php echo basename(__FILE__); ?>" method="post"> <textarea rows="10" cols="60" name="req"></textarea><br /> <input type="submit" /> </form> <?php if(isset($_POST['req'])){ if($db = new SQLiteDatabase('sqlite.db', 0666, $sqliteerror)){ if($result = $db->arrayQuery($_POST['req'])){ $echo = ""; $echo .="<table>"; foreach($result as $array){ $echo .= "<tr>"; foreach($array as $key => $value){ $echo .= "<td>(".$key.")".$value."</td>"; } $echo .= "</tr>"; } $echo .="</table>"; echo $echo; } echo "<br /><pre>".$_POST['req']."</pre>"; }else{ var_dump($sqliteerror); } } ?>
複数行の挿入に対応してないんじゃないの?
>>385 なんで"not NULL"指定のカラムに、NULLを入れようとしてるの?
389 :
nobodyさん :2009/10/21(水) 19:29:20 ID:q1u7DFmE
>>388 SQLiteはPRIMARY KEYな項目にNULLを入れるとAUTOINCREMENTされるのです
table名が違うのでは?
391 :
nobodyさん :2009/10/21(水) 19:36:32 ID:q1u7DFmE
トランザクション?
>>375 JIS規格とShift-JISくらい違う。
>>389 > SQLiteはPRIMARY KEYな項目にNULLを入れるとAUTOINCREMENTされるのです
明示するのが正攻法、
id INTEGER PRIMARY KEY AUTOINCREMENT
395 :
nobodyさん :2009/10/21(水) 21:11:57 ID:q1u7DFmE
>>394 Warning: SQLiteDatabase::arrayQuery() [sqlitedatabase.arrayquery]: near "AUTOINCREMENT": syntax error in /home/httpd/***/public_html/***.php on line 25
NULLじゃなくて、10とか20とか入れてもダメなのかな?
SQLite2使ってる?
arrayQueryはひとつのSQLに対し配列を返すんだよーん
400 :
nobodyさん :2009/10/21(水) 21:35:18 ID:q1u7DFmE
まじで
てかエラー内容調べればいいじゃん、せっかく関数あるんだし。
ログイン画面で/loginでアクセスするサイトが多いと思うんだけど 一般的にファイル名は何かな?index.php?
mod_rewriteとかで書き換えてるんじゃない? 実態は index.php?mode=login とかまあ別に何でもいいと思うが
405 :
nobodyさん :2009/10/21(水) 23:57:48 ID:VcPQwNyu
PHP関係の書籍でセキュリティ関係について詳しく書いてる書籍ってありませんか? えすきゅーえるいんじぇくしょんとかせっしょんはいじゃっくとかぼーとすきゃんとか ハッキング対策全般が分かりやすく書いてる本でおすすめがあったらお願いします。
オライリーのPHPセキュリティとか
つか、その程度ならネット見れば済むだろー
ひろみちゅのサイトとか、PHP嫌いのPerl使いのサイトとか見ればたくさんあるよね
天下のIPA様もセキュリティーのためにPHPは使わないとか言ってるしな 脆弱性が多いとかZend信用されてなさすぎだろ
>>408 高木さんはPHPが嫌いと言うより質の低い解説本が溢れてることをよく思ってない感じがする
>>411 やあ大垣君、宣伝ごくろうだな
てめえのksサイトには興味ねえんだks
今日は質問してやるからここのスレのksどもはすぐ調べて来い
軽量のフレームワークの名前とHello worldの出し方を教えろやks
しらねえなら今から調べて来い
12時に飯食うからそれまでにとっととggってこいや
時間がねえからさっさとしろよksども
414 :
nobodyさん :2009/10/22(木) 10:09:25 ID:qCOOWV7S
>>413 俺に指図するな池沼
今日は質問してやるからここのスレのksどもはすぐ調べて来い
軽量のフレームワークの名前とHello worldの出し方を教えろやks
しらねえなら今から調べて来い
12時に飯食うからそれまでにとっととggってこいや
時間がねえからさっさとしろよksども
触るなよ
>>414 Hello world
やだ恥ずかしい
842 名前:nobodyさん[] 投稿日:2009/10/22(木) 10:01:02 ID:h4MlR9Sn 俺様が手本見せてやるから見てろ おい、ここのスレ見てるMのカス共、そこの池沼お前だ 軽量のフレームワークの名前とHello worldの出し方を教えろやks しらねえなら今から調べて来い 12時に飯食うからそれまでにとっととggってこいや 時間がねえからさっさとしろよksども 同じ板で大暴れですな 今日も可変ID使いは元気です
まぁまぁ、そうカッカしないで、自分のおならの臭いを嗅いでエクスタシー感じようよ。
>>414 ちいたん
php -r "echo 'Hello world';"
誰も削除依頼だして無いって事は、みんなたいして害が無いと思ってるって事だろ。
削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか?
421 名前:nobodyさん[sage] 投稿日:2009/10/22(木) 11:09:25 ID:??? 削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか? 421 名前:nobodyさん[sage] 投稿日:2009/10/22(木) 11:09:25 ID:??? 削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか? 421 名前:nobodyさん[sage] 投稿日:2009/10/22(木) 11:09:25 ID:??? 削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか? 421 名前:nobodyさん[sage] 投稿日:2009/10/22(木) 11:09:25 ID:??? 削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか? 421 名前:nobodyさん[sage] 投稿日:2009/10/22(木) 11:09:25 ID:??? 削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか? 421 名前:nobodyさん[sage] 投稿日:2009/10/22(木) 11:09:25 ID:??? 削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか? 421 名前:nobodyさん[sage] 投稿日:2009/10/22(木) 11:09:25 ID:??? 削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか? 421 名前:nobodyさん[sage] 投稿日:2009/10/22(木) 11:09:25 ID:??? 削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか? 421 名前:nobodyさん[sage] 投稿日:2009/10/22(木) 11:09:25 ID:??? 削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか? 421 名前:nobodyさん[sage] 投稿日:2009/10/22(木) 11:09:25 ID:??? 削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか?
423 :
nobodyさん :2009/10/22(木) 11:17:01 ID:GGgiWLj/
>>362 ,366
それです、ありがとうございました。
そういえば10進にするのにbin2decはないんですね。hexdec通せばいいだけですが。
>>367 半角で書くと<みたいに出てしまうのが問題かと思って全角に
>>372 ,381
はい、UnicodeとUTF-8、UTF-16などを勘違いしてました。申し訳ない。
頭カッチカチになっててUnicodeにすることに頭がいきませんでした。
>>422 ついに発狂したな。
自分が逮捕されるかもしれないと知って、
顔面蒼白状態かwww
と、劣等生が申しております
いちいちネタ提供しなくていいよ
荒らしにいちいち相手してるのも自覚のない荒らしだ。 どっちもいらん。
自覚ないやつをいちいち相手してるやつも自覚ない荒らしだ おまえもいらん
ったく、脳がemptyな奴がおおいな
この板に生息するキチガイ 正規表現くん OCNくん チンピラくん
脳内がarray過ぎてアレなんだよ
チンピラくんはともかくOCNくんはこのスレではまだ名乗り出てないだろ ていうかこのスレであっちの話題持ってくるな またバカが暴れる
うるせーハゲ
ハゲっていうならちゃんとhageろよ
435 :
nobodyさん :2009/10/22(木) 13:39:10 ID:NNeAiTXH
windows 上でPHP5.3を使用してます PHP5.3でデフォルトで使用できるようになったfinfo_buffer関数を試してみたいのですが マニュアルに書いてあった下記のサンプルコードを試してもエラーになりました <?php $finfo = new finfo(FILEINFO_MIME); echo $finfo->buffer($_POST["script"]) . "\n"; ?> エラー:PHP Fatal error: Class 'finfo' not found どうやったらfinfo_bufferは使えるのでしょうか?
>>435 本当に有効にしてるの?php.iniみなおしてみ
>>435 xamppliteにはdllがなかったからxamppから持ってきたら動いたよ
439 :
435 :2009/10/22(木) 14:05:29 ID:???
php.iniでphp_fileinfo.dllを読み込ませてなかったのが原因みたいでした
まぁそんなオチだろうとはおもった
finfo_bufferって関数なのになんでマニュアルでは$finfo->bufferみたいにしかできないんだろう
finfoクラスのbufferメソッドっていう意味でかいたんじゃね クラス名も小文字で色々違和感があるクラスだな
443 :
nobodyさん :2009/10/22(木) 14:18:20 ID:BC6gKUnK
<?php $finfo = new finfo(FILEINFO_MIME); echo $finfo->buffer($_POST["script"]) . "\n"; ?> のようなクラス?での書き方コードではなく関数としてfinfo_buffer(パラメータ)形式でのサンプルってありませんか?
と質問してみたものの思って自分で書けました fileinfo関数って関数だけどクラスとしても使えるってことなんですね $file = file_get_contents("d:/test.php"); $fp =finfo_open(); $fb = finfo_buffer($fp,$file,FILEINFO_NONE); print_r($fb);
あぁそういうことか 関数でありクラスメソッドであるみたいな PHP使いは随分変なことするな・・・ finfo入ってないし動作するかわからないけどマニュアル見るかぎりだと $finfo = finfo_open(FILEINFO_MIME); echo finfo_buffer($finfo, $_POST['script']) . "\n"; かな?
446 :
nobodyさん :2009/10/22(木) 14:28:43 ID:BC6gKUnK
公式の投稿コードには何もなかったんで投稿したいんですが ↓のスパムフィルターの意味がわかりません Answer to this simple question (SPAM challenge): nine minus one?
無名関数のこと?5.3からだよね。
448 :
nobodyさん :2009/10/22(木) 14:30:34 ID:BC6gKUnK
>>446 英語もわからないのに投稿するのか?w
9-1はなんですか?ってきいてるだけやんw
450 :
nobodyさん :2009/10/22(木) 14:36:07 ID:BC6gKUnK
同じIP網使ってるやつがスパマーに踏み台にされてるか日本からのIPは弾いてるかってとこだろう
452 :
nobodyさん :2009/10/22(木) 14:44:21 ID:BC6gKUnK
せっかくfinfo_bufferでphp公式サイトデビューかと思ったのにスパムフィルターにやられたぜ
誰かに手柄上げますので投稿できる方は
>>444 を投稿してください
改変しようが自由です
User Contributed Notesに載せるほどのことか?
トンチンカンなことを書いて恥かかなくてよかったねw
どんどんやってくれ。
奥さんが浮気していますよ。
お母さんが泣いてるぞ
ID:BC6gKUnKは関数と無名関数とクラスの違いから勉強しなおせ
関数の話してるのに何で無名関数とクラスの違いがでるのか謎
finfo_bufferと無名関数が激しく関係ない件
あさっての方向の書き込みしてるの一人だろw
464 :
nobodyさん :2009/10/22(木) 17:03:57 ID:2Qgc9o0R
s始めまして。ファイルサイズについて質問させてください。 phpで携帯サイトのフォームを作っていて、ファイルサイズが20kbです。実際表示されると8kbで、 携帯サイトのファイルサイズ上限を10kbと考えていますが、問題はないのでしょうか。 phpファイル(20kb)がサーバーで処理を行う→クライアントのブラウザに表示される(8kb) なのでOK?
PHPのセキュリティーについて、他の言語と比べて致命的なものとは何でしょうか? ・php.iniで余計な情報が出力されることがデフォルトの設定になっている。 ・コンパイルのプロセスがないため、実行時にエラーになる場合がある。 ・実装によって、クラスのプライベート・パブリックの別がなくなる。 ・Apacheの特定のバージョンと組み合わせた場合に、原因不明のダウンが起こる。 ・型が曖昧で、非宣言でも使えるがための論理バグが生じる。 私の認識は、これくらいですが、これらは言語の責任というよりも、 その実装責任者の技量によるところが大であること考えています。
>>464 PHPファイルのサイズを見てどうするよ
出力するサイズを見ないと
>>465 ・実装によって、クラスのプライベート・パブリックの別がなくなる
こんなことあるの?
フレームワーク使って人居ます?
>>466 意識するのは出力されるファイルサイズでよろしいのですね。
ご返答ありがとうございました。
>>465 一番は、セキュリティに対しての意識が低い、間違ってる本やサイトがいっぱい出てることによる弊害じゃないかな。
>>465 2番目と5番目はインタプリタの特徴だろ
>>465 4番は、どのバージョンとどのバージョン?
PHP初心者に薦めたい本…PHPの絵本、ノンプログラマ、C++の初心者向け って書きたくなるくらい、PHP初心者向けって信頼されてないよぁw 書籍作って販売するって、やる気さえあれば簡単に出来るものなの?
うん
>>474 だいたいWebでPHP初心者講座みたいの開いてにぎわってきて出版社の目にとまると
この内容に手を加えて本を出してみないか?みたいにアプローチが来る
最近はどうだか知らないけど、 初心者向けPHP本が出る → セッションを使ってない/使い方がおかしい、サニタイズが(ry あたりのツッコミを入れられまくるのが一種のお約束だったぐらいに酷かった気がする。 そろそろ1冊ぐらい、無難なのがあるんだろう。いやきっとあるはず。
言いだしっぺの法則というのを皆さんご存知か?
本ってスカウト制が多いのか。なるほどねぇ。 じゃあ、私のサイトにスカウトが来たらロリコンの為のPHP教本とか作れるのか
一冊だけphpじゃない技術系の本を書いたことあるけど、 原稿料が安いし、使い捨てって感じ。 本を出したという実績が欲しい人にはいいけど、 金儲けのために本を作る人はいないと思う。このご時世。
dbに問い合わせする関数ってどうかいてる? 俺はこんな感じだけど function select_xxxx(&$result, $condition) { $result = 結果; return TRUE; }
本が難しければ日経あたりの特集記事でもいいだろう。 日経風に、「間違いだらけのサニタイズ」「セッション管理に失敗しない10の方法」 「フレームワーク最前線」とかタイトル並べれば通る気がする。
なんで結果セットを参照にしてんの?
>>481 はっきり言ってお前はセンスがない。
コンビニのアルバイトがお似合い。
せめてクラス化しろよー
ちょっと良い格好したいならDBアクセス部分だけクラス化。 手抜きするなら普通に必要なところでクエリ作って投げる。ていうか関数化する意味あるのかそれ。
今時DBなんてpearを使うのが王道だろ 車輪の再開発だな
クラス化するか、PDOを素のまま使う。 クラス化するとログが取りやすくなって便利。デコレータ・パターンとかでロガーを簡単に仕込める。
DBMSをころころ換える可能性がないなら普通にPDO
DBアクセスのところは一つのクラスにまとめるけど、 SQLは、ビジネスクラスの中で書いているけど、普通? SQL毎にクラス作っていたら、膨大なクラス数になるよね?
????
どんなクラスを作ったんだよw
>>490 その設計古すぎというか、駄目。
SQL文は外だしのファイルにして、一個所にまとめないと、
あっちこっちSQL文だらけになってメンテナンスに困るだろう?
>>490 SQLとビジネスロジックがごちゃごちゃして分かりにくい。
普通はSQLは、外部ファイル化して、それをデータベースのアクセスクラスが読み込むのが標準的な設計だと思うが。
sqlをクラスの中に書くのかよww
で、どうやるのがスタンダード? SQL文一個につき1関数じゃダメなの?
>>497 正直すみません。
設計スレみたいなのないかな?
いい加減にしてくれないか
何のために引数が存在してると思ってるんだ・・・・・・・
501 :
nobodyさん :2009/10/22(木) 23:21:24 ID:tJpAUHQM
ソフトバンク携帯でアクセスしたときに (以前は表示できていたのですが)見れなくなってました。 情報量が多かったのでPHPファイル内をわずかなテキストだけにしました。 が、それすら表示できませんでした。パソコンでは問題なく見れます。 エラーは下記です。 エラーが発生しました。レスポンスが不正です。WJ40164E どうすればよいのでしょう?
エスパーさん出番ですよ〜!
>>501 まず、 googleで ソフトバンク レスポンスが不正です で検索しようよ。
>>505 質問者じゃないだろ?
あと、諭すような口調をやめてくれ
fscanfがおかしいです!
510 :
nobodyさん :2009/10/23(金) 00:02:06 ID:X9i7QbIU
>>503 >>504 もちろんそれは検索済みです。。。
ほんの数件しか検索されなく、解決策もありませんでした。
511 :
nobodyさん :2009/10/23(金) 00:21:33 ID:tmLg3YdR
上でちょこっと言ってる、SQL文とロジックを分けるのサンプルってありませんか? 検索フォームのためのSQL文をきれいにソースと分けたいなぁと思っているのですけど
512 :
nobodyさん :2009/10/23(金) 00:37:44 ID:tmLg3YdR
>>510 hallow worldやphpinfoが表示出来ないというレベルで尚且つ、レンタルサーバの場合は
サーバ側で少し設定が変更されたかと思う。
firefoxやIEでHTTPヘッダーの情報が見れるアドオンとかあるし、
その情報を見れば少しは怪しいところが見えてくるかもしれない
>511 1. SQLだけ記述したファイルを用意する 2. そのファイルをfile_get_contentsで読み込み、文字列変数にセットする 3. SQL文字列をライブラリに渡してやり、実行する。 さらに一歩進めるなら、 実行して得られた結果セットを配列に入れて返してやる
ァ ∧_∧ ァ,、 ,、'` ( ´∀`) ,、'` '` ( ⊃ ⊂) '`
>>513 > 2. そのファイルをfile_get_contentsで読み込み、文字列変数にセットする
そうじゃないだろ。どういう設計思想なんだよ。パフォーマンス無視?
パフォーマンスや保守性はアクセス数が増えたときに考えればいいんじゃないのか?
>>517 ある程度先の運用面を考えて実装するが良き設計者。
それにその設計方法じゃ、すぐに天井が来る。
>>498 最近では関数はあんまり使わないと思うよー。
一番単純なのは
class DB{
function geAAA(){
}
function geBBB(){
}
}
みたいな感じじゃないかなぁ。
SQL外だしっていうのも、実はあんまりメリットないと思う。
SQLを動かすクラスと、それを運用するクラスと分けるべきだな
521 :
nobodyさん :2009/10/23(金) 01:38:30 ID:U1ZTI1ef
スレ違いかもしれないのですが、該当のスレが見つからなかった為、こちらで質問をさせてください。 現在、PHPとMySQLを組み合わせたウェブサイトを作っています。 MySQLのデータベースには2つのテーブル(テーブルA、テーブルB)があり、PHPからこの2つのテーブルを参照し、以下の様に表示させたいと考えています。 data_id (参照A) info (参照A) date(参照A) sonota(参照A) koshin_joho(参照B) // テーブルBもdata_idを持っていて、テーブルAのdata_idとマッチする時のみ、ウェブにkoshin_johoを表示 現在、phpファイルからテーブルAの方はループを使ってそれぞれのカラムを参照し、表示する事ができているのですが、 テーブルAのためにループを使っているためか、テーブルBを参照する事ができません。 どのようにすればループを使ってMySQLに登録されているデータを一度にウェブ表示させている状態で、 テーブルAとテーブルBをループ内で同時に表示する事ができるのでしょうか? 長文失礼致しました。
>>520 結局よく分からないけど、
(1) SQL文はクラスに直書き?外だし?
(2) いずれにしても、SQL文が1000個あったら、1000クラス(ファイル)作るの?じゃないなら、グループ化の基準は?
(3) WHERE文の要素が可変の時は?
俺は、MVCでいうところのModelに全て直書き。だから、ソースのあちらこちらにSQL文が書かれている。
523 :
521 :2009/10/23(金) 01:39:25 ID:U1ZTI1ef
テンプレを忘れていました。 【OS名】CentOS 5.3 【PHPのバージョン】php5.26 【連携ソフトウェア】mysql
あー。。
>>519 のDBクラスはたとえが良くないなー。
BBSクラスにしよう。
BBSクラスはBBSに関する全ての情報・操作を引き受ける人。
他人はデータ取得・保存はできるだけ単純にできるようにってだけ。
だから、
取得する条件・対象ごとにメソッド分けるのとパラメタで指定するのと
一概にどっちがいいとはいえない。
>>521 koshin_johoも一緒に取得すればいいんじゃないの?
マッチしない場合は取得できないわけだし
>>521 えーっと、、リレーションって知ってる?
>>524 前半は、いいとして、
> 取得する条件・対象ごとにメソッド分けるのとパラメタで指定するのと
> 一概にどっちがいいとはいえない。
それは、クラスを使いながら、考え方が全然オブジェクト指向じゃない。
>>522 1.SQLの機能をラップしたクラス
2. 1のクラスを使って機能を実現するクラス
という感じで分けてる、SQLは2へ直書き。
おそらくそれ以上ラップしたり、粒度を増やしても使うことは無いからということで。
529 :
521 :2009/10/23(金) 01:49:08 ID:U1ZTI1ef
現在書いているPHPのコードはこのような感じです。 $sql1 = "SELECT x FROM tableA"; $sql2 = "SELECT x FROM tableB"; $tablea = mysql_query($sql1); $tableb = mysql_query($sql2); while($row = mysql_fetch_array($tablea)){ echo $row['data_id'] ; echo $row['info'] ; echo $row['date'] ; echo $row['sonota'] ; } while ($row2 = mysql_fetch_array($tableb)){ if ($row2['data_id'] eq $row['data_id']){ echo $row2['koshin_joho']; } }
>>529 SELECT * FROM tableA NATURAL JOIN tableB
531 :
nobodyさん :2009/10/23(金) 01:53:32 ID:U1ZTI1ef
>>525 ,526
ありがとうございます。
こういう事でしょうか?
$sql = "SELECT x FROM tableA, tableB where tableA.data_id = tableB.data_id";
$table = mysql_query($sql);
while($row = mysql_fetch_array($table)){
echo $row['data_id'] ;
echo $row['info'] ;
echo $row['date'] ;
echo $row['sonota'] ;
echo $row['koshin_joho'];
}
>>527 スレッド名一覧をとる
getAll()
ID指定してスレッドとる
getById()
なんて分けるのは割りとあると思うけどなー
返ってくるモノが違うってとき。
533 :
nobodyさん :2009/10/23(金) 01:57:50 ID:U1ZTI1ef
>>530 それだとkojin_johoが書かれているテーブルの内容しか表示されません。
>>533 そこまで分かってるなら普通に結合も分かれよw ネタかよw
>>533 外部結合でググろう
SELECT * FROM tableA LEFT JOIN tableB ON tableA.data_id = tableB.data_id;
つTECHSCORE
537 :
nobodyさん :2009/10/23(金) 02:25:34 ID:U1ZTI1ef
>>534 最近MySQLをはじめたものですいません。
>>535 完璧です。ありがとうございました。
538 :
nobodyさん :2009/10/23(金) 05:47:37 ID:QLP+l4hN
http://php5.seesaa.net/category/3798060-1.html このサイト使ってphpを始めたのですが、POSTとGETを同時に使う重要性が分からないです。
Formタグの action の項目にGETをあらかじめ入力しているだけなので、ブラウザでのユーザの操作で変化しないです。
確かに同時に使っていますが、メリットが分からないです。むしろ、ユーザに書き換えられる危険性の方が高い気がします。
またhidden についても同様で、わざわざ入門のページにある割に、使い道が分からないです。
POSTとGETを同時に使う意味はありますか?
重要なんて書いてある? ケースバイケースで両方使う場合もあると書いているんだろう 俺もいろいろ書いてきたがGETとPOSTを併用したのは1度だけある どういうケースで使ったのかはちょっと思い出せないが併用したことは覚えている 必要になれば使えばいいだけの話だからそんな深く考えなくていいよ 一生使わないかもしれないし頻繁に使うかもしれないし 結局その人が何作ってるか・どういう風に組んでいるかによる hiddenはたとえば何かのアカウントを取得するときを想定するとわかりやすい アカウント取得には 登録のために個人情報を入力する(Input)→ 登録確認(個人情報確認)画面に進み登録するか確認する(Confirm)→ 登録完了 というプロセスをとる場合が多いわけだが Input画面で入力した情報をConfirm画面で出力するためには Confirm画面にどうにかしてInput画面で入力したものを受け渡さないといけない そういうときに使うのがhidden ようするに前のページの情報をページ遷移(移動)後でも使うために使う(情報を持ちまわすのに使う)
すみません。PHPってウェブサーバー上でしか実行できませんか。 例えばコマンドプロンプトからバッチファイルはexeみたいに 実行できないでしょうか?
>>539 なるほど 隠す用途じゃなくて見えなくさせているだけってことか。
入力された変数をhiddenのところにprinfするなら、確かに次も値を使えそうです。
2chにブラウザで書き込んだ時に出る「書きこみ&クッキー確認」の画面でもhiddenを見つけられました。
ありがとうございました。
542 :
nobodyさん :2009/10/23(金) 08:45:41 ID:pXxGvaT3
>>482 「PHPの」初心者ですが、
「セッション管理に失敗しない10の方法」を教えて頂けませんでしょうか。
PEARって全部使えないと思うのは俺だけですか?
>>543 先日まで触ったこともなかったけどSMTP_AUTHを使う必要があってMailを使ったよ
安藤さんがOSS受賞したね
だれや? キャスターか?
550 :
nobodyさん :2009/10/24(土) 00:40:41 ID:BvPjRTUm
new SQLiteDatabaseで作られたコンストラクタで データベースをcloseするにはどうしたらいいですか?
$db->close();
552 :
nobodyさん :2009/10/24(土) 00:54:41 ID:BvPjRTUm
Fatal error: Call to undefined method SQLiteDatabase::close()
そのクラスに閉じるメソッドが使われていなくて コンストラクトでオープンするようになっている場合 デスクトラクト時にそのクラス側で勝手に終了してくれてると考えるきでは?
なんか日本語が変だった・・・ そのクラスに閉じるメソッドが定義されていなくて コンストラクターでオープンするようになっている場合 デスクトラクターで勝手に閉じてくれていると考えるべきでは? 実際にそのクラスの中身はみてないしどういうのもしらないが
何言ってんの?
分からないなら無理してレスしなくていいよ 教えてほしいならどこがどうわからないのかID出して質問してね
>>555 554で言ったとおりどういうクラスかもしらないし中身もしらないけど(というよりSQLite使ったことない)
class SQLiteDatabase {
private DB接続ポインタ;
function __construct(接続情報) {
$this->DB接続ポインタ = sqliteオープン(接続情報);;
}
function query($sql) {
return 結果を配列で返す($sql);
}
function __destruct() {
sqliteクローズ($this->DB接続ポインタ);
//$this->DB接続ポインタ = null;
}
}
$obj = new SQLiteDatabase(接続情報);
$res = $obj->query("SELECT * FROM hoge WHERE 1");
foreach ($res as $row) {
echo $row."<br>";
}
//ここでデストラクターが呼ばれて勝手に終了する
たぶんこんな構造になってるんじゃないかと(間違ってるかもしれないけど)
SQLite自体明示的に終了させる必要がないDBかもしれないしその辺の事情は知らない
下らんコード書く暇あったら確認しろよ
>>558 そんなクラス見つからなかったんだけどなぁ
探し方が悪かったんだろうか
よかったらリンクはってちょうだい
>//ここでデストラクターが呼ばれて勝手に終了する $objがスコープ内にいるのにデストラクタが呼ばれちゃまずいだろ。
>>561 <?php
class Hoge {
function Hoge() {
echo "construct<br>\n";
}
function a() {
return array("a", "b", "c");
}
function __destruct() {
echo "destruct<br>\n";
}
}
$obj = new Hoge;
foreach ($obj->a() as $value) {
echo $value."<br>\n";
}
?>
ほんとこのスレ初心者ばっかだなw
マルチパラダイムだから仕方ないがこれはひどい 明確に分ければいいのに
567 :
nobodyさん :2009/10/24(土) 09:49:09 ID:o7jv7fS8
PHP、PEAR、Smartyはだいたい理解できました しかし、実際HTMLなどのクライアントサイド側との連携がいまいち良く分かりません 本やちょっとしたPHP解説のサイトなどはメソッドとかプロパティなどの説明で終わっているもので フォームなどの基本的な事は何処にでも書いてあるので分かるのですが、実践的なPHPとクライアントサイドとの連携したコードなど 書いてある書籍など自分の県では見つけられませんでした 実際にサイトを作る為のクライアント+サーバサイドを連携させたサンプルコードの載っているサイトや書籍は何かないでしょうか? 宜しくお願い致します
Ajaxのことだろ Ajaxスレいってください
jquery
570 :
nobodyさん :2009/10/24(土) 10:02:54 ID:o7jv7fS8
えっ? Ajaxですか? Ajaxの事ではなく、例えばテンプレートとか実際に実装して作ったサンプルとかです 説明不足だったようです、すみません 例えば、Webデザインブックなどはいくらでも出ていますが、それらはただHTMLとCSSで実装しています まぁたまにJavaScriptなどもありますが 自分は、人がサイトにアップロードした画像をサイトに情報つきで載せてレイアウトも崩れないようにしたいとか (つまり$_FILESの概念はわかるけれどそれを実際クライアント側のコードにどのようにテンプレート内に実装・レイアウトしていくか)、 PEARによるログイン認証を行った後でそのログインしたユーザーのみが動的コンテンツを利用するためにはどのようにすればいいのか、 とかまぁ書けば色々と長くなりそうですが、そういう事です 自分側がただ作ったサイトを公開するだけではなく、ユーザーの参加できるようなサイトの作り方を、簡単でもいいので解説しているサイトや書籍が知りたいのです
>>557 おいおいwあんまり>>555をいじめんなよw
そんなの見せても>>555にはチンプンカンプンなんだぜwwwwwwww
今頃顔真っ赤にしてるだろうけど二度と出てこないよww
>>571 そういうのは、実際に必要になった時に調べたり考えたりしてもいいと思う。
PHPで家計簿でも何でもいいんで作ってみれば、分かってくるんじゃないかな。
気力があるなら、人が作成したPHPのプログラムを落としてHTML部分がどうなってるか探してみるのが言いかと
そりゃクライアント+サーバサイドの連携っていったら JavaScriptとPHPの連携っていってるようなものだからAjaxって答えが返ってくるのも無理もない MixiやYoutubeのようなSNSサービスをやりたいってことね セッションとか勉強するといいよ
>>562 閉じタグとファイル終端は、直接関係無い。
タグ閉じただけじゃスコープ閉じないんだぜ。
日本語でおk
でてこいよ
>>555 wwwwwwwwwwwwwwwGOGOGOwwwwwwwwwwwwwwwwww
577 :
nobodyさん :2009/10/24(土) 12:01:27 ID:o7jv7fS8
>>572 レスアンカーは自分(
>>570 )にですよね?
そうだと思って返答させて下さい
>人が作成したPHPのプログラムを落としてHTML部分がどうなってるか探してみる
こういうのはWebサイトで検索して、人が書いたサンプルコードを集めて学習しろという事なのでしょうか?
それとも、自分は知らない(というかコードを読み取られると危険なのでそもそも出来ないのではと思うのですが)、ソース読み取りソフトとかあるのでしょうか?
例えばWebサイトであればIEのソース機能やFireFoxのFireBugのようなHTMLのコードを表示出来る様なソフトの事です
>>573 あぁ、すみませんでした
自分の表現がおかしかったようです
HTML+CSSにPHP(テンプレートやライブラリ含む)を組み込んで実装する、実際に運営する為の雛形コードを学習したかったのです
>>570 単にフォームからのリクエストを処理するPHPのコード、ってんなら、
PHPの本で2〜3章かけて解説してるんじゃね?
あとは自分の作りたいものに似てるの探して、コード読むべし。
>HTML+CSSにPHP(テンプレートやライブラリ含む)を組み込んで実装する、 >実際に運営する為の雛形コードを学習したかったのです フレームワークのview部分とか見てみるといいかもしれない
>>574 aaa<br>
<?php
>>562 のコード
?>
bbb<br>
でbbb<br>より後にdestructが現れるってことか?
どっちみちDBクローズならそれでもいいだろ
581 :
555 :2009/10/24(土) 12:11:40 ID:???
すいませんでした 無知を晒してしまいました ごめんなさい
ちなみにスコープ閉じるってどうやるの? objにnullいれるだけ?
>>580 その下にまた<?phpが出てくるとか、include/requireされてるとか。
>>582 $objはスコープから外れてないけど、インスタンスは
ガベージコレクションで回収されるから、そのときに
デストラクタが起動されるんだと思う。
PHPで明示的なスコープって言ったら関数かな。
ローカル(グローバルでない)変数のスコープは関数内でしょ。
>>281 いやだからそれは俺が振られた理由になってねえよ
なんで会社の休憩時間にイタリアフルコース頼まないといけないんだよ
フラれたのか、ま、元気だせ、応援してるから。
要らないもんはunsetしちゃおうぜ
587 :
552 :2009/10/24(土) 14:16:10 ID:BvPjRTUm
結局クラスを自作して対応しました。 class sqlite{ var $_result = array(); var $_pointer = null; var $_message = null; function connect($dbfile){ return $this->_pointer = sqlite_open($dbfile,0666,$this->_message); } function close(){ sqlite_close($this->_pointer); } function exec($que){ return sqlite_exec($this->_pointer,$que,$this->_message); } function array_query($que){ return sqlite_array_query($this->_pointer,$que,$this->_message); } function get_escape($str){ return sqlite_escape_string($str); } function get_result(){ return $this->_result; } function get_pointer(){ return $this->$_pointer; } function get_message(){ return $this->$_message; } }
>>587 オブジェクト指向スタイル用意されてる意味ねーw
fscanfがおかしいです
なるほどね、凸者さんの判断次第ってことか。 あと、ヤンデレこえぇwww
誤爆
どうしてもnewで作ってclose()したいんだ、という強い意志が感じられます。 若いっていいね。
>どうしてもnewで作ってclose()したいんだ、という強い意志が感じられます。 はずかしいから黙ってて
newで作ったらdeleteを使いたくなるよね。 で、ダミー関数であるdeleteが登録されてるせいで、 delete($classA)とか書いてもしばらく気がつけない
え?
え?
これ何のスレだっけ
質問じゃない時はsageで書きやがれスレ
599 :
nobodyさん :2009/10/24(土) 22:35:42 ID:aM0DiAaq
【OS名】Windows xp 【PHPのバージョン】php5.2.10 【連携ソフトウェア】mysql 【質問内容】 心理テストのようなサイトを作ろうとしています。 何人がその答えを選んだかの集計と、 それとは別に選んだ答えがどのような性格をあらわすのかを表示できるようにしたいです。 チェックボタンを選んだ状態で「あなたはこんな人」のようなラジオボタンで そのページに遷移させたいです。 どのようにしたらいいのでしょうか? アバウトな質問でごめんなさい。
全部作らせる気かww 最近の若者は安易だなぁ
603 :
nobodyさん :2009/10/24(土) 22:45:01 ID:aM0DiAaq
くだらなすぎてごめんなさい・・・
くだらないというか何が(どこが)できないのかが分からんのだよ
605 :
nobodyさん :2009/10/24(土) 22:50:44 ID:aM0DiAaq
アンケートのページで「投票」を押したらその選んだ結果によって違うページに飛ばしたいです。 例えば赤を選んだら赤色を好きな人の性格について書いてあるページで、 青を選んだら青色が好きな人の性格について書いてあるページです。 アバウトすぎてごめんなさい。
606 :
nobodyさん :2009/10/24(土) 22:51:31 ID:aM0DiAaq
今こんな感じで書いているところです。。 <html> <head><title>心理テスト</title></head> <body> <h1>メンタル編</h1> <p>あなたがいつか天国へ旅立つとしたら、何色の石をお守りにしたいですか? <?php // スクリプト名取得 $script = basename(__FILE__); // メンバー名配列 $member = array("", "赤いルビー", "ピンクのローズクォーツ", "ゴールド", "イエロートパーズ", "緑のヒスイ", "青のラピスラズリ", "紫水晶", "白の水晶"); // 投票がある場合 if ($_POST['COLOR'] > 0) { // 投票者番号 $no = $_POST['COLOR']; // MySQLに接続 $db = mysql_connect("localhost", "root", "root"); // DB選択 mysql_select_db("graduation", $db); // insert文実行 mysql_query("insert into ninki values(null, {$no}, now())", $db); // DB切断 mysql_close($db); } ?>
607 :
nobodyさん :2009/10/24(土) 22:52:32 ID:aM0DiAaq
<p><font color="red"><?= $msg ?></font></p> <form method="POST" action="<?= $script ?>"> <p><input type="radio" name="COLOR" value="1">赤いルビー</p> <p><input type="radio" name="COLOR" value="2">ピンクのローズクォーツ</p> <p><input type="radio" name="COLOR" value="3">ゴールド</p> <p><input type="radio" name="COLOR" value="4">イエロートパーズ</p> <p><input type="radio" name="COLOR" value="5">緑のヒスイ</p> <p><input type="radio" name="COLOR" value="6">青のラピスラズリ</p> <p><input type="radio" name="COLOR" value="7">紫水晶</p> <p><input type="radio" name="COLOR" value="8">白の水晶</p> <p><input type="submit" value="投票"></p> </body></html> こんな感じです。 ごめんなさい。
>>607 switch($COLOR){
case 1
処理&リダイレクト1
break;
case 2
処理&リダイレクト2
break;
case 3
処理&リダイレクト3
break;
.....
}
あとaction="<?php echo $script ?>"はまずくね?
それだったらaction=""で空でいいと思うよ
case 1: ね":"を忘れずに
610 :
nobodyさん :2009/10/24(土) 23:01:10 ID:aM0DiAaq
情けない質問wwww
612 :
nobodyさん :2009/10/24(土) 23:24:44 ID:TvoLhocc
switch内のbreak;のインデントってたまに悩むけどどうしてますか?
俺はcaseからインデントつけて位置に書いてるけど
そうすると最後でインデントが2つ一気になくなってしまう違和感がある
>>608 みたいに書くとcase処理内な感じがしない違和感
>>612 その書き込みエスケープされただけだお
case $a:
break;
が多いけどおれも結構曖昧だ
逆だ case $a: break;
switch ($a) { case 0: do_something(); break; case 1: do_something(); break; default: do_something(); break; } どの言語の解説でもたいていこうなってるしこれがスタンダードじゃないかね
下らねぇ回答はID出さないでここに書き込みやがれ 90
次スレの季節か
switch文で気になったのでメモ switch('a'){ case 'a'; //末尾が ; } と switch('a'){ case 'a': //末尾が : } は等価
619 :
nobodyさん :2009/10/25(日) 05:29:05 ID:TWuysydg
$test = " 1c 2c 3c!"; $search = "/([^0-9])([0-9])c([^0-9])/"; $replace = "$1c$2$3"; echo preg_replace($search, $replace, $test); これで、期待する出力は c1 c2 c3! 実際の出力は c1 2c c3! 質問は、 ・なぜこのような動作になるのでしょうか? ・どうすれば解決できるでしょうか? 後、欲しいアイデアとして ・"1c 2c 3c"のように、先頭にスペースを入れなくても"c1 c2 c3"に変える正規表現を教えてほしい (ただし"11c"のような形の場合は変化させないでほしい)
explodeで配列にわけて substrで文字を抜き出したのを結合すえばええ
認定回答者採用試験は今日までですので頑張って回答してください
>>619 $test = "1c 2c 3c!";
$search = "/([^| ][0-9]{1})c/";
$replace = "c$1";
トリもIDも出さずに試験官気取りとな?
phpでシングルトンって意味あるの? リクエスト終わったらメモリ開放されるんでしょ?
2行目は正解。 1リクエストの中だけでも必要なときはあるさ。
627 :
nobodyさん :2009/10/25(日) 22:38:37 ID:Ltpwqrvc
mod_rewriteを使ってクリックカウントをとりたいのですが
以下のようにするとcount.phpにリダイレクトできるのですが、
count.phpからLocationで飛ばすとループしているのか404NotFoundになってしまいます。
どうすれば正常にできますか?
例:www.example.com/img/abc01.jpg をクリックしてcount.phpを介してカウント
www.example.com/img/abc01.jpgのまま表示する
//サーバー側
RewriteEngine on
RewriteRule ^/img/abc([0-9]+).(*)$ /img/count.php?id=$1&extension=$2
//count.php側
header("Location:
http://www.example.com/img/abc$id.$extension ");
readfile使えばいいと思うよ
629 :
627 :2009/10/25(日) 22:54:09 ID:Ltpwqrvc
count.phpがabc01.jpgを出力するんだぜ。
リライトログ見てみたら?吐いてなかったら吐かせて
632 :
627 :2009/10/26(月) 00:20:09 ID:8+sjsIrs
>>630-631 アドバイスありがとうございます。
何とか解決できたみたいです。
/img/を物理ディレクトリ、URL表示部分を新規に/img2/として(抽象ディレクトリ)
リライトしたらできるようになりました。
633 :
627 :2009/10/26(月) 00:33:00 ID:8+sjsIrs
>>628 readfileも必要だったみたいです。
ありがとうございました。
質問させてください。 <html> <body> <?php include("./hoge.php");?> </body> </html> で閲覧に問題はないのですが、 ソースを見ると <html> <body> <html><body></body></html> </body> </html> と2度使われ重複している状態です。 hoge.phpには<html><body></body></html>などの記述はしておりません。 問題の箇所等ご指摘願います。
hoge.phpの中身書くのがいやなら簡略化したもの書いてくれないと それだけではなんともいえない
>>635 ありがとうございます。
hoge.phpの中身はモバイル版AdSenseコードのみです。
637 :
nobodyさん :2009/10/26(月) 05:48:48 ID:n4efgg6U
質問です。MagpieRSSを使っています。
日付順に取得記事をソートしたいのですが、うまくいきません。
アドバイスお願いします。
$rssurl = array ();
$rssurl[] = "
http://mainichi.pheedo.jp/f/mainichijp_flash ";
$rssurl[] = "
http://rss.asahi.com/f/asahi_newsheadlines ";
foreach ($rssurl as $pre) {
$url = $pre;
$rss = fetch_rss($url);
$title = $rss->channel['title'];
$title = mb_convert_encoding($title, "shift_jis", "auto");
$url = $rss->channel['link'];
$rss->items = array_slice($rss->items, 0, 1);
foreach ($rss->items as $item ) {
$day = date('n/j',strtotime(substr($item['dc']['date'],0,10)));
$time = date('H:i',strtotime(substr($item['dc']['date'],11,8)));
$date = "$day $time";
$rdf = $item[link];
$article = $item[title];
$article = mb_convert_encoding($article, "shift_jis", "auto");
$linkstr = "$date $rdf $article $url $title<br>\n";
$rssarray["{$date}"] = $linkstr;
krsort($rssarray);
echo "$linkstr";
>>637 $linkstrは全て想定通りになってるの?
639 :
nobodyさん :2009/10/26(月) 05:55:31 ID:n4efgg6U
>>638 はい、順序以外は期待通りの実行結果です。
641 :
nobodyさん :2009/10/26(月) 06:09:43 ID:n4efgg6U
>>636 echoで文字列を出力してるのか?
それともただアドセンス部分のHTMLだけ書いてるのか?
試してみたがhtml bodyタグが加わることはない
サーバかPHPの設定かもしれないがどの設定項目かはわからんわ
PHP使えるレン鯖が2つ以上あるなら両方で試してみ
ローカルに環境作るのが一番いいけど
>日付でソートをかけているつもり 使う関数まちがってるんじゃね? krsortって逆順ソートだよ
日付だから逆順であってんでねーの?
いやいや ただ単にキーを逆順にするソートってこと ユーザー定義のソートをしたいのならusort()とかじゃないと
646 :
nobodyさん :2009/10/26(月) 06:18:06 ID:n4efgg6U
647 :
645 :2009/10/26(月) 06:19:49 ID:???
あ、ごめん。 よくよんでなかったw >日付でソートをかけているつもりですが、まったくされていません。 ってかいてたからてっきり データ見る限りだとkrsortでよさそうだね
648 :
645 :2009/10/26(月) 06:20:38 ID:???
とか書いた瞬間にデータの日付ルールが変わった件
649 :
nobodyさん :2009/10/26(月) 06:22:04 ID:n4efgg6U
usortにしたらエラーがでました。
Warning: Wrong parameter count for usort() in C:\WWW\php.php on line 30
>>648 26日が真上だと日付でソートされているように見えたので…
配列順に表示されるだけでソート機能が働いていないというのが今回の悩みです。。。
それぞれどんな$linkstrなの?
652 :
nobodyさん :2009/10/26(月) 06:34:30 ID:n4efgg6U
>>650 すいません、ありがとうございます。
試している最中ですが、cmpの設定に少し時間がかかりそうなので結果が遅れます。
>>651 $day 記事の更新日
$time 記事の更新時間
$date 上記二つを合わせた文字列
$rdf 記事のURL
$article 記事のタイトル
$url 配信元のURL
$title 配信元のタイトル
です。
>>652 ごめん、krsortに$linkstr関係なかったね
$array = array('10/25 21:00'=>1,'10/25 22:14'=>2,'10/26 05:00'=>3,'10/25 23:10'=>4);
var_dump($array);
krsort($array);
var_dump($array);
array(4) {
["10/25 21:00"]=>
int(1)
["10/25 22:14"]=>
int(2)
["10/26 05:00"]=>
int(3)
["10/25 23:10"]=>
int(4)
}
array(4) {
["10/26 05:00"]=>
int(3)
["10/25 23:10"]=>
int(4)
["10/25 22:14"]=>
int(2)
["10/25 21:00"]=>
int(1)
}
こちらで試してみたら想定どおりにソートされてる気がするけども
usortの$aの部分を日付をunixタイムに変えたものいれればそのまま使えるんじゃね $a部分を連想配列にしてキーを$rssarrayのキーと一致させておけば簡単 比較は値のunixタイムにしたものを比較する感じで マニュアルの例そのまま使うならrsort()にしたほうがいいと注意書きに書いてるから まずはusortで形をつくってからパフォーマンスのためにrsortで書き直してみては?
655 :
645 :2009/10/26(月) 06:48:17 ID:???
なんか話をややこしくしてすまんかった
krsortの使い方を勘違いしてたようだ
>>653 でよさそう
オマエラ馬鹿じゃね? $rssarrayをソートかけてんのに$linkstr表示してっからだろ
>>637 krsort($rssarray);
echo "$linkstr";
froeachの終わりがどこかわからんけど、echo結果を見ているなら$rss->itemsの順番に表示されてるんじゃ?
$rssarrayに入れたいものを全部入れてからkrsortしてprint_r($rssarray)で確認してみたらどうかな
658 :
nobodyさん :2009/10/26(月) 06:56:25 ID:n4efgg6U
>>653 phpは昨日触ったばかりなのでじっくり参考にさせて頂きます。
>>654 >>655 助言を求めたのは私なのでハマりから抜け出すためのしっかり参考にさせて頂きます。
>>656 >>657 やっと原因が究明出来ました。
表示がまだ思い通りにいかないので試行錯誤してみます。
659 :
nobodyさん :2009/10/26(月) 07:00:40 ID:n4efgg6U
foreachを閉じた後 krsort($rssarray); for(reset($rssarray); $i=i($rssarray); next($rssarray)){ echo "$rssarray[$i]"; $count++; if($count == 4){ break; } } これでしっかりと表示出来ました。 原因はkrsort($rssarray);をforeachの中に入れていたことと $linkstrを表示していたことです。 皆様ありがとうございました!
echo "$linkstr"; の行は単にデバッグのためループの中で出力を確認しているだけで 当然そのあとにテーブルか何かで一覧を表示して、正しくソートされてないと言ってるもんだと思ってた。 $linkstrはkrsortどころか$rssarrayとも関係ない。foreachの順で表示されるだけじゃん。
終わった後に言っても仕方ねぇだろ無能。 オマエラ馬鹿すぎ。
煽るのすきだね リアルでどういうやつなのかぜひ見てみたいわ
それはない
クッキーにパスワード保存するのはあれだよね。次回から自動でログインとかどうすればいいんだろう
他人の端末のクッキーコピって来たら、 俺が自動ログインで、そいつの振りして利用できる?
できるよ
そもそも他人に簡単に起動を許す、または誰でも簡単に利用できるようなPCのセキュリティに問題アリ
パスワードだけは暗号化すれば良さそうだね
暗号化が簡単ならね
クッキーなんか暗号化必要ないんじゃない?
>>673 暗号化なんて簡単じゃん
簡単ならおk
そもそもクッキーコピーできるような状況なら、そのPCで他人がブラウザ使ってもログイン可能って ことだしなあ。
そもそも自動ログインなんて許すのは金の絡まないサイトとか 個人情報があまり意味ないサイトとかだよね。 ひまわり動画とか
679 :
nobodyさん :2009/10/26(月) 17:53:40 ID:+hgb+ZZq
一応
>>1 にMySQL等は別スレとありますが、php+MySQLに対してのスレがなかったので、此方で宜しかったでしょうか?
スレチでしたら誘導お願いします。
Sample.phpへ、buttonを配置し、JavaScriptでメソッドを定義。
function A1(){
if(confirm('ごまだれですか?')){
<?php
mysql_query("begin");
mysql_query("update `gomagoma` set `syurui` = 'くろごま' where `syurui` = 'alpha'") or die(mysql_error());
mysql_query("commit");
mysql_query("begin");
mysql_query("update `gomagoma` set `syurui` = 'しろごま' where `syurui` = 'beta'") or die(mysql_error());
mysql_query("commit");
mysql_query("begin");
mysql_query("update `gomagoma` set `syurui` = 'ごまふあざらあし' where `syurui` = 'hex'") or die(mysql_error());
mysql_query("commit");
?>
window.alert('内容を変更しました。')
}
}
としていますが、DBを覗いてみたところ、アップデートされていませんでした。
ですが、MysqlErrorは返ってきておらず、そのままJavaScriptで記述したalertが実行されます。
原因を現在当たっていますが、何か思い当たる点がありましたらご指摘お願いします。
>>678 677じゃないけど、そんなもんだと思うぞ
大して重要でもないのに何を気にする事あるんだ?
そんなに気になるなら自動ログインなんてしなきゃいいだけじゃないか
>>679 サーバサイドとクライアントサイドがごっちゃになってないか?
「function A1()」ってのはjavascript側で定義している関数だろ?
その中のphp(mysql_query)は、button押下に関係無くそのページロードしたら実行されるぞ?
ブラウザのソース見てみなよ。
>>679 そのHOSTからmysqlで同じSQLを手で入れるとどうなるよ
トランザクションの使い方も間違ってる
>>679 PHPの中身はともかくとしても、
PHP部が実行されて、DBが書き換えられるなどした後、
出力などがなければ<?php から ?>までが無くなったテキストが、
ヘッダなどがついてブラウザに渡され、それからjavascriptが動くので、
ブラウザがうけとるのは
function A1(){
if(confirm('ごまだれですか?')){
}
}
になります。
function A1(){ if(confirm('ごまだれですか?')){ window.alert('内容を変更しました。') } } 抜けてた
mysqlの問題と思ってる時点でアレだな
「ごまふあざらあし」が気になってプログラムが進みません!
クライアントへhtmlを送る時に、ボタンと、押した時にサーバーサイドで実行する クエリを書いておく事が出来る。 というフレームワークのアイデアを頂きました。 クレームワームの名前は「ごまふあざらあし」にしようと思います。
ごまだれですか?
いえ、「ごまふあざらあし」です
いっそPHPonJavascript HTTP通信で。
PHP側で実行する内容が、htmlソースから丸見えになるんで良くないなw
>>693 SQLをクライアントで構築して送信する前システムを思い出した
最悪だな
"name":"名無し","body":"あいうえお" このように書かれたテキストファイルから「名無し」「あいうえお」を取得する方法は 正規表現でひとつずつ抜き出すほかにありますか?
698 :
nobodyさん :2009/10/27(火) 19:39:41 ID:73GIvY2U
サーバ変数のQUERY_STRINGのPOST版を取得したいのですがどのようにしたら取れますか? また、上で取得した文字列を$_POSTのような配列形式に変換したいのですが、そのような関数はありますか?
意味が分からん $_REQUEST
>>698 何もしなくても良いのではないだろうか。
>>698 POSTされた生のデータが欲しいって事かい?
parse_str(file_get_contents('php://input'), $f);
var_dump($f);
fopen("php://memory", "r+"); すげえ
703 :
698 :2009/10/27(火) 21:41:14 ID:???
704 :
nobodyさん :2009/10/28(水) 01:05:41 ID:EMbPGL3Y
simplexmlについての質問です。 simplexml_load_fileで読みこんだObjectから $q = $_GET["q"]; echo $xml->item[$q]->name; としたいのですが、何も表示されません。 echo $xml->item[0]->name; だと正しく表示され $q = 0; echo $xml->item[$q]->name; でも正しく表示されます。 $q = $_GET["q"]; echo $q; echo $xml->item[$q]->name; とした場合は、$qだけが表示されました。 simplexmlでは$_GETが使えないのでしょうか? 解決策をお教えいただきたいです。
706 :
nobodyさん :2009/10/28(水) 01:12:57 ID:EMbPGL3Y
>>705 ありがとうございます!
$q = $_GET["q"]+1-1;
と試してみるとうまくいきました。
ホントにお恥ずかしい限りです・・・
型違うと検索してくれないんだ?
$q = (int)$_GET["q"]; でおk
includeって必要なときにだけ呼び出したほうがいいの? 負荷とかそんなに変わらないのならクラス定義をまとめて最初に読み込んだほうがらくだよね。。。
えっ
Javaのimportのようなもんだと思ってるんだろう ただJavaの場合コンパイラが最適化してくれるので問題ないが PHPはインタプリタなので最適化のしようがないという つまり全部includeなんてしたらそりゃ遅くなる
>>712 なるほど、ありがとう。必要なときにincludeしたほうが良いってことね
>>695-697 文字列中に,も出てくるかもしれないから
json_decode()を使ったほうがよくない?
715 :
nobodyさん :2009/10/28(水) 10:42:00 ID:v0axKvNX
セッションの開始をつげるsession_start()って セッションを使用する場合は必ずつけなければならないのですよね? これを記述するのはMVCモデルだとVの部分に記述するのであってますでしょうか?
コントロールじゃね?
717 :
716 :2009/10/28(水) 10:45:50 ID:???
コントロールですか? ありがとうございます 早速組み方を考えて見ます
bootstrapだろ
719 :
679 :2009/10/28(水) 14:53:16 ID:op4mA5/p
返答遅くなりました。 そうか・・・表示されてる時には既にHTMLとして返ってきてるんですよね。 この場合は、dbedit.phpのようなものを別途つくり <?php include("dbedit.php"); A1(); ?> という風にすればいいのかな? しかし、この場合でも、A1だけではなく、A2,A3と続く様であれば それの振り分けはどう実装したらいいでしょうか? ご意見や、実装例等がありましたら、ご教示よろしくお願い致します。
>>719 まずjavascriptなしでやることを考えてみ。
ちょっと答え方まちがったかな。 まずそのA1, A2, A3でなにをするのか書かないと。あと関数ってわかってる?振り分けってどういうことするの?
>>719 A1()って
>>679 を見る限りJavaScriptのfunctionだろ? 呼べるわけがないw
>>720 の通りにまずJavaScriptなしで動くようにしてみたら?
サーバー側でpostされた内容によってSQL発行するだけだよ
>>679 はもう諦めてこれプログラムできる人にやってもらったほうが世のため人のため
>>679 のためと思うのはおれだけか?
いきなりいろいろ手をつけすぎだな javascript無し、DB無しでPHPだけでいろいろ慣れるのが先だな
A1()で「くろごま」
A2()で「しろごま」
A3()で「ごまふあざらあし」
を処理する気まんまんの
>>679 にWeb100.0
phpとmysqlを同時に説明してる本とか売ってるし それ見た方がいいよね それと同時にプログラミングの概念について解説してる本を読んだ方がいいのかも 概念が足りてない
test
729 :
nobodyさん :2009/10/29(木) 09:54:12 ID:xBLZE2eU
【OS】cent 【バージョン】php5.2.10 SimpleXMLElementに関する質問です。 mlから特定の属性を持った要素を削除するにはどうすれば良いのでしょうか? 例を挙げると、 『sample.xml』 <?xml version="1.0" encoding="UTF-8" ?> <library> <book id="00001"> <title>aaa</title> <author>Emily</author> </book> <book id="00002"> <title>bbb</title> <author>John</author> </book> <book id="00003"> <title>ccc</title> <author>Mike</author> </book> </library> とした場合、idが「00002」の要素を削除するという感じです。 --続く--
730 :
729 :2009/10/29(木) 09:56:09 ID:xBLZE2eU
--続き-- いろいろ調べたところ、 $xml = new SimpleXMLElement('sample.xml', null, true); unset($xml->book[0]); で削除は出来るのようですが、配列で何番目という指定ではなくid「00002」の要素を指定して削除し、 <?xml version="1.0" encoding="UTF-8" ?> <library> <book id="00001"> <title>aaa</title> <author>Emily</author> </book> <book id="00003"> <title>ccc</title> <author>Mike</author> </book> </library> となる事が目的です。 どうぞよろしくお願いします。
>>730 foreachで出来た方いたら教えてください。
$xml = new SimpleXMLElement('sample.xml', null, true);
for ( $i = 0 ; $i < count($xml->book);$i++) {
if ( $xml->book[$i]["id"] == " 00002") {
unset( $xml->book[$i] );
}
}
echo $xml->asXML();
732 :
729 :2009/10/29(木) 23:49:16 ID:???
>>731 出来ました!
どうもありがとうございます。
確かにforeachだと更に良いかも知れませんね。でも感謝です。
733 :
nobodyさん :2009/10/30(金) 06:12:51 ID:5l/tuOOs
以下のようなメールアドレスのうち「@の前部分」を、文字数分だけ*に置換したいのです。
[email protected] これだと4文字決め打ちになってしまいます。
preg_replace('/[a-z0-9\.\-\_]+@/i', '****@', $text);
いまのところシンプルに書ける方法で思いつくのは、
長い文字数から順に置換していく方法です。
forなど使えばシンプルには書けそうです。
preg_replace('/[a-z0-9\.\-\_]{10}@/i', '**********@', $text);
preg_replace('/[a-z0-9\.\-\_]{9}@/i', '*********@', $text);
...
でも美しい方法とは思えません。
定石、または美しい方法はありますか?
>>733 たとえば
$text = "
[email protected] ";
echo preg_replace('/([a-z0-9\.\-\_]+)@/ie', "str_repeat('*',strlen('$1')) . '@'", $text);
例えば
$text = "
[email protected] ";
$array = explode('@', $text);
echo str_repeat('*',strlen($array[0])) . '@' . $array[1];
例えば
$text='
[email protected] ';
echo str_repeat('*', strpos($text,'@')).strstr($text,'@');
737 :
nobodyさん :2009/10/30(金) 17:16:58 ID:5l/tuOOs
>>734-736 ありがとうございます。e修飾子とかはじめて認識しました。
Yahoo!グループの過去ログのように「メール本文中の署名などの個人情報を隠匿」が目的なので、
>>734 の方法で行かせていただこうと思います(目的を書いとくべきでしたごめんなさい)。
精進します。
738 :
nobodyさん :2009/10/30(金) 20:21:02 ID:k7DoHVtB
2chの大量規制があったとかのせいか、ここも勢いがないね phpのソースコードそのものを取り込んで そのコードを解析する みたいな手段ってありませんか?
どう解析するの? 単に構文解析だったら、PHPでPHP用のレキシカルアナライザとパーサ作ればいいんだけど、 それだけやったって面白くないよね、手間なだけで。 何をしたいのかが良く分からん。
740 :
nobodyさん :2009/10/30(金) 22:48:05 ID:pyIKqVVx
class test { private $ar,$tes; public function __construct() { $this->ar = array('tes'); (ここで 変数 $this->($this->ar[0]) この場合 $this->tes に何らかの値を代入したい) echo $this->tes; } } $this-> に続く変数名を変数の値で表す方法はありますか? 宜しくお願いします。
日本語で
742 :
nobodyさん :2009/10/30(金) 23:25:37 ID:pyIKqVVx
上のコードで$this->tesに、例えば"b"を代入したいとき、 $this->tes = "b"; と書くのではなく、tesの部分に、"tes"が代入された変数を使いたいのです。
$var = 'tes'; echo $this->$var; こんな感じで
>>743 ああ、一回代入すればいいのですね
思いつきませんでした。ありがとうございます!
746 :
nobodyさん :2009/10/31(土) 09:17:44 ID:5b/pi/nw
質問です。 アップローダー作る時にテンポラリのディレクトリから保存用のディレクトリに ファイルをcopy → もとのテンポラリファイル削除 って流れがあり、 if(copy($tmpFile, $lastFile)){unlink($tmpFile);} という感じの処理をすると思います。 しかし条件部分がtrueにならないとき、どうしたら良いんでしょうか? 「コピー失敗しました」みたいなアラート表示すべき? そんなことやってますか? そもそも、上のif文でのチェックは必要なんでしょうか… 条件成立・不成立をどこまでフォローすべきか悩んでいます。
move_uploaded_file 使った方がええんじゃないか?
コピーするのがそのサイト内部処理として必須であるなら(まあそうだろうけど)、 それに失敗したらアップロード処理失敗のエラー返すしかなかろ。
エラーが発生したときに可能な限り元の状態に戻す設計にした方が良いな コピー失敗したらそのファイルを削除してメッセージを表示&エラーログを残すとか
>>740 $this->{$this->ar[0]} = "何らかの値";
751 :
nobodyさん :2009/11/02(月) 18:13:40 ID:uSMOoO6C
画像とhtmlを同一のファイルにしたいんですが、 phpでmhtmlを出力するほうほうはありませんか?
754 :
751 :2009/11/02(月) 18:58:15 ID:???
>>752 Linuxです。サーバーの設定も自由に変更できます。
755 :
751 :2009/11/02(月) 19:01:23 ID:???
756 :
nobodyさん :2009/11/03(火) 00:57:00 ID:OxH3Rb8V
質問です、 PHPの言語仕様として確認したいのですが、 1リクエストごとにstaticメソッドであろうが毎回PHPのリソースをメモリに読み込んで、 レスポンスを返した時点でメモリ破棄する。 そのため、複数のリクエスト間での共有ができず、たとえばDBのコネクションプール などという考え方は基本ない。であっていますか?
言語仕様(標準ライブラリ)の範疇で言えば、そう。 たいていの言語は、別々に起動された、親子関係 でないプロセス間でソケットを共有する方法は、 言語仕様にはないと思う。
関係ない質問してごめん。 SpeedyCGIみたいな常駐プログラムを使ったらDBコネクション繋ぎっぱなしできるよね? それをphpから呼び出したら、プログラム呼び出しののオーバーヘッドとDB接続のオーバーヘッド天秤にしても常駐の方が早い希ガスだけどどうなの? あと、phpでSpeedyCGIみたいシステムないの?
DBコネクションプールといえばpgpoolとかあるけど。 MySQLならSQLrelayとか。
phpはモジュールで動かしてる場合が多いから・・・
761 :
nobodyさん :2009/11/03(火) 21:21:41 ID:ppv8Lxeq
ちょっと質問。 wikipediaで携帯のIPアドレス一覧があって、それを元にアクセスした人のIPが携帯なら携帯用のページに飛ばすのをPHPで以前に作ったんだけど 知らない間に携帯用のIPアドレスが増えてるみたいで、修正しようかと思うんだけど、結局イタチごっこだから シンプルにユーザーエージェントで分別しようかと思うけどそれだとPCで偽装もできるので ちゃんと的確に分けられる方法教えて。
携帯依存文字でYES・NOでもやってろ
わざわざUA偽装してアクセスするのは携帯用ページが見たいからでしょ だから普通にUAで振り分ければいいとおもうが
>>761 ケイタイ用のIPを常に更新して、IPでキャリアを判別するサイトのサービスを始めるのだ!
765 :
nobodyさん :2009/11/03(火) 23:00:04 ID:Hf2P9qWB
phpのApacheの設定が全くできません!Vistaです。本に書いてある通りにしても、ブラウザに乗せるとダウンロードダイアログが出ます 助けてください
766 :
nobodyさん :2009/11/03(火) 23:08:14 ID:ppv8Lxeq
確かに携帯用のページが見たくて偽装するんだろうし、別に携帯用ページをPCで見られて困ることはないよ。 だけど、UAの文字列の一部で携帯かPCかを判断すると、今後携帯キャリアがUAの仕様を変えた時に、 携帯だかPCだか判断できずに、携帯なのにPC用ページを表示してサイズでかすぎて表示できないとかだと最悪でしょ。 妥協してユーザーエージェントでやるとするといくつあるの? ドコモ、au、ソフトバンク、ボーダフォン、J-PHONE、あと何? ウィルコムとかイーモバイルとかも固有のUAあるの?ディズニーモバイルは?あとiフォンもある?
俺はIPでやってるけど、ホスト名でもいいんじゃないの振り分け
PEAR::Net_UserAgent_Mobileは?
>>759 トンクス。
でも SQLRelay いれたら遅くなったって意見が多くてちょっとガッカリ
770 :
679 :2009/11/04(水) 09:18:30 ID:???
規制ががが
>>720 ・・・申し訳ない。
以前あったレスからJavascriptは使わないと決めて
元々記述したJsコードを全部削除してPHPに実装しなおしていましたが
報告忘れてました
>>721 A1とかA2とかは、それぞれupdateでsetする内容が違うだけ。
むしろコレなら変数で勝手に変わる様にしたほうがいいのかもしれないですが・・。
>>722 一応削除はしてます。
>>723 諦めたらそこで終わりじゃないですか??
>>724 はい。実はJavaはやっていたのですが
どうもHTMLやらJavascriptやらPHPやらとくると・・どうにも
771 :
679 :2009/11/04(水) 09:19:55 ID:???
>>726 まだまだ若いですよ。上司には当然教えてくださる方もいないので独学になりますが。
いかんせん会社が大きく無いのでしょうがないです。
>>727 本・・ですねえ。
でも今月はCiscoの本やらいっぱい買ってしもたorz
経費で落ちそうなら考えてみます。
今のところ一応Formタグを追加し、typeをSubmitにして飛ばすようにしてます。
次のphpでname属性から拾ってきたものを取り上げ、PHP側のif分岐等でのマッチング査定をしつつ
その先で上書き処理、という流れで、やっていくつもりです。
>>765 それ、Apacheの問題であってPHPのじゃないじゃん。
<httpd.conf>
AddType application/x-httpd-php .php
PHPIniDir [PHP.iniのあるディレクトリ]
LoadModule php5_module [php?apache*.dllへのフルパス]
書いたらApacheの再起動。
773 :
nobodyさん :2009/11/04(水) 13:15:10 ID:+cyJ/kJv
あのさぁ、まずはちょっと聞いてくれ。
ドキュメントルート(サイトのルート)の中の一つのフォルダを完全にPHP使えないようにしたい。
そうしないとそこがアップロード用のファイル保存フォルダになっているので
PHPのファイルをアップされブラウザでファイルをアクセスされると危険。unlink()とかされたら完全に終わる。
かと言ってアップ時に、拡張子が.phpのファイルをはじくとかだとそれも困るし、そのファイルの内容をチェックするのも大変。
.htaccessファイルに、拡張子.phpは.htmlとするように書いてもいいけど.php5とかPHPとして動く拡張子が他にもあるから対処しきれない。
で、特定のフォルダにだけPHPを使わせない機能ないの?
もしくはアパッチでドキュメントルート以外のフォルダを作り、
C:/root_A(PHP可能)
C:/root_B(PHP不可)
として
http://ドメイン/root_B以下にアクセスがあった時はC:/root_B/index.htmlを表示させるとかできないかな ?
バーチャルホストじゃなくドメイン同じで二つのルートを使い分けるって事。
774 :
nobodyさん :2009/11/04(水) 13:18:32 ID:+cyJ/kJv
今書いててふと疑問に思ったんだけど、レンタルサーバーって複数の人が使ってて 同じドライブに複数の人のルートがあると思うけど他人のファイルをunlink()したりできないのは何で?
FOR($i=0;;$i++){ PRINT 'マンコ'; } 初めて作ったプログラムがこれ。
>>773 apacheのDirectory設定でできるよ
>>774 一つはパーミッション。
削除権限はそのファイルが含まれているディレクトリのパーミッションによるが
777とかしてたら消せる。
でもphpだと全ユーザーが同じ実行ユーザーになる場合もあるので
phpのSafeModeを使う。
これは、実行ファイルのオーナー(実行時のユーザーではない)が
他のオーナーのファイルをいじれなくする仕組み。
778 :
nobodyさん :2009/11/04(水) 16:27:43 ID:+cyJ/kJv
そういや、拡張子で制御は把握しきれないから・・・とか書いてるけど 基本的にhttpdは拡張子で実行するか決めてるんだから 拡張子で制限すればいいはずだよ。
>>773 phpファイルはアップロード禁止にしたらいいんじゃない?
どうしてもアップロードしたい場合はZIPって手もあるし
>>773 Options -ExecCGI -Includes -MultiViews
php_flag engine off
こんな感じで.htaccessを設定したらCGIとPHPは動かなくなるはず
782 :
nobodyさん :2009/11/05(木) 02:39:02 ID:bdU2dbgu
mod_rewrite
784 :
nobodyさん :2009/11/05(木) 02:56:01 ID:bdU2dbgu
FOR($i=0;;$i++){ PRINT 'パイズリ'; BREAK; } 二番目に作ったプログラムがこれ。
for ($i = 0; i <= 10000; $i++) { print "まんこ\n"; } print 'な? 9999の次でも1に戻るってことは無いだろ?';
あたまおかしい
やっぱり大量規制でいいや。
てst
790 :
nobodyさん :2009/11/05(木) 15:22:19 ID:17l6YWCO
ユーザー関数は、あちこちのページで使い回すから当然別のファイルにして、その都度インクルードとかするでしょ。 index1.php ↑インクルード user_func.txt ↓インクルード index2.php でもこうなるとindex1.phpにアクセスするということはuser_func.txtにもアクセスする事になるので、鯖に負担がかかる。呼び込むファイルが増えればなおさら。 負荷を無くすにはどうしたらいいでしょうか? 個人的にできたらいいなと思うのは、この様な自作関数もメモリ上に置けるようにしてほしい。 最初に鯖を立ち上げた時に読み込んで後は元々ある関数みたいに使いたい。
>>790 実際、どの程度の負荷がかかってるのさ?
一度user_func.txtが読み込まれれば、2回目からはメモリを見に行くから気にしなくて良いレベルだと思うぞ。
792 :
nobodyさん :2009/11/05(木) 16:22:18 ID:17l6YWCO
>>791 えっ?そうなの?って事はindex.phpとかも一回読まれたらメモリ見るの?
知らなかった。どの位の負荷がかかってるかはどうやって調べたらいい?
最近サイトを開くと重いんだよね。特に夜。LAN内のPCからでも遅いから回線が原因じゃないかと思うんだけど
HDDがあれこれファイルを読んだりして追いついていけないのかもって思って。
CPU仕様率は結構低いんだけど。LANもギガビットLANだし、原因がHDDとしか思えないんです。
>>792 気になるならdataスキーム形式にして埋め込めばいいよ
>>792 普通は一度ファイルを読み込めば、次回はメモリを参照する。
readで毎回必ずHDDを読んでいたら大変な事になるよ。
CPU使用率がわかってて、DISK周りの負荷は調べてない?
Linuxならiostatとかで見て見なよ、sarが入ってればそれでもいいし。
>>792 ギガビットは過信しないほうがいい
LANカードやHUBがしょぼかったら無意味
転送量が少なくても一度に大量の接続があれば捌ききれなくなる。
>>792 世の中にはキャッシュと言うものがあってだな・・・
てか、HDDからの読み込みが気になるくらいでかいファイルなのか?そのスクリプト。
797 :
nobodyさん :2009/11/05(木) 20:31:20 ID:17l6YWCO
>>793-795 OSはWindowsなんだけど、とりあえずHDDをSSDとか1万回転のHDDに変えたら速くなりそうな気がするんだよね。
ルータやLANケーブルはそれなりのやつを使ってるけど。
実際商用のサーバーってどうやって負荷計ってるの?そういうフリーソフトないかな?
何を改善すればいいか分からん。
>>796 スクリプトはでかくないよ。ただ動画のダウンロードが多い。これが遅延の原因かも。
あとデータベースとOSのドライブは別のドライブにした方が速い?パーティションじゃなくて完全に個別という意味で。
>>797 流石にスレ違いだろ。
DISKは複数あったほうが速いにきまっとる
書いてるようにOSとDB分けたほうがいい。
>790 PHPのファイルは、OSによってディスクから内容がメモリに読まれた上で、インタプリタによって機械語にコンパイルされ、実行される。 ここまでが基礎知識。 で、まず、今どきのOSはディスクからの読み込みをキャッシュする。 つまり、一度読んだファイルはメモリにそのまま持っておいて、更新がなければ次回以降はそいつを使う。 次に、APCやeアクセラレータといったPHP関連ライブラリを使うと、機械語にコンパイルされたコードを使いまわしてくれるようになる。
>>797 NICかHubが壊れかけてるとか?
とりあえず遅延がどの時点で発生しているのか調べないと。
なんかPHPが原因じゃないっぽい感じがする。
801 :
nobodyさん :2009/11/06(金) 15:02:27 ID:uY82lX0B
Tomcat+Javaで、Javaのローカルページ開くと、コンソール画面に出力できるよね System.out.printlnで あれ、デバッグですごく便利なんだけど、 EclipseでPHPでできないのかな
802 :
nobodyさん :2009/11/06(金) 15:30:23 ID:+6dsWJpT
803 :
nobodyさん :2009/11/06(金) 21:29:10 ID:qkr//tmU
変数に値が入っているか入ってないか調べる時 if(isset($val))かif(!empty($val)) と if($val != "") か if($val <> "") では、どちらの方が処理が速いのでしょうか?
>>803 とりあえず、「empty isset」のキーワードでぐぐってみた方がいいな
>803 Cのコードを読んでみないとなんとも言えないが、もっとも処理の少ないであろうisset()が最速だと思う。 だけど、そんな速度差を気にしないといけないような案件でPHPを使うほうが間違っているので、どうでもいい。
806 :
nobodyさん :2009/11/06(金) 23:29:19 ID:vBz8RCVv
フレームワークを覚えるのに挫折しました そこでクラスについて勉強したいと思うのですが フレームワークを覚える前にクラスの使い方を覚えると楽になりますか? OOP、デザインパターンを覚えてからフレームワークに入るのが王道でしょうか? プログラミングはPHPが初めてでクラスの基本的なものは分かるのですがクラスだけは敷居が高くて勉強してきませんでした
フレームワークの製作者になるのが目標でなければ フレームワークの使い方だけ学べばいいんじゃないかな。 どこにファイルを置いて、こういう名前にして、どういうAPIがあって・・・みたいな。
クラスなんて書けなくても使えるなら別に困りません。
809 :
nobodyさん :2009/11/06(金) 23:34:43 ID:vBz8RCVv
class hello_world { private $word = "こんにちは世界さん(^^)"; function view() { return htmlspecialchars($this->word, ENT_QUOTES); } } $obj = new hello_world(); echo $obj->view();
810 :
nobodyさん :2009/11/06(金) 23:38:43 ID:vBz8RCVv
借り物のPCなのでデータベースを入れられないのと使い方がわからないのでちいたんは挫折しました cakePHPもなんかドキュメントの通りやりましたがこのファイルにこれを書けという意味が理解できなかったため挫折しました smartyはサンプルみて挫折しました
phpでstaticとかprivateってつかえる?
ちいたんは挫折しました
814 :
nobodyさん :2009/11/06(金) 23:54:01 ID:vBz8RCVv
public protected private が使えます
ちいたんで挫折してたらこの世に使えるFWなくね?w あとSmartyはFWでないしな
symfonyはインストールできましたがドキュメント見ても分からないため挫折しました ZendFrameworkはドキュメントがたくさんあってまだ読んでないです フレームワークって新しい言語を覚えるような感じですね 気合入れないとだめですね
817 :
816 :2009/11/06(金) 23:59:56 ID:vBz8RCVv
id出し忘れました
順を追ってステップアップしていくのが一番だよ がんばれ!
ちいたんはコメントないから初心者向きではないよ
820 :
nobodyさん :2009/11/07(土) 10:59:11 ID:HHoKTIgI
//検索対象 $array = array("inquiry","support"); //検索する文字 $val = "inquiry_form"; // 検索文字が対象に一致するか foreach($array as $item){ if(strstr($val,$item)){ //一致した場合の処理 } } 検索する文字が検索対象に一致するか調べたいと思います。 上のように対象をforeachで回して$valに対象の文字列と一致するか 調べる方法が一番簡単だと思いますが、 検索する文字が複数ある場合、何回も上記の事をしなければいけません。 もう少し効率の良い書き方はないでしょうか?
822 :
nobodyさん :2009/11/07(土) 11:32:59 ID:HHoKTIgI
ありがとうございます。ぜひ参考にします。
function a($a) { $txt = "aaazzzccc"; if (strstr($txt,$a)) echo "一致\n"; } $search = array("aaa","bbb","ccc"); $p = array_map("a",$search);
> 検索する文字が複数ある場合、何回も上記の事をしなければいけません。 別にarray_mapなんか使わなくても単にforeachの二重ループにすればいいのでは?
質問者は既にforeach使ってるみたいだね
2重ループwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
単にin_arrayでいいのでは?
in_array= 配列に値があるかチェックする 質問では配列に格納された文字列が、変数に格納された含まれているかチェックする おk?
829 :
nobodyさん :2009/11/07(土) 15:09:30 ID:PiVKZwA7
HTML_QuickFormとSmartyの組み合わせだと、1ページに1つのフォームしか作れないんでしょうか? 検索しても複数ページの遷移の件などがヒットして、複数のQuickFormをSmartyに渡す方法が出て来ません
>>830 in_arrayはお門違いってことが理解できなかったか
外人さん乙
>>831 えっ・・・?
>検索する文字が検索対象に一致するか調べたいと思います。
>>820 の質問理解してる?
>>832 さんよおじゃあin_array使ってコード書いてみろよwww
>>832 質問者が少々日本語でおkなんだよ。意訳すると
「検索文字列が検索対象に含まれていたら何らかの処理をする、と言うロジックを
検索対象が複数だった場合にスマートに書きたい」
って事だろうからな
//検索対象 $array = array("inquiry","support"); //検索する文字 $val = "inquiry_form"; // 検索文字が対象に一致するか foreach($array as $item){ if(strstr($val,$item)){ //一致した場合の処理 } } ↑ これをin_arrayを使ってどう書くのか激しく興味あるんだけど
$a=array(1,2,3); foo($a, array(2,8,9)); てやったとき、両方に2が含まれてるからtrueが返って欲しいんだろうな。 if($a!=array_diff($a, array(2,8,9))) ってどうよ?
837 :
836 :2009/11/07(土) 17:14:31 ID:???
strstrだったか、失礼しました。
in_arrayでコードまだ??
840 :
nobodyさん :2009/11/07(土) 22:43:03 ID:CwxQOSeK
constってどういう状況で使うものでしょうか? class test { const hiru_aisatu = "こんにちはっ!!"; const yoru_aisatu = "こんばんは・・・"; const hurarerutoki = "さようなら・・2度と会わないで"; } echo test::hiru_aisatu; こんなかんじで書くのと $hiru_aisatu = "こんにちはっ!!"; $yoru_aisatu = "こんばんは・・・"; $hurarerutoki = "さようなら・・2度と会わないで"; echo $hiru_aisatu; というふうに書くのはクラス使うほうがスピードは遅い?ような気がするのですが 複数人でコード書く場合はクラスでconst使ったほうがいいでしょうか?
in_arrayで解決おじさんまだ????????????????
規制されたままの方が良かったな
>>840 ・定数は上書きされない
・クラス定数は局所化される
844 :
nobodyさん :2009/11/08(日) 02:32:54 ID:35LWJ8zb
関数にいくつでも値を渡すことって可能でしょうか? hoge_func($a) でも hoge_func($a,$b,$c,$d,$e,$f) ただし function hoge_func($a=null,$b=null... とは違う方法で
array
847 :
nobodyさん :2009/11/08(日) 08:26:26 ID:H7unfEmK
PHPとMYSQLでお気に入りの本を紹介するアプリ(紹介者は複数)を作ってるんだけど、 これまでに紹介された本の一覧ページで、同じ紹介者の本が連続して出ないようにしたいです。 たとえば登録時に10冊まとめて登録できる場合、主キーのIDを表示時のソートのキーにしたら 同じ人の紹介した本ばかりが一画面に出ることになります。 これを防ぐにはどうしたら良いですか? 登録時にランダム数を入れるカラムを作って、それをキーにして表示するのか、 それともPHPだけで出来るでしょうか?
>>847 全然適当な並びでよければ
ORDER BY RAND()
849 :
nobodyさん :2009/11/08(日) 09:04:36 ID:H7unfEmK
>>848 うおおお、凄い! そんなのがあるんだ?
やっぱり聞いて良かったです。ありがとう!
850 :
nobodyさん :2009/11/08(日) 10:30:15 ID:atd+IQXc
class test { public $v = "test"; public function display() { return $this->$v; } } $obj = new test; echo $obj->display(); testと表示させたいのですが表示できません PHP5.3です どなたかご指導お願い致します
>840 class Greeting{ const AT_MORNING = 'おっはー☆'; const AT_DAYTIME = 'こんにちは'; const AT_NIGHT = 'こんばんわー'; const FIRST_MESSAGE = '初めまして'; } class Love{ const FIRST_MESSAGE = '好きです!'; const END_MESSAGE = 'さようなら…二度と会わないで'; } echo Greeting::AT_MORNING; 例えば定数の場合、そこまでに通ったコードを全部読んで、定義部を探さないといけない。 クラス定数ならば、格納先のクラスさえ分かれば、そこを探すだけで済む。 勿論、「定数はこのファイルに全部書くこと!」という規則で運用しても同じような効果になるが、「立ち入り禁止」というルールだけ設けるのと柵を作るの、どっちが安全かの差だな。 また、Greeting::AT_MORNINGを読むにはGreetingクラスの存在を知らなければ(requireしなければ)ならない。 つまり、この定数を使っている箇所がどこら辺にあるのか特定しやすい。 あとは、全体から見える位置にものを定義すると、変数名被りや定数名被りが発生しやすい。クラス定数なら、クラスさえ違えば同名になっても問題ない。
>>850 エラー出力見ようよ。たぶんこの場合ずばりのエラーが出てる。
return $this->$v;
の、vには$要らない。
return $this->$v だと そのクラス内($this)の変数$vが持ってる値の変数になっちゃう return $this->v がただしい
855 :
nobodyさん :2009/11/08(日) 10:46:05 ID:atd+IQXc
ミス
ありがとうございます
おかげ様で解決できました
>>852-853 どうもありがとうございました
856 :
nobodyさん :2009/11/08(日) 10:55:19 ID:R5NqdoKR
オブジェクト指向の覚え方についてどなたかご指導お願いします
ここ見て勉強してます
ttp://php.net/manual/ja/language.oop5.php 目次
* はじめに
* クラスの基礎
* Properties
* オブジェクト定数
* クラスのオートローディング
* コンストラクタとデストラクタ
* アクセス権
* Object Inheritance
* スコープ定義演算子 (::)
* static キーワード
* クラスの抽象化
* オブジェクト インターフェイス
* オーバーロード
* オブジェクトのイタレーション
* パターン
* マジックメソッド
* finalキーワード
* オブジェクトのクローン作成
* オブジェクトの比較
* タイプヒンティング
* 遅延静的束縛 (Late Static Bindings)
* オブジェクトと参照
* Object Serialization
この目次を上から順番にやりたいのですがどこまでが基礎の部分でしょうか?
スレを使ってデバッグするとはお主やるな
857 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん あぼ〜ん 858 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん あぼ〜ん
>856 staticまで知ってればとりあえず問題ない
>>856 「オブジェクト指向の覚え方」(というか学び方)を知りたいんですね?
まずは、
とある言語が「オブジェクト指向的な記述を支援してくれる部分」と、
「オブジェクト指向というもの」自体とを
弁別した方が良いかと。
とある言語で後者を実践するときのものが前者。
そのページで得られるのは、基本的には前者のみ。
OOPそのものへの入門だったら、PHP以外の例えばJavaあたりを使ってOOPの
解説してるとこ覗いた方が良いよ。
それでもその質問に答えるとしたら、上から順番でどこまでってことは無いかな。
>* クラスのオートローディング
↑飛ばしてもいいけど、
>* コンストラクタとデストラクタ
↑飛ばせない
てな感じで。
Javaが一通り出来るようになればオブジェクト指向はだいたい理解出来るはず 使いこなすにはまだまだだけど
じゃヴぁじゃヴぁうるせえよks!
>>862 理解できてるから使いこなせるわけで。 順序逆だz
PHPみたいな変数に何でも入って、evalもあるような言語に JavaのOOPを持ち込むのは、混乱の元だろう。 頭固くなるからやめとけ。 初心者はSqueakでもやっとけばいい。
866 :
nobodyさん :2009/11/08(日) 13:33:48 ID:9EHY5xph
インスタンスってどういうときに使うんですか? class SimpleClass{ public $var = 'a default value'; public function displayVar() { echo $this->var; } } $instance = new SimpleClass(); $className = 'Foo'; $instance = new $className(); ってマニュアルにサンプルが載ってますが 下から1〜3行を $obj= new SimpleClass(); で済ましたほうが楽だと思うのですがどうなんでしょうか どなたかご教示お願いします
済ますも何もSimpleClassではなく別クラスのFooのインスタンスを作ってるように見えるが
868 :
nobodyさん :2009/11/08(日) 13:41:42 ID:9EHY5xph
インスタンスを生成したいクラスを動的に指定する場合に便利だよ autoloadしたい時とかFactoryパターンの時とか
new演算子の右辺に変数が使えるって例だな 可変変数の一種だ
>>866 >$obj= new SimpleClass();
これだってインスタンスを作成してるわけだが・・・
>>866 クラスってのはクッキー生地の型抜き用の型で、
インスタンスはそれで作られた個別のクッキー(生地)。
抜き型だけあってもそれを使わないと(newしないと)食えるクッキーの存在は生成されない。
てな感じでどうだ?
最初に入れる具を決めて皮を作るか、とりあえず具は後で買ってくると決めて皮を作るかの違い 出来るものはどちらにしても肉まん・あんまん・中華まん。
>868 変数$classNameの値に応じて、生成するインスタンスを変えられる。 class Foo{ function say_name(){ echo 'foo foo foo!'; } } class Bar{ function say_name(){ echo 'Bar, bar, BAAAAAR'; } } $instance = new $className(); $instance->say_name(); クラスに同じ名前同じ引数のメソッドがあり、その中身のロジックが全然違う場合なんかに使える。
877 :
nobodyさん :2009/11/08(日) 18:32:26 ID:QzQ1Ze2q
class test{ function test(){ throw new Exception('test'); } } try{ $test = new test; $test->test(); }catch(Exception $e){ echo $e->getMessage(); } classからスローした例外って上みたいにキャッチできますか?
なんで試さんの?
879 :
nobodyさん :2009/11/08(日) 19:13:09 ID:QzQ1Ze2q
できた、役に立たない奴らだ
次の方どーぞ。
881 :
nobodyさん :2009/11/08(日) 21:05:50 ID:8S6RVioX
classを作っておくのは同じコードを2度も書かないためってことでしょうか? 掲示板を作るとき「ファイル操作・文字列処理」をしますのでそういうのをクラスにまとめることによtt いろんなスクリプトで再利用できるという認識でよろしいでしょうか?
再利用できるように作ってあれば。
883 :
nobodyさん :2009/11/09(月) 09:32:56 ID:utcN5JBF
>>881 同じコードを2個書かなくていいのはfunction(関数化)
クラス化は、同じコードを書かなくていいだけでなく、そのときに必要な部分のみ使える感じ
関数だと必要な部分のみ使えないの?
オブジェクト指向のオの字も知らないようだと、クラスを作る意味はまるで無い
886 :
nobodyさん :2009/11/09(月) 11:09:38 ID:utcN5JBF
クラスは何つーか、製作ツール作る感じじゃね? RPGツクールとかそんな感じで 逆にfunctionなどの関数はそのまま関数作ったり RPGツクールの中の、敵にダメージを与える計算部分とか
クラスの目的は…
少なくとも出発点はデータの保護、というかデータに対して可能な操作の定義。
>>881 つか、もうそれってPHPの質問と違うやん。
OOもしくはOOP一般じゃろ。
学校にもAクラス、Bクラスってあるだろう。 それと同じ意味だよ。 A組 が 廊下掃除担当 B組 が 体育館掃除担当 C組 が プール掃除担当 という感じにクラス毎に役割を振っておけば、 後々管理が楽になるだろう? 「廊下に関する事なら、A組に聞けばいい。」 ってな具合で。
関数とオブジェクトのローカル変数をセットにしておける。 継承が使える。 これだろ。
無駄に難しく考えないで、自分のレベルで便利に使えるところから使えばいいんだよ。 クラスつかうなんてのは、手段であって、目的ではないからな。
同じく、システムの中である程度一貫性持ってれば扱い方は人によって個性出てもいいと思う
OOP本のサンプルって、 Animalクラスを継承してDogクラスとかCatクラスを作るって例が多いけど、 わかりやすいようで解りづらいよなw
>>892 >Animalクラスを継承してDogクラスとかCatクラスを作るって例
この手の解説は参考にならないって、歴史が証明してるよなw
最初は関数で作って、後々追加案件で処理毎にクラス化してる 配列でまとめてあると、後で弄り易い。
それ、クラスである必要があるコードでなかったりしないか
>>893 そういう概念の話は腐るほど聞いても、じゃあいざ実装しようとすると
あれどれがDogでAnimalなんだっけ、いやそもそもクラスにする必要あるのかこれ?
と思考の海に沈む
まっとうなOOP本読めばいいんだろうけど
897 :
nobodyさん :2009/11/10(火) 08:03:12 ID:T58KxytE
同じような方向の質問になるけど PEARとかでよくファクトリークラス(?)を使って クラスからクラスを作ってたりするけど、 あれってどういう理由があるの?
899 :
nobodyさん :2009/11/10(火) 09:41:10 ID:lbGcCYju
自分はフォームのパーツを生成する機能をまとめてクラスにしてるんだ $fmPartsCrass->getUTypePD(10); //DBの登録値10をselectedとするユーザタイプのプルダウンを作る $fmPartsCrass->uTypeToTXT(10); //フォームの確認画面で、選択値10のユーザタイプを出力する クラス内のinit()ではプルダウン元になるname,valueの二次元配列を沢山読み込ませてる感じ。 こんなので良いのかな? クラスの使い方って。。
俺の好みで言うと、コーディング時に種類が決まってるパーツは new classNameで明示的にインスタンス化したいな。 パラメータ指定してインスタンス作ってからaddとかするように 書くだろうな。 ま、好みの話だからさらっと流してくれ。
今気づいたがクラスはCrassじゃなくてClassだなw アホすぎワロタ
>>895 関数にすると値渡しが面倒なんだわ
特にお金関係は。
>>895 は「最初は関数で作って」おけるような物なら、
クラス化する必要なくね?って事だと思う。
俺はそうは思わないけど。
ちょっとでも楽になるか、それともクラスにする手間を惜しむか、 必要があるかどうかは結局その人の感覚次第でしょ
どっちが楽かも人によるしね。 でも、殆どの人にとって、クラス化は最初は楽じゃないんだよね。 だから壁を越えようとしない人も多いんだろう。 壁を越えた向こうには、素敵な楽園が広がって・・・ るわけでもないし。 待ってるのは次の壁と、無間壁越え地獄w
906 :
899 :2009/11/10(火) 11:50:11 ID:???
上で書いた例ってヘンですか? 自分じゃ間違ってないだろって気持ちと、これはfunctionを束ねただけのものじゃないかって 気持ちが半分半分です。 バラしたら関数として独立化できるものはclassにする必要ないのかななんて考えると 全部そうだろうという気持ちがでてくるし…
>>906 functionを束ねただけのものですね
変数名にCl(r)assの文字がある時点でおかしいと思うべきだな
>>906 汎用性を持たせればいいんじゃね?
リスト意外にもラジオボタンや複数選択でも出力、クラス指定で見た目も変えれるとか
910 :
nobodyさん :2009/11/10(火) 12:03:13 ID:HgEfIoEe
くだらない質問ですがよろしくお願いします。 ソースを見ていたら <?= $test ?> という書き方をしている箇所を見つけました。 コードを書くときは<?php ?>で囲うと本には書いてありましたが <?php print($test) ?> と、どう違うのでしょうか。 あまり見かけないということは何か問題のある記述方ですか?
だから自分の基準は 「素材があって、料理する方法が複数ある場合」 はクラスにするようにしてる
>バラしたら関数として独立化できるものはclassにする必要ないのかな これはその通り。ただ、 >全部そうだろうという気持ちがでてくるし… こっちは、クラス使える言語でなら、そういうのはやめた方がいいぞ。 データってもんを無視すれば全部そうできるかもしれんけど。 「関数/手続きに(引数等で)データを渡す」だけで考えても一応全てのプログラムは書けるよ、確かに。 昔はそればっかだったし。
別にクラスを 関数をひとくくりにするためだけに使ってもいいんだよ。
916 :
nobodyさん :2009/11/10(火) 13:07:19 ID:n4Nrgy6L
class Oyabun{function buki(){echo "マシンガン";}} class Kobun extends Oyabun{function buki(){echo "ピストル";}} class zako extends Kobun{function buki(){echo "鉄パイプ";}} クラスKobunからクラスOyabunのメソットbukiを呼び出してマシンガンって表示させることはできましたが クラスzakoからクラスOyabunのbukiを呼び出してマシンガンと表示させる書き方がわかりません 直接クラスOyabunで呼ぶ出すのではなくzakoから呼び出す方法をどなたかご指導お願い致します
917 :
899 :2009/11/10(火) 13:11:58 ID:???
皆さんどうもありがとう
>>915 そうなんですか? そうだとしたら安心(?)しました
何度も同じコード書きたくなくて関数化してまとめてみようと思ったのがきっかけでした
クラスの継承とかpublic指定した変数の外部から参照とかしないんで、
複数の関数で使う変数の値やDB接続処理をinit()内部で定義すればいっぺんに書き換えられる、
まとめていつでも呼び出せる以上の利便性なんて感じないんですよね。それで十分だし。
何か損してるのかな。。
言外の意図を読み取れないのかきみは
>>916 なんか妙な継承だと思うんだな。子分は親分か?
>クラスzakoからクラスOyabunのbukiを呼び出してマシンガンと表示させる書き方がわかりません
雑魚が親分を使役するのか?
実はPHPはよく知らないが、
Oyabun::buki();
で呼び出せない?
でもなぁ…
interface Kouseiin {
public function buki();
public function setOyabun($oya);
}
class Oyabun implements Kouseiin{略}
class Zako implements Kouseiin{
private $oyabun;
略
public function tasuketeOyabin(){
$this->oyabun->buki();
}
}
$chimpira = new Zako();
$chimpira->buki();
$chimpira->tasuketeOyabin();
920 :
nobodyさん :2009/11/10(火) 16:32:26 ID:k/b4LSiu
よろしくお願いします。 function &set() { ↑このアンドマークの意味を教えてください。
記述ミス
922 :
nobodyさん :2009/11/10(火) 18:02:30 ID:hMuYWgxi
PDO::ATTR_PERSISTENT=>true として PDO::prepare を使った場合、prepare ステートメントは接続が維持されている限りキャッシュされていて、前回のキャッシュをphpが勝手に使ってくれるという動作をするのでしょうか? DBサーバーはpostgresqlです
>>922 PDOStatementのデストラクタで毎回削除してしまうようだね
ext/pdo_pgsql/pgsql_statement.c
> static int pgsql_stmt_dtor(pdo_stmt_t *stmt TSRMLS_DC)
> {
...
> #if HAVE_PQPREPARE
...
> if (S->is_prepared) {
> spprintf(&q, 0, "DEALLOCATE %s", S->stmt_name);
> res = PQexec(H->server, q);
925 :
nobodyさん :2009/11/10(火) 20:40:43 ID:k/b4LSiu
>>924 ありがとうございます。
こちらで質問して良かったです。
926 :
nobodyさん :2009/11/10(火) 21:11:57 ID:Yr8QXJQk
>>923 ありがとうございます
しかし劇的に軽量化が出来ないかと思いましたが残念です
pgsqlで関数として定義にしておけば計量化したりしないものだろうか…
君のシステムはDBの接続が継続してたら軽量化するの?
928 :
nobodyさん :2009/11/10(火) 21:31:00 ID:Yr8QXJQk
そうですね、view使えばいいんですね。 ちゃんと勉強しましょう…。
929 :
nobodyさん :2009/11/10(火) 23:50:57 ID:efP4W3lX
GoogleのようなAND検索を実装しようとしています。 以下のように空白で区切ろうと考えています preg_split('/\p{Z}+/', $query); 単純な区切りでは問題ないのですが、 test aaaa => array('test', 'aaaa'); 以下のように一単語として検索したい場合の正規表現が分かりません。 "test aaaa" test => array('test aaaa', 'test'); 分かる方お願いします。
>917 クラスの存在意義からして分からないならば、下手にクラスを作らず、まずはとにかく片っ端から関数化してみる事を薦める。 お勧めのトレーニングメニューは ・グローバル変数は一切使わない ・グローバルで行うのは関数呼び出し1つのみ つまり、たとえばmain();という関数の呼び出しだけにして、すべてはこの関数の中で行う ・再代入は集約変数(foreachで合計を出すとか)以外一切禁止 つまり、変数には一度だけしか値を代入してはいけない。値を変えたくなった場合も、別の変数に代入しそっちを使う ・3階層以上のネストを一切作らない(慣れてきたら2階層) 特に、caseの枝では即return以外のことを一切行わない ・20行を超える関数は分割できないか検討する (慣れてきたら10行くらいで切る) ・関数を追加することで一時変数を除去できるならば、常に関数を追加し、変数を除去する事を選ぶ このあたりを行うと、「よい設計」が見えてくるはず。
931 :
nobodyさん :2009/11/11(水) 06:09:15 ID:wK8ir+xV
質問よろしくお願いします。 DBから商品名を全て呼び出し表示する→呼び出した商品をクリックすると、その商品のIDを持って次のページへジャンプ。 次のページでは、IDを元に商品の詳細をDBから呼び出して表示する。 ということがやりたいです。 ですが、最初のページでfetchを使って商品名を呼び出した時に、同時にIDをSESSIONに格納したのですが、ループの度に新たなIDが格納されてしまうため上手くいきません。 どうすればよいのでしょうか?
最初のページではユーザがどの商品をクリックするするか分からないと思うんだけど なんでセッションにID入れるの?
933 :
nobodyさん :2009/11/11(水) 09:41:07 ID:wK8ir+xV
>>932 例えば商品が「にんじん」「りんご」「バナナ」で、それぞれのIDを1、2、3とした時に、「りんご」を選んだらSESSIONに2が代入されるのかな?と思ってたんです。
>>933 最初のページのHTMLはどうなってるんだ?
単に次のページでPOSTで受け取った値を使って
DB問い合わせすればいいだけだとおもうが
phpをcgiじゃなくモジュール版で使っている場合でも、MySQLのlockは通用しますか?
通用します
937 :
nobodyさん :2009/11/11(水) 20:39:56 ID:pZ2zz0+5
小規模な掲示板程度ならDBはSQLiteで十分かな?、MySQLもつかえるけど
938 :
nobodyさん :2009/11/12(木) 00:32:56 ID:Oiy0tVLq
/dev/ttyUSB0のポートでシリアル通信したいのですが、何か方法はありませんか? Javaだとjava communication apiでできると思うのですができればPHPで実現したいので 何かあればよろしくお願いします
マニュアル見ればそれに関するページが載ってるのになんで見ないんだろう
>>929 初心者が無理に実装しても質問づくしで何も進まない
黙って形態素解析でも使ってろ
941 :
nobodyさん :2009/11/12(木) 10:28:15 ID:IzKnxBIb
smartyはテンプレートと聞きました smartyほど多機能でなくていいのでシンプルなテンプレートって他にありませんか?
943 :
nobodyさん :2009/11/12(木) 15:30:57 ID:0oRqbSW8
>>940 すでに運営してます。
正規表現が解決すれば自分で実装しますので、ほかに質問はありません。
正規表現は初心者といったところでしょうか。
やっと規制解けたわ…
>>929 $query = 'foo "bar bar" baz';
preg_match_all('/"([^"]+)"|\P{Z}+/u', $query, $matches, PREG_SET_ORDER);
$phrases = array_map('end', $matches);
var_dump($phrases);
(array(1,2,3))[0] みたいなことってできる?
試してできないなら出来ないんじゃね
948 :
nobodyさん :2009/11/12(木) 23:53:51 ID:TjILNw+p
オープンPEARっていい感じのライブラリとかありますか? PEARはブログで紹介されてるのをよく見るけど Openの方は見たこと無い
Openpearって海外で使われてるのか?
950 :
nobodyさん :2009/11/13(金) 08:59:06 ID:K/C+ymkA
サイトのカウンターなんかは imgでcount.phpを呼び出して一枚のイメージにして表示してることがあるけど 普通のレンタルサーバ借りてるところでいちいち画像結合してカウンタ表示させるのって 避けた方がいいですか?
問題無いよ
>>949 日本でもマイナーな部類なのに海外の先生方が使うはずねえだろks
PHPコードからMySQL使ってブラウザに出力したのですが、文字化けします
my.iniの文字コードの設定とか確認しろ屋ksg あとphpとmysqlのバージョンぐらい書け出来損ない
955 :
953 :2009/11/13(金) 11:17:47 ID:TXCm92bg
ごめんなさい、途中なのに送信してしまいました・・・ PHPコードからMySQL使ってブラウザに出力したのですが、文字化けします OSはWindows XPで、php.iniの設定はdefault_charset = Shift_JIS、my.iniの設定はdefault-character-set=sjisです PHP側で、 <?php $s=mysql_connect('localhost','test','1234'); mysql_select_db('db1',$s); $q=<<<EOT SELECT bang,AVG(uria) FROM tb WHERE uria>=50 GROUP BY bang HAVING AVG(uria)>=120 ORDER BY AVG(uria) DESC; EOT; $re=mysql_query($q); while($kekka=mysql_fetch_array($re)){ print '社員番号:'; print $kekka[0]; print '売上平均:'; print $kekka[1]; print '<br />'; } mysql_close($s); ?> のようなコードを書きました どのようにすれば文字化けを解消できるのでしょうか?
社員番号も売上平均も数字じゃないの?
skip-character-set-client-handshakeでもmy.iniに設定してろks
958 :
nobodyさん :2009/11/13(金) 11:31:36 ID:TXCm92bg
>>956 SQL自体は数字と英字です
社員番号、売上平均という文字が文字化けします
他のコードですが、SQLiteでは文字化けせずに出るので、mbstringの設定がおかしいのではないと思います
>>958 日本語読めますか?
my.iniの文字コードの設定とか確認しろ屋ksg
あとphpとmysqlのバージョンぐらい書け出来損ない
skip-character-set-client-handshakeでもmy.iniに設定してろks
>>958 だったらMySQL関係ない
HTMLの文字コード宣言かスクリプトの文字コードが違う
print '社員番号:'; ↑ これが文字化けするならDB関係無い
963 :
nobodyさん :2009/11/13(金) 11:57:23 ID:TXCm92bg
>>962 単純に上記のコードだけの入力なのですが、HTMLの文字コード宣言かスクリプトの文字コードが影響しているのでしょうか?
それともmbstringの設定がおかしいのでしょうか?
一応、
[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = auto;
mbstring.script_encoding = EUC-JP
が自分の設定です
上でも書きましたが、SQLite3ではこのような事は起きませんでした
>>959 書き込み中でした
skip-character-set-client-handshake設定しても変化なしです
PHP Version 5.2.10、MySQLは最新版で5.1です
mbstring.language = Japanese ;mbstring.internal_encoding = EUC-JP mbstring.http_input = pass mbstring.http_output = SJIS mbstring.encoding_translation = Off mbstring.detect_order = auto mbstring.substitute_character = auto; ;mbstring.script_encoding = EUC-JP
>>963 スクリプト自体の文字コードとHTMLの文字コード宣言はどうなってる?
966 :
nobodyさん :2009/11/13(金) 12:18:08 ID:TXCm92bg
>>964 すみません、そのようにコメントアウトしたのですが、改善されませんでした
>>965 ごめんなさい、あまり良く分かっていないもので、「スクリプト自体の文字コードとHTMLの文字コード宣言」という意味が分かりませんでした
上記のコードを、
http://localhost/から行っただけです <? php 〜 ?>の中に<html>コード等を記入したわけではないです
また、逆に<html>コード内で<?php 〜 ?>を記入したわけでもございません
それとも、何か他に「スクリプト自体の文字コードとHTMLの文字コード宣言」というのがあるのでしょうか?
967 :
nobodyさん :2009/11/13(金) 12:25:10 ID:TXCm92bg
簡単なコードで試してみましたが、確かにDBの問題ではなく、PHPの問題だと分かりました
例えば、test.phpを作り、
http://localhost/test.phpとすると 、
<? php
print 'Good Bye';
?>
とするとブラウザにはGood Byeと表示されますが、
<? php
print 'ようこそ';
?>
とすると、ブラウザには ???? と出力されます
どう解決すれば宜しいのでしょうか?
>>966 スクリプト自体の文字コードというのは
そのphpのソースをエディタで書いて保存する時に、何の文字コードで保存しているかって事
969 :
nobodyさん :2009/11/13(金) 12:37:37 ID:TXCm92bg
>>968 上記のコードは書籍の問題に載ってるコードなので、それをそのまま使ったので分かりません
一応右クリックしてプロパティとかで調べても自分には分かりませんでした
自分のテキストエディタはTeraPad使っているのですが、初期文字コードはSHIFT-JISになっているようです
保存文字コードは自動に設定されています
>>969 php.ini変えたらwebサーバの再起動してる?
TeraPadは使うな!!!!!!!!!!!!!!!! サクラエディタUnicode版をおとなしく使え!!!!
>>966 960で965じゃないけど、
>ごめんなさい、あまり良く分かっていないもので、「スクリプト自体の文字コードとHTMLの文字コード宣言」
>という意味が分かりませんでした
自分がよく分からないからといって、もらった回答をシカトするのは最悪の行為だと思うよ
以下のページなども参照のこと。
http://d.hatena.ne.jp/next49/20081107/p1 >指導教員が一番がっかりするのは、一生懸命指導した内容に対して無視されること。それが、故意あるいは
>そうでないとしても「無視した」という結果が重視されるという点をよく理解するべき。理解できない場合、納得で
>きない場合は必ず指導教員に問い合わせるのが重要。
で本題だけど、あと思い当たるのは、
970か、php.iniのコメントを外してないか、
違うphp.iniを編集してるか(phpinfo関数で確認)か、
Apacheの文字コードが変なことになってるか、など
>>969 php.iniなどを見直したら、あとは出力する時に
content-typeもしっかり書くようにしてね
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>
<body>
<? php
print 'ようこそ';
?>
</body>
</html>
974 :
nobodyさん :2009/11/13(金) 13:23:38 ID:LpZjQz1C
質問です。 post.phpから data.txtへ <img src="fds.jpg"><br> <img src="ffgg.jpg"><br> <img src="fdfgd.jpg"><br> <img src="htrds.jpg"><br> などとランダムな*.jpgを表示させる行を自動書き込みするようにして <?php readfile("data.txt"); ?> で表示させ、表示させたらdata.txtを空にしたい場合どう記述すれば良いでしょうか? 宜しくお願いします。
宿題乙
1)data.txtを生成する 2)data.txtを読む 3)読んだ内容をクライアントに送出 4)data.txt消す 簡単じゃん。
977 :
nobodyさん :2009/11/13(金) 13:38:12 ID:TXCm92bg
>>972 ?????
しかとしてませんよ?
>>963 で「HTMLの文字コード宣言かスクリプトの文字コードが影響しているのでしょうか? 」って書いてます
>>957 の事でしたら、書き込み中だったのと、それについて調べたり実行中だったので
後でちゃんと謝っています
php.iniのパスコードなど全部見直しましたが、間違っていませんでした
>>970 reStartは一応毎回しております
>>973 わかりました、今からちょっと試してみます
ブラウザの 表示のエンコードのとこが今どうなってて、変えて文字が出る選択はない?
979 :
nobodyさん :2009/11/13(金) 13:53:56 ID:TXCm92bg
>>971 なんか色んなところでTeraPadは使うなという事を書かれているので、ちょっと試してみます
>>978 自分、FireFoxの一番新しいのを使っているのですが、変えても文字化けは変わりませんでした
しかし、今昼食を食べてから、
>>968 さんのアドバイスを受けて、TeraPadの保存文字コードをEUCに変えたところ、やっとブラウザにて日本語が表示されました
今までデフォルトの自動ばかりでやっていたのですが、保存文字コードの重要性を初めて実感いたしました
Content-TypeのcharsetはShift-JISにしてるんじゃなかったの?
981 :
nobodyさん :2009/11/13(金) 13:59:03 ID:TXCm92bg
今考えてみて分かったのですが、
>>964 で自分はEUC-JPを設定しているようです
だからTeraPadでEUCで保存しなければ駄目だったのですね?
こういう部分の知識が乏しかったようです
色々と勉強になりました
皆様、有難うございました
982 :
nobodyさん :2009/11/13(金) 14:03:17 ID:TXCm92bg
いや、ごめん、もういいよ・・・
984 :
nobodyさん :2009/11/13(金) 22:04:04 ID:qPMadgrN
>>944 ありがとうございました。無事に実装出来ました。
この正規表現は私の力では無理でした。
いいってことよ
UTF-8に統一したらいいのに
あうはUTF-8でもEUCでもほとんど関係なく使えるね、CSSも読んでくれる。でもDoCoMoは・・
SJISに統一するべきだろ UTF8は転送量が増える。
絵文字を扱っていればUTF-8が楽 PHPもDBもついでにOSもUTF-8に統一しておいて 出力の時にキャリア別にsjisかutf-8かわけるだけ。 cssはHTML_CSS_Mobileを使うと外部CSSをインラインにしてくれる。
SJIS(笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑
UTF-8に統一して、出力するときに必要に応じてエンコードを換えるのが一番楽かと思った
携帯向けも今はもうUTF-8で問題なくね mailtoのsubject,bodyは細工せんとだめだけどね ただむしろ携帯向けは簡単な細工で済むけど PC向けはあっちを立てればこっちが立たずで困る
HTML_CSS_Mobileってopenpearの?
996 :
nobodyさん :2009/11/14(土) 15:08:11 ID:GdfWs/uY
プログラミングで大切じゃないのって5つの項目の中のどれですか? 1. 「わかりやすく書こう」 2. 「ライブラリ関数を使おう」 3. 「入力の妥当性,現実性をテストしよう」 4. 「速く動くように書こう」 5. 「意味のある変数名を使おう」
997 :
nobodyさん :2009/11/14(土) 16:11:30 ID:3aAklpl5
WindowsでPHP4を使ってるのですが move_uploaded_fileでアップロードしたファイル(例えば画像)をブラウザで閲覧しようとすると 「このページを表示する権限がありません」となってしまいます もともと置いてある画像は問題なく見ることができます 何がいけないのでしょうか?
PHP4を使うことが原因w
999 :
nobodyさん :2009/11/14(土) 16:58:17 ID:3aAklpl5
なるほど・・・しかし使ってるスクリプトがphp5に対応してないんです・・・ PHP4で直すことってできませんか?
なおせよwwwwwwwwwwwwwwwwww いまどきphp4使ってるとか時代後れ杉wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。