【PHP】下らねぇ質問はここに書き込みやがれ 42
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2007/03/18(日) 20:37:21ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 41
http://pc11.2ch.net/test/read.cgi/php/1173163186/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc10.2ch.net/php/subback.html
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで http://pc10.2ch.net/db/subback.html
0002nobodyさん
2007/03/18(日) 20:37:43ID:???【PHP】下らねぇ質問はここに書き込みやがれ 30
http://pc8.2ch.net/test/read.cgi/php/1159979905/
【PHP】下らねぇ質問はここに書き込みやがれ 31
http://pc8.2ch.net/test/read.cgi/php/1161733546/
【PHP】下らねぇ質問はここに書き込みやがれ 32
http://pc8.2ch.net/test/read.cgi/php/1162818436/
【PHP】下らねぇ質問はここに書き込みやがれ 33
http://pc8.2ch.net/test/read.cgi/php/1164209222/
【PHP】下らねぇ質問はここに書き込みやがれ 34
http://pc8.2ch.net/test/read.cgi/php/1165519374/
【PHP】下らねぇ質問はここに書き込みやがれ 35
http://pc10.2ch.net/test/read.cgi/php/1166676139/
【PHP】下らねぇ質問はここに書き込みやがれ 36
http://pc10.2ch.net/test/read.cgi/php/1168395610/
【PHP】下らねぇ質問はここに書き込みやがれ 37
http://pc10.2ch.net/test/read.cgi/php/1169644229/
【PHP】下らねぇ質問はここに書き込みやがれ 38
http://pc10.2ch.net/test/read.cgi/php/1170520777/
【PHP】下らねぇ質問はここに書き込みやがれ 39
http://pc10.2ch.net/test/read.cgi/php/1171280039/
【PHP】下らねぇ質問はここに書き込みやがれ 40
http://pc11.2ch.net/test/read.cgi/php/1172151461/
0003nobodyさん
2007/03/18(日) 20:37:59ID:???■本家マニュアル http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル http://pear.php.net/manual/ja/
■メーリングリスト http://ns1.php.gr.jp/mailman/listinfo/
■ZFマニュアル http://framework.zend.com/manual/ja/
(以下英語)
■Smarty http://smarty.php.net/
■Zend本家 http://www.zend.com/
■Zend Framework http://framework.zend.com/
■php | architect http://www.phparch.com/
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/
0004nobodyさん
2007/03/18(日) 20:38:25ID:???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プログラムとして実行された結果になる。
0005nobodyさん
2007/03/18(日) 20:38:38ID:???→ 確認すべきは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に保存?
→ 好きにしてください
0006nobodyさん
2007/03/18(日) 20:39:26ID:???ttp://phpspot.org/blog/archives/2006/11/12php.html
01. staticメソッドが使えるなら使おう。速度は4倍になる
02. __get, __set, __autoload は使わない
03. require_once は重い
04. include, requireで読み込むファイルはフルパスにしよう
05. スクリプト開始時のUNIXタイムを $_SERVER['REQUEST_TIME'] で取れる
06. strncasecmp関数やstrpbrk関数を使えるケースはこれらを使い、正規表現は使わない
07. preg_replaceはstr_replaceより速い、しかし、strtrはpreg_replaceより4倍速い
08. 引数を、単体か配列かで自動判別するようなコードは出来るだけ避ける
09. @ を使ったエラー制御はとても遅い。→ @fputs($fp, "?");
10. $row["id"] は $row[id] より7倍速い
11. PHPのエラーメッセージは重い( noticeとかwarningとか)
12. for ($x=0; $x < count($array); $x) のように、forの中でcountを使うと毎回countが呼ばれるので使わない。
(参考)
PHPの最適化は本当か?
ttp://jigen.aruko.net/archives/433/
0007nobodyさん
2007/03/18(日) 20:47:40ID:???/ / .:.:/ .::::/.:::/ .:.:.::::::::::::::l::::|:::::l|.:.:.::::::::::::::!:::::.:.:..:.:.:.
V .:.::/ .:.::/.:::/ .:.:::::::;:::/.::::l::::|:::::l|:.、.:.:.::::::::::!:::::::::.:.:.:.:
/ .:./ .:.:::::1:::l .:.:::::::/:/ .:.:/:::/::::入.:.\.:.:.:::::!:::::::::.:.:.:.:
,′/ .:::!.:.:::|::::|.:.::::::/イ.:.:::/`ナ:::/_\:::.\_」:::::::::::::::::
i.:.::! .:::::!.:.:::|.:::|.::;;:イ7.::::://://::/ ̄ ̄`¨`ヽV.:.:::::::/.::::
|.:::| .:.:::|.:.::::!:イ.::://::/ "´/::/ 〉.:.:::::/.:::::::
|.:::| .:.:::|.:.::::lVl::/''"´ , // ミ====¨7.:.:.:::/.::::::::::
ト、:ト、.:::ト、.::ヽ、ー=='" ///////.:::/.::::::::/
/^1 ヽ:ト、::::.:.ヽ///// i // /:::/ 下らねぇ質問はここに書き込みやがれチビ人間、ですぅ〜
,′ l `入::::::.:.、 r---イ フ´
i | 〉 、.ト、. |: : : : ! ,.イ、.! /
| ! 〉 ‐米:\ l ノ /V‐米-
.,r‐-| L_ 〉 /!ヽ: : :ヽ、. `ー' ,. イ ノ.: /l ヽ
, r‐イ ハ /^┤ 〉 : : : : リ:::>ー-- < / { :
./ 1 | | / | 〉 : : :リソ, -┴‐' L_/ { :
.! L_人_ノ !. 〉 i /. : :リ ,r‐--‐介ー---‐{ :. i
.└r' ノ 〉 -米‐: :.リ /:/´ ̄フ:ハ:「 ̄`¨`{ :-米
0008nobodyさん
2007/03/18(日) 21:16:17ID:RB9GZY4V早速質問させてください
今アンケートフォームを作っており、入力値を確認画面で確認させメール送信させる仕組みです。
最初にサニタイジングして受け取っている入力値を、メール送信の時にどうやって元に戻せばいいのでしょうか?
あと、テキストエリアで入力された改行などがどうすれば確認画面やメール内で改行して見せられるのでしょうか?
0010nobodyさん
2007/03/18(日) 21:27:10ID:LjKDzSM6今までLinuxのrootユーザーでウェブアプリケーションを開発していたのですが、開発用に
ユーザーを追加するべきでしょうか?
みなさんはどうしていますか?
0011nobodyさん
2007/03/18(日) 21:27:39ID:???引用元のサイトでは
$row[’id’] is 7 times faster than $row[id]
なのに
$row["id"] は $row[id] より7倍速い
としている時点でそこの訳はすごく怪しいから
やめれ
0013nobodyさん
2007/03/18(日) 21:40:45ID:RB9GZY4V実際にPOSTで受け取る時に以下のようにしています。
$hoge = htmlspecialchars(stripslashes ($_POST['hoge']));
<とか>がHTMLエンティティになってしまっているんです。
0015nobodyさん
2007/03/18(日) 21:43:07ID:???htmlspecialcharsは確認画面で表示するときだけ行うべきもの。
データそのものを変換しちゃいかん。
001710
2007/03/18(日) 21:45:47ID:LjKDzSM6今のところ(、もといこれからもずっと)一人です。
0021nobodyさん
2007/03/18(日) 21:49:31ID:???0022nobodyさん
2007/03/18(日) 21:52:38ID:???ひとりで使う分にはどっかの設定書き換えなんて自分しかしないんだからrootでいいよ。
なんでわざわざ作る意味があるのか教えてもらいたい。
なんのためにユーザーを作るのか理解したほうがいいよ。
002310
2007/03/18(日) 21:53:32ID:LjKDzSM6スレ違いなのに、教えてくれるなんて...ありがたすぎる。
これからは安心してrootで開発します。ありがとうございましたm(__)m
00258=13
2007/03/18(日) 21:54:23ID:RB9GZY4Vありがとうございます。
では、入力値は $hoge = stripslashes ($_POST['hoge']); で受け取って、
確認画面のECHO直前で $hoge_ = htmlspecialchars($hoge); とすれば問題ないでしょうか?
セキュリティ的にも入力値をそのまま受け取るということは問題ないのでしょうか?(勉強不足ですみません)
0026nobodyさん
2007/03/18(日) 21:55:31ID:???ttp://www.moskalyuk.com/blog/php-optimization-tips/1272
12 PHP optimization tips
Nov 5, 2006 in Programming, Optimization, PHP
Ilia Alshanetsky’s PHP performance talk given last week at the Zend conference is
pretty useful as far as getting small tips for tweaking PHP code.
1. If a method can be static, declare it static. Speed improvement is by a factor of 4.
2. Avoid magic like __get, __set, __autoload
3. require_once() is expensive
4. Use full paths in includes and requires, less time spent on resolving the OS paths.
5. If you need to find out the time when the script started executing, $_SERVER[’REQUEST_TIME’] is preferred to time()
6. See if you can use strncasecmp, strpbrk and stripos instead of regex
7. preg_replace is faster than str_replace, but strtr is faster than preg_replace by a factor of 4
8. If the function, such as string replacement function, accepts both arrays and single characters as arguments,
and if your argument list is not too long, consider writing a few redundant replacement statements,
passing one character at a time, instead of one line of code that accepts arrays as search and replace arguments.
9. Error suppression with @ is very slow.
10. $row[’id’] is 7 times faster than $row[id]
11. Error messages are expensive
12. Do not use functions inside of for loop, such as for ($x=0; $x < count($array); $x) The count() function gets called each time.
For templating, are you using Smarty? This is probably the fastest way to ensure the frequently viewed pages of the site are cached.
002710
2007/03/18(日) 21:56:04ID:LjKDzSM6すいません。時間差でお礼がおくれました。ありがとうございます。
今度図書館にいってLinuxの本借りて調べてみます。言語の勉強ばっかりに集中して
開発環境を気にしていませんでした。
0029nobodyさん
2007/03/18(日) 21:59:52ID:???クローズドなら気にしないでオケ
0030nobodyさん
2007/03/18(日) 22:00:01ID:???入力値の無害化処理はその入力値を何に用いるかによって方法が変わる。
HTML上に表示するならhtmlspecialcharsだが、DBに記録するときや
コマンドラインで用いる場合などにはそれぞれ違った方法になる。
「htmlspecialchars=サニタイジング」という誤った覚え方自体を改めた方がいい。
> 確認画面のECHO直前で $hoge_ = htmlspecialchars($hoge); とすれば問題ないでしょうか?
問題ない。
> セキュリティ的にも入力値をそのまま受け取るということは問題ないのでしょうか?(勉強不足ですみません)
メール送信をどのように行うかによって決まる。
0031nobodyさん
2007/03/18(日) 22:01:47ID:???シングルとダブルではほとんど変わらんよ。
ベンチマークで確認してみ。
PHPはシングルクォートだからって特に最適化されてないから。
0032nobodyさん
2007/03/18(日) 22:03:50ID:???ここのサイトに書いてあることでいいんじゃない?
0033nobodyさん
2007/03/18(日) 22:04:31ID:???003410
2007/03/18(日) 22:06:10ID:LjKDzSM6クローズドなので気にしないことにします.....
うーんと、開発は全部rootでやって、公開用サーバはroot以外でログインして
httpdなりmysqldなりを起動すればいいのかな?その辺も今度本で調べます。
ありがとうございました。
0036nobodyさん
2007/03/18(日) 22:08:04ID:e2ODLPUZif (isset($_SESSION["user_login"])){
}else{
header("Location:index.php");
}
みたいにして、ログイン情報のセッション値(例えば、md5で生成した暗号キーなど)
を持たないユーザはログインさせないようにしていました。
しかし、これは登録されているか否かを調べてはいませんので、
上記ではなく、DBなどにアクセスして登録されているかどうかを調べ、
それで登録されていないセッション値なら、ログインさせないようにした方が
いいのかな?とも思います。
どちらもあまりセキュリティ的に変わらないのなら前者を選択しますが、
ご意見・ご指摘いただければと思います。
0037nobodyさん
2007/03/18(日) 22:08:56ID:oX9m5Cxa今回UTF-8で作成を試みようと考えてます。
日本人オンリーなので多言語化のメリットについては興味ないのですが、
以外にUTF-8を導入するメリットを教えてください。
自分が知っているのはxhtmlの一行目にドクタイプを省略することでバージョンの違い
によるギャップを埋める。
xmlで便利。
ぐらいですが、もし間違った箇所がございましたらご教授ねがいます。
0038nobodyさん
2007/03/18(日) 22:14:43ID:???セッションIDならともかくセッションの値はサーバー側でしか
生成しないし記録もしてないんだから、それが最初のログイン時に
DBから生成したデータなら何度もチェックするのは全く無意味。
0039nobodyさん
2007/03/18(日) 22:17:01ID:???■最適化にまつわる神話
1. コメントをなくすと速くなる
2. ダブルクォート(”)はシングルクォート(’)より速い
3. 参照渡しの方がコードが速くなる
4. オブジェクトを使う方が速くなる
5. タナリ($a = 1 ? $b = $a : $b = 0;)はif(){}else{より速い
これらは全部嘘。
00418=13
2007/03/18(日) 22:27:55ID:RB9GZY4Vありがとうございました。
たしかに教えていただいているとおり、サニタイジングの1つの手段でしかないのですね。
続けて勉強していこうと思います。
今回は、特に問題がありそうな<script>などを別処理ではじくようにしておいて、
後は教えていただいたとおり、画面に表示させる時だけ直前にhtmlspecialcharsをしようと思います。
0043nobodyさん
2007/03/18(日) 23:49:57ID:???>3. 参照渡しの方がコードが速くなる
コードが速いってどんな状態なんだよ!
という突っ込みはともかく、参照渡しも値渡しも違いがないんだね
0045nobodyさん
2007/03/19(月) 00:32:47ID:???http://pc11.2ch.net/test/read.cgi/php/1173163186/
0046nobodyさん
2007/03/19(月) 09:39:47ID:CGcaHKgbWarning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at E:\Web\IMG\WEB2\index.html:1) in E:\Web\IMG\WEB2\index.html on line 2
とエラーが出てしまうのですが、何が原因なのでしょうか?
ちなみに、session_start()の上は何も記述していません
0048nobodyさん
2007/03/19(月) 09:53:17ID:CGcaHKgbsession_start();
・・・・
?>
こんな感じです
0049nobodyさん
2007/03/19(月) 09:54:39ID:???php.iniのセッションの項目をみなおせ。
0050nobodyさん
2007/03/19(月) 09:57:28ID:CGcaHKgbSession Support enabled
Registered save handlers files user
Registered serializer handlers php php_binary wddx
です。
0051nobodyさん
2007/03/19(月) 10:00:48ID:???0052nobodyさん
2007/03/19(月) 10:01:15ID:???function bufferTest(){
$test="こんにちわ";
return $test;
}
ob_start("bufferTest");
というソースがあったら、「ob_flushをするまで出力しない」ということでは
無いのでしょうか?上記のソースでは普通に「こんにちわ」が出力されます。
0055nobodyさん
2007/03/19(月) 10:35:18ID:CGcaHKgbいえ、ないです
1:<?
2:session_start();
0057nobodyさん
2007/03/19(月) 12:45:20ID:+go1AKUH最近海外からウィルスURLがはられるので、
2chのime.nuのように、ワンクッションで確認画面を入れたいのですが、
その画面でXSSを出さないようにするにはどうしたらいいかわかりません。
掲示板側でrowurlencodeをしたURLが送られてくるのですが、
$url = $_GET['url'];
if (preg_match("/(https?:\/\/)/", urldecode($url)) {
$patterns = array('/%3B/', '/%2F/', '/%3F/', '/%3A/', '/%40/', '/%3D/', '/%26/', '/%24/', '/%2B/', '/%21/', '/%2A/', '/%27/', '/%28/', '/%29/', '/%2C/');
$replacement = array(';', '/', '?', ':', '@', '=', '&', '$', '+', '!', '*', "'", '(', ')', ',');
$url = preg_replace($patterns, $replacement, htmlspecialchars(urlencode($url)));
}
return $url;
とりあえずこんな感じにしたのですが、おかしい箇所ありますでしょうか?
(urlの正規表現はしょぼいので後でもっといいのを見つけてきます)
マルチバイト文字のXSSなんてのもあるらしいので、
内部エンコードがUTF-8なのですが、
$patternsの前に、$url = mb_convert_encoding($url, 'UTF-8', 'UTF-8');
とかにしてみたですが、余計なものも削除されてしまってうまくいきません。
あとURLに直接日本語をうった場合、urlencodeされたURLが出るのですが、
あいうえおとうったのに、decodeしてみると??????とかになってしまうのは
なぜでしょうか?
0060nobodyさん
2007/03/19(月) 13:32:19ID:???DependencyDB.phpというものならありましたがこれは別物っですよね。
↓のサイトを参考にインストールしました
ttp://www.y2sunlight.com/ground/?PHP5.0%2F6.PEAR%A4%CE%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB
展開方法が間違っているのでしょうか?
0061nobodyさん
2007/03/19(月) 14:05:46ID:???イマイチBOMの仕組みが良く分からない。
0062nobodyさん
2007/03/19(月) 15:58:09ID:???0063nobodyさん
2007/03/19(月) 15:59:09ID:???この場合、0/24の範囲が分かりません
0〜24ということでしょうか?
0066nobodyさん
2007/03/19(月) 16:09:22ID:???左から数えて24bit
11010011 10100001 00000000 00000000
↑24bit目
サブネットマスクでググレ
0067nobodyさん
2007/03/19(月) 16:22:55ID:???なければ、取ってくればいい
pear instal DB
これで無理だったら、何か問題あるとは思うが
原因を調べたくなかったら、直接
http://pear.php.net/package/DB
にから取ってきて、pear のディレクトリに
展開すればいい
0070nobodyさん
2007/03/19(月) 18:19:11ID:XfpTEzt6文字列ならmbstringで一発なんですが,ファイルとなると見つからなくて・・・.
PHPのみじゃもしかして出来ない??
環境 : Windows XP SP2 + Apache 2 + MySQL 5.0 + PHP 4.4.4
よろしくお願いいたします.
#Linuxならnkfをsystem関数あたりで呼び出せば一発なのになぁ.
007270
2007/03/19(月) 18:32:28ID:XfpTEzt6fgetで読み込んで,mbstringで変換,fputで書き込むって感じですか・・・
007470
2007/03/19(月) 18:50:02ID:XfpTEzt6確かにそれはそうなんですが,そういう関数かなにか用意されてるかなーとか期待してました(笑).
ありがとうございました.
007670
2007/03/19(月) 19:00:20ID:XfpTEzt6Linuxならnkfを呼び出して一発なんでしょうけど,今回はWindows環境なので・・・.
nkfのWin移植版を使うのはちょっとアレな気がしますし.
0077nobodyさん
2007/03/19(月) 19:07:17ID:???別にnkfのwin移植版試してみればいいかと。
どうしてもWinじゃなきゃいけないならだけど・・。
008070
2007/03/19(月) 20:28:55ID:XfpTEzt6・・・俺が?(笑)
っていうかそういうクラス,どこかにありそーですよね.
>>79
そうなのかなぁ.
CSVアップロードさせて,load data infileなんかでDBに書き込む・・・みたいな処理だと,必要になると思うんですけど.
0081nobodyさん
2007/03/19(月) 20:42:05ID:???0082nobodyさん
2007/03/19(月) 21:22:01ID:CGcaHKgbすみません、BOMとは何でしょうか?
良ければ詳しく教えていただけないでしょうか?
0083nobodyさん
2007/03/19(月) 21:38:53ID:???0084nobodyさん
2007/03/19(月) 21:44:16ID:CGcaHKgbwikiで見てみましたが、session_start()とどう関連するのかが分からない状態です。
<?の上に余分な文字が入ってしまうということなのでしょうか?
0085nobodyさん
2007/03/19(月) 22:00:01ID:???そのとおり。俺もよく知らんが対応してるエディタで開いて消すしかないんじゃない?
こんなもんPHPが早く対応しろよって思うけどね。
0086nobodyさん
2007/03/19(月) 22:00:55ID:CGcaHKgb0087nobodyさん
2007/03/19(月) 22:49:58ID:hHq7NEThあらかじめ登録されたIDとパスが入力された場合、
次のページに飛ばしセッションをでそれぞれの登録情報を呼び出します
しかし、セッション変数はサーバー内に保存されるので、
仮に複数の人が同時にログインした場合、どのユーザーがどのセッション変数かどうかというのは区別できないのでしょうか?
そういった場合はクッキーを使うべきだとは思いますが、クッキーを使わないで解決する手段はありますか?
008887
2007/03/19(月) 23:05:36ID:hHq7NETh-------------
ログイン画面(login.php)
//フォームでidとpassを入力してもらい、登録されていない場合、パス違いなどの場合はエラーをだす
//エラーがない場合、↓のように、idとpassをそれぞれセッション変数に入れ、登録内容表示画面へジャンプさせる
if (!count($error_message)) {
session_start();
$_SESSION["id"] = $id;
$_SESSION["pass"] = $pass;
header("Location: naiyou.php");
exit;
}
--------------------------------------
登録内容表示画面(naiyou.php)
//セッション変数に格納されたIDがなければログイン画面へ飛ばす
if (!isset($_SESSION["id"])) {
header("Location: login.php");
exit;
}
if (isset($_SESSION["id"])) {
$id = $_SESSION["id"];
・・・・IDに対応した登録情報をデータベースから呼び出す・・・
---------------
これでは、複数の人が同時にログインしたとき、セッション変数が同一のものになってしまい、
おなじ内容が表示されてしまうのでしょうか?
0089nobodyさん
2007/03/19(月) 23:18:58ID:???lヽ ノ l l l l ヽ ヽ
)'ーーノ( | | | 、 / l| l ハヽ |ー‐''"l
/ B | | |/| ハ / / ,/ /|ノ /l / l l l| l B ヽ
l ・ i´ | ヽ、| |r|| | //--‐'" `'メ、_lノ| / ・ /
| O l トー-トヽ| |ノ ''"´` rー-/// | O |
| ・ |/ | l ||、 ''""" j ""''/ | |ヽl ・ |
| M | | l | ヽ, ― / | | l M |
| !! | / | | | ` ー-‐ ' ´|| ,ノ| | | !! |
ノー‐---、,| / │l、l |レ' ,ノノ ノハ、_ノヽ
/ / ノ⌒ヾ、 ヽ ノハ, |
,/ ,イーf'´ /´ \ | ,/´ |ヽl |
/-ト、| ┼―- 、_ヽメr' , -=l''"ハ | l
,/ | ヽ \ _,ノーf' ´ ノノ ヽ | |
、_ _ ‐''l `ー‐―''" ⌒'ー--‐'´`ヽ、_ _,ノ ノ
 ̄ ̄ | /  ̄
0090nobodyさん
2007/03/19(月) 23:22:13ID:???セッション確立時にランダムでSIDを付加するので好きなだけsession_name()
を吐き出して調べてみてください。
009187
2007/03/19(月) 23:26:52ID:hHq7NEThということは、このままでも、それぞれのユーザーごとにセッション変数が一緒になることはないということでしょうか?
session_name()を調べて試してみます
ありがとうございます
0092nobodyさん
2007/03/19(月) 23:34:41ID:hHq7NEThランダムでSIDを付加するということは、やはり被ることはない・・
ということですよね?
0093nobodyさん
2007/03/19(月) 23:38:33ID:???0094nobodyさん
2007/03/20(火) 00:01:21ID:w0ATLs0w0095nobodyさん
2007/03/20(火) 00:07:29ID:w0ATLs0w0096nobodyさん
2007/03/20(火) 00:18:28ID:???これをクリアする場合、
$buffer = "";にするのと、
unset($buffer);して新たに$buffer = "";を作成するのと、
何か違いはありますか?
特にメモリの開放?とかで
0098nobodyさん
2007/03/20(火) 04:18:11ID:???後者はデータの格納領域と変数の管理領域の両方をクリアして再取得するから、
無駄に遅くなってメモリの分断化(さほど気にする必要ないけど)を招くだけだと思う。
前者で十分。でもどっちでも大して気にするほどじゃない。
0099nobodyさん
2007/03/20(火) 08:35:57ID:???PHPは初心者でも簡単だけど、大規模なモノになるとぎゃくに難しいよ。あと再利用性も低いんだぜ
これって事実なんでしょうか
あと再利用性というのはどういう事なんですか?
0101虚弱PHP
2007/03/20(火) 09:14:08ID:???大規模とか再利用性とかは、殆ど作り方次第。
言語的な制限で言えばオブジェクトの生存期間とか、
マルチスレッドとかの方が問題じゃないかな。
あ、これは大規模に関係するか。
0102nobodyさん
2007/03/20(火) 09:15:21ID:???すか?
0103虚弱PHP
2007/03/20(火) 09:23:37ID:???セッションIDは普通Cookieに入れるもんだけど。
(というかPHPがCookieに入れてくれる)
セッション情報をCookieに入れたくないって意味だよね??
セッションIDは普通は被らない。
本題とは関係ないけど、
セッション情報にIDとかpassとか入れるのはやめた方がいいと思う。
0106nobodyさん
2007/03/20(火) 09:56:14ID:???0107nobodyさん
2007/03/20(火) 10:28:43ID:???idやpassそのものがもれるわけではないでしょ
0108nobodyさん
2007/03/20(火) 10:39:04ID:???0109nobodyさん
2007/03/20(火) 10:40:23ID:???0110nobodyさん
2007/03/20(火) 10:46:05ID:???0115軟式PHP
2007/03/20(火) 11:01:21ID:???ちゃんと鯖管にメールで報告しておいたが。
0116nobodyさん
2007/03/20(火) 11:06:17ID:???0117nobodyさん
2007/03/20(火) 11:07:02ID:???というより/tmpは一時的な作業用ディレクトリなんだから、むしろ見られなかったり弄れないほうが
おかしくないか?
0119nobodyさん
2007/03/20(火) 11:50:04ID:???共用サーバで誰だかわからん他人とサーバ共有してるのが前提の議論なのか
どちらにしてもあまり意味がないな
0120nobodyさん
2007/03/20(火) 12:07:09ID:???0122nobodyさん
2007/03/20(火) 12:36:05ID:???/tmpのまま?
0123nobodyさん
2007/03/20(火) 12:38:26ID:???いじってみろよ。
0124nobodyさん
2007/03/20(火) 12:53:18ID:???0125nobodyさん
2007/03/20(火) 12:53:39ID:???.htaccessなり何なりで変更してからSessionを使うべき。
0126nobodyさん
2007/03/20(火) 13:14:23ID:O2vxf7Jfマニュアルを見ながら適当に、
@$link = mysql_connect('localhost', 'user', 'password') or die('接続失敗');
@$result = mysql_query('SELECT * FROM table') or die('クエリ送信失敗');
if ($link) {
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
foreach ($line as $col_val) {
echo $col_val."\n";
}
}
}
mysql_close($link);
にしたのですが、クエリ送信失敗エラーが出たので、
なんとなく$linkのあとに、
@$selectdb = mysql_select_db('dbname') or die('DB選択失敗');
とか入れてみたら結果が返ってきたのですが、
if ($link && $selectdb)とかにしたわけでもなく、
変数に入れただけで挙動が変わるというのが気持ち悪くて納得いきません。
なんでこれを変数に入れるだけで結果が返ってくるようになったのでしょう?
0127軟式PHP
2007/03/20(火) 13:18:11ID:???返答なかったお('A')
ほかのユーザーのセッション情報丸みえ状態が続いてたなぁ。
結論からいえば、各個人でsession_save_path()や.htaccessで対応しろよってことだろうけど。
0128nobodyさん
2007/03/20(火) 13:19:33ID:???ワロタ
データベースをmysql_select_db()で選択しないつもりなのか?
それから'@'使いすぎ。
0130軟式PHP
2007/03/20(火) 13:29:27ID:???DSOじゃなくsuExec+phpで動作させ、session_save_pathを個別に〜とか出来ないのかなと思って。
自鯖メインだから詳しくはないんだが、レン鯖ってそういうもんなのかな。
0131nobodyさん
2007/03/20(火) 13:39:54ID:???セッションにIDはまだ分かるが、PWは入れる必要性がないように構築しろよ
ログイン時に一致したらPWなんてその後の処理で使わないべ?
0132nobodyさん
2007/03/20(火) 13:43:07ID:???データベースリソースの中で変化が起こってる。
mysql_select_dbはそもそもブール値で成否を返すだけ。
0133nobodyさん
2007/03/20(火) 14:23:09ID:???> mysql_select_dbはそもそもブール値で成否を返すだけ。
?
> mysql_select_db -- MySQL データベースを選択する:
> 指定したリンク ID が指すサーバ上のデータベースを、アクティブな
> データベースに設定します。
0134nobodyさん
2007/03/20(火) 14:24:46ID:???| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | J
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
0135nobodyさん
2007/03/20(火) 14:28:26ID:???0137nobodyさん
2007/03/20(火) 15:46:29ID:???レン鯖なんて大抵そんなもんだ。
自分でsession_save_pathを変更もできない人は情報だだ漏れさせとけ。
0138nobodyさん
2007/03/20(火) 15:47:20ID:???0139nobodyさん
2007/03/20(火) 15:49:04ID:???変数に入れるだけって…関数が実行されてるっつーの。
ってか、実行結果を意味もなく変数に格納して何がしたいんだお前は。
気持ち悪いのはマニュアルも満足に読めない君の脳みそ。
0140nobodyさん
2007/03/20(火) 16:05:14ID:???@なんて使わなくてもいいのだから、やめたほうがいいよ。
多分どっかからコピペしてきて意味も分かって無いんだろうけど。
本読んで基礎からやったほうがいい。
0141126
2007/03/20(火) 16:12:44ID:O2vxf7Jf>>128
>データベースをmysql_select_db()で選択しないつもりなのか?
仰るとおりですね。よく考えればPEAR::DBでも選択しないとだめだし、
選択しないと無理ですよね・・・
>>139
>変数に入れるだけって…関数が実行されてるっつーの。
それは知りませんでした。
>ってか、実行結果を意味もなく変数に格納して何がしたいんだお前は。
マニュアル書いた人に言ってください。
mysql_error()をはかせないために@を入れたのですが、
>>126の例ではとりはらってたので無意味でしたね。
デバッグ用に書いただけなのできにしないで下さい。
0144nobodyさん
2007/03/20(火) 16:27:34ID:???>>変数に入れるだけって…関数が実行されてるっつーの。
>それは知りませんでした。
データベースの選択に性交すればTRUE、失敗すればFALSEが返るだけ。
この場合、変数 $selectdb には論理値(TRUE or FALSE)が代入されることになる。
スマートなコードの書き方としては、データベースのオープンと選択を
一つの関数として定義するっていうのはどうだ?
0145126
2007/03/20(火) 16:27:56ID:O2vxf7Jfマニュアルに書いてたのを最初うつしたので、その名残です。
まぁ無意味な突っ込みはいらないので・・・
0146126
2007/03/20(火) 16:29:32ID:O2vxf7Jf>スマートなコードの書き方としては、データベースのオープンと選択を
>一つの関数として定義するっていうのはどうだ?
なるほど。PEARでも一緒にやってますからこれがベストでしょうね。
早速そのように書いてみたいと思います。
0147nobodyさん
2007/03/20(火) 16:29:58ID:???フォームから入力してもらってGETでCGIにデータ渡すと、URLが
hoge.php?param=12345
とかになります。で、たとえば入力値に空白がくっついてると
hoge.php?param=12345+
になってしまいます。
フォームに何を入力してもらっても
hoge.php?param=12345
というURL欄表記になるようにすることはできますか?
HTTPのLocation:ヘッダでcgiのURLに飛ばすと、
CGIが2度起動してしまってよくありません
0148126
2007/03/20(火) 16:32:06ID:O2vxf7Jf空白を取り払いたいっていうなら単純にtrimすればいいんじゃないですか?
0149nobodyさん
2007/03/20(火) 16:35:31ID:???ブラウザが認識してるGET先のURLは最後に空白がついてるURLだ
CGIの中でデータをどうこねくり回しても、ブラウザの認識してるURLは変わらない
画面を強制遷移させないとな
0151nobodyさん
2007/03/20(火) 16:53:19ID:cG2Mu5nHLocation:で強制遷移させる以外の芸はできません。
たとえば、http://www.yahoo.co.jp にアクセスしたはずなのに、
URL欄は 「いつのまにか」 http://www.yahoo.co.jp/ になってる。
これは何か便利な方法でこうなってるわけじゃなくて、
スラッシュなしURLを受け取ったWebサーバが(たいていは厳密に)301を返してやった後、
Location:でスラッシュつきのURLを提示するという泥臭い二度手間通信をしてます。
ということで
メインの処理をさせる前に
「予定外のパラメータが来たら希望のパラメータに変換したURLを即生成してLocation:で速攻飛ばす」
という処理を組み込む必要があります。
いらん負荷な感じがしてめんどくさいっすな。
0152nobodyさん
2007/03/20(火) 17:04:15ID:???0153147
2007/03/20(火) 17:09:48ID:???ああ、しまった、思いつかなかった。
ある程度前処理効きそう。
>>151
やっぱそれしかないですか。なんとかします…
>>152
いや、クエリ(のどこかに含まれる一意のID)はURLの中に確認できていて欲しいんです。
POSTでは今回ダメなんですよ。
うう、JavaScript書くの苦手だ…
0156nobodyさん
2007/03/20(火) 20:01:40ID:???!preg_match('/[a-zA-Z0-9]/', $str)
だと、1文字目がa-zA-Z0-9以外ならちゃんとマッチするのですが、
1文字目がa-zA-Z0-9で、2字目以降にひらがなとか記号が入ってても
マッチしてくれません。
文字列の中に1文字でもa-zA-Z0-9以外の文字が入ってた場合に
マッチさせるためにはどのように書けばいいのでしょうか?
0158nobodyさん
2007/03/20(火) 20:25:46ID:???それだと英数字が入ってた場合マッチしないでしょ。
>>156
preg_match('/[^[:alnum:]]/',$str)
か
!preg_match('/^[[:alnum:]]+$/',$str)
0159156
2007/03/20(火) 20:31:24ID:???お二人ともレスありがとうございます。
>>158さんの
preg_match('/[^[:alnum:]]/',$str)
で思うとおりにいきました。
助かりました。
0160nobodyさん
2007/03/20(火) 22:36:40ID:???仕事ではUNIX、自宅のPCには Vine Linux、自宅サーバも Vine Linux、レンタル
サーバは FreeBSD ...
ちっきしょぉぉぉぉーー
0161nobodyさん
2007/03/20(火) 22:53:42ID:???機種依存文字に対応したいと思いますが、うまくいきません。
入力フォームはUTF-8です。メールのエンコードはiso-2022-jpです。
機種依存文字は使うなと、意見が出そうですが、実際にできているフォームが
あるのでがんばって実装したいと思います。
アドバイスいただけませんでしょうか。
0163nobodyさん
2007/03/20(火) 23:04:29ID:???0164nobodyさん
2007/03/20(火) 23:12:36ID:???0165nobodyさん
2007/03/20(火) 23:15:23ID:???俺はSQLiteはもちろん、多言語コンテンツとか扱ったりしてるんで重宝してるかな。
0166nobodyさん
2007/03/21(水) 00:21:55ID:???どうしてもって言われたら俺だったらShift_JISでやる。それでもダメなら諦める。
0167nobodyさん
2007/03/21(水) 00:53:39ID:???0168nobodyさん
2007/03/21(水) 01:53:14ID:???0169nobodyさん
2007/03/21(水) 02:39:36ID:???同スクリプトからPOSTされた日本語を表示しようとしています。
mb_http_output('utf-8');
ob_start('mb_output_handler');
echo $_POST["test"]; // (1)
echo bin2hex($_POST["test"]); // (2)
// (3)
(細かいところは省略して)上記のような動作をさせているのですが
為にし「あ」をPOSTしてみると、(1)の部分が何も表示されません。
(2) の部分は 「あ」のUTF-8の文字コード「e38182」が表示されます。
(3) 以降で出力バッファリングを実行した場合、(1) は「あ」と表示されます。
元々UTF-8の文字をさらにUTF-8に変換しているので、とも思ったのですが、
その場合なら (2) の部分では正しく文字コードが表示されないと想像するのですが、
原因が分かれば教えてください。
0170nobodyさん
2007/03/21(水) 02:57:09ID:???0171nobodyさん
2007/03/21(水) 03:25:15ID:YGgKlNYhphp-5.2.1とapache_2.2.3-win32-x86-no_ssl.msiを
インストールし設定しましたが、コードに書いた日本語が表示されません。
ソースはちゃんと見れるので、アクセスしているアドレスはあっていると思います。
何を調べて設定すればいいか、さっぱりわかりません。教えてください。
0172169
2007/03/21(水) 03:33:45ID:???現状はこのようになっています。
[ .htaccess ]
php_value mbstring.language Japanese
php_flag mbstring.encoding_translation 0
[ PHP スクリプト ]
ini_set('default_charset', 'UTF-8');
ini_set('mbstring.detect_order', 'UTF-8,SJIS-win,eucJP-win,JIS,ASCII');
ini_set('mbstring.script_encoding', 'eucJP-win');
ini_set('mbstring.http_input', 'pass');
ini_set('mbstring.http_output', 'pass');
あれから再度マニュアル等読みながらじっくり考えてみたのですが、
ob_ob_end_flush() される前に、バッファ上には既に「あ」と「e38182」が utf-8 で文字出力されていて
ob_ob_end_flush() でさらに utf-8 に変換するので、「あ」だけおかしくなってしまうのかな?
間違いがあればご指摘ください。
0174169
2007/03/21(水) 03:38:35ID:???> ob_ob_end_flush()
ob_end_flush()
>>171
とりあえず
ttp://jp.php.net/mbstring
0177nobodyさん
2007/03/21(水) 05:46:21ID:???switch(式){
case ...
case ...
...
}
で、式ってcaseの判定のたびに評価されるんでしたっけ?
だとしたら関数の戻り値を代入するような式は書かないほうがいいかな
0178177
2007/03/21(水) 05:52:07ID:???マニュアル見たら全然反対だったorz
0179nobodyさん
2007/03/21(水) 07:04:01ID:HWpzOg/y今、人名辞典のようなものを本を参考に作っているのですが、
本(「MySQL入門以前」)のCDに入っていた人物データ(.txtで名前とプロフィールなどの内容)を
取り込んでphpで条件検索⇒表示というプロセスを踏ませると、
表示される人名(検索結果)が文字化しています。
文字コードに問題があるのかと思い、自分のサーバ環境はEUCを標準に
してるのに対して、例の.txtがsjisだったんで
mb_convert_encoding(data,"sjis","euc-jp");
などとしてみても、化けたままでした。
どうしたら解決するでしょう?
ちなみに、mb_detect_charset()で化ける部分を確認すると「ascii」とでました。
それで mb_convert_encoding(data,"ascii","euc-jp"); としても、ダメです。。
文字コードについて非常にヨワイんで変なことかいてるかもしれませんが
回答よろしくお願いします。
0181nobodyさん
2007/03/21(水) 07:47:48ID:Im+K+kee例えば、setcookieでクッキーを発行したからと言って、そのユーザが
ジャンプ先のサイトで会員登録をしたり、お問い合わせをしたり
することがわかるわけではないですよね?
つまり、他のサイトにジャンプしたか否かはわかっても、
そのサイトでどういう動作をしたのかわかりませんよね?
ちょっと知人に聞かれたので、質問した次第です。
0182nobodyさん
2007/03/21(水) 07:51:52ID:???0183nobodyさん
2007/03/21(水) 08:23:41ID:???0184nobodyさん
2007/03/21(水) 09:11:23ID:MryAv9T3なぜでしょう?
Warning: filemtime() [function.filemtime]: stat failed for pathname, in pathname.
0186nobodyさん
2007/03/21(水) 09:30:00ID:???指定が逆。
mb_convert_encoding(string str, string to_encoding, mixed from_encoding)
というか表示毎にやるよりテキストをEUC-JPにしたほうがいいと思うけど…。
>>181
トラッキングクッキーの事かな?
>>183
ほとんど変わらない。
ただdateの場合、フォーマット文字列に文字、特にフォーマット文字が多いほど時間がかかる。
ミリ秒未満の次元だけど。
0187169
2007/03/21(水) 09:37:17ID:bM95fc6P0188181
2007/03/21(水) 10:02:12ID:???トラッキングクッキーをググって調べてみたのですが、
以下のような事が出来るわけではありませんよね?
自分のサイト→クッキーを送信→別サイトを表示→Aサイトで会員登録をする
→自分のサイトに戻る→Aサイトで会員登録したのが分かる
Aサイトと自分のサイトは全く関連性がありません。
例えばAサイトは2ちゃんでもいいです。
それで、掲示板にレスしたりどの板を見たりわかるもんなんでしょうか?
0189nobodyさん
2007/03/21(水) 10:44:38ID:???基本的にクッキー自体は設定したサーバーとのみやりとりされるだけで、
クッキー設定をしたからといってどうこう出来ません。
トラッキングクッキー、サードパーティクッキーと言われるものは、
方々のサイトに広告などを貼り出し、広告などからクッキーを発行し、それを通じて情報を収集します。
つまりクッキー自体がどうこうというわけではなく、
クッキーを利用しているだけなので、
別サイトだとか、前述のように方々に把握手段がある訳ではない、
関連性がないのであれば解りません。
0190181
2007/03/21(水) 10:51:25ID:???丁寧なご説明ありがとうございます。
そりゃそうですよね。クッキーを発行する事で
他サイトのユーザの書き込み内容や登録情報が分かったら、
不正しまくれますからね。
これで知人にPHPとクッキーの所為を説明できます。ありがとうございました。
0191nobodyさん
2007/03/21(水) 11:10:25ID:???0192nobodyさん
2007/03/21(水) 12:16:46ID:S7UkU8Puデータをphpで表示したいのですが、文字が数字とアルファベット
以外の漢字・カタカナが[?????]になります。やってみたこと
mysql.conf内に
skip-character-set-client-handshakeとデフォルトでutf-8を設定
php.iniの文字コードmbstringをutf-8 と同時に[;] はずす
phpmyadminはエクセルで作った表をCSV→変換ソフトでutf-8にしました
環境はXAMPP 1.6.0a ;Apache 2.2.4
MySQL 5.0.33 PHP 5.2.1 phpMyAdmin 2.9.2 です
宇宙空間に飛び出してしまった私を助けてください。
0195nobodyさん
2007/03/21(水) 13:20:43ID:ltx9nvzy有難うございますm(__)m
読めるようになりたいです(>_<)
0196nobodyさん
2007/03/21(水) 13:22:09ID:3i8vjnb60197nobodyさん
2007/03/21(水) 13:24:42ID:ltx9nvzy有難うございますm(__)m
UTFー8にしました
各フィールドもUTF-8にしました。
0198nobodyさん
2007/03/21(水) 13:25:37ID:???どうやっても治らない
0200nobodyさん
2007/03/21(水) 13:31:22ID:PXILTMPJ1,ムシムシ
2,example
2,HMDM
のテキストファイルがあり、
各先頭の数値の配列に格納したいのですが、
foreachで回し、splitで,区切りで分けて入れていったのですが
[1] => Array
(
[0] => ホゲホゲ
)
[1] => Array
(
[0] => ムシムシ
)
[2] => Array
(
[0] => example
[1] => example
)
と、1の配列だけバラバラになってしまいます。
同じ1ですが、何か違うのでしょうか?
半角全角は同じです
0201nobodyさん
2007/03/21(水) 13:33:10ID:PXILTMPJlist($value,$txt) = split(",",$value);
$array[$value][] = $txt;
このように処理しています
0202NORIAKI
2007/03/21(水) 13:35:34ID:mYSHDxhfFlash MP3 Playerという↓
ttp://www.jeroenwijering.com/?item=Flash_MP3_Player
パーツを僕のサイトでしようしているんですが
曲の名前を漢字や平仮名にすると文字化けしてしまいます。
どうしたらいいでしょうか?
後、playlist.xmlのどの部分にUTF-8を入力するんですか?
詳しくおしえてください
0204nobodyさん
2007/03/21(水) 14:01:33ID:???PHP 5.1.4にて
ソース:
$values = array('1,ホゲホゲ', '1,ムシムシ', '2,example', '2,HMDM');
$array = array();
foreach ($values as $value) {
list($value,$txt) = split(",",$value); // コピペ
$array[$value][] = $txt; // コピペ
}
print_r($array);
実行結果:
Array
(
[1] => Array
(
[0] => ホゲホゲ
[1] => ムシムシ
)
[2] => Array
(
[0] => example
[1] => HMDM
)
)
0205nobodyさん
2007/03/21(水) 14:15:38ID:???0206nobodyさん
2007/03/21(水) 15:46:41ID:???最初のconnectでこけました。
PHP Version 4.3.9
socket support enabled
サーバはXSRVERのレンタルです。
いくら、enabledになっていてもやはりレンタルサーバって事で制限されているんですかね?
コーディング
$package = "\x08\x00\x19\x2f\x00\x00\x00\x00\x70\x69\x6e\x67";
/* create the socket, the last '1' denotes ICMP */
// $socket = socket_create(AF_INET, SOCK_RAW, 1);
if (false == ($socket = socket_create(AF_INET, SOCK_RAW, 1))) {
die("ErrCode: " . socket_last_error() ."、ErrMsg: " . socket_strerror(socket_last_error()));
}
エラー
ErrCode: 1、ErrMsg: Operation not permitted
0207nobodyさん
2007/03/21(水) 15:49:02ID:???0208nobodyさん
2007/03/21(水) 16:11:34ID:???resource context
って何よ
0209nobodyさん
2007/03/21(水) 16:20:25ID:???0210nobodyさん
2007/03/21(水) 16:21:58ID:???file()
fgets()
fread()
readfile()
file_put_contents()
stream_get_contents()
stream_context_create()
0211nobodyさん
2007/03/21(水) 17:23:19ID:PXILTMPJ0212nobodyさん
2007/03/21(水) 17:54:54ID:???0213nobodyさん
2007/03/21(水) 18:20:38ID:CD9tFSRtskip-character-set-client-handshake の記述をした後
mysql を再起動している?
0214nobodyさん
2007/03/21(水) 18:25:48ID:???環境が特殊すぎて、アドバイスしようがない
phpmyadmin 経由ではなくて、直接 mysql クライアントを実行して
格納されている文字を確認する
mysql -u [user name] [db name] --default-character-set=[shell encoding]
[user name]、[db name] 自分の環境のものに置き換える
パスワードがあるときは -P か -p[password] を追加する
[shell encoding] はクライアントを実行しているシェルのエンコーディングを
指定する
最近のFedoraCoreとかCentosとかなら utf8、古めのやつなら ujis
windows なら sjis
クライアントから直接 select して、文字が化けるか確かめる
この時点でおかしい場合は、データの格納に問題あり
これで化けていないときは、表示用のスクリプトに問題あり
0215nobodyさん
2007/03/21(水) 19:08:12ID:???0216nobodyさん
2007/03/21(水) 19:12:43ID:???0217nobodyさん
2007/03/21(水) 19:14:53ID:???走らせたいのですが、iframeタグを使わずに実現させる方法はありますでしょうか?
0218nobodyさん
2007/03/21(水) 19:17:20ID:???妙な設定が増えて、安定していない
0219nobodyさん
2007/03/21(水) 19:30:20ID:???30秒程度なら、なんとか動きそうな気もするが
そんなスクリプトをブラウザ経由で動かすのは
あきらめたほうがいい
WEBサーバのチューニングが必要になってしまう
0220NORIAKI
2007/03/21(水) 20:05:58ID:mYSHDxhf0221nobodyさん
2007/03/21(水) 20:12:36ID:???0222NORIAKI
2007/03/21(水) 20:27:07ID:mYSHDxhfFlash MP3 Playerという↓
ttp://www.jeroenwijering.com/?item=Flash_MP3_Player
パーツを僕のサイトでしようしているんですが
曲の名前を漢字や平仮名にすると文字化けしてしまいます。
どうしたらいいでしょうか?
僕のサイトです。
ttp://www48.tok2.com/home/noriaki416/
0223nobodyさん
2007/03/21(水) 20:30:41ID:???0224NORIAKI
2007/03/21(水) 20:37:47ID:mYSHDxhf0225nobodyさん
2007/03/21(水) 20:55:13ID:???0226nobodyさん
2007/03/21(水) 21:05:03ID:???0228nobodyさん
2007/03/21(水) 21:25:44ID:???そのテキストファイルはUnicodeではないかな?だとすればほぼBOMのせい。
あと正規表現を使わないのであればexplode()を使った方がいい。
0229nobodyさん
2007/03/21(水) 21:28:25ID:???今までは普通にできてたんだが・・・
0230NORIAKI
2007/03/21(水) 21:51:53ID:mYSHDxhf分かりやすい解答、アリガトウゴザイマス
0231nobodyさん
2007/03/21(水) 23:18:54ID:sJhjrKxn今回借りたサーバーはこれが使えません。
フレームにするのも嫌なのでincludeと同じような埋め込みタグってphpでは
ないでしょうか?
すいませんが教えて下さい。
0232nobodyさん
2007/03/21(水) 23:24:40ID:/6QaFGmv>>213 再起動しました
>>214有難うございます 初心者なんでわからないところもありますが
調べながらやって見ます
0235nobodyさん
2007/03/21(水) 23:58:44ID:???PHPをLinux環境にインストールする際に、configure実行後に「make test」を実行したら、
"You may have found a problem in PHP."とかいうメッセージが表示されました。
どうも文面を読んでいると、開発者が今後のバージョンアップに役立てられるよう
なるべくテスト結果を送信してください、というニュアンスが読み取れましたが、
そもそも「make test」の実行結果は、インストール環境上で正常に動くかどうかを判断する
目安として使えるのでしょうか?
ググってみましたが、上記の正否について答えが得られませんでしたので、
どなたが教えてください。
0236nobodyさん
2007/03/21(水) 23:59:38ID:???処理後、リロードボタンを押すとアラートダイアログがでて
「再送信しなきゃいけません」とでます。
どうしたらこれなくせますか? お恥ずかしいんですが、お願いします。
0237nobodyさん
2007/03/22(木) 00:13:24ID:???セッション使ってるだろ?
ググればいっぱい解決方法見つかるよ
あと微妙に警告メッセージを省略しないほうが嬉しい
0238nobodyさん
2007/03/22(木) 00:18:32ID:???0239nobodyさん
2007/03/22(木) 00:24:54ID:???<head>
<?php include("common_headers.html") ?>
<title> ... </title>
</head>
みたいな使いかたしかしていない人多くないか?
PHPさわりたての初心者が「PHPのincludeすげー」って言うみたいな感じがする。
0240nobodyさん
2007/03/22(木) 00:30:14ID:6SECQzgU>>199 >>213 >>214 有難うございました
表示できるようになりました
有難うございます(上記レス番以外の方でも教えていただ
いたかたにも感謝です有難うございました)
0241nobodyさん
2007/03/22(木) 01:11:20ID:R85brVFQPHP4.3なので使えません。
こういう場合、どうやって代用するのでしょうか?
(PHP5対応のサーバを契約する以外で)
0242nobodyさん
2007/03/22(木) 01:19:59ID:???その関数使ったことが無かったから今マニュアルパッと見て
見たけどただ単にXMLデータを配列に突っ込むだけでしょ?
正規表現使うだけで簡単に自作できる範囲だと思うぞ
0243241
2007/03/22(木) 01:23:12ID:???そうなんですかね?私のイメージではXML配信サイトにアクセスして
XMLデータを取得する為にsimplexml_load_file関するが必要に
なると思っているのですが・・。
0244241
2007/03/22(木) 01:23:43ID:???simplexml_load_file関するが→simplexml_load_file関数
0245いつもお世話になってます
2007/03/22(木) 01:31:33ID:Dy86ottT入力→確認→メール送信&完了画面
のフォームを作成しているのですが、完了画面でのリロード対策のため、
メール送信処理.phpの中でheader(Location)を使って完了画面を呼び出し、
完了画面では入力した内容を表示させ、「以下の内容で送信しました」的なページにしようと思っています。
確認画面でhiddenで値をもたせていたのですが、Loccationで設定する完了画面でhiddenの値が伝わっていません。
Locationで指定した完了画面に値を渡すのはどうすればいいのでしょうか?
0246nobodyさん
2007/03/22(木) 01:42:12ID:???つーかその設計はやめとけ。
0247nobodyさん
2007/03/22(木) 01:43:02ID:uQqlXzTcソースは
<?php
// ブラウザに「Hello, PHP!」と表示します。
echo( "<HTML>\n" );
echo( "<HEAD>\n" );
echo( "<TITLE>01-01</TITLE>\n" );
echo( "</HEAD>\n" );
echo( "<BODY>\n" );
echo( "ハローHello, PHP!\n" );
echo( "</BODY>\n" );
echo( "</HTML>\n" );
?>
です。
拡張子は.phpです。
環境とは?何を説明すれば宜しいでしょうか?
0249nobodyさん
2007/03/22(木) 01:51:48ID:???まずお前のしたい事を実現するにはXMLファイルが必要だよな?
でも今回はその為の関数が使えない訳だ。
ただしXMLファイルを取得できればsimplexml_load_fileは自作できる。
ならXMLファイルを取得してくる別の方法を探せばいいわけだな。
fopenとかfileとかで取得できるんじゃないか?
0253nobodyさん
2007/03/22(木) 02:02:29ID:???文字化けじゃなくて「表示されない」と>>171では書いてるので
日本語の問題じゃなくてサーバの設定と読んで
なけなしの1000ガバスを賭けてみた次第。
0254nobodyさん
2007/03/22(木) 02:48:58ID:???セッションは使ってないんです。
>>238さんの言うとおり、index.php内のフォームの設定が
action="index.php" になっています。
リロードするたびに送信してるんですよね。。
色々解決法探してみますが、気の向いた方、教えてください
0257241
2007/03/22(木) 03:07:51ID:???説明ありがとうございます。何度か実験しているのですが、
XMLを取得する方法というのが分かりません。
例えば、
$fp=fopen("取得先のURL","r");
print_r($fp);
とかしてみたのですが、Resource id #4というエラーが出ます。
PEARはサーバによって使えないので、もしPHP4の機能のみで
xmlファイルが読み込めたらいいのですが・・。
0258241
2007/03/22(木) 03:18:57ID:???これはPHP4でも使えるみたいですし、望むとおりの出力を
得る事が出来ました。
0262nobodyさん
2007/03/22(木) 05:05:34ID:uQqlXzTchttp://allabout.co.jp/internet/database/closeup/CU20061118A/index.htm?NLV=CN000062-35
↑のサイトを見ながらやってみたつもりです。
0264254
2007/03/22(木) 10:06:25ID:???うーん、、無理なんですか…
やっぱり素直に受けのHTMLを作った方がいいですね。
ありがとうございました
ところで質問なんですが、XMLってわかったほうがいいですか?
どういうときに便利なんですか? 知ってると知らないじゃ大違いっていう
シチュエーションは??
暇な人教えてください
0266nobodyさん
2007/03/22(木) 10:29:46ID:???今、<?php ?>できちんとphpが動作します。
しかし、phpの省略されている<? ?>ではphpが動作しません。
<?php <?の両方で動作させるようにするには
どのように設定すればよいのでしょうか。
0267nobodyさん
2007/03/22(木) 10:32:18ID:???http://jp2.php.net/manual/ja/ini.core.php#ini.short-open-tag
0268nobodyさん
2007/03/22(木) 10:32:23ID:???POSTのactionを送信元じゃなく違うPHPにして
header("Location: " . $_SERVER['HTTP_REFERER']);
これでOK
0269nobodyさん
2007/03/22(木) 10:34:44ID:???0270nobodyさん
2007/03/22(木) 10:41:22ID:???0271nobodyさん
2007/03/22(木) 10:46:11ID:???0273nobodyさん
2007/03/22(木) 10:59:23ID:???includeの使い方が?それともPHPの使い方が?
前者だったらincludeはクラスとか同一処理をまとめたものを複数のスクリプトから使う「PHPファイル」を読み込むべき。
単にHTMLファイルを挿入したいのだったらreadfileを使うべき。
というかPHPファイルを読み込む場合でも失敗時Fatal吐くrequireの方がいいと思うんだけどな…。
0274nobodyさん
2007/03/22(木) 11:01:50ID:???チェックするだけならisで十分だし
0278nobodyさん
2007/03/22(木) 11:36:43ID:3Rw0psxe・なぜUTF-8でファイルを保存すると付加されるものがあるのか
・BOMを付加してなにか良いことがあるのか
・PHPアプリケーションの作成において、BOMは付加すべきなのか
が分かる資料(参考サイト)等をご存知の方、是非教えてください<(_ _)>
0280nobodyさん
2007/03/22(木) 11:42:56ID:3Rw0psxeありがとうございます。
3個目の質問が解決できるサイトはご存知ですか?
0282nobodyさん
2007/03/22(木) 11:54:40ID:/ltj0PDI0283軟式PHP
2007/03/22(木) 11:58:17ID:???BOMは付加すべきではない。このスレを見てたら分かるだろ…。
0284nobodyさん
2007/03/22(木) 11:59:11ID:???0285nobodyさん
2007/03/22(木) 12:05:44ID:???大学でPHPやったりしてるのいまは
0286nobodyさん
2007/03/22(木) 12:10:03ID:d0YYvDtL0287nobodyさん
2007/03/22(木) 12:25:48ID:???0289nobodyさん
2007/03/22(木) 13:05:36ID:???HTMLとCSSは知ってて当然って感じで授業やってる。
0290nobodyさん
2007/03/22(木) 13:11:28ID:???WEBデザインだぞ?
どちらかというとセンスが一番肝心だと思うが。
ぶっちゃけhtml,css,javascript,flash等しらなくてもいい。
>>289
情報系の高専?
CとPerlならやるとこ多いけど、そんないっぱい習うんだね。
しかもFlashとかPHPまでやるのはちょっと謎いけど。
0291nobodyさん
2007/03/22(木) 13:17:40ID:???0293nobodyさん
2007/03/22(木) 14:43:26ID:iVMn0ZeTPHP 5.2.0(cli)
apache 2.0.52
mysql 5.0.33
php.ini↓(おそらく必要な部分以外割愛)
[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = Shift_JIS
mbstring.encoding_translation = on
mbstring.detect_order = auto
mbstring.substitute_character = none
mbstring.func_overload = 0
mbstring.strict_encoding = on
上記環境で開発中で、ローマ数字を扱いたいのですがエンコードできてないらしくローマ数のところが全て?になってしまいます。
一応 mbstring.http_output = Shift_JIS を mbstring.http_output = UTF-8 に変えれば問題なく表示されるのですが
携帯での開発も考えており mbstring.http_output = Shift_JIS でどうにかローマ数を表示する方法はないでしょうか?
0294nobodyさん
2007/03/22(木) 14:45:39ID:???http://jp2.php.net/manual/ja/ref.mbstring.php
0295nobodyさん
2007/03/22(木) 14:45:55ID:IfsQAtHXPHPなんて数時間で使えるようになる。
(どんな便利な関数があるかは覚える必要あるけど)
0296nobodyさん
2007/03/22(木) 14:50:21ID:???0298虚弱PHP
2007/03/22(木) 16:56:18ID:???アプリケーションとして耐えるものを作るのは別だから。
俺はどんな言語でも数時間ではむりw
0300nobodyさん
2007/03/22(木) 18:14:00ID:???0301nobodyさん
2007/03/22(木) 18:17:29ID:???けど、PHPは比較的優しいし、HTMLと連携できるのでわかりやすい。
誰かが本で書いてたけど、プログラム的に優れているのはCやJAVAかも
しれんが、プログラムを苦手とする人がとっつきやすいのはPHPだよ。
だからここまで普及したしな。
0302nobodyさん
2007/03/22(木) 18:31:02ID:???そうでなければ別にPerlでも問題なかったわけだし
0303nobodyさん
2007/03/22(木) 18:43:07ID:???0304nobodyさん
2007/03/22(木) 19:03:32ID:???これが一番大きいだろうな。
0305nobodyさん
2007/03/22(木) 19:58:47ID:oYQU+xznif ($fsize <= 0) return;
$fd = fopen ($filename, 'r');
$contents = fread ($fd, $fsize);
fclose ($fd);
echo($contents);
を実行してを書き出してブラウザで確認すると、
$contentsの先頭に'?'の一文字がついているのですが、
なにか考えられることはないでしょうか?
$filenameに相当するファイルはUTF-8、改行コード\nで書いていますが、
試しにファイル内を空にして実行してみても'?'一文字だけ出力されています。
0307nobodyさん
2007/03/22(木) 20:04:28ID:???0308nobodyさん
2007/03/22(木) 20:06:05ID:???0309305
2007/03/22(木) 20:10:59ID:???ありがとうございました。そしてすいませんでした。
0310nobodyさん
2007/03/22(木) 20:12:57ID:???オプションとかでつけないように設定できないの?
0311305
2007/03/22(木) 20:18:54ID:???ちがうんです。
文字コードを選ぶドロップリストをホイールでグリグリやって選択したら
UTF-8Nを通り越してUTF-8になってたみたいで。
最近定例行事みたいに最初にやる行動だから
気付かなかったんですよね。
慣れは怖いです。
0312nobodyさん
2007/03/22(木) 20:26:50ID:???0313nobodyさん
2007/03/22(木) 21:04:28ID:???0314nobodyさん
2007/03/22(木) 21:16:24ID:???会社で作ったやつにBOMついてたらしく、こっちでうごかねぇ・・・
DreanweaverでもUTF-8とUTF-8Nがあるのか!?
それとも、俺がメモ帳か何かでいじっちゃったのかなぁ・・・
0316nobodyさん
2007/03/22(木) 21:31:21ID:???0317nobodyさん
2007/03/22(木) 21:38:28ID:???0318nobodyさん
2007/03/22(木) 21:38:46ID:???0319nobodyさん
2007/03/22(木) 21:39:42ID:???0322nobodyさん
2007/03/22(木) 21:59:44ID:???0323nobodyさん
2007/03/22(木) 22:06:01ID:???使ってないよー
前に試してはみたけど。
aptanaも試してみたけど、とりあえず動作重杉で結局miとかにもどっちゃう。
関数なんかはキーボードのショートッカッツ使ってる
0324nobodyさん
2007/03/22(木) 22:21:05ID:???0325nobodyさん
2007/03/22(木) 22:51:26ID:???0326nobodyさん
2007/03/22(木) 23:01:39ID:???つ【UTF-8 BOM】
0327nobodyさん
2007/03/22(木) 23:05:37ID:???つ【UTF-8 BOM】
0328nobodyさん
2007/03/22(木) 23:06:33ID:???hogehogeというテーブルにnameフィールドがあり、
「テスト」というデータが数件入っているのですが、
name
テスト
テスト
テスト
SELECT * FROM hogehoge
で取得し、見てみると、
「テスト」がひとつしか格納されていません
全て取得するにはどうすれば良いのでしょうか?
0330nobodyさん
2007/03/22(木) 23:08:05ID:???http://jp2.php.net/mysql_query
0331nobodyさん
2007/03/22(木) 23:10:15ID:???データベース板で探したのですが、質問スレが見当たりませんでした。
もし宜しければ誘導お願いできないでしょうか?
>>330
mysql_queryは使っています
0332nobodyさん
2007/03/22(木) 23:15:03ID:???この辺で良いんじゃない?
http://pc11.2ch.net/test/read.cgi/db/1160458216/
IDも出さない禿げは死ねば良いと思うよ。
0333nobodyさん
2007/03/22(木) 23:15:35ID:d0YYvDtL有難うございます。
てっきりsageチェックはずしたつもりでした
0334nobodyさん
2007/03/22(木) 23:16:01ID:???0336nobodyさん
2007/03/22(木) 23:17:04ID:d0YYvDtLギコナビで「質問」でデータベース板内を検索
0338nobodyさん
2007/03/22(木) 23:19:41ID:d0YYvDtLDB板自治でもオラクルでもADOでもなかったので
0340nobodyさん
2007/03/22(木) 23:23:05ID:d0YYvDtLうん、検索の仕方が足りなかったみたい(´・ω・`)
0341nobodyさん
2007/03/22(木) 23:25:01ID:/ltj0PDI(PHP側で削除する)文字ってないですか?
バイナリ文字列を配列に入れるときに、'や"がエスケープできないのがあるので
ヌル文字\0は半角スペースが出力されるようです
0342nobodyさん
2007/03/22(木) 23:27:50ID:???phpの質問スレを探しにWebProg板に来て「質問」で検索するのはアホみたいなもんだしね。
ところで>>330のリンク先は全部読んだ?
>>341
phpは全部そのまま出力してる
0344nobodyさん
2007/03/22(木) 23:31:13ID:d0YYvDtLあーーーーー
mysql_fetch_assocで1行取得でした
てっきりmysql_fetch_assocで全行取得してforeachで回すのと勘違いしていました
有難うございます
0345nobodyさん
2007/03/22(木) 23:39:29ID:???0346nobodyさん
2007/03/22(木) 23:39:59ID:???0347nobodyさん
2007/03/22(木) 23:53:51ID:???0349nobodyさん
2007/03/22(木) 23:57:33ID:???0351nobodyさん
2007/03/23(金) 00:01:23ID:???0352nobodyさん
2007/03/23(金) 01:00:03ID:???0354nobodyさん
2007/03/23(金) 02:53:48ID:???早さとかは全然変わらないのでどっちでもいいのでしょうか?
0355nobodyさん
2007/03/23(金) 03:06:16ID:???0356nobodyさん
2007/03/23(金) 04:36:13ID:???0357nobodyさん
2007/03/23(金) 07:47:39ID:Z8LIY3dO<Test>
<Pass>1234</Pass>
</Test>
こんなXMLファイル(UFT-8で保存)があって、
$s=simplexml_load_file("test.xml")
if($s->Pass==$_POST['pass']){
}
else{
echo "エラー";
}
こんなコードを書いて、pに1234とポストした所、何故か『エラー』と返されるもので
エラーの所に、echo $sやecho $s->Passとやると、Apacheが何故か落ちてしまいます。
エラーログにも何も記録されていないんです。
echo $s->Test2など、存在しないオブジェクトを参照する場合は、その事が表示されるだけで落ちたりはしません。
これは、何故なのでしょうか?
ちなみに、PHP 5.2.1.1、Apache 2.0.49.0、WindowsXP x64
こんな環境です。
0358357
2007/03/23(金) 07:56:51ID:???$s->Pass."\n"
と言う具合に末尾にナル文字を付加して処理すると、旨く行きました。
もしかして、文字列に終端記号が無いためどこまでもApacheが読んでしまった結果強制終了したのでしょうか。
0359nobodyさん
2007/03/23(金) 07:58:57ID:???0360nobodyさん
2007/03/23(金) 08:07:44ID:???Shift-Jisで保存すりゃいいんじゃね?
simplexml_load_fileって確かUTF-8対応してなかったような
0361nobodyさん
2007/03/23(金) 08:43:49ID:???全然変わらない?readfile()の方が若干速いよ。
PHPとして評価するものとしないもの、自ずと答えは出てくると思うけど。
>>358
それは$_POST['pass']に改行コードが付いてるからじゃないかな…。
$s->Passに付けて評価するよりtrim($_POST['pass'])しましょう。
ちなみに\nはnullじゃなくてnew line…。
>>360
そんな馬鹿なっていうかASCII文字だけじゃBOM付けない限り変わらないやん。
0362nobodyさん
2007/03/23(金) 11:25:30ID:OdrYXzGD一ヶ月つかってて今日突然うごかなくなったんだけど。
0363nobodyさん
2007/03/23(金) 11:49:54ID:W9B9WOh1ソースは以下の通りなのですが、なぜか文字化けします。
ファイルの文字コードはUTF-8なのですが、その他の文字コードにしても
文字化けします。どこがおかしいのでしょうか?
$xml_url = "http://weather.livedoor.com/forecast/rss/index.xml";
$dom = new DOMDocument;
$dom ->load("$xml_url");
$element = $dom->getElementsByTagName('item');
foreach($element as $node) {
echo mb_convert_encoding($node->textContent, "UTF-8","auto")."<br />";
echo "<hr />";
}
0364虚弱PHP
2007/03/23(金) 12:02:24ID:???UTF-8って明示してみたらどうだろう?
Content-Type: text/html; charset=UTF-8;
0365nobodyさん
2007/03/23(金) 12:09:09ID:???元々UTF-8ならmb_convert_encoding()で変換する必要はないのでは。
↑のようにheader()かmetaタグで指定も。
0366nobodyさん
2007/03/23(金) 12:15:59ID:???文字が短いと失敗する事もあるし
0367nobodyさん
2007/03/23(金) 12:51:13ID:co5+bE4v0368nobodyさん
2007/03/23(金) 12:52:02ID:???0369nobodyさん
2007/03/23(金) 13:08:51ID:???0370nobodyさん
2007/03/23(金) 13:15:41ID:???タンパク質解析プロジェクトFolding@homeで病気で苦しむ人達を救えるかも。
PS3でFolding@homeしようぜ(Team 2ch)
http://ex22.2ch.net/test/read.cgi/ghard/1174030817/
チーム番号:162
チーム名:Team 2ch
http://fah-web.stanford.edu/cgi-bin/main.py?qtype=teampage&teamnum=162
☆PS3での参加方法
PS3からFolding@homeを起動し、チーム番号162に入力すればOK。
ユーザ名は何でも良いが、http://folding.stanford.edu/japanese/download.html
にて、名前が既に使われているかどうか確認する事を推奨。
参加の確認としては、「オプション(△)」→「関連サイト」→「チーム処理統計量」と開き、
「Team 2ch」(上記URLのページ)が表示されればちゃんと参加できている。
☆Folding@homeについて
http://folding.stanford.edu/japanese/
0371363
2007/03/23(金) 13:19:37ID:???上記のソースに
header("Content-Type: text/html; charset=UTF-8;");
を追加したのですが、文字化けは変わりません・・。
0372nobodyさん
2007/03/23(金) 13:26:39ID:???0374nobodyさん
2007/03/23(金) 13:55:13ID:???0375363
2007/03/23(金) 14:19:46ID:???はい、します。ブラウザはFirefoxで確認してます。
>>374
テキストエディタにterapadを使っていますが、ちゃんとUTF-8になってます。。
0376nobodyさん
2007/03/23(金) 14:24:02ID:???笑
0378nobodyさん
2007/03/23(金) 14:58:15ID:OdrYXzGD0379nobodyさん
2007/03/23(金) 14:58:20ID:MdnT//Cd0380nobodyさん
2007/03/23(金) 15:01:40ID:???0381nobodyさん
2007/03/23(金) 15:10:58ID:???0382nobodyさん
2007/03/23(金) 15:13:43ID:???セッション変数を受け渡すことはできますか?
具体的には、レンタルサーバで共有SSLが利用できる環境で以下のようなことを実現したいです。
http://www.example.com/ <= 自分のドメイン内で買い物カゴに商品を入れる
↓ <= 買い物カゴのセッション変数を渡したい
https://www.example.net/~user/ <= 業者の共有SSLドメインで個人情報入力
0384nobodyさん
2007/03/23(金) 15:25:47ID:???クラスって、ぶっちゃけ設計屋さんが設計の効率化を図るために使うもので
プログラマが積極的に使う場面で思い浮かばん・・・
まぁ、俺の職場では設計まで行わないからかもしれんが・・
0385虚弱PHP
2007/03/23(金) 15:29:23ID:???とすると、UTF-8じゃないんだろうね。
mb_convert_encoding($node->textContent, "UTF-8","auto")
辺りが悪さしてるんじゃない?
autoでの判定がうまくいってないとか。
mb_detect_encodingでも見てみたら?
0386虚弱PHP
2007/03/23(金) 15:31:49ID:???プログラマが設計からやらない会社に居たことないから
どんな会社なのか激しく気になる。
それって、プログラマというよりコーダーだよね。
0387nobodyさん
2007/03/23(金) 15:32:32ID:???0388nobodyさん
2007/03/23(金) 15:43:42ID:???0389363
2007/03/23(金) 16:07:12ID:???echo mb_detect_encoding($node->textContent);
とすると、UTF-8になっています。
なにが原因か全く想像付きません・・・。
0390軟式PHP
2007/03/23(金) 16:14:19ID:???文字化けと言っても色々な化け方がある。
ちょっとコピペしてくださいな。大体化け方見れば分かる。
あと、ブラウザで見てると思うが右クリック>エンコードでどうなってるかも書いてください。
0391363
2007/03/23(金) 16:41:29ID:???ttp://www-2ch.net:8080/up/download/1174635474621673.8YFVfu
キャプチャーしました。こんな感じです。
右クリック>エンコードは、アクセス時はEUC-JPになっていましたが、
これをUTF-8にして、キャプチャーしました。どちらの場合も文字化けします。
0393軟式PHP
2007/03/23(金) 16:48:15ID:??????になるということは完全に文字が逝っちゃってる可能性が高い。
>echo mb_convert_encoding($node->textContent, "UTF-8","auto")."<br />";
これを
>echo $node->textContent."<br>";
か
>echo mb_convert_encoding($node->textContent, "UTF-8","UTF-8,eucjp-win, sjis-win,JIS")."<br />";
にしてみたらどうなる?
0394nobodyさん
2007/03/23(金) 16:55:13ID:???そこまでされたらプログラマは仕事が楽しくないんじゃないか?
0395nobodyさん
2007/03/23(金) 16:59:21ID:???このスレを見ている人はこんなスレも見ています。(ver 0.20)
まだ起きてる奴いるかい?4晩目 [その日暮らし]
【朝昼晩】今日の貧しい食事を皆で評価するスレ7 [その日暮らし]
0396363
2007/03/23(金) 16:59:59ID:???ありがとうございます。ただ、特に変わりませんでした。
それで色々ググったのですが、サーバの文字コードが原因かと思い、
.htaccessでUTF-8に変更しました。(サーバはEUC-JPです)
そしたら文字化けせずに表示されました。どうやらこれが原因だったかもしれません。
やっぱり、サーバも含め、プログラムは全部UTF-8にした方が
良いんですかね。。自分としてはEUC-JPの方が使いやすいのですが。
お騒がせしました。アドバイスいただいた方、ありがとうございました。
0397nobodyさん
2007/03/23(金) 17:04:14ID:ApQPGcDTオープン/クローズはそれぞれコンストラクタ/デストラクタで処理するべきなのでしょうか?
PEARのDBパッケージを見てみると、オブジェクトのメソッドにアクセスして
データベースのオープン/クローズをしているようです。
みなさんならどう設計しますか?
意見をおねがいします。
0398nobodyさん
2007/03/23(金) 17:18:28ID:???コンストラクタで接続する人もいるけど
おれはあまり好きではない
エラー処理とかがやりにくいし
データベースのインタフェースに関しては
どっかで生成して、それを各クラスに渡すようにしている
切断に関しては、PHPの場合はよほどのことがない限りは
気にしなくても良いと思う
0399虚弱PHP
2007/03/23(金) 17:35:20ID:???俺はコンストラクタで接続してるな。
Singletonパターンだから、getInstanceメソッドでだけど。
PDOラップしてるんだけど、PDOってcloseメソッドないな。
0400nobodyさん
2007/03/23(金) 17:57:32ID:???スマソ
それ俺
2chはこの板とその板しか見てないから
ってか、なんでいつも足跡つくんだろうな
裏で仕事しながら一日中リロードしてるからかw
0401nobodyさん
2007/03/23(金) 18:04:13ID:???0402nobodyさん
2007/03/23(金) 18:37:54ID:gf3rLLm0レンタルサーバ(XREA+)使っています。
phpからMySQLに接続してデータ入れたいのですが、2byte文字がなぜか入りません。
$data = 'INSERT INTO test_table (`id`, `moji`) VALUES (NULL, \'2byte\')';
これならうまくいくのですが、
$data = 'INSERT INTO test_table (`id`, `moji`) VALUES (NULL, \'あ\')';
これだとエラーはでませんが、なんのデータも入りません。
何が原因だと考えられますか?文字コードはUTF-8で統一しています。
phpMyAdminからの操作だと2byte文字も入ります。
よろしくお願いします。
0404nobodyさん
2007/03/23(金) 18:45:50ID:???0405nobodyさん
2007/03/23(金) 19:47:47ID:gf3rLLm0返信ありがとうございます。
$ID = mysql_connect(localhost,test,testpass);
mysql_select_db("test",$ID);
$data = 'INSERT INTO test_table (`id`, `moji`) VALUES (NULL, \'あ\')';
$result = mysql_query($data,$ID);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
mysql_close($ID);
これを実行後、phpMyAdminで確認してるだけなんですが。。
id moji
1 2byte
2
このように表示されてしまいます。
>>404
返信ありがとうございます。
申し訳ないんですが、設定箇所というのはなんでしょうか?
0406nobodyさん
2007/03/23(金) 20:00:36ID:???気に入らないソースは徹底的に書き直して回答、良い道に進むように導くお仕事をこのスレでしたい。
確認した質問は全てにレス。だめですか?
0407nobodyさん
2007/03/23(金) 20:05:05ID:???mysql_select_db("test",$ID);
↓
mysql_select_db("test",$ID);
mysql_query("SET NAMES utf8;",$ID);
0408nobodyさん
2007/03/23(金) 20:28:30ID:???回答内容が的確で、自信があるならお好きにどうぞ。
ただ、回答者様ぶって偉そうにしてると周りから軽視されます。
0410nobodyさん
2007/03/23(金) 20:40:29ID:gf3rLLm0うおおおおおおありがとうございます!できました!
すげぇややっぱ・・・。あんたらすげぇや。
0411nobodyさん
2007/03/23(金) 21:29:42ID:???phpMyAdminで見ると、UTF-8、EUC-JP、Shift-JIS
全ての文字コードが文字化けする(つД`)
どなたか助けてください
0413虚弱PHP
2007/03/23(金) 21:41:26ID:???0414nobodyさん
2007/03/23(金) 21:52:37ID:???0415nobodyさん
2007/03/23(金) 22:14:32ID:???やっぱり、なんでもかんでも対応させようと言う環境が
逆にとっつきにくくなっているんじゃないかな?
MySQLにしても4.0系だと気にしなくて良かった文字コードが
4.1系以降からしていしないと駄目になったし。
通常のHTMLやPHPファイルにしても、UTF-8にするようにしているが
外部と接続しようとすると、文字化けが発生する。他者はUTF-8でなかったりするし。
0416nobodyさん
2007/03/23(金) 22:21:14ID:???0417nobodyさん
2007/03/23(金) 22:26:55ID:???phpMyAdminはよほど古いものじゃなければSET NAMES発行するらしいから
>>411は格納する段階で失敗してるんだろう
0418nobodyさん
2007/03/23(金) 22:30:44ID:???MySQL」5.0.27
PHP5.1.4
phpMyAdmin2.10.0.2
UTF-8で格納⇒引き出す⇒echoで正常に表示される
UTF-8で格納⇒phpMyAdminで閲覧⇒文字化け
phpMyAdminに追加⇒echoで文字化け
こんな感じっす
0419nobodyさん
2007/03/23(金) 22:40:18ID:mOZgYnP/isset() では「この関数の引数に method return value を使用するな」って怒られます。
宜しければご教示ください。
0420nobodyさん
2007/03/23(金) 22:46:26ID:???http://jp.php.net/manual/ja/function.isset.php
0421nobodyさん
2007/03/23(金) 22:47:10ID:???0422nobodyさん
2007/03/23(金) 22:51:43ID:mOZgYnP/isset が関数であるという点は私の誤解でした、すみません。
引き続き、解答を募集します。。
0426nobodyさん
2007/03/23(金) 23:41:17ID:???マニュアルに変数操作関数ってとこにのってるよ。ちがうの?
0427nobodyさん
2007/03/23(金) 23:54:14ID:???0428nobodyさん
2007/03/23(金) 23:54:51ID:???普通にnullと比較するっていうのはダメ?
>>426
正確には関数ではなくステートメント。
この件ではどうでもいいと思うけどね。
0429nobodyさん
2007/03/23(金) 23:57:39ID:???の言っている意味が良く分からないんだけど・・。
そもそも数値や文字列じゃないものだから駄目って事じゃないの?
0430nobodyさん
2007/03/24(土) 00:21:01ID:???419はある関数が(所謂)void型かどうか知る方法を探している。
そこでissetを試してみたが使えなかった、と。
実行時にそんなものが必要になる作りがおかしいだけって話だと思うけどね。
0431nobodyさん
2007/03/24(土) 00:50:18ID:HwXqd/Doディレクトリなのかファイルなのかを調べたいと思っています。
$dh = opendir("test");
while($file_name = readdir($dh)){
if($file_name != '.' && $file_name != '..') {
if (is_dir($file_name)){
echo "/".$file_name."<br />";
} else {
echo " ".$file_name."<br />";
}
}
}
closedir($dh);
それで上記のようなコードを書いたのですが、ディレクトリとして
認識されたりされなかったりするものがあります。
なぜそういう事になるのでしょうか?もしくは書き方が悪いのでしょうか?
0432nobodyさん
2007/03/24(土) 00:55:30ID:yU007f6l心当たりのある人助言お願いします・・・
PHP、MySQLはUTF-8で統一しています。
phpMyAdminは
$cfg['DefaultLang'] = 'utf-8';
$cfg['DefaultCharset'] = 'utf-8';
となっています。
他に改良する場所があるのでしょうか・・・?
0433nobodyさん
2007/03/24(土) 01:04:03ID:???あ〜、俺も昔悩んだ記憶があるようなないような・・・
とりあえずパスは絶対パスがよかった気がする。
で、ディレクトリはシンボリックリンクになったりしてないか?
>>432
とりあえずBOMをチェックだ
んでMySQLの文字コードだけど設定できる部分は
1箇所じゃなくて4箇所あるぞ。
そもそもMySQLの文字コードはどうっやって確認したんだ?
OSがWindowsだとMySQLのバージョンによってはデフォルト
で存在してるmy.cnfが認識されないものがある。
0434nobodyさん
2007/03/24(土) 01:07:44ID:yU007f6lすんません
良ければMySQLについて詳しく教えていただけませんか?
0435nobodyさん
2007/03/24(土) 01:13:34ID:yU007f6l0436nobodyさん
2007/03/24(土) 01:19:37ID:???使い方は何となく分かったんですが、使いどころがいまいちよく理解できません…。
ユーザーに、AとBとCが間違っているよ!とか表示させたりするのに使う為じゃなくて
開発者が、どこで、どういうルートでエラーが起こったかを把握する為のものなんでしょうか?
0437nobodyさん
2007/03/24(土) 01:33:34ID:???phpmyadmin\libraries\common.lib.phpの515行目付近
if ($cfgServer['controluser'] == '') {
$dbh = $userlink;
}
↓
if ($cfgServer['controluser'] == '') {
$dbh = $userlink;
}
mysql_query("SET NAMES utf8;",$dbh);
これでダメなら知らね。
0438nobodyさん
2007/03/24(土) 01:37:07ID:yU007f6lphpMyAdminのバージョン教えてください><;
2.9では見つからなかったので・・・
0439431
2007/03/24(土) 01:39:38ID:???絶対パスにして
if (is_dir($file_name)){
↓
if (is_dir($file_name) or is_link($file_name)){
としてみたのですが、特に変わりませんでした。。
0440nobodyさん
2007/03/24(土) 01:39:48ID:Xdgvve8z13:30 なら、残り 10.5 時間のような感じです。。。
0441nobodyさん
2007/03/24(土) 01:43:51ID:???俺のは2.2.5だ。MySQL3系しか対応してないらしい。
2.9なら新しいから内部でSET NAMESはしてくれてるんじゃない?
テキスト検索すればあるかどうかわかると思うけど。
もしそれをしてくれてれるんなら別の原因だな。
0442nobodyさん
2007/03/24(土) 01:44:27ID:???ttp://www.php.net/manual/ja/function.date.php
本気で聞いてるなら、決定的に努力が足りない。
0443nobodyさん
2007/03/24(土) 01:44:52ID:yU007f6l恐らく別の原因みたいです・・・
MySQLを3⇒5にしてからこの文字化けが発生しました。
原因はMySQLみたいですが、文字コードをutf8で統一させたのですがorz
0444nobodyさん
2007/03/24(土) 01:44:55ID:???マニュアル:ttp://phpspot.net/php/man/php/ref.datetime.html
その他:ttp://www.res-system.com/item/405
チョットここ見てもうちょっと自分で頑張ってみようぜ!
0445nobodyさん
2007/03/24(土) 01:46:29ID:???これじゃないの?Winならmy.iniだっけ。
http://q.hatena.ne.jp/1168631817
0446nobodyさん
2007/03/24(土) 01:47:15ID:???OK。
OSはWindows?ならちょっとコマンドプロンプトからMySQL起動してみてくれ
んで、「status;」って打ったら文字コードやらなにやら情報が表示される。
ちょっとそれをチェックしてみろ
0448nobodyさん
2007/03/24(土) 01:53:13ID:???Warning だろ読んでるよ。
それを分かってるくさいのに質問してるのが不思議に思ったわけ。
そんなところで困ったことないし。
どんなソースなのか興味は湧く。
0449nobodyさん
2007/03/24(土) 01:53:24ID:???ありゃ駄目だったか
でもCLIで実行したら俺のWindowsXPでは上手く動いたぞ?
以下俺のデスクトップの情報
ディレクトリ:Bob Dylan
ファイル:lovecrimesdsl.wmv
ファイル:Power Tab Editor 1.7.lnk
ディレクトリ:Rainbow
ファイル:test.php
ファイル:Web2.0.txt
ファイル:パスワード関連.txt
ファイル:再インストール.xls
ディレクトリ:黒タイツ・乳
0450449
2007/03/24(土) 01:54:28ID:???0451nobodyさん
2007/03/24(土) 01:54:49ID:yU007f6lおお!
「skip-character-set-client-handshake」
を記述すると、うまいこと表示されました!
有難うございます。
>>446
有難うございます
ですが、コマンドプロンプトでMySQLを実行する方法がわからないのです;;
0453nobodyさん
2007/03/24(土) 02:02:16ID:Xdgvve8z$rest = 24 - date('h') - date('m') / 60 - date('s') / 3600;
こんな感じでしょうか。
ありがとうございます。
0454nobodyさん
2007/03/24(土) 02:08:25ID:???あ〜、ちょと調べてみたんだが
readdirはファイル名のみを返してきて(パスなし)、
is_dirは実行しているPHPファイルからの相対パスを見てるみたいだな
ちょっとコレで試してみて
-----------------------------------------------------------------
// $path変数に検索したいディレクトリの絶対パスを記述してくれ
$path = "/usr/local/apache/htdocs/php/";
$dh = opendir($path);
while($file_name = readdir($dh)){
$file_name = $paht . $file_name;
if($file_name != '.' && $file_name != '..') {
if (is_dir($file_name)){
echo "DIR! - ".$file_name."\r\n";
}
else {
echo "FILE! - ".$file_name."\r\n";
}
}
}
closedir($dh);
0455nobodyさん
2007/03/24(土) 02:11:19ID:???度々スマン
上のソースの5行目
× $file_name = $paht . $file_name;
○ $file_name = $path . $file_name;
だ。
0456nobodyさん
2007/03/24(土) 02:13:14ID:RyeuCbO7Coppermine Photo Galleryというphpアルバムのプログラムがあるのですが
サイトはこちらですhttp://coppermine-gallery.net/
includeで指定をすると反応してくれません。
これを使えるようにするにはどうすればいいかわかる人いませんでしょうか?
0458456
2007/03/24(土) 02:30:07ID:RyeuCbO7ファイルダウンロード先を直リンしておきます
http://sourceforge.net/project/showfiles.php?group_id=89658&package_id=98538&release_id=459442
何か代わりに代替えになるタグとかないでしょうか;;
困りました。。。
0459nobodyさん
2007/03/24(土) 02:38:18ID:???おいいい加減にしろ
hぐらい抜けアホ
しかも全体でファイル数が500ぐらいあるじゃないか
いちいちincludeディレクトリの中身全部調べるのか?
なんでそこまで面倒見なきゃならんのだ
困ったってコレを仕事でやってるのか?
ならスグに仕事辞めろ。お前みたいな奴が居ると
周りの人間が迷惑だ
0460431
2007/03/24(土) 02:41:35ID:???出来ました!つまり、opendirで開いたディレクトリのファイルを
絶対パスにしなければいけなかったと言う事ですね。
参考にします。ありがとうございました。
0461nobodyさん
2007/03/24(土) 02:47:21ID:???製品のページを直リンクしておきます。
これだけで原因を言い当てたら神だろう。
せめてエラーメッセージぐらい書けよ。
>>459
ダウンロードしたのかよ。やさしいな。。。
0462461
2007/03/24(土) 02:51:47ID:???このページ見てたら落ち着いた
ttp://waratanews.blog67.fc2.com/blog-entry-609.html
>>458
この時期だから新卒ではないんだろ?
もう少しプログラミングって言うものになれる必要がある。
今のお前にはまだコレは早すぎるのかもしれないな。
もし本当に仕事なら上司に相談したほうがいいんじゃないのか?
もしくはしっかりエラーを書いてくれ。
0464456
2007/03/24(土) 03:00:50ID:RyeuCbO7そちらのファイルのcpg1410/index.phpだけみてもらいたかったのですが><
説明不足で大変すいません。
後仕事とかではなくてサイト作成を(自分のサイトでアルバムにして公開する予定です)しています。
エラーがでれば調べてかけるのですがエラーがでないんです;;
なのでどうすればいいのかわからなくて聞きました。
記事はこちらにありました。
ttp://fjsk.s39.xrea.com/item_56.html
Coppermine Photo Galleryは相対リンクを基本としているため、includeでの組み込みが出来ません(たぶん)。
こちらの板の方に回避方法を教えてもらいたくて質問させてもらいました。
迷惑をかけて申し訳ありません。
0465461
2007/03/24(土) 03:06:43ID:???index.phpにアクセスするとどうなってるんだ?
俺の予想ではログインページに飛ばされると貸してるんじゃないのか?
0466nobodyさん
2007/03/24(土) 03:06:51ID:???なるほどね。まだ情報が足りないけど俺の勘では
C:\WINDOWS\php.iniを下記のように書き換えてApache再起動。
これでダメなら知らね。
パスはもちろん自分の環境に読み換えてくれ。
include_path = ".;D:\Apache\htdocs\cpg1410"
0467nobodyさん
2007/03/24(土) 03:10:13ID:???>>464
index.phpにアクセスするときindex.php?インクルードファイル.php
ってしないと駄目じゃないの?
0468466
2007/03/24(土) 03:17:52ID:???cpg1410の下にincludeがあるんだから問題ないや。
include_path = "."
これだけで事足りてる。そうなると>>467かな
0470456
2007/03/24(土) 03:28:50ID:RyeuCbO7>>465
index.phpにアクセスすると普通にCoppermine Photo Galleryが表示します。
ですが<?php include("aiueo.php"); ?>とすると何も表示されずソースをブラウザからみると
<?php include("aiueo.php"); ?>とそのまま表示されています
エラーはでておりません。
>>466-468
教えてもらったように実行をしてからまた結果報告をさせて下さい
本当に親切にありがとうございます!
0471nobodyさん
2007/03/24(土) 03:34:11ID:???0472456
2007/03/24(土) 03:36:50ID:RyeuCbO7そしてどういつ鯖に置いているphpではしっかり表示はできています。
設置サイトここにはっても迷惑になりませんか?
0473nobodyさん
2007/03/24(土) 03:45:40ID:???xrea使ってないから知らんけど。
0474nobodyさん
2007/03/24(土) 03:47:51ID:???xreaで設置に関して何か不具合がある場合はたいてい、
・自動挿入される広告を手動挿入にする、
・セーフモードがかかってるのでPHPをCGIとして動作させる。
このどちらかで解決する。
0475456
2007/03/24(土) 03:56:12ID:RyeuCbO7includeで。
一応htaccessでAddHandler application/x-httpd-phpcgi .phpを記述しましたが。
cgiとして動作するのでincludeは呼び出せませんでした。
おとなしくフレームで読みようにします。
アドバイスをくれてありがとうございました!
馬鹿につきあってくれて感謝しています。
これからはROMってここのスレの質問者と同じように勉強をさせてもらいます。
本当にありがとうございました!(ねらーなので毎日チェックをしますw)
0476456
2007/03/24(土) 03:56:48ID:???0477nobodyさん
2007/03/24(土) 04:16:57ID:???ゲームをできるようにしたいのですが、PHPで作成可能ですか?
0479nobodyさん
2007/03/24(土) 04:23:51ID:???即レスありがとうです。
携帯でflashを使うと重くなる、もしくは閲覧できないユーザーが
多いと聞いたのですが大丈夫でしょうか?
0480nobodyさん
2007/03/24(土) 05:09:46ID:???0481nobodyさん
2007/03/24(土) 11:48:11ID:???0482nobodyさん
2007/03/24(土) 11:55:30ID:KoN02Q6Bオブジェクト指向じゃなくてもいいなら大体書けるようになった気がするんですけど、
やっぱりできたほうがいいですよね、、
参考になる本を教えて欲しいです。 よろしくお願いします!! 切実です…
0484nobodyさん
2007/03/24(土) 13:35:29ID:???http://www.amazon.co.jp/PHP%E3%81%AB%E3%82%88%E3%82%8B%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E5%85%A5%E9%96%80-%E4%B8%8B%E5%B2%A1-%E7%A7%80%E5%B9%B8/dp/4798015164
0485nobodyさん
2007/03/24(土) 14:20:19ID:???0486nobodyさん
2007/03/24(土) 14:27:06ID:???0487nobodyさん
2007/03/24(土) 14:38:14ID:???はっきりいってコーディング規約がウンコ
0488nobodyさん
2007/03/24(土) 14:42:05ID:???0489nobodyさん
2007/03/24(土) 14:58:41ID:???0490nobodyさん
2007/03/24(土) 20:54:17ID:BPfRo52SWindowsのGUIアプリケーションを開発できると聞きました。
Linux上で、PHPのGUIアプリケーションを走らせることは不可能でしょうか?
# PHPでGUIアプリケーションを開発するのかよ、という
# つっこみはやめてちょ……
0492nobodyさん
2007/03/24(土) 22:16:24ID:???http://gtk.php.net/
0493nobodyさん
2007/03/24(土) 22:16:36ID:???0494nobodyさん
2007/03/24(土) 22:28:58ID:???つまりはPHPでGUIツールを作りたいってコトだよな?
これはどうだ?
ttp://phpspot.net/php/man/gtk/
0496nobodyさん
2007/03/24(土) 22:34:47ID:???既に取得したデータのサイズを知る方法は手動で計算以外にありますか?
0500nobodyさん
2007/03/24(土) 22:54:08ID:???説明が難しい
PCで言えばキーボード
>>499
既定のサイズを超えたら中止の処理をしたかったもので
もしかしたら中の人が計算してたりするのかなと思ったり
0502nobodyさん
2007/03/24(土) 23:03:18ID:???CLIとかソケットサーバをPHPで立ててれば標準入力になるんでないか?
>>500
CLIだと無理な気がするんだけど、ソケット通信で使うなら出来そうな気がする
0503nobodyさん
2007/03/24(土) 23:13:02ID:???PHPでおでんは作れますか?
0505nobodyさん
2007/03/24(土) 23:30:10ID:???0506nobodyさん
2007/03/24(土) 23:43:00ID:???おでん屋台探してくる!
確か埼玉の川口市にあったはずだ!
0507nobodyさん
2007/03/24(土) 23:47:55ID:???0508nobodyさん
2007/03/24(土) 23:54:28ID:???http://pear.php.net/
ってサーバ飛んでますか?
pearコマンドでも、ブラウザからもpear.php.netが見られないです。
0509nobodyさん
2007/03/24(土) 23:59:28ID:???休日利用のメンテナンスで仕事に出たのに、pearのダウンロードも、できんかって困った。
0510nobodyさん
2007/03/25(日) 00:01:25ID:rXEEfrLaどうやらEUCで保存・出力するのが無難だというようなことをどこかで聞いて、
phpの保存形式も出力も(metaタグ中のcharsetも)EUCにしてるんですが、
それだと携帯サイトを作る時に化けたりするものなんですか?
phpファイルをSJISにして作ってたころ、文字化けを起したことがあって、
それがイヤでEUCに固定したんですが、上の携帯での問題(?)を考えると、
プログラムはEUCで保存して出力はSJISってするのがいいんでしょうか?
その場合には
http://tsuttayo.sytes.net/php/char_trn/ のサイトを参考にしようと思ってるんですが
大丈夫ですかね?
皆さんはどういう形式でそれぞれ文字コードの設定していますか?
今僕がやってる「両方ともEUC」にしてない人がいたら、その理由を教えてくれたら幸いです。
よろしくお願いします。
0513nobodyさん
2007/03/25(日) 00:18:02ID:rXEEfrLaプログラムの保存も、書き出しも両方ともUTF-8ということですか?
0515nobodyさん
2007/03/25(日) 00:21:28ID:qdJaHfbH0517513
2007/03/25(日) 00:43:53ID:rXEEfrLaなるほどー 調べてみたんですが、
http://deztec.jp/lecture/cl/mobile.html のページを見ると、携帯コンテンツを
作るならS-JIS推奨(Utf-8やEUCに対応した携帯が少ないから)でHTML(xhtml)ファイルを
書くようにってあるんですが、たとえば>>514さんの言うようにPC向けにUTF-8がオススメなら、
今世間にあるPC-携帯両環境のあるサービス(アマゾンとか)は
PC->UTF-8 携帯->S-JIS で書き出し(プログラム保存形式はUTF-8で共通)と
いうように環境変数で切り替えてるんですかね?
目茶苦茶メンドクサイですね、、そうでもないのかな
どうせ携帯向けサービスも作るなら同じことってことかなぁ。。
プログラムそのものの保存形式にも再現環境によってお勧めとかあるんでしょうか?
あれ? 端末環境ごとの書き出しが複数あるとしたらphp.iniのmbstring.http_output は
どうしたらいいんですかね? わからなくなってきた、、
S-JISで固めて http://www.syon.co.jp/syontech/tech003.html にあるエラーの対応するのが
一番なのかな??
みんなどうしてるんですか? 暇な人、気が向いたらご意見ください
0518nobodyさん
2007/03/25(日) 00:46:52ID:???0519nobodyさん
2007/03/25(日) 01:10:35ID:???EUC-JP
Shift-JIS
URLエンコードすると全部違うのか
初めて知ったwwwwwwww
0520nobodyさん
2007/03/25(日) 01:13:00ID:???0521513
2007/03/25(日) 01:24:53ID:rXEEfrLa0522nobodyさん
2007/03/25(日) 02:40:29ID:???PHP6はいつ正式版でるんだ?早く使いたくてうずうずしてるぜ!
0523>>513
2007/03/25(日) 02:47:40ID:07q9VATM携帯用ページのみ、出力する直前でSJISに変換が基本じゃないでしょうか?
めんどくさいなら
携帯用ページが入ってるディレクトリの出力を
.htaccessとかでmb_output_handlerを使ってSJISに変換するようにしたら楽じゃないかな?
試したことないけど、きっとうまくいくはず・・・
output_handlerあたりを調べると良いかも
内部エンコードSJISにしたり、PHPファイルをSJISにするのはやめた方が良い。
あれは悪魔のコードだから
0524nobodyさん
2007/03/25(日) 02:55:24ID:???デバイスによって出し分けるのはそんなに
面倒ではない
出力するときに、文字コードを変換して出力
すればいいだけだから
0525nobodyさん
2007/03/25(日) 02:59:20ID:07q9VATMDBにパスワード平文で保存してます?
セキュリティ的にMD5で保存しちゃおうかと思ってるんだけど、
そうすると、パスワード解らなくなった人がいたとき、使っていたパスワードはわかりませんよね?
なくした場合は、再発行になるじゃないですか?
まあ、それ自体は特に問題ない気もするけど・・・
管理者が、パスワードがなにか解らなくなるコトって、なんか、他に問題とかありますか?
一般的には、どっちなんでしょうか?
微妙にすれ違いっぽいけど、意見ありましたらお願いします。
0526nobodyさん
2007/03/25(日) 03:23:49ID:pIr3ekUbどうすればいいでしょうか。クッキーも使えるといいです。
あと隠しアイコンとかできますか?
0527nobodyさん
2007/03/25(日) 03:24:18ID:???他の情報(誕生日だの何だの)を使って上書きできるようにすればなくしても大丈夫
msnとかがこの方式だった気がする
0528nobodyさん
2007/03/25(日) 07:47:23ID:???>管理者が、パスワードがなにか解らなくなるコトって
これはこの手のシステムを作るとき当たり前。
そしてハッシュ化して保存するのも当たり前。
0529nobodyさん
2007/03/25(日) 08:01:02ID:???問題ないよね。ユーザーが「パスワードわからなくなった。押しエロやコラ」
っていってきたら新たにパスワード発行して「これをつかってよね」って
言えばいいだけだしね。
0530nobodyさん
2007/03/25(日) 08:19:54ID:???そのパスワードって、どの段階でハッシュ化します?
クライアントサイドでPASSをハッシュ化して、送信するか
サーバーサイドでPASSを受信してハッシュ化するか。
前者は、ハッシュそのものがパスワードになってるから、ナンセンスな気がするし
後者は、PASSそのものを送信するのが問題だと考えるならば…。
0531nobodyさん
2007/03/25(日) 08:26:16ID:???0532nobodyさん
2007/03/25(日) 08:28:04ID:???それが叶わないのならJavaScriptを必須にして、
適当なsaltを送って入力されたパスワードとsaltを使ってハッシュを生成して送るようにするかな。
この方式はやったことないけどね。
0533513
2007/03/25(日) 08:42:05ID:rXEEfrLaありがとうございました。
手元の本を見るとS-JISで書き出ししてたりするので迷ってました。
>>523さんのやり方でトライしてみます
0534nobodyさん
2007/03/25(日) 09:34:30ID:???PCにUTF-8を送る必要ないっしょ。
0535nobodyさん
2007/03/25(日) 09:48:51ID:???http://www.google.com/search?q=Bambalam+PHP+EXE
PHP用のコンパイラ PHPのソースから .exeにコンパイルしてwindows上で
動作できるようになる。
0536nobodyさん
2007/03/25(日) 10:07:09ID:pIr3ekUb0537nobodyさん
2007/03/25(日) 10:15:30ID:???都合の悪いケースが想定できるならシステムで防ぐのが良い。
ナンセンスな対策ってのは全く効果が無い場合と
もっと重大なセキュリティホールを放置してる場合。
>>532
もう1歩先まで実装をシミュレートしてみな。
0538nobodyさん
2007/03/25(日) 10:18:44ID:???偉そうな人。職場で自分が言われてることをここでオウム返しして発散
0539nobodyさん
2007/03/25(日) 10:30:46ID:???0540nobodyさん
2007/03/25(日) 10:31:59ID:???0541nobodyさん
2007/03/25(日) 10:44:53ID:???0542513
2007/03/25(日) 11:21:45ID:???SJISだと、フォーム送信した時に特定の文字が化けるとかのエラーがあると思うんですけど
(もちろん解決策はあるみたいですが)いっそのことSJIS避けたほうが良くないですか?
携帯はSJISでないと対応する文字コードがないみたいで仕方ないからそうしますが…
0543nobodyさん
2007/03/25(日) 11:28:22ID:???職人さんをさがしたいのですが、HPとかありますかね?
0544nobodyさん
2007/03/25(日) 11:31:35ID:???$sunday = date(d,time())-date(w,time());
if($sunday <=1) {
echo 1;
} elseif(fmod($sunday,7) == 1) {
echo ceil($sunday/7);
} else {
echo ceil($sunday/7)+1;
}
0545nobodyさん
2007/03/25(日) 11:31:37ID:???ちがう。内部コードやDBはUTF-8でいいけど
出力は携帯用にSJISにするんだからPCへの出力もSJISでいいじゃんってこと。
振り分ける手間が面倒じゃないなら振り分けてもいいけど。
0546nobodyさん
2007/03/25(日) 11:33:40ID:???0547nobodyさん
2007/03/25(日) 11:37:16ID:???そんなの基本処理する文字コードがなにかに依存すること。
特異例の携帯だけSJISで送って、あとは基本コードの方で処理するのが普通。
特異例にあわせてどうする。
0548513
2007/03/25(日) 11:44:39ID:???そっか、エラーの元になるSJISって内部コードの方か…
スゴイ馬鹿でした なるほどー
色々確認してどの形式がいいのか試してみますね ありがとう
0550nobodyさん
2007/03/25(日) 11:48:56ID:???あんたの中ではPCが標準で携帯が特異例なのか。
User-Agentこねくりまわすコードが書きたければ勝手にどうぞ。
0551nobodyさん
2007/03/25(日) 13:16:19ID:07q9VATMテンプレートのコンテンツタイプがSJISで、エンコードはUTF8
とか、訳のわからないことにならない?
デザイナがその辺の事情良くわかってる人なら良いけど
文字化けしたまま保存しちゃって、テキスト打ち直しなんてことも・・・
文字コードめんどくさいよ
携帯もUTF8で統一されないかな
0553nobodyさん
2007/03/25(日) 14:32:46ID:???phpおよびMySQLで、文字コードをutf8に統一し、
phpmyadminからmysqlにアクセス時にエラーが発生し、
phpmyadminが使えないという問題を起こしています。
既出かも知れませんが、ぐぐってみていろいろ設定を
試したのですが、解決できないでいるので、
どなたか解決法をご教授ください。
phpmyadminにて、何か値の入っているテーブルを選んで、
「表示」タブをクリックします。
すると、Apacheが
File 'C:\mysql\\share\charsets\?.conf' not found (Errcode: 22)
Character set '#33' is not a compiled character set and is not
specified in the 'C:\mysql\\share\charsets\Index' file
というエラーログを出して終了します。
下に環境や設定を列挙しますが、エラーは回避できないものなのか、
回避できるのであればどんな設定をすればよいか知りたいです。
0554553
2007/03/25(日) 14:34:07ID:???Windows XP SP2
MySQL version:5.0.37(setup.exe使用のインストール)
PHP Version:5.2.1
Apache version:2.0.52
phpMyAdmin version:2.9.1.1
<設定:関連しそうなところのみ>
(httpd.conf)
AddDefaultCharset UTF-8
(phpmyadmin/config.inc.php)
$cfg['DefaultCharset'] = 'utf-8';
$cfg['Lang'] = 'ja-utf-8';
$cfg['DefaultConnectionCollation'] = 'utf8_unicode_ci';
0555553
2007/03/25(日) 14:34:57ID:???mysql.default_charset = UTF-8
[mbstring]
mbstring.language = neutral
mbstring.internal_encoding = UTF8
mbstring.http_input = auto
mbstring.http_output = UTF8
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;
0556553
2007/03/25(日) 14:35:40ID:???[mysql]
default-character-set=utf8
[mysqldump]
default-character-set=utf8
skip-character-set-client-handshake
[mysqld]
default-character-set=utf8
mysql> SHOW VARIABLES LIKE 'char%';
+--------------------------+--------------------------+
| Variable_name | Value |
+--------------------------+--------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:\mysql\share\charsets\ |
+--------------------------+--------------------------+
0557nobodyさん
2007/03/25(日) 14:50:44ID:???0558nobodyさん
2007/03/25(日) 14:55:28ID:/8MzPaJsapache標準の404ページでリダイレクトさせる時は
どのように書けばいいですか。
0559558
2007/03/25(日) 14:58:15ID:???×404ページで
○404ページへ
0560nobodyさん
2007/03/25(日) 15:31:34ID:???phpMyAdminが何気に挙動不審だな
0561nobodyさん
2007/03/25(日) 16:03:05ID:kikNO+suPHP Version 5.2.1
mysql5.037
PHPからmysqlへ送信された文字が登録されません。
半角英数字だと登録されるのですが、日本語が入るとダメです。
コマンドプロンプトからはsqlへ日本語登録できます。
どちらもshiftジスに設定しているはずなのですが・・・
どこらへんが悪いのか教えてください。
0562nobodyさん
2007/03/25(日) 16:39:07ID:???上手く行ってないと思うのですが、どこが間違ってるんでしょうか?
$dat = file($log) or die("FILE_LOG のオープンに失敗しました。");
list($key, $yes, $tod, $all)=explode("|", $dat[0]);
if($key == $now_date){
$tod++;
}else{
$yes = ($key == $yes_date) ? $tod : 0;
$tod = 1;
}
$all++;
$new = implode("|", array($now_date,$yes,$tod,$all));
$fp = fopen($log,"w") or die("FILE_LOG のオープンに失敗しました。");
flock($fp, LOCK_EX);
fputs($fp, $new);
flock($fp, LOCK_UN);
fclose($fp);
0563nobodyさん
2007/03/25(日) 16:54:50ID:???この返り値を確かめてみたことあるの?
0564nobodyさん
2007/03/25(日) 16:57:33ID:???たぶんエスケープか、文字コードの設定自体の問題
>>562
$keyとか$todとか、変数名の意味がさっぱりわからないので、解読を断念した。
とりあえず、排他制御はファイルを読む部分と書く部分を全体を括らないと。
0565nobodyさん
2007/03/25(日) 16:57:44ID:lRVUjXL5php5使ってます。
0566nobodyさん
2007/03/25(日) 16:59:05ID:lRVUjXL5連続して fopen(), fwrite(), fclose() をコールすることと等価です。
0568nobodyさん
2007/03/25(日) 17:42:20ID:lRVUjXL5あのな、排他制御じゃ壊れるよ。
それはおれが一個か二個ぐらい前スレで実証検証したからよくわかる。
完璧をもとめるならrmdirつかえ
0569nobodyさん
2007/03/25(日) 17:50:30ID:???0570nobodyさん
2007/03/25(日) 18:13:27ID:OUViY8id行ってくれるスクリプトを公開しているサイトってありませんかね?
0571nobodyさん
2007/03/25(日) 18:15:18ID:???0572nobodyさん
2007/03/25(日) 18:47:45ID:???0573nobodyさん
2007/03/25(日) 19:09:48ID:JTtYDnwD日本語が全て???になってしまうのですが、何か対処法はないのでしょうか?
0574nobodyさん
2007/03/25(日) 19:18:35ID:tzkd3AeIhttp://pc11.2ch.net/test/read.cgi/php/1137614836/233-244
上のスレで可能って答えをもらったんですが、方法がいまいちよくわからないので質問させていただきます。
現在htmlのみで構成されたサイト(掲示板じゃないです)を運営してるのですが、
これにBBQを使った回覧アクセス規制を導入したい場合、どのようにするべきなのでしょうか?
実際にブログ、掲示板以外でBBQでアクセス規制されてる方がいらっしゃいましたらご教示願います。
0575nobodyさん
2007/03/25(日) 19:19:19ID:???0576nobodyさん
2007/03/25(日) 19:19:38ID:???スレ違い
http://food8.2ch.net/test/read.cgi/cook/1161248583/
0577nobodyさん
2007/03/25(日) 19:19:50ID:???0578nobodyさん
2007/03/25(日) 19:20:29ID:???0580nobodyさん
2007/03/25(日) 19:23:02ID:JTtYDnwDmbstring.http_output UTF-8
mbstring.internal_encoding UTF-8
です。
ググったり、したのですが解決できていません
0581nobodyさん
2007/03/25(日) 19:27:23ID:???氏ね
0582nobodyさん
2007/03/25(日) 19:31:44ID:???スルーしとけや
0583573
2007/03/25(日) 19:33:58ID:JTtYDnwD0585nobodyさん
2007/03/25(日) 19:36:12ID:???0586nobodyさん
2007/03/25(日) 19:40:44ID:???PHPで彼女とアナルマンコしたいけどできる?
ローカルでとりあえずやりたいんだけど?
0587nobodyさん
2007/03/25(日) 19:44:26ID:tzkd3AeI0588nobodyさん
2007/03/25(日) 19:50:52ID:???0590573
2007/03/25(日) 19:53:40ID:JTtYDnwDPHP 5.1.2
MySQL 4.1.16
Localhost via UNIX socket
因みにレンタル鯖です。
0592nobodyさん
2007/03/25(日) 20:29:41ID:???[mysqld]に
skip-character-set-client-handshake
を付け加えたいんだが・・・
0593nobodyさん
2007/03/25(日) 20:30:14ID:???0594nobodyさん
2007/03/25(日) 21:05:19ID:cLfz7IBfおかしくね。今日が第5週ってなるけど4週目だろ
0595nobodyさん
2007/03/25(日) 21:26:18ID:???レン鯖じゃ無理だろな〜
自分専用で使えるならPHPからmy.cnfをファイルとして普通に読み込んでmy.confに
skip〜を追加して保存する。
で、さらにPHPからMySQL再起動用のシェルを叩いてあげる。
※外部コマンドは下のどれかを使えば叩ける。
1.system()
2.exec()
3.popen()
4.shell_exec()
5.paththru()
0597nobodyさん
2007/03/25(日) 22:12:48ID:???php image automatic correctionとかでググってみましたが探せませんでした
URLは覚えていらっしゃいませんか
0598nobodyさん
2007/03/25(日) 23:47:08ID:???英語サイトで探せよw
0599nobodyさん
2007/03/26(月) 00:48:54ID:X7UJxPSOIIS6.0 + PHP5.2.1(isapi版)で、別のWindowsマシン上の共有フォルダから
データを読み込みたいのですがエラーが帰ってきます。
ローカルPCにUSBメモリなどを刺して、試した場合は正常に動くのですが。
共有フォルダをz:ドライブに割り当てて、アクセス権もEveryoneがフルコントロールと
してあるのですが、何がわるいのでしょうか?
<?php
if ( file_exists("z:/test.txt") ) {
print("ok\n");
} else {
print("error\n");
}
?>
0600nobodyさん
2007/03/26(月) 01:23:11ID:???また「エラーが出る」かよ・・・
どのエラーなんだ?
「error」が出力されるのか?
それともPHPのFatalとかがでるのか?
0601nobodyさん
2007/03/26(月) 01:26:35ID:???せめてhttp://php.net/file_existsの上の方だけでもいいので、読んできてください。
0602nobodyさん
2007/03/26(月) 01:26:48ID:???0603nobodyさん
2007/03/26(月) 03:55:17ID:HH6q3gp6当方、HTTPに関する知識が「telnetでget/http/1.0」ぐらいしか無い物で、fsockopenを使用する手法だと大分勉強が必要になりそうなので悩んでいます。
0604603
2007/03/26(月) 04:13:14ID:HH6q3gp6スレ汚し申し訳有りませんでした。
0605nobodyさん
2007/03/26(月) 04:28:33ID:waVUTaj2mysqli関数を使おうとしたらエラーがでて、調べてみると使えるようにするために
php.iniの変更とlibmysql.dll が必要というようなことが書いてありました。
このlibmysql.dll というのはどこかでダウンロードするものなんでしょうか?
僕の勘違いでしょうか。
http://php.morva.net/manual/ja/ref.mysqli.php を参考にしてるんですが
良くわかりません
どなたかよろしくお願いします。
0606nobodyさん
2007/03/26(月) 04:36:45ID:???WindowsXP?
PHPのディレクトリのどっかにあるだろ?
それをsystem32ディレクトリにつっこむだけ
0607605
2007/03/26(月) 10:53:33ID:waVUTaj2windows XP APACHE2 PHP5.2 MYSQL5 でmysqliを使ったプログラムを
動かそうとしていますが、動きません。
>>606さんの言うとおり、system32ディレクトリにlibmysql.dllを置いてあるんですが、
プログラムを実行したら
Fatal error: Class 'mysqli' not found in C:\Program Files\Apache Group\Apache2\htdocs\php5_samples\my_sample\chap3\grhCnt\counterUp.php on line 2
というエラーがでます プログラムは以下のようなものです。(カウンターです)
<?php
$db = new mysqli("localhost","root","xxxx","php5");
$stt = $db->prepare("SELECT*FROM c3_access_counter WHERE url=?");
$stt -> bind_param("s",$_SERVER['SCRIPT_NAME']);
$stt -> execute();
if($stt->fetch()!==TRUE){
$sql = "INSERT INTO c3_access_counter(url,cnt) VALUES(?,1)";
}else{
$sql = "UPDATE c3_access_counter SET cnt=cnt+1 WHERE url=?";
}
$stt -> close();
$stt2 = $db->prepare($sql);
$stt2 -> bind_param("s",$_SERVER['SCRIPT_NAME']);
$stt2 -> execute();
$db -> close();
?>
どこが問題でしょう? php.iniの設定の問題でしょうか?
0608nobodyさん
2007/03/26(月) 11:01:41ID:???この一行目もわからん奴には無理
0609nobodyさん
2007/03/26(月) 11:07:59ID:???こちらを参考にRSSリーダーを自サイトにつけようとしています。
サイトはShift_JISなので、11.文字コードについて を見て
Shift_JISに対応したコードをつけたのですが、
文字が全部??????になってしまいます。
Shift_JIS環境で文字化けを起こさせないためにはどうすればいいでしょうか。
0610609
2007/03/26(月) 11:10:29ID:???0611nobodyさん
2007/03/26(月) 11:11:02ID:???0613nobodyさん
2007/03/26(月) 11:50:31ID:???0614605
2007/03/26(月) 12:01:20ID:waVUTaj2php.ini の設定を調べたところ、extension=php_mysqli.dll が抜けてたので
追加しました。
するとエラーの警告が先ほどのから
Fatal error: Call to a member function bind_param() on a non-object in C:\Program Files\Apache Group\Apache2\htdocs\php5_samples\my_sample\chap3\grhCnt\counterUp.php on line 4
に変わりました
今度こそ意味がわかりません どなたかアドバイスお願いします
>>612
どういうことでしょう? 普通にmysqlのselect_dbとかでやっていったほうがいいと
言うことでしょうか? PDOとかについての解説がこのスクリプトに載ってた本に
掲載されてないんです。。 初心者向きみたいな表紙なのに。
本買いなおそうかなぁ…
0617nobodyさん
2007/03/26(月) 12:22:15ID:???0618nobodyさん
2007/03/26(月) 12:23:04ID:xIID0APdsimplexml_load_stringでパースしたデータを通常の配列みたいに
foreach($result as $key => $value){
print $key . $val;
}
で、やろうと思ったのですが… いまいち不発… $key(添え字)はこちらで指定しないと値が取れないのでしょうか?
0621nobodyさん
2007/03/26(月) 12:38:25ID:???0625nobodyさん
2007/03/26(月) 12:52:41ID:???0626nobodyさん
2007/03/26(月) 12:55:17ID:???0627nobodyさん
2007/03/26(月) 12:59:13ID:xIID0APd>620
ありがとうございます。お陰で自分の間違いに気がつきました
>621
む〜 まぁそだねぇ;; 添え字つけたら値が取れて、ただ自分の望んだ結果にはならなかったから、いまいち…w
>622
ありがとうございます。速攻勉強します
>623
そんなオチじゃなくてすんませn
しかし、XMLを見直すと、連想配列に配列4階層入ってる… これを汎用的に作るのかぁ… やヴぇぇなかなかしんどそうw
0628nobodyさん
2007/03/26(月) 13:02:25ID:???0629nobodyさん
2007/03/26(月) 13:09:42ID:???>>151は言いたいことそのものは合ってるが例示だけ不適当
「http://dailynews.yahoo.co.jp/fc と打ち込んでも http://dailynews.yahoo.co.jp/fc/ になってて…」
なら正しいかと
この場合なら /fc にアクセスされた時点で301を返して /fc/ に飛ばす
あと対処法がLocation:で飛ばすだけというのも正しい
0630nobodyさん
2007/03/26(月) 13:13:06ID:jn+p2f5Cインスタンス化していないクラスのメソッドを呼び出すとそんな感じのエラーが出る
初心者向けの本で、ソースがそのまま動かないのって腹立つよね。
別にあおりとかじゃなくて
そのエラーの意味が分からないのにデータベースに手を出すのは早すぎはしないか?
基本的なとこクリアーしてからのほうがいような
でも、基礎ってツマンナインダヨネ
なんか動くもの作った方がたのしいし
まあ、がんばってくれ
0631605
2007/03/26(月) 13:53:23ID:???ご丁寧にありがとうございました やはり実力不足と実感しました。
以前に
mysql_connect("localhost","root","****");
mysql_select_db("memo");
$sql = "insert into momosample values (0, '$tourokubi', '$title', '$honbun', '$keyword')";
という形式でのmysqlとの連携の雑記帳アプリを(本を見つつ)作ったことが
あったのでトライしたんですが、
mysqli() のパターンになったとたんさっぱりわからなくなりました。
それをフォローする本をきちんと買いなおして勉強しなおします
ありがとうございました
0632nobodyさん
2007/03/26(月) 14:14:41ID:???0633nobodyさん
2007/03/26(月) 15:20:16ID:FX6c9VSLttp://bright-zero.com/kakaku/svrchk/svc.cgi
こんな感じのスクリプトをPHPで書きたいのですが
サーバの生死チェックはどう書けばいいのでしょうか?
0636nobodyさん
2007/03/26(月) 16:06:34ID:9wWutSWXhttp://pc11.2ch.net/test/read.cgi/mac/1164727549/l50
0637nobodyさん
2007/03/26(月) 16:53:20ID:???どうすればわたってくるのでしょうか?
また、HTMLソースもEUCです。
携帯 EUC 等でググって見たんですがどうも分かりませんでした。
0638nobodyさん
2007/03/26(月) 16:54:59ID:???0640nobodyさん
2007/03/26(月) 17:06:45ID:???ただ絵文字はどうしても破壊されてしまうようです。
皆さんは携帯サイトを構築する時どうしていますか?
PHPソースとHTMLソースをSJISにするのは問題が起こるので避けたいです。
0641nobodyさん
2007/03/26(月) 17:06:51ID:???0642nobodyさん
2007/03/26(月) 17:11:01ID:???0647nobodyさん
2007/03/26(月) 17:18:48ID:???EUCとSJISは不可能なんだよ
UTF-8おとなしく使え
エンコードする時sjis-winにするの忘れるなよ
0648nobodyさん
2007/03/26(月) 17:59:21ID:2dRnTrwn携帯ユーザー用に名前変換サイトを作ろうとしています。
そこで、JAVAスクリプトではなくphpを使ったもので単語を変換させようと思っています。
forest pageのような仕組みにしたいのですが…
今PCサイト用に借りている鯖でそのような技はできるのでしょうか?
色々とキーワードを変えてググってみたのですがそのようなスクリプトを配布しているところは皆無でした…
お暇な方、回答よろしくお願いします。
0649nobodyさん
2007/03/26(月) 18:15:01ID:???0650nobodyさん
2007/03/26(月) 18:34:20ID:???それを戻り値で返してもメモリ的には参照だからおkって理解でよろしいですか?
0653nobodyさん
2007/03/26(月) 18:41:24ID:???気になってググってみた。腐女子機能だwこんなの人気あるんだなあ・・・
ttp://id7.fm-p.jp/book/name_make.php?uid=moondragon&dir=1&bnum=9&num=1&mem_pw=
単にFORMで名前送ってキャラ名書き換えるだけの話しw
0655640
2007/03/26(月) 19:09:04ID:???DoCoMo絵文字はお教えいただいたやり方で変換まで出来ました。
ただauがんなぜかできません…
$moji = mb_convert_encoding($moji, 'sjis-win', 'UTF-8');
これをpackでチェックしているんですがうまく変換されず??になってしまうんです。
今一度知恵をお貸しください。
0657640
2007/03/26(月) 19:27:40ID:???それができないんです… こんな感じなんですが
$str = mb_convert_encoding($str, 'sjis-win', 'UTF-8');
$str = unpack("C*", $str);
$len = count($str);
$buff = "";
$n = 1;
while($n <= $len) {
$ch1 = $str[$n];
$ch2 = $str[$n+1];
echo "?".dechex($ch1).dechex($ch2).';<br>';
if(($ch1 == 0xF3) || ($ch1 == 0xF4) || ($ch1 == 0xF6) || ($ch1 == 0xF7) ) {
if($opt){
$du = strval(dechex($ch1)).strval(dechex($ch2)) ;
$buff .= "?".strtoupper($du).";" ;
}
$n++;
}
// 2バイト文字の処理
elseif(((0x81 <= $ch1) && ($ch1 <= 0x9f) ) || ((0xe0 <= $ch1) && ($ch1 <= 0xfc))){
$buff .= pack("C", $ch1) . pack("C", $ch2);
$n++;
}
else
$buff .= pack("C", $ch1);
$n++;
}
return mb_convert_encoding($buff, 'UTF-8', 'sjis-win');
0658nobodyさん
2007/03/26(月) 19:50:08ID:???PHPの関数でできることはなるべくそちらでやったほうがいいですか?
0659nobodyさん
2007/03/26(月) 19:57:57ID:???まだアイディアレベルなので作っていないのですが、
下記のような事をphpで行いたい場合何かいい方法はないでしょうか?
サイトA
サイトB
サイトC
サイトD
に対して チェックボックスで選択した所にのみ
その他のinputやradioで入力したデータを
変換してpostしたいと思っているのですが何かいい方法はないでしょうか?
一応自分なりに考えてみたのですが、
1、いったんDBに格納する
2、cronで60秒ごとに新しいデータが入ってるかどうかをチェックする
3、2で新しいデータが入っていれば各サイトにデータを登録しに行く
以上 拙い文章ですがご指導おねがいします。
0660虚弱PHP
2007/03/26(月) 20:20:15ID:???SJISでもデリミタをオーバーライドすれば大丈夫だと思うけど?
まあ、SJISは出力だけにしといた方がいいのは確かだけどね。
0662nobodyさん
2007/03/26(月) 20:35:45ID:???Javaの場合はCSVデータや画面の入力項目・設定ファイルなど、データ構造があるものはほぼなんでもクラスにして操作するのが基本ですが、PHPの場合は連想配列で済ますケースが多い気がします。
というか、今僕が引き継いでるソースが正にそうで、フィールドが20個以上あっても配列で操作していて違和感を感じます。
JavaでHashMapを使うときは相当の理由がないと嫌がられるんですよね。
ただ、PHPだとアクセッサ書くのも面倒だし(いちいち$thisとかありえない)、静的初期化子はなかったりで不便な点が多いこと、配列は配列でimprodeとかmergeとか色々便利なメソッドがあるので連想配列の意義も十分あると思います。
要するにPHPのスタイルがよく分かっていないのですが、値を格納する目的のみでクラスを作成することはほとんどないのでしょうか?
0663nobodyさん
2007/03/26(月) 20:46:40ID:???そんなもんケースバイケースってのはおまえもわかってるんだろう
引継いだ担当に文句を言え
一般的な事を言うとPHPはJavaと違って純粋なOOPじゃなくネイティブな型もあるから
ハッシュで済ませれるものに無理にクラスを作成する必要がない
郷に従うためにPHPのライブラリやフレームワークのソースでも嫁
0664nobodyさん
2007/03/26(月) 20:57:51ID:???実装すればいいじゃん。そんなに配列嫌いなら。たいした手間じゃないでしょ
0666nobodyさん
2007/03/26(月) 21:15:46ID:???どういうメソッドなんだろう
0668nobodyさん
2007/03/26(月) 21:25:36ID:???クライアントから直接じゃなくて、そのスクリプトが動いてるホストから投げたいんだろう。
でも、そんなのも簡単だから、もっと深遠な理由があるのかとも思うが。
0669nobodyさん
2007/03/26(月) 21:43:50ID:SGIdvIJMFeed2jsを導入しました。
ところが、以下のような問題に当たり困っています。
どこをどうすればよいでしょうか。
貼り付けたいサイトの文字コード:Shift_JIS
サーバーOS:Linux
スクリプト改造箇所:RSSフィードのShift_JIS化
→mb_convert_variables("SJIS","UTF-8",$rss); の追加
1)build.phpで作成したコードのうち、SRC以下のアドレスを
別のJava Scriptから読み出すと、日本語が全て「?????」となる。
アドレスバーにそのURLを打った場合も同様
2)build.phpで作成したコードをそのままHTMLファイルに貼った場合
「表示」などの漢字が文字化けする。
PerlCGIでShift_JISを使う場合と全く同じ化け方です。
CGIなら""を''にするとか\を入れるとか、回避方法がありますが、
PHPの場合はどうすればいいでしょうか。
0671nobodyさん
2007/03/26(月) 22:18:07ID:???面白そうなスクリプトなのでFeed2jsをダウンロードして試してみた。
のぞいた限り、サーバー側のヘッダの送出コードがUTFを明示指定してないだけだと思うよ。
たとえば
>アドレスバーにそのURLを打った場合も同様
時にブラウザの文字コード指定をUTFに変更してみて直るようだったら
そこらへんの問題だとほぼ特定できる。
0672nobodyさん
2007/03/26(月) 22:39:52ID:???mb_convert_variables("SJIS","UTF-8",$rss);
として、UTFを強制選択させれば多分いけるはず。
【予想理由】
mb_detect_order未指定のばあい
$code = mb_detect_encoding($rss);
die($code);
を調べるとASCIIになる。=>mb_convert_variablesは単なるそれをpassするだけ
0673432
2007/03/26(月) 22:42:22ID:???my.ini編集できないからオワタwwwwww
0674nobodyさん
2007/03/26(月) 22:50:46ID:???ユーズキャラクタセットすれwwwwww
0676nobodyさん
2007/03/26(月) 23:03:35ID:???0678nobodyさん
2007/03/26(月) 23:11:50ID:???0680nobodyさん
2007/03/26(月) 23:43:33ID:???0682nobodyさん
2007/03/26(月) 23:48:18ID:???マチガッテタwwwwユーズじゃなかったwww
PHPで接続した直後にSQLを打つwwww
SET NAMES キャラクターセット名でwwwwww
てかここもうテンプレ要れようぜwwww
http://www.mysql.gr.jp/frame/modules/bwiki/?FAQ
0683nobodyさん
2007/03/26(月) 23:50:36ID:???0686669
2007/03/27(火) 00:40:13ID:???調べてやってみます。
>>671
エンコードを何にしても、「?????」のままです。
全角数字は半角数字に、「!」は「!」になっています。
>>672
やってみましたがダメでした。
#build.phpが吐き出すタグをそのまま貼った場合は大丈夫です。
0688669
2007/03/27(火) 00:46:10ID:???>別のJava Scriptから読み出すと
これで何をやってるかと言うと、
Shift_JISのHTMLファイルに、セレクトボックスを設置してあり、
そのセレクトボックスに複数のRSSを設定、選ぶとそのHTMLファイルの
特定の場所に表示させる形をとっています(この切り替えがJavaScript)。
これで表示させようとすると日本語が「??????」になってしまうのです。
この切り替え自体はうまくいっていて、「RSSリ○ティング」等似たような
サービスを利用した場合はこのような文字化けはありません。
ただし何も表示されないことがあるので、自鯖に・・・と・・・。
0689nobodyさん
2007/03/27(火) 01:00:45ID:???0691nobodyさん
2007/03/27(火) 01:06:45ID:???0692nobodyさん
2007/03/27(火) 01:18:38ID:yzdV0dteASP.NETから移行しようと現在勉強中です。
ASP.NETで言うと各ボタンヲクリックしたときのイベントをそれぞれ記述すればOKですがPHPですと
POSTで処理しようとするとどのボタンを押しても同じ処理が行われるみたいで困ってます。
そういった仕様なのでしょうか?
あるいは各ボタンのイベント処理はできるのでしょうか?
0693nobodyさん
2007/03/27(火) 01:20:02ID:z8CJxUFKpreg_match($pattern,$text)ってかいても大丈夫でしょうか?
0694nobodyさん
2007/03/27(火) 01:20:59ID:???0695nobodyさん
2007/03/27(火) 01:27:49ID:???0698nobodyさん
2007/03/27(火) 02:02:20ID:???<input type="submit" name="btn1" value="submit1">とすりゃ$_POST['btn1']に"submit1"が入る。
0699692
2007/03/27(火) 02:08:05ID:???なんとなくイメージしたものをやってみたら出来た
そしてお礼を言おうとこのページを開いたら>>698と同じだった
いまいち自信がなかったのですがこれで安心して先に進めます。
各位ありがとう御座いました。
0700nobodyさん
2007/03/27(火) 02:38:10ID:tdPy0bax何かいいソフト無いでしょうか
くだらない質問ですみませんorz
0701nobodyさん
2007/03/27(火) 02:41:51ID:???0703nobodyさん
2007/03/27(火) 02:52:23ID:???いろいろ試してるんですがなかなか上手くいかなくて・・
0705nobodyさん
2007/03/27(火) 03:19:28ID:???やはりその方法しかないですかね・・
データが多かったので出来ればループは避けたかったのですが、
2007から1970まで戻って曜日が一致したらループから抜け出せばそんなに重くならなさそうなのでその方法でやってみます。
ありがとうございました。
0706nobodyさん
2007/03/27(火) 03:26:34ID:???それだとボタンの表示テキストが不自由だけどな。
[登録]
だったらvalue="登録"にしないといけない。
そしておまえらの大好きな文字コードの問題にぶちあたるかもね。
0707nobodyさん
2007/03/27(火) 03:36:43ID:???UTF-8になってるのね。
ということはやっぱりRedHatもか?
0708nobodyさん
2007/03/27(火) 04:14:38ID:???0710nobodyさん
2007/03/27(火) 10:32:11ID:???ブラウザが勝手にエンコードをUTF-8にしてしまう・・・。
なぜだ・・・
0711nobodyさん
2007/03/27(火) 10:40:09ID:???0712nobodyさん
2007/03/27(火) 10:40:23ID:???0713nobodyさん
2007/03/27(火) 10:44:17ID:???俺はvalueの値に縛られるのが嫌なんで、
無い頭で考えて結局こうしてる。
<input type="submit" name="submit[btn1]" value="登録">
<input type="submit" name="submit[btn2]" value="削除">
で、list($submit,) = each($_POST['submit']) で何が押されたかを取得。
0714nobodyさん
2007/03/27(火) 10:51:05ID:???0715nobodyさん
2007/03/27(火) 10:57:02ID:???0716虚弱PHP
2007/03/27(火) 11:00:36ID:???一応指摘しておくと、PHPというよりHTMLの仕様の問題ね。
HTMLだけでやるなら、
ちとトリッキーだけど>>713の方法がいいんじゃないかなぁ。
最近はJavaScriptでなんとかする場合が多いみたいね。
0718nobodyさん
2007/03/27(火) 12:03:11ID:???0719715
2007/03/27(火) 12:03:23ID:???Perlの$_みたいに省略とか、何か$submitの値が変わったりとかあるのかとオモタ
0720nobodyさん
2007/03/27(火) 12:09:01ID:???更に配列に入れようとするん?
そのままxmlオブジェクトのまま扱えばいいのに…。連想配列使えるし、不便は無いような…。
0721nobodyさん
2007/03/27(火) 12:11:56ID:???0722718
2007/03/27(火) 12:30:51ID:???ですが仕組みがわかりませんorz
0723nobodyさん
2007/03/27(火) 12:33:34ID:???0724nobodyさん
2007/03/27(火) 12:49:16ID:K1B1ChgwWebプログラマ向きの月刊誌とかないかな?
0726nobodyさん
2007/03/27(火) 13:49:49ID:z8CJxUFK0727nobodyさん
2007/03/27(火) 13:54:45ID:ibaBIQ7fレッツPHPさんの新着ブロガー[http://loglog.jp/~php/net/rss/rssup.php.txt]を参考に作っているのですが、
拡張子が .xml , .rdf のRSSは取得できるのですが、それ以外のRSSが上手く取得できません。
例:http://mp.i-revo.jp/rss.php?user=kanako
この場合、どのようにすれば取得できるようになるでしょうか?
0728nobodyさん
2007/03/27(火) 14:03:55ID:???$fruit = array('りんご'・'バナナ'・'みかん'・'メロン'・'スイカ');
といった数字ではない配列があったとき、
任意の順番に常にソートするにはどういったコードを書けばいいんでしょうか?
たとえば必ず
みかん、バナナ、メロン、りんご、スイカ
といった具合にみかんが一番最初で、最後がスイカのように、数字や文字列ではないソート
方法の設定の仕方を知りたいんですが・・・・
usort関数を調べてみたんですが、よくわからないので教えてください。
0729nobodyさん
2007/03/27(火) 14:34:29ID:???{
public $data;
function __construct($data) {
$this->data = $data;
}
}
class foo extends hoge
{
function __construct($data) {
parent::__construct($data);
echo parent::data;
}
}
$obj = new foo();
これでparent::dataのところで$this->dataの値をechoしたいのですがどうすればいいでしょうか?
0730nobodyさん
2007/03/27(火) 14:35:01ID:???usortのサンプルを見れば分かるだろ
というか、そのソートのルールは何だいったい
そのルールを比較関数内に記述しろ
0732729
2007/03/27(火) 14:39:08ID:???0735729
2007/03/27(火) 14:52:46ID:???729じは例として書いたので求めていることとは若干違います。
やりたいのは$this->dataを継承先の変数で持ちまわしたいのです…
publicだからそのまま持ちまわせばいいだけのことなんですけどね。。
ただ、$this->dataはバッティングしているから面倒くさくて
0739nobodyさん
2007/03/27(火) 17:36:26ID:???PHP は強制的にオーバーライドするから、基底クラスの
プロパティと派生クラスのプロパティが一致してしまう
継承はあきらめて、委譲するしかないだろう
0741nobodyさん
2007/03/27(火) 17:41:42ID:???C++でもメンバ関数はvirtual指定できるけど、それ以外は
継承されるから、>>729 が求めるようなことを実現できる
言語って何?
perl ならできそうだな
0742nobodyさん
2007/03/27(火) 17:58:21ID:enVMrSuR書き込み時にサーバーにかかる負荷が小さいのは DB、テキスト形式のどちらでしょうか。
自鯖で運営するので、Apacheからログを生成するという方法もあります。
ご教授よろしくお願いいたします。
0743nobodyさん
2007/03/27(火) 18:15:41ID:ABEOTI8A取ってきた日付データ : "03/27/2007"
欲しい日付データの形 : "2007-03-27"
list使って最初分解しましたが、最初の「0」が抜けちゃって、まぁこれでいいかと作りました。何となく気持ち悪いので、もっと短く素敵に書きたいなと。
皆さんならどうスマートに書きますか?
漏れのコード↓
$date = "03/27/2007"
$date_array = explode("/", $date);
$date = $date_array[2] . "-" . $date_array[0] . "-" . $date_array[1];
0744647
2007/03/27(火) 18:32:44ID:???list($month, $day, $year) = sscanf($date, "%02s/%02s/%04s");
$date = sprintf("%04d-%02d-%02d", $year, $month, $day);
0746nobodyさん
2007/03/27(火) 18:42:22ID:sKfmcrY8当初はどうしても作りたいサイトがあり、
それを目標にphpの勉強を頑張ってきました
そして先週、ようやく念願のサイトが完成しました
ド素人だった俺にアドバイスをくれた皆さん、
ありがとうございました
0747nobodyさん
2007/03/27(火) 19:02:06ID:ci3d2FljApacheのログから解析が一番問題が少ない
0748nobodyさん
2007/03/27(火) 20:15:31ID:???http://www.monazilla.org/document/
0749nobodyさん
2007/03/27(火) 20:18:46ID:ABEOTI8Aありがとうです。そうかsscanf($date, "%02s/%02s/%04s"); の%の部分を間違えていたのですね。感謝です。
>745
お見事です。完璧です。使わせて頂きます。ありがとうです。
お二人とも本当に感謝です勉強になりました
0750nobodyさん
2007/03/27(火) 20:45:51ID:OGy0aBkyどうすれば他鯖のファイルを取得できますか?
申し訳ないですが、ご教授ください
0751669
2007/03/27(火) 20:58:04ID:???この件は解決しました。Build.phpが吐いたコードの一部の文字が
おかしかったせいでした(^^;
で・・・もう一つの問題。
Feed2jsを貼っているサイトはShift_JIS。
「表示」などの文字がCGIと同じ化け方をします。
ググったところ解決法がいくつかあったのですが・・
1)サイト全体をEUC-JPかUTF-8にする
不可。ファイル数多すぎて対応できませんorz
2)Magic Quote GPCをオフにする
そんな権限がありません。
3).htaccessでMagic Quote GPCをオフにする
やってみましたが文字化け治らず。
機能限定されている可能性あり。
4)stripslashesで「¥」を取り除く
4)のやり方を試そうと思ったのですが、どこに書けばよいのでしょうか。
読み込んだRSSフィードをHTMLに直す部分につけてみても変わらないような。
0752nobodyさん
2007/03/27(火) 21:00:03ID:GDh/nu2Xecho で出力する方法はないんでしょうか?
0754752
2007/03/27(火) 21:11:19ID:GDh/nu2X0755nobodyさん
2007/03/27(火) 21:20:49ID:mmQCc+Oh読み込みたいのですがファイル操作系の関数で軒並みエラーが帰ってきます。
コマンドライン上でphp.exe -f test.phpなどと起動した場合は正常に動作するのですが、
IIS上に配置して、http://localhost/test.phpなどとするとfile_existsなどの操作で失敗します。
共有フォルダをz:ドライブに割り当てて、アクセス権もEveryoneがフルコントロールと
してあるのでパーミッションも問題ないと思うのですが何がわるいのでしょうか?
<?php
if ( file_exists("z:/test.txt") ) {
print("ok\n");
} else {
print("error\n");
}
?>
0757752
2007/03/27(火) 21:52:53ID:GDh/nu2Xシングルクォーテーションでしたか。 盲点でした。
絵文字の始点と終点を表す0x1Bと、0x0fが原因かと思ってましたが、実は$が含まれていたからなんですね、ありがとうございます。
0758756
2007/03/27(火) 21:57:20ID:???0759nobodyさん
2007/03/27(火) 23:05:23ID:???http://jp2.php.net/manual/ja/function.file-exists.php
0760nobodyさん
2007/03/27(火) 23:31:47ID:3VONG8xJ提供している解説サイトとか無いでしょうか?
公式以外で
0762nobodyさん
2007/03/27(火) 23:37:11ID:???http://www.devshed.com/c/a/PHP/Socket-Programming-With-PHP/
0763760
2007/03/27(火) 23:50:39ID:???公式読んで理解できる程、頭良く無いんですよ
ソケット通信に特化してるPHPの書籍があれば良いんですけどね
無いんだよなぁ
書籍でお勧めありませんか?
>>761
d。日本語サイトのところも教えてよ
0764nobodyさん
2007/03/28(水) 00:13:22ID:???0765nobodyさん
2007/03/28(水) 00:30:13ID:???0766nobodyさん
2007/03/28(水) 00:34:50ID:???0768698
2007/03/28(水) 01:31:40ID:???valueなんて読まんよ。
<input type="submit" name="btn1" value="アクションA">
<input type="submit" name="btn2" value="アクションB">
if(isset($_POST['btn1']))
ActionA();
else if(isset($_POST['btn2']))
ActionB();
ただ、type="image" の時そのままの名前で取れない。
0769nobodyさん
2007/03/28(水) 02:25:18ID:???PHP5.2や4.4は使えないってことですか?
0771nobodyさん
2007/03/28(水) 03:08:21ID:???ということで毎日の業務・趣味で一番お世話になってる関数・メソッド・etcを挙げようぜ
俺はもちろんecho
でも彼女にするならprintかな?
0772nobodyさん
2007/03/28(水) 03:12:19ID:???0773nobodyさん
2007/03/28(水) 03:37:05ID:zfmCNWsQsafe-modeにはしていないのですが。
あと、コマンドライン上では、ドライブにマウントすればUNCではなくても問題なく動きますし。
どうなっているのでしょうか?
0774nobodyさん
2007/03/28(水) 07:38:21ID:???今phpでカウンタを作っているのですが、指定したホストからのカウントは数えないと言うようにしたいのですが
どの様にすればよいでしょうか?
最終的には$new_hostに入っている物が$hostと違うホスト場合にカウントされる様になっています。
抜粋ですが以下の通りです。
$local = "192.168.0.10";
$temp_host = gethostbyaddr(getenv("REMOTE_ADDR"));
if ($temp_host != $local) {
$new_host = $temp_host;
}
if ($new_host != $host) {
$total++;
}
と言う様に追記してみたのですが192.168.0.10を持つマシンからアクセスしてもカウントが進んでしまいます。
アドバイスよろしくお願いします。
0775nobodyさん
2007/03/28(水) 08:05:33ID:???print getenv("REMOTE_ADDR");
print $temp_host;
してみれば分かるんじゃね
0777nobodyさん
2007/03/28(水) 09:23:14ID:???レスありがとうございます。
条件分岐の記述としては間違いは無いでしょうか?
javaの経験はあるのですがphpは初めてなもので少々心配です。
$hostには前回のホストが入ることになります。
$host = gethostbyaddr(getenv("REMOTE_ADDR"));
と言うのを処理の最後(評価が終わった後)に行っている感じです。
0778nobodyさん
2007/03/28(水) 09:26:00ID:???$hostは$host = $temp_host;の方が適切ですね。
やり方がスマートじゃないのは初心者なのでご容赦を。
0779nobodyさん
2007/03/28(水) 09:31:36ID:???$local = "192.168.0.10";
if (getenv("REMOTE_ADDR") != $local) {
$total++;
}
0781虚弱PHP
2007/03/28(水) 10:07:05ID:???どっち使った方がいいとかってあるのかな?
>>777
ひとまず、デバッグプリントは入れてみたの?
0784nobodyさん
2007/03/28(水) 11:58:28ID:OQ5Djqwf認識させるための設定をしたのですが、
テキストエディタに〜.phpで保存すると
〜.php.text
とテキストファイルで保存されてしまいます。
拡張子を.phpで保存するのにはどうすればいいのか教えていただけないでしょうか?
0785nobodyさん
2007/03/28(水) 12:04:39ID:???0789nobodyさん
2007/03/28(水) 12:42:12ID:???0790790
2007/03/28(水) 12:45:27ID:???0792nobodyさん
2007/03/28(水) 13:01:31ID:???0794nobodyさん
2007/03/28(水) 13:09:20ID:???0795nobodyさん
2007/03/28(水) 13:18:51ID:???0796nobodyさん
2007/03/28(水) 13:32:19ID:YTytDMNbありがとうございます。
PHPに関する情報が表示されました。
ここから非常に楽しみです。
PHPは、モジュール追加するだけで面倒な文字コード統一とか
自動でやってくれるんですね。
すごくいいと思った。
Perlなんてやってらんね。
面倒臭い。
0797nobodyさん
2007/03/28(水) 13:43:14ID:???>>796
,, -──- 、._
.-"´ \.
:/ _ノ ヽ、_ ヽ.:
:/ o゚((●)) ((●))゚oヽ:
:| (__人__) |:
:l ) ( l:
:` 、 `ー' /:
:, -‐ (_). /
:l_j_j_j と)丶─‐┬.''´
:ヽ :i |:
:/ :⊂ノ|:
0798nobodyさん
2007/03/28(水) 13:51:44ID:ztAHNf2Vいきません。外部URLからのデータ受信にPHP側で何か設定しないとダメなのでしょうか?
詳しい方よろしくお願い申し上げます。
0799nobodyさん
2007/03/28(水) 13:53:51ID:???0800nobodyさん
2007/03/28(水) 13:55:19ID:???0802nobodyさん
2007/03/28(水) 14:04:48ID:???kakikomi.php
print_r($_GET);
0803nobodyさん
2007/03/28(水) 15:23:04ID:ztAHNf2Vざっとソースを見たところGET属性でmode=registを記入して
submitボタンを使って送信するソースなのですが
こちら側の
switch($_GET['mode']){
case 'confirm':
$dat=confirm_play();
break;
case 'regist':
$dat=registration();
break;
default:
$dat=form($_GET['mode']);
}
のこのソースでregistに入らずdefaultに入ってしまいます。
考えられるのはGETでデータが送られてないのかなーと思いまして。
どうなのでしょう?
0804nobodyさん
2007/03/28(水) 15:31:45ID:???これってエラー出る?
http://phpdoc.makizou.com/migration52.incompatible.html
abstract static なクラス関数が削除されました。
ちょっとした手違いで、PHP 5.0.x および 5.1.x では abstract static な関数をクラス内で定義できてしまっていました。PHP 5.2.x では、 これはインターフェイス内でのみ定義できるようになりました。
<?php
abstract class foo {
abstract static function bar();
/* Strict Standards: Static function foo::bar()
should not be abstract in filename on line n */
}
?>
0806nobodyさん
2007/03/28(水) 16:34:37ID:???includeが使えないとか書いてたのですが、
今ふと思い出してやってみたら使えました。
普通に使えますよね?
0807nobodyさん
2007/03/28(水) 16:58:16ID:1Rz5XCWK0808nobodyさん
2007/03/28(水) 17:01:44ID:???0809nobodyさん
2007/03/28(水) 17:03:11ID:???0810nobodyさん
2007/03/28(水) 17:13:00ID:Wm7Ais9i<?php
abstract class testAbstractClass{
private $testVar;
public function testAbstractClass($testVar){
$this->testVar=$testVar;
}
}
class testConcreteClass extends testAbstractClass{
public function testMethod(){
var_dump($this);//object(testConcreteClass)#1 (1) { ["testVar:private"]=> string(5) "aiueo" }
var_dump($this->testVar);//NULL
echo $this->testVar;//出力無し
}
}
$obj = new testConcreteClass("aiueo");
$obj->testMethod();
?>
このコードでvar_dump($this)の出力ではちゃんとtestVarの値が入っている事が確認出来るのに
$this->testVarがNULLになる理由が分からないのですが、なぜでしょうか?
また、これはPHPの仕様なのか、オブジェクト指向言語全般でそうなのかどちらでしょうか?
0811nobodyさん
2007/03/28(水) 17:19:38ID:???getter で取得して出力しなきゃいけないんじゃない?
0814nobodyさん
2007/03/28(水) 17:39:49ID:Wm7Ais9iゲッター使えば出力出来るのは分かってる。
そこで疑問になるのは、
testVarは、
testAbstractClass::testVarとして存在しているだけで、
testConcreteClass::testVarとしては存在していないということなのか?ということ。
じゃあvar_dump($this)とした時になんで自分のメンバのようにでてくるの?と不思議になる。
継承した場合の挙動ってオブジェクト指向言語一般的にこれで正しいの?
0815nobodyさん
2007/03/28(水) 17:44:44ID:???失礼しました。
0816nobodyさん
2007/03/28(水) 17:45:04ID:???正しいよ
privateは継承したクラスの中からはアクセスできない
継承したクラスの中でも使いたかったらprotectedにする
var_dumpは単純にオブジェクト全てダンプするから
privateなメンバもダンプされる、var_dumpが特殊だと思えばいい
0818nobodyさん
2007/03/28(水) 17:52:59ID:???0820806
2007/03/28(水) 17:59:00ID:???0821nobodyさん
2007/03/28(水) 18:06:27ID:???0822nobodyさん
2007/03/28(水) 18:09:04ID:???CGIモードでもincludeできるよ。
セーフモードだとinclude出来るディレクトリが制限されるよ。
0823806
2007/03/28(水) 18:22:56ID:???>セーフモードだとinclude出来るディレクトリが制限されるよ。
なるほど。ありがとうございます。
どうやら読み間違えてたようです。
0824nobodyさん
2007/03/28(水) 21:28:41ID:???興味がないってかセーフモード下ではCGIじゃないと使えない
関数なんかもいっぱいあるわけで、
レンタル鯖とかならCGIとして動作させないといけない事情も出てくる。
0825nobodyさん
2007/03/29(木) 01:00:26ID:???ということはシングルトンパターンでデータベース接続クラスを作った
としても、リクエスト終了毎に毎回データベースとの接続が切られて
いるから、PHPでのシングルトンパターンの実装は意味が無いので
しょうか?
0826nobodyさん
2007/03/29(木) 01:07:30ID:???Apacheにはリソースプールというのがあって、そこにDB接続を残しておける
PDOなんかだと簡単に出来るハズ
0827825
2007/03/29(木) 01:26:18ID:m+IoRuW8>>826
おぉ!さすがアパチェ!
コネクションをプーリングできるということはPDOでなくても
ネイティブ関数でも出来そうですね!
PDOは凄い便利だけどMySQLで使うと折角の高速SELECT
の効果が薄くなってしまうのが辛いですね・・・
0828nobodyさん
2007/03/29(木) 03:25:29ID:???表示しません。
PHP3環境からPHP4に移行したいのですが
方法を教えてください。
0830nobodyさん
2007/03/29(木) 11:44:56ID:???そのページの中での表示や登録や確認はモデルの中で分岐していいの?それとも全部コントローラでやるべき?
前者だと中途半端で変わらないような気もするけど
後者だとswitchの中にswitchが入ったりしてコントローラが複雑になりすぎるんじゃないかと思いまして。
0831nobodyさん
2007/03/29(木) 12:53:01ID:???actionを基に各ページへの分岐ってさぁ、普通コントローラじゃなくてディスパッチャの
仕事じゃないのかな。
で、各ページっていうのがコントローラのことじゃない?
0832nobodyさん
2007/03/29(木) 12:56:04ID:???$hoge_data[$i] = $match_list[1][0];
これをすると、undefined offset 0 というエラーログが残ります。
$match_list[1][0] が存在しない、という意味かと思いますが、
どうすれば修正できるでしょうか?
0836nobodyさん
2007/03/29(木) 13:44:22ID:???var_dumpしてみろ
0837虚弱PHP
2007/03/29(木) 13:48:52ID:???俺はmodule&actionの2パラメータで分岐。
moduleとクラスを関連付けて、actionとメソッドを関連付け。
ビジネスロジックは全部メソッドに。
可変クラスと可変関数使ってるから、かなりシンプルになってる。
実際は複数アクションを繋げて実行したい場合もあるから
アクションチェーンみたいなの実装してて、
モデルとコントローラーの分かれ目は曖昧になっちゃってるね。
↑もちろんこんな実装がいいのかは不明w
0838nobodyさん
2007/03/29(木) 14:25:15ID:???$hoge_data[$i] = $match_list[1][0];
}
0839832
2007/03/29(木) 14:27:15ID:???それもやってみたんですよ、、、、
でも今度は if (isset($match_list[1][0])) {
の行で同様のエラーが発生するんです・・・・
0840nobodyさん
2007/03/29(木) 14:27:17ID:???0841nobodyさん
2007/03/29(木) 19:03:41ID:???foreach($array as $key => $value )
の$keyや$valueって名前かぶらないほうがいいのかな?
0842nobodyさん
2007/03/29(木) 19:36:46ID:???0845nobodyさん
2007/03/29(木) 22:17:32ID:???0846nobodyさん
2007/03/29(木) 23:21:50ID:hIHbostNhttpd/apache2.2.4
php/5.2.1(php.ini)はなし(デフォルト)。
bbs.logにログ(名前や書き込み)を入出力する簡単な掲示板を作ったのですが
bbs.logのサイズが約1MBを超えると、ケツの方が途中で切れてしまいます。
これはスクリプトが原因なんでしょうか?サーバ側が問題なんでしょうか?
0847nobodyさん
2007/03/29(木) 23:37:37ID:???いや、php.iniあるだろ
ケツの方がきれるってのはどういう状態だ?
書き込んだbbs.logを見てみたら最新の書き込みの途中以降が
無くなっちゃってる事?
0849nobodyさん
2007/03/30(金) 00:08:20ID:JMCAPSTS2,bar,kakiko
1,foo,kakiko
と新しい書き込みがファイルの最初の行になるようなCSVファイルなんですが
bbs.logが1MBくらいを超えたあたりから、一番最後の行が
1,foo
で切れてる状態なんです。
0850nobodyさん
2007/03/30(金) 00:12:06ID:???0851nobodyさん
2007/03/30(金) 00:16:28ID:???というコトはワザワザ毎回ソートしてるのか。
・・・でもそんなに時間がかかるわけではなさそうだしな。
ここはソースを晒してみたらどうだろう?
0853nobodyさん
2007/03/30(金) 00:21:25ID:???open(handle, "filename");
@line = <handle>;
close(handle);
$test = shift(@line);
こういう手順でファイルの1行目取り出すのに
$handle = fopen("filename", "r");
$test = fgets($handle);
while(!feof($handle)){
$line = $line . fgets($handle);
}
fclose($handle);
と再現してるのですがperlのような書き方はあるのでしょうか?
0856nobodyさん
2007/03/30(金) 00:26:42ID:???SQLなら問題ないだろうけどさ。
0857846&&849
2007/03/30(金) 00:27:51ID:???fread()の読み込み長さを自分で1MBにしていました・・・。
みなさんありがとうございました☆
0858nobodyさん
2007/03/30(金) 00:36:53ID:???1行目読むのに何で全部読むよ
perlだと $test = <handle>; で終わり
phpだとwhile文消して終わり
0859nobodyさん
2007/03/30(金) 00:41:31ID:VBqWPw4O$a[0] に array('num'=>'101','name'=>'ううう')
$a[1] に array('num'=>'80','name'=>'あああ')
$a[2] に array('num'=>'125','name'=>'えええ')
$a[3] に array('num'=>'90','name'=>'いいい')
が入ってます。これをnumのソートのようなもので、
$a[0] に array('num'=>'80','name'=>'あああ')
$a[1] に array('num'=>'90','name'=>'いいい')
$a[2] に array('num'=>'101','name'=>'ううう')
$a[3] に array('num'=>'125','name'=>'えええ')
としたいのですが、うまい方法がみつかりません。
配列の中の配列の要素値でソートできるのでしょうか。
0863859
2007/03/30(金) 00:51:39ID:VBqWPw4Oそうです二次元配列です!
nameの値やnumの値でソートをしたいです
0864859
2007/03/30(金) 01:07:15ID:VBqWPw4Oforeach($a as $key=>$value){
$sort_result[$key]=$value['num'];
}
array_multisort($sort_result,SORT_DESC,$a);
0865nobodyさん
2007/03/30(金) 01:42:18ID:???こんなんどうですか。
function cmp($a, $b)
{
return ($a['num'] - $b['num']);
}
usort($a,"cmp");
0866nobodyさん
2007/03/30(金) 08:38:04ID:TajlMWGSPHP + Sqlite で select count(*) from tablefoo というSQLを実行したときに、 count の結果として
返される値を参照するにはどのSQLITE関数を使用すればよいのでしょうか。
最初はsqlite_num_rowsかと思ったんですが、なんか違うみたいです。。。
よろしくお願いします
0867nobodyさん
2007/03/30(金) 08:50:06ID:???0868nobodyさん
2007/03/30(金) 09:02:42ID:???SQLiteに限らずDBでselectした結果の取得は、fetchやresultと相場が決まってる。
SQLiteに関して言えばfetch*だけでresultってのは無いみたいね。
0869nobodyさん
2007/03/30(金) 14:25:31ID:hAwrbtsF標準入力を受け取る処理をwindows上でテストするのに
どのようにしたら良いでしょうか?
0870nobodyさん
2007/03/30(金) 14:55:00ID:???使ったことないけどWin環境ではCygwinでいけるんかな?
0871nobodyさん
2007/03/30(金) 15:05:26ID:MYIOcGpU123465789バイトを、キロやメガにする場合… どうしたら出来るのでしょう?
関数があった気がするのです。でもすこーんと忘れました;;
すみません、ぐぐっても、ピンポイントなキーワードではないので… 分かりませんでした…
0874nobodyさん
2007/03/30(金) 15:40:41ID:???Linux環境が使えそうなら無理してでも使っておく方が近道と思うよ。
少なくともCygwinは性能が悪いし妙な癖はあるしで結構ストレスになる。
Windows環境であればcoLinuxでも使っておけばいいんじゃないかな、
とかいって使ったことないけど。VMwareもお勧め。
0875nobodyさん
2007/03/30(金) 15:40:56ID:???0876869
2007/03/30(金) 15:49:07ID:hAwrbtsFLinux環境はあるんでそちらでやることにします。
ありがとうございました。
0877nobodyさん
2007/03/30(金) 17:04:07ID:???ファイルを一気にメモリに読み込まずに数えるには、
while文でfgetsを繰り返すしかないのでしょうか?
0880nobodyさん
2007/03/30(金) 17:19:44ID:???0881877
2007/03/30(金) 17:31:18ID:???レスありがとうございます。
wcはUNIXのコマンドなんですね。
試してみようと思います。ありがとうございます。
0882nobodyさん
2007/03/30(金) 18:53:07ID:???バイナリデータとして
「1バイトずつ読み取ってそれが改行コードなら行数を+1」
をループ。まあwcがやってるのがそうだけど。
マルチバイトとか改行コードに相当するのは何かとかで
処理で考慮しないと駄目なところはあるとは思うけど。
0884nobodyさん
2007/03/30(金) 19:03:45ID:jc39Z612本やサイトを見て回ってもファイルロックに関して何もかかれていません。
sqlite_openやsqlite_query等は排他処理を行ってくれるのでしょうか?
0885虚弱PHP
2007/03/30(金) 19:07:48ID:???ファイルベースといってもデータベースなんだし、
ファイルロックとかはSQLiteに任せていいよ。
というか、SQLite以外からデータベースファイルにアクセスするわけじゃないよね?
0886nobodyさん
2007/03/30(金) 20:05:33ID:???大きくブログ全体としてファイルロックするのってどうなんでしょうか?。
やはり効率悪いのかな?。
0887nobodyさん
2007/03/30(金) 20:18:56ID:jc39Z612アクセスするのはSQLITE関数のみです。
必要ないんですね。ありがとうございました。
0888nobodyさん
2007/03/30(金) 20:43:32ID:???ブログ全体を1ファイルにはしないでしょ?
でもなんでブログってファイルに保存するんだろ。
DB使ったりもしてるの?
0889nobodyさん
2007/03/30(金) 20:53:07ID:oAaV+hqattp://pc11.2ch.net/test/read.cgi/php/1174217841/l50
この「l50」のlって何の略?
PHP詳しい人ならわかると思うのでよろしくです。
0891nobodyさん
2007/03/30(金) 21:07:11ID:oAaV+hqaなんだとコラ!
ありがとう。
0892nobodyさん
2007/03/30(金) 21:29:05ID:???じゃあ、php.iniに設定あっても意味なくね?
0893nobodyさん
2007/03/30(金) 21:39:35ID:???abstractクラスで単純なセッタ($this->propertyするだけ)の
abstractメソッドが8個もあるのって、気持ち悪いというか、
悪い例ですか?(^ω^;)
0897nobodyさん
2007/03/30(金) 22:02:53ID:snV1+qok以下のような感じでFlashLite対応携帯と非対応で振り分けPHPを作ってるんだけど、
$UA = $_SERVER{'HTTP_USER_AGENT'};
if (substr_count($UA,"DoCoMo")) {
$d=docomoOff();
Fault($d);
}else if(substr_count($UA,"UP.Browser")) {
$d=auOff();
Fault($d);
}else if(substr_count($UA,"SoftBank") || substr_count($UA,"vodafone") ) {
$d=auOff();
Fault($d);
}
function Fault($d){
if($d==false){
header("Location:fault.php");
exit;
}
}
function docomoOff(){
global $UA
if ((substr_count($UA,"非対応機種ID") … (substr_count($UA,"非対応機種ID")) $d_check=false;
else $d_check=true;
return $d_check;
}
function auOff(){ 略 }
function softbankOff(){ 略 }
substr_count がorで150個とか連なるだけどコレってサーバ負荷やばいですか?
0899nobodyさん
2007/03/30(金) 22:33:09ID:???いきなりLinux使えとか意味不明な展開になってるけど、
コマンドプロンプトで
type test.eml | php hoge.php
とか?
0900nobodyさん
2007/03/30(金) 22:45:43ID:???0901nobodyさん
2007/03/30(金) 23:55:35ID:ZWxCZPytこれはApacheの文字コードを変更すれば解決されるのでしょうか?
0903nobodyさん
2007/03/30(金) 23:57:08ID:???0905nobodyさん
2007/03/30(金) 23:58:39ID:???0906nobodyさん
2007/03/31(土) 00:11:25ID:SBQP0EHiDBから引っ張ってきた文字は日本語の部分だけ?????と表示されるだけです。
DBから引っ張ってきた文字以外の日本語は文字化けしない
う〜ん・・・
0907nobodyさん
2007/03/31(土) 00:17:52ID:???0908nobodyさん
2007/03/31(土) 00:20:31ID:???サーバ内の全スクリプトに設定したいならどっちを使ってもいいってだけの話。
>>897
A. 携帯機種判別ライブラリを使う。名前は"mobile"が入ってた気がする。
B. UAから機種を意味する部分を切り出してそっちを検索のキーにする
C. 機種リストを無理やりくっつけて正規表現にする
お勧め順
それにしてもまどろっこしいコーディングだな
0909nobodyさん
2007/03/31(土) 01:10:46ID:???俺はエスパーじゃないからまともに答えるよ。
mysqlへの書き込み時と読み込み時で文字コードが違っているなら
「mysql 文字コード 自動変換」あたりでググるかmysqlのマニュアル読め。
それすらよく分からないレベルなら
お話にならないから文字コードについて最低限の勉強をしてから再チャレンジ。
0910nobodyさん
2007/03/31(土) 01:23:30ID:???my.cnfにskip-character-set-client-handshakeといれるかSET NAMES ujis;と入れたら無事取り出せました。
ありがとうございました。
プリント出力するプログラムを作りたいと思います。
これでうまくいかないのですがどこがまずいのでしょうか?
ログは1行ごとに
番号(1,2,3....) タブ 名前 タブ タイトル タブ コメント タブ パスワード タブ 日付
と並んでいます。
<?php
$log=fopen("card.txt","r");
$line=fgets($log);
$items=explode("\t", $line);
for($i={$items[0]};$i<{$items[0]}-5;$i--){
print(" $items[1] ");
print(" $items[2] ");
print(" $items[3] ");
print(" $items[5] ");
}
fclose($log);
?>
0912nobodyさん
2007/03/31(土) 01:30:31ID:???1行ずつ説明してみそ。
$log=fopen("card.txt","r"); ログオープン
$line=fgets($log); ログから1行抜き出す
$items=explode("\t", $line);1行の中からタブを除き配列に設置
for($i={$items[0]};$i<{$items[0]}-5;$i--){ 最新の書き込みナンバーから-5のナンバーまで以下処理を繰り返す
print(" $items[1] ");
print(" $items[2] ");
print(" $items[3] ");
print(" $items[5] ");
}
fclose($log);
?>
ここがおかしいのはわかるのですが・・・・・・・
-5だと5行以下のログだと成立しませんものね。
0915nobodyさん
2007/03/31(土) 01:46:33ID:???2〜5行目はどこで抜き出してんの?
成立しないですよね。
でもそれだとログのナンバーを取り出すのはどうすればいいのやら・・・・・・
0918nobodyさん
2007/03/31(土) 01:57:00ID:???それとも先頭の5行分を取り出したいの?
と思っています。
0920nobodyさん
2007/03/31(土) 02:03:29ID:???1行取ってその中身を表示すればいいじゃん?
うまくいきません・・・・・・・
for($i=$no;$i<$no-5;$i--){
もログが5行以内なら成立しないので
どうしたらよいのかご助言いただけたらうれしいのですが。
<?php
$log=fopen("card-walin/card-walin.txt","r");
$noline=fgets($log);
$noitems=explode("\t", $noline);
$no=$noitems[0];
for($i=$no;$i<$no-5;$i--){ //1行づつ走査しながら1ページ分を表示します
$line=fgets($log);
$items=explode("\t", $line);
print(" $items[1] ");
print(" $items[2] ");
print(" $items[3] ");
print(" $items[5] ");
}
fclose($log);
?>
0922nobodyさん
2007/03/31(土) 02:20:09ID:???もしかしてfgetsは列(縦)方向のデータを取ってくると考えてる?
もしくは全データを取ってくると考えてる?
もしそうなら、マニュアルの関数リファレンス見てみるとか、
そもそもどんな値が返ってきてるかprint_rやvar_dumpで見てみるといいよ。
0923nobodyさん
2007/03/31(土) 02:27:30ID:???俺だったら
system( "tail -5 card-walin/card-walin.txt" );
だな。Winではうごかないけど。
0924nobodyさん
2007/03/31(土) 02:40:29ID:???しようと思ってるんですけど、このスクリプトっておかしいですか?
どうも読み込みが上手くいきません
<?php
mysql_connect("localhost","root","pass");
mysql_select_db("php5");
//登録フォームの読み込み ここには問題ないです
include("form.php");
//掲示板データの再現
$pg = $_GET["id"];
if(($pg == "")||($pg == 0)){
$sql = "select * from bbs order by renban desc limit 10";
}else{
$sql = "select * form bbs where renban > ".$pg*10." and renban <= ". ($pg+1)*10." order by renban desc";
}
よろしくお願いします
0925nobodyさん
2007/03/31(土) 02:47:14ID:???http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/mysql_10.htm
0926nobodyさん
2007/03/31(土) 02:54:59ID:???0929nobodyさん
2007/03/31(土) 04:07:50ID:i1eCprk+わからなくはないけど入れ子で頭がこんがらがっちゃう。
「この処理でこういう値が来たらどうするんだい?」って
先生みたいにチェックしてくれる機能無い?
"PHP エラー"や"PHP テスト環境"でぐぐってみたけどいまいちジャストミートなものにぶつからない。
うまくググるキーワードやそれの初心者向けの説明あったら教えてください。
ログから最新の発言を5人分(5行分)抜き出して
printで提示する場合具体的にどのようなプログラムを書けばよいのでしょうか?
何度もうざいと思われてると思うのですがどうしても自力で思い通りに出来ませんで。
下記はログで半角スペースは実際はタブでスペース付けてます。
実際にログには行ごとに番号割り振るようにしてます。
-------------------------------------------------
22 名前 タイトル コメント パス 日付
21(22行目と同じ形式で格納)
20(22行目と同じ形式で格納)
19(22行目と同じ形式で格納)
.
.
1(22行目と同じ形式で格納)
-------------------------------------------------
0933nobodyさん
2007/03/31(土) 05:40:39ID:???遠回りのようだが、基本的なことをいちいち聞いてるより早いよ。
0935nobodyさん
2007/03/31(土) 05:59:53ID:???最新ログが上で古いログが下であるなら・・・
<?php
$log = file("card.txt")
for($i=0;$i<5{;$i++){
print(" $items[$i] ");
}
fclose($log);
?>
最新ログが下で古いログが上なら・・・
<?php
$log = file("card.txt")
$count = count($log);
for($i=$count-5;$i<$count;$i++){
print(" $items[$i] ");
}
fclose($log);
?>
0936935
2007/03/31(土) 06:01:51ID:???おまいのコードコピペして消し忘れたから書くなよ
0938nobodyさん
2007/03/31(土) 09:19:54ID:???さっさと正解出して真似で学ばせたほうがいいのかね
0939nobodyさん
2007/03/31(土) 09:20:23ID:???最新ログが上ならhead、下ならtail。
0940nobodyさん
2007/03/31(土) 10:14:54ID:???0941nobodyさん
2007/03/31(土) 10:21:48ID:???少なくともGPLとBSDライセンスのものは販売しても構いませんよ。
ライセンスに直接当たってみましょう。
もちろんそれを買う存在があるかどうかはまた別の話ですが。
0942nobodyさん
2007/03/31(土) 11:56:18ID:???と聞いてるのじゃないのか?
0943940
2007/03/31(土) 12:07:57ID:???>>942
その通りです。
osCommerce系も一通り見てみたのですが自分の希望にあうものがなく・・・・・。
言語 :PHP
DB :PostgreSQL又はMySQL(バージョン問わず)
やりたいこと:ポイント管理ができ、ポイントでの購入が出来るもの。
現在自分で作っているのですが、サンプルになるようなフリーのものがあればと思い・・・。
回答のほど宜しくお願い致します。
0944nobodyさん
2007/03/31(土) 12:28:39ID:???>やりたいこと:ポイント管理ができ、ポイントでの購入が出来るもの。
これのサンプルを探すことと
>DL販売ができること
とはまったくべつでしょ。条件としてDL云々という必要はない。
上なら普通のshop-cart softwareで、いくらでもある。
www.scripts.comあたりを一通り見てみればいいんじゃ?
0945nobodyさん
2007/03/31(土) 12:32:21ID:???配列 ・・・ var_dump、print_r
変数 ・・・ print、echo
function debugprint($var_debug) {
echo 'error : '
if( count( $var_debug ) > 1 )
print_r($var_dump). '\n';
else
echo $var_debug. '\n';
}
これに投げればいいやん
PHP5なら例外使う
0946nobodyさん
2007/03/31(土) 12:35:02ID:???+ echo 'error : ';
0947nobodyさん
2007/03/31(土) 12:37:33ID:???PHP(mysql関数)、SQL、正規化
2番目までのサンプルならMysql 掲示板 あたりでググレば出てくる
どんなの作るかよくわからんが小規模〜くらいになるなら正規化について調べておいて損はない
0948nobodyさん
2007/03/31(土) 12:44:42ID:???0949nobodyさん
2007/03/31(土) 13:36:16ID:???0950nobodyさん
2007/03/31(土) 13:57:39ID:???0951nobodyさん
2007/03/31(土) 14:01:48ID:???//掲示板データの再現
$pg = intval($_GET["id"]);
if (!$pg || !$pg < 0) {
$pg = 0;
}
$sql = "select * from bbs order by renban desc limit $pg, 10";
0952951
2007/03/31(土) 14:02:54ID:???↓
if (!$pg || $pg < 0) {
0953nobodyさん
2007/03/31(土) 14:56:59ID:yBXFleD+$a = array('key1' => 'abc', 'key2' => 'def', 'key3' => 'ghi');
で、key2をその配列から消したい(取り出す)場合はどうすればいいのでしょうか?
最初、array_diffで異なっているものを抽出して、DBに格納しようと思ったのですが… 結果にプライマリキーなどが残ってしまい困っております。
簡単な質問ですみません
0954nobodyさん
2007/03/31(土) 15:50:45ID:???unset($a['key2']);
なんで配列の質問でDBが出てくるのか知らんが
結局のところSQLでDELETEやINSERTで済む場所だと思うな。
0955929
2007/03/31(土) 15:55:13ID:i1eCprk+ありがと
例外処理ってのがあるのね あとエラー処理
例外使うためにクラスの使い方覚えるのが結局一番早そうってとこまで理解した
0956nobodyさん
2007/03/31(土) 16:24:35ID:???プラス14時間後の時間を表示したいです。
方法を教えてください。
$date = date("Y/m/d H:i:s");
echo $date;
0957nobodyさん
2007/03/31(土) 16:39:31ID:???0959nobodyさん
2007/03/31(土) 17:02:46ID:???$date = date("Y/m/d H:i:s", strtotime('+14 hours'));
echo $date;
名前 コメント 種類A
名前 コメント 種類B
↓続く
と並んでいて種類Bのみを抜き出す場合
どういう方法があるのでしょうか?
ログ自体を種類ごとに分けないと難しいですか?
0961nobodyさん
2007/03/31(土) 18:08:55ID:???0962nobodyさん
2007/03/31(土) 18:09:20ID:???0963nobodyさん
2007/03/31(土) 18:16:09ID:???データベースを作ろうと思うのですが
書き込みをデータベースとして有意義な”情報”か
ただの”コメント”かで別々に取り出したいのです。
なので種類Aは情報、種類Bはコメントとしたいと思います。
>>962
すいませんw
まじで頭が回らなくて・・・・・・・
htmlとcssのデザイン関連は直感的にできるのですが
こういうロジックになると他人の猿真似空はいらないと理解できませんで・・・・・
$logA=grep("種類A","log.txt");//ここで該当文字を検索しその行を抜き出し
$lines=file($logA);]//抜き出した行を配列化
grepの使い方が詳しくわからないのですがこんな感じですかね。
有意義な情報(雑誌インタビューなどで見た開発者のインタビューなど)か
ただのコメントかは書き込んだ当人がラジオボタンで選択できるようにしてます。
0968nobodyさん
2007/03/31(土) 18:29:03ID:yBXFleD+ありがとうございました〜
これでがんばれます〜
0972nobodyさん
2007/03/31(土) 19:48:06ID:???shでCGIでも書いてりゃいいのに。
0973nobodyさん
2007/03/31(土) 21:03:01ID:???0974nobodyさん
2007/03/31(土) 21:06:43ID:???0977nobodyさん
2007/03/31(土) 22:46:30ID:tPhD7muH自分の使用している機種では、セッションを使ってログイン・ログアウト
出来るのですが、セッションを使う方法で問題ないのでしょうか?
携帯の場合はCookieは使えないと思うのでセッションしかないと思っているのですが、
果たして古い機種でも利用できるのかどうかわからず、質問しました。
ご存知の方は教えていただければと思います。
0978nobodyさん
2007/03/31(土) 22:51:13ID:???勉強しなおしてから質問しましょう
0979nobodyさん
2007/03/31(土) 22:51:30ID:???お答え致しかねます。
0981nobodyさん
2007/03/31(土) 23:02:08ID:???0982nobodyさん
2007/03/31(土) 23:04:19ID:???0983nobodyさん
2007/03/31(土) 23:06:48ID:???プログラミング系の本て独り善がりな内容結構多くないですか?
なぜか。
0985nobodyさん
2007/03/31(土) 23:56:29ID:???0986nobodyさん
2007/04/01(日) 00:09:56ID:???独習PHPは別に分かり辛いとは思わなかったがな。
0987nobodyさん
2007/04/01(日) 00:38:22ID:MxiyK9aH使用するメソッドを統一させるため、基底クラスのコンストラクタで次のような方法で行っています。
switch($this->filetype) { // $this->filetype…ファイル格納方法
case "csv":
$this->object = new csvClass(); break; // $this->object…派生クラスのインスタンス
case "mysql":
$this->object = new mysqlClass(); break;
}
csvClass, mysqlClassの基底クラスに
function add($content) {// $contentを追加する関数
$this->object->add($content);
}
という記述をし、派生クラス(csvClassおよびmysqlClass)でファイル格納方法に合わせて
独自処理を行わせるよう、add()関数をオーバーライドさせています。
これ以外でポリモーフィズムを表現する方法が思いつかなかったのですが、
よりスマートな方法があればご教授お願いいたします。
0989987
2007/04/01(日) 01:00:33ID:MxiyK9aH回答ありがとうございます。
PHP5.xが使えれば抽象クラス使ってやろうかと思ったのですが、
使用している鯖がPHP4.xなのでこんな回りくどいことしなきゃなのかな、と考えたのですが…
やっぱ無理がありましたか。
今使ってる鯖に見切りつけたとしても、今後の費用対効果を考えたら
今のうちにPHP5.xに移ったほうがよさそうな気がしてきたので、ちょっと検討してみます。
0990nobodyさん
2007/04/01(日) 01:25:21ID:???0991nobodyさん
2007/04/01(日) 02:19:24ID:???0994nobodyさん
2007/04/01(日) 04:00:11ID:???型のない言語なのにExceptionだけ型みたいになっててキモイ
0996nobodyさん
2007/04/01(日) 04:10:22ID:???おまけで型宣言をつけると型が適用され
るとかにしてくれたらな〜
0997nobodyさん
2007/04/01(日) 04:23:53ID:???http://pc11.2ch.net/test/read.cgi/php/1174217841/
0998nobodyさん
2007/04/01(日) 04:39:13ID:???0999nobodyさん
2007/04/01(日) 04:39:54ID:???1000nobodyさん
2007/04/01(日) 04:40:38ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。