【PHP】下らねぇ質問はID出して書き込みやがれ 97
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/07/23(金) 06:24:51ID:3G71fl8i過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
前
【PHP】下らねぇ質問はID出して書き込みやがれ 96
http://pc11.2ch.net/test/read.cgi/php/1275032024/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0799798
2010/09/16(木) 12:06:53ID:/BVvHaMj0800nobodyさん
2010/09/16(木) 12:11:43ID:???セッションIDだけだから、中身の多い少ないでクライアント依存の問題
が出るとは普通考えられないな。
クライアント依存の問題は似たような問題で悩んだ人がいないかぐぐって
解決されてればラッキー、みつからなければ頑張って自分で追いかける
しかないよ。まずはクライアントーサーバ間のやり取りを追いかけてどっち
の問題か切り分けるのが第一歩だと思う。
0801nobodyさん
2010/09/16(木) 12:18:57ID:zCfQEIBbsyntax error, unexpected T_INCLUDE_ONCE, expecting T_FUNCTION in includeした行
と出てしまってうまくいきません。
ぐぐっても情報を見つけられないのですが、どうすれば良いでしょうか。
params.php
var $test = array(
array('id' => 1, 'name' => 'yui'),
array('id' => 2, 'name' => 'mio'),
...
);
test_model.php
<?php
class TestModel extends AppModel{
include_once('params.php');
...
}
0802798
2010/09/16(木) 12:38:34ID:/BVvHaMjレスありがとうございます。とても参考になります。
セッションIDの中の中身が多くなっても、影響はなさそうだということですね。
さらに、この程度なら上限のサイズにも達していないだろうということですよね?
実は、処理ごとにvar_dumpを何行試したりして、firefoxとIEでの違いを
チェックしているのですが、IEだとなぜかセッションの挙動が変わって原因がつかめないのです。。
かれこれ昨日からググったり、debugしたり、18時間ぐらいずっとやってて、かなり近いとこまでたどり着いたけど、
そもそも全部配列に格納して、hiddenでやればいいんじゃないか?と思ったわけです。
0804nobodyさん
2010/09/16(木) 12:59:09ID:???行数多くなるから詰めてあるけど
自分で整形して見やすいようにしてから見てね
■program.php
include "setting.php";include "class.php";$obj = new B();
echo $obj->text_A, "\n";echo $obj->text_B, "\n";$obj->setText();echo $obj->text_B, "\n";
$obj->hash = $ary;print_r($obj->hash);
■class.php
class A{public $text_A = "This is A.";public function getText(){return $this->text_A; }}
class B extends A{public $hash;public $text_B = "This is B.";public function setText(){$this->text_B = parent::getText();}}
■setting.php
$ary = array("1ch", "3ch", "4ch", "6ch", "8ch", "10ch", "12ch");
0805nobodyさん
2010/09/16(木) 13:01:45ID:???■program.php
<?php
include "include.php";
include "class.php";
$obj = new B();
echo $obj->text_A, "\n";
echo $obj->text_B, "\n";
$obj->setText();
echo $obj->text_B, "\n";
$obj->hash = $ary;
print_r($obj->hash);
0806nobodyさん
2010/09/16(木) 13:02:25ID:???class A
{
public $text_A = "This is A.";
public function getText()
{
return $this->text_A;
}
}
class B extends A
{
public $hash; // 外部ファイルに書いた配列データが入る所
public $text_B = "This is B.";
public function setText()
{
$this->text_B = parent::getText();
}
}
0807nobodyさん
2010/09/16(木) 13:03:54ID:???■setting.php
<?php
$ary = array("1ch", "3ch", "4ch", "6ch", "8ch", "10ch", "12ch");
0809808
2010/09/16(木) 13:07:16ID:???>>801ね
↓みたいにクラスの中にinclude使うのは今日からやめよう
class TestModel extends AppModel{
include_once('params.php');
...
}
0811nobodyさん
2010/09/16(木) 13:23:47ID:???0812nobodyさん
2010/09/16(木) 13:35:15ID:???0813nobodyさん
2010/09/16(木) 13:39:32ID:???0814nobodyさん
2010/09/16(木) 13:42:01ID:???あきらかに理解できてなさそうだなぁ。近くに聞ける人はいないの?
0816798
2010/09/16(木) 14:24:21ID:/BVvHaMjありがとうございます。
クッキーの容量制限とセッションの容量制限は同じだと思っていました。
>>814
恥ずかしながら、今回、セッションを一から勉強している段階です。
近くに聞ける人は今いないもので。。
カテゴリごとにそれぞれページ数があって、ボタンをクリックすると
画像の表示がぐるぐる変わるサイトを作っています。
そのページナンバーやカテゴリ、期間指定などをセッションでやりとりしていたのですが、
これを機会に全部hiddenにいれて、GETで受け渡し、それぞれのページをURLコピペできる
ようにすればいいのではないか?と考えました。
GETの制限文字数に余裕があるなら、この考えは悪くないでしょうか?
0817nobodyさん
2010/09/16(木) 14:27:43ID:???0818nobodyさん
2010/09/16(木) 14:42:28ID:???hiddenでやると構造もったデータはシリアライズしてエンコードデコード
してみたいな手間がかかるし、場合によっては改竄対策もいるし、
ページサイズでかくなるしといろいろあるから、あまりお勧めはしないな。
特に今回は配列いれてるみたいだし。
そもそもPHPのクッキー使ったセッション維持なんて世の中でものすごく
たくさん使われているのでIEでうまくいかないなんてことがあったら
大問題になってるはずだけどそんな話はきかんぞ。firefoxとIEじゃなくて
自分の環境の問題だったりしないか。片方にだけ変なセキュリティソフト
入れてるとかそういう類。
0819798
2010/09/16(木) 14:44:19ID:/BVvHaMjありがとうございます。序列です!
ただ、ページリストは長い配列になるので、hiddenの受け渡しにはそぐわないかもしれません。。
一応こういうやり方はあるにはあるみたいですが。
http://planetcakephp.org/aggregator/items/1532-cakephphidden%E3%81%A7%E9%85%8D%E5%88%97%E3%82%92%E6%B8%A1%E3%81%97%E3%81%A6%E3%82%B2%E3%83%83%E3%83%88%E3%81%97%E3%81%9F%E3%81%84
0820798
2010/09/16(木) 14:49:47ID:/BVvHaMjなるほど。どうもありがとうございます。
一から全部hiddenで書き直そうとする瞬間だったので、本当に助かりました。
もう少し、セッション周りで自分の環境の問題を調べてみます。
0821nobodyさん
2010/09/16(木) 14:57:16ID:???>カテゴリごとにそれぞれページ数があって、ボタンをクリックすると
>画像の表示がぐるぐる変わるサイトを作っています。
セッションもhiddenも使う必要ないと思うんだけど
0822798
2010/09/16(木) 15:25:14ID:/BVvHaMj本当ですか。、というと、どうやればいいのでしょうか。
ジャバスクリプトとかかな。。 いや、そんな難しいことしなくて、なにかあるのかな。
0823nobodyさん
2010/09/16(木) 15:38:43ID:???共通の処理をする場合はstaticメンバ関数でよいですかね?
0824823
2010/09/16(木) 15:49:38ID:???0826nobodyさん
2010/09/16(木) 16:06:34ID:???function __construct() {
echo "construct";
}
function __destruct() {
echo "destruct";
}
}
new Hoge();
これをしてみればわかる
0829823
2010/09/16(木) 16:49:46ID:???0832nobodyさん
2010/09/16(木) 17:26:09ID:???0834nobodyさん
2010/09/16(木) 17:51:04ID:???0835nobodyさん
2010/09/16(木) 18:11:38ID:UCptVaL2任意の深さを持つ配列を作成したいのですがどうすればよいでしょうか
例えば、
$key = array( 'k0', 'k1', 'k2' );
$value = 'v';
$array = get_array( $key, $value );
とした場合、
$array['k0']['k1']['k2'] = 'v';
と言う結果を得たいのです。
こんな関数 get_array の実装がわかる方おられましたら教えてください。
※もちろん、 $key の数は可変です
0836nobodyさん
2010/09/16(木) 18:18:38ID:???$r = $value;
foreach (array_reverse($key) as $k) {
$r = array($k => $r);
}
return $r;
}
0838nobodyさん
2010/09/16(木) 18:31:39ID:???0839nobodyさん
2010/09/16(木) 18:34:15ID:cwt3W9Qn1つの cmd.exe が約2.5MB、1つの php.exe が約13MBメモリを消費しているようで、
大量のプロセスを立ち上げることが出来ません。
HTTPd上で走らせた方がメモリが節約できたりするのでしょうか?
よろしくお願いします。
0840nobodyさん
2010/09/16(木) 18:37:24ID:???thread版とnon thread版のどちらの使ってるのかも書いてくれないと回答に困るかな
0842839
2010/09/16(木) 18:44:32ID:???PHP 5.2.10 (cli) (built: Jun 17 2009 16:16:57)
php-5.2.10-Win32.zip です。thread版だと思います。
0843nobodyさん
2010/09/16(木) 18:47:13ID:UCptVaL2ありがとうございましたm(__)m
徹夜で半分気を失ってたところです。
ほんとにすいません。
本当に気絶していました。
すいません。
すいません。
0846nobodyさん
2010/09/16(木) 19:13:55ID:???5.3.3に変えても、約11.3MB消費します。
減った分も、Unlha などのモジュールが無効になった為ではないかと思います。
0847nobodyさん
2010/09/16(木) 19:26:07ID:???0848nobodyさん
2010/09/16(木) 20:44:12ID:???ありがとう。
では自分の例だと、こういう風になるのかな。
params.php
<?php
$test = array(
array('id' => 1, 'name' => 'yui'),
array('id' => 2, 'name' => 'mio'),
...
);
test_model.php
<?php
class TestModel extends AppModel{
public $test;
...
}
test_controller.php
<?php
function some_func(){
include "params.php";
$testObj = new TestModel();
$testObj->test = $test;
...
}
つまりクラス内部でのincludeをやめて、外から代入してやると。
クラス内部でincludeしてはいけない理由は、PHPではできないからでしょうか?
0849804-809
2010/09/16(木) 20:59:07ID:???constructを使えばな
でもしないほうがいい
0850nobodyさん
2010/09/16(木) 20:59:56ID:1fMzrbORZend Server CE (ZendServer-CE-php-5.3.3-5.0.3-Windows_x86.exe) を入れようとしたんですが、
インストール途中で、「Error: -1622 インストールのログ ファイルを開くときに、エラーが発生しました。
指定されたログ ファイルの場所が存在し、書き込み可能であることを確認してください。」
というエラーメッセージが表示され、インストールに失敗します。
何か分かる方いますでしょうか?
0851nobodyさん
2010/09/16(木) 21:01:41ID:???0853804-809=EM111-188-45-97.pool.e-mobile.ne.jp
2010/09/16(木) 21:17:54ID:???いずれ分かるときがくるさ
ぽまえならたぶん意味が分かる日はそう遠くないと思う
0854nobodyさん
2010/09/16(木) 21:22:53ID:???http://www.youtube.com/watch?v=P5sWncFiYnA
0855nobodyさん
2010/09/16(木) 21:40:10ID:zUsTEVn5session情報が送られないという決まりがあります。
それをさらに突き進め、相対パスのリンクでも事前に指定した特定のリンクだけにsession情報を送り、
それ以外のリンクはたとえ相対パスの形であっても絶対パスのリンクと同様にsession情報は
送らないように設定することは可能でしょうか?
0856nobodyさん
2010/09/16(木) 21:41:08ID:???そのページにあるFormの〜番目にあるValue値を取得することは可能でしょうか
もし無理ならば 他の方法を教えてください
0857856
2010/09/16(木) 21:42:15ID:qlMmQX9a>>856です
0858nobodyさん
2010/09/16(木) 22:05:44ID:n8iVW5jh書き方がわからなくて困っています。
foreachでキー名は取れますが、新しいキー名を連想配列に戻す方法がわかりません・・・。
例
array(2)
{
["Name1.id"]=> int(1)
["Name1.param"]=> int(45)
}
をこうしたい
array(2)
{
["Name2.id"]=> int(1)
["Name2.param"]=> int(45)
}
0859nobodyさん
2010/09/16(木) 22:09:57ID:???属性値を取得したいならDOM
http://www.php.net/manual/ja/book.dom.php
file_get_contentsしてDOM操作ね
0860nobodyさん
2010/09/16(木) 22:12:59ID:???配列のキーと値をひっくり返す
↓
値(ひっくり返したキーが入っている)を置換
↓
配列のキーと値をまたひっくり返す
ひっくり返す関数はマニュアルから探して
http://jp.php.net/manual/ja/book.array.php
0861nobodyさん
2010/09/16(木) 22:17:50ID:n8iVW5jhありがとう
良すれすねここ
0862nobodyさん
2010/09/16(木) 22:19:38ID:???0863nobodyさん
2010/09/16(木) 22:26:01ID:n8iVW5jh結構面倒すね。気をつけます
0864nobodyさん
2010/09/16(木) 22:26:24ID:???0865nobodyさん
2010/09/16(木) 23:11:01ID:???0866nobodyさん
2010/09/16(木) 23:21:38ID:???0867nobodyさん
2010/09/16(木) 23:35:39ID:???自分も一回だけ経験しましたが済度試したらうまくいって再現できずいまだに原因が分かりません
第五引数には-fオプションでリターンパスを設定してますが
送信されない時も特になにも帰ってきてません
0869867
2010/09/16(木) 23:40:59ID:hZDhig7vテンプレです。
【OS名】FreeBSD
【PHPのバージョン】5.2.14
【連携ソフトウェア】
【質問内容】
>>867
0870nobodyさん
2010/09/16(木) 23:53:28ID:???本題とは関係ないがメールを送るときにmb_send_mail関数は使わない
なぜならmb_send_mail関数は信用できない
この理由はgoogle先生に聞いてね
代わりにmail関数を利用する
ちなみに戻り値がtrueという事ならSMTPの問題でPHPの関係ではない
0871nobodyさん
2010/09/16(木) 23:54:02ID:???もう解決したの?
0874nobodyさん
2010/09/17(金) 09:58:26ID:???0876nobodyさん
2010/09/17(金) 10:35:50ID:???0877nobodyさん
2010/09/17(金) 11:04:40ID:???お前がきてから荒れてるからバレバレだぞ
0879nobodyさん
2010/09/17(金) 11:27:56ID:???言わせんな恥ずかしい
0880nobodyさん
2010/09/17(金) 11:29:21ID:???レベルひくすぎるだろ
0881nobodyさん
2010/09/17(金) 11:32:04ID:???・ちんぴら
・OCN
・自治厨のつもりだけど周りから見たら荒らしにしか見えない人
・回答もロクにしない癖に標的を見つけると待ってましたとばかりに登場する人
0882nobodyさん
2010/09/17(金) 11:46:57ID:???0884nobodyさん
2010/09/17(金) 13:52:04ID:???Auth.php を使用した方がやはり安全でお手軽でしょうか?
0886nobodyさん
2010/09/17(金) 14:00:46ID:zQJEoB3m"db_fields" => "*" を使用して、ログインID/PASS以外のカラム
(日本語で保存されているユーザ名)を取得しようとすると
文字化けしてしまいます。
そこでAuthを使用した場合に発生する文字化け回避策を
調べたところ
$db->query('SET NAMES sjis');
と記述すれば良いとの事でしたが、
これは、MDBパッケージを使用している場合対処方法であり、
私はMDB2を使用している為、この方法を使う事が出来ません。
因みにDB接続時のDSNの設定では、
mysql://test_user:test_pass@localhost/TEST_DB?charset=sjis
しっかりとcharsetとしてsjisを指定しています。
どうすれば文字化けを回避出来るかご教示下さい。
0887nobodyさん
2010/09/17(金) 14:16:40ID:???0888nobodyさん
2010/09/17(金) 14:22:33ID:zQJEoB3mはい、その通りです。
IDを出すのを忘れていたので出しました。
0889nobodyさん
2010/09/17(金) 14:28:04ID:???0890nobodyさん
2010/09/17(金) 14:29:17ID:???ttp://wiki.livedoor.jp/wanderingse/d/PEAR%3A%3AMDB2%A4%C7%A5%B5%A5%F3%A5%D7%A5%EB
0891nobodyさん
2010/09/17(金) 14:35:28ID:B0xV1VRrもしくはsendmailと互換があるものってありませんか?
0892nobodyさん
2010/09/17(金) 14:36:22ID:ZenZaYAa0894nobodyさん
2010/09/17(金) 14:40:05ID:???わざわざSET NAMES sjis'とやろうとしてたという事は
PHPはsjisで作成しているという事であってる?
もしよくわかってないなら
MySQL側の文字コード関連(show variables like 'character_set%';)
PHP側の文字コード関連(phpinfo()のmbstringの設定)を確認して
ようは、MySQLの文字コード・PHPの文字コードが自分が想定している文字コードかどうかの確認。
0896nobodyさん
2010/09/17(金) 16:15:08ID:???【PHP】下らねぇ質問はIP出して書き込みやがれ 98
【PHP】下らねぇ質問はIDとIP出して書き込みやがれ 98
【PHP】下らねぇ質問はID出して書き込みやがれ 98
【PHP】下らねぇ質問はID出して分かりやすく書き込みやがれ 98
0897nobodyさん
2010/09/17(金) 16:17:42ID:???1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
↑
今からEUC-JPなんて使わないしほとんどそういうサイトも見かけない
Shift_JISは携帯サイトで使うし書き換えたほうが良いと思うんだがどうだろう
0898nobodyさん
2010/09/17(金) 16:26:40ID:???というかUTF8一択で良いだろ
■ このスレッドは過去ログ倉庫に格納されています