【PHP】下らねぇ質問はここに書き込みやがれ 65
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 64
http://pc11.2ch.net/test/read.cgi/php/1202536271/ ◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を必ず明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくはトリップをつける事。
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
【簡易FAQ】 (1/3)
1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→
http://example.com/が例文などのために予約されている 。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
→ Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
→ cronかタスクスケジューラを使え。
7.extractって危険なの?
→変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
→ URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
→ .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
10. そもそもインストールの時点でうまくいかない
→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
【簡易FAQ】 (2/3)
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.を参照
【簡易FAQ】 (3/3) 21. 画像処理一般 or GDの限界 → ImageMagick(PECLのやつ or シェルから実行) 22. 画像・音・動画はファイルで保存?DBに保存? → 好きにしてください
>>1 死ね。何回テンプレ間違えたら気が済むんだ?
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 64
http://pc11.2ch.net/test/read.cgi/php/1202536271/ ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
8 :
nobodyさん :2008/02/24(日) 23:43:55 ID:u17cTLyd
質問です redhat 8 apache 2.0.40 PHP Version 4.2.2 下記のようにメインルーチンでfopenをして、そのファイルハンドラを 関数に引き継いだ場合、関数側でそのファイルハンドラに対して、書き込みができないのですが、 これは仕様でしょうか? //メインルーチン <? if (!($fno = fopen("dbg.txt", 'w'))) { die;} //関数コール Au($fno); //関数 function Au($fno){ fputs($fno, hoge); } fclose($fno); ?>
10 :
8 :2008/02/25(月) 00:18:18 ID:67ayJX2Z
>>9 逆にパラメータの引き継ぎをしなければ、ファイルアクセスできないのですか?
パラメータ渡さないと何に書き込むか解らんだろ 直近のファイルポインタに対して書き込みたいとかってーなら クラス化とかして俺俺クラス作れば良い
12 :
8 :2008/02/25(月) 00:30:18 ID:67ayJX2Z
シュッ シュッ シュッ ハ,,ハ シュッ ハ,,ハ彡( ゚ω゚ ),ハ ( ゚ω゚ )彡ミ( ゚ω゚ ) お断りします _(__つ/ ̄ ̄ ̄/_ \/ /
___ , 二¨-―-- 、`丶、 /_ ..-――-.. 、十ヽ\ //::.::,:.:.:./::/::.::.l::.::`ヽ、\ヽ 〃::/:::/:.:.:/::/::.:/::|::.:、:.::.::ヽ ハ `、 l::.:::l:: ,':l:::/::/::.:/::;小:::l::ト、::.:V l ヽ {::.:::|:::l::|::l::/::.:/::/:/:_j⊥l::ヽ:!} \ . ハ::.::l:::|┼く:/::/ /'´ノ ヽ:∨::.:l | / 〈 l::.:|:::l::|∠、ノ , =≡V::.::/|/ ヽヘ::ヽ::V⌒゙ , "゙ / :::,' l〔 下らねぇ質問は /rヘ::\ ゛゛ rーヘ 彡: / /:::Y⌒i ここに書き込みやがれ l冫/ }`ヽミヽ、ヽ、ノ, イ:`7十/::.::.:l | ですぅ // /:::_rヘ_`二√ __〉/ レヘ::} | // ,'/夕r==、∨---/、/ f==ミフ 厂ト、 . // 〃r7,イ| >トマ ̄〉 7ヽ厶ィ {ヽ 」__/ / 〉 , -‐'7/ /:.rク/ {ニ=彳/ ハ ∨, / ̄:{八_‐-┴勹 / / /: :/7/ /,イ/ / /、/_ /: : : :|:厶 `^´ 人 ヽ冫< / {: : :Y〈__ //〃 ,' / 7ヽ ,仆、: : :|| : :`¨¨´: :冫、
17 :
nobodyさん :2008/02/25(月) 19:54:35 ID:VX5+CaAR
簡単なグラフを出力したいのですが、GDやMing(Flash)ライブラリがインストールされていません。 他にグラフを出力する良い方法はありませんか? CSSとかHTMLのimg要素を使って、HTMLのソースを動的に出力する方法しか思い浮かびません。 他にもっと何か方法があれば教えてください。
19 :
nobodyさん :2008/02/25(月) 20:01:45 ID:igqyKmSz
質問です。 header()関数の前でechoとかで文字列を出力しています。 仕様上header()関数の前でechoで出力しているもの(テンプレートのヘッダー)は出力しないようにするのは無理なんですが、 header()関数が呼び出されたらheader情報をクリアしてからheader()関数を実行するようにはできないでしょうか?
>>19 > 仕様上header()関数の前でechoで出力している
仕様を見直した方が良いと思うよ。
21 :
nobodyさん :2008/02/25(月) 20:09:46 ID:igqyKmSz
>>20 テンプレート側で、ヘッダーとフッターを標準で出力するようにしています。
ボディーが動的に変わるようにしており、問題が起こっているところがボディーで呼び出しているheader関数のところなんです。
仕様を見直したほうが、ということは、作り直しということですか?
phpの何たらっつー設定で回避できたはず。 ところでそういう「ヘッダー+コンテンツ+フッター」じゃなくて 「総枠組み+コンテンツ」とかいう方式なんて言ったっけ?そっちのほうがいいんじゃね。
25 :
nobodyさん :2008/02/25(月) 20:44:03 ID:igqyKmSz
>>23 ありがとうございます。
ちょっとサーバの設定を見直してみます。
>>24 header()関数で出力しているものはサーバ上のファイルです。
header ("Content-Disposition: attachment; filename=".$file);
header ("Content-type: application/octet-stream")
readfile ("file/".$file);
exit;
上記を実行する前にテンプレート側のヘッダーを呼び出してしまっているので、
ダウンロードするデータの中にはテンプレート(ヘッダー)+ダウンロードファイルとなってしまっている状態です。
26 :
25 :2008/02/25(月) 21:29:37 ID:???
とりあえず出力系のものは全て1つの関数にまとめ、bodyを呼び出すときに作成した関数を呼び出し引数を与え、テンプレートを出力することで回避できました。 回答して下さった方々、ありがとうございました。
mbstring.script_encodingはスクリプトの文字コードだと思うんですが、 mbstring.strict_encodingというのは何なんですか?
29 :
nobodyさん :2008/02/26(火) 22:39:54 ID:AjWFGOA4
file_get_contentsなどで取りに行ったファイルが404だったり503だったりした場合 そのレスポンスコードを判別する方法はありますか?
>>29 できないですね。
レスポンスを取得したいならHTTPリクエスト投げたほうが良いかと
31 :
nobodyさん :2008/02/27(水) 06:04:23 ID:1t015U4G
・2つのサービス(A,B)で同じDB(同じユーザ情報)を参照 ・ドメインは異なる この場合、Aにログインした状態でBにアクセスすると自動的にログインが 行われるようにしたいのですが、どのようにしたらいいのでしょうか? よろしくお願いします。
>>31 dbでsession管理するとか
dbにログイン情報持たせるとか
33 :
31 :2008/02/27(水) 07:34:17 ID:???
>>32 ありがとうございます。
重ねてすみませんが、DBにセッションを格納する場合、
ドメインが違うとsession_idが異なってしまうみたいなのですが
どうしたらいいのでしょう、、、
DBにセッションを格納するんならsession idが変わっても問題無いだろ。
35 :
nobodyさん :2008/02/27(水) 08:16:25 ID:sItN3geE
質問します あるディレクトリに特定の文字列で名前が始まるJPGがあるか確認したいんですが どうしたらいいでしょう? 20080227_100で始まるファイル名を例にして教えてください よろしくお願いします
>>31 ログイン中かどうか程度の情報ならクッキーに入れとけば?
>>35 glob('dirname/20080227_100*.jpg')
とか。
39 :
35 :2008/02/27(水) 08:56:42 ID:???
>>37 おおおっ こういうやり方かぁー
きっと正規表現の基礎なんですね ありがとう、勉強します
正規表現以前だよ。Linuxも勉強したほうがよい
41 :
29 :2008/02/27(水) 11:31:12 ID:???
42 :
nobodyさん :2008/02/27(水) 12:06:56 ID:YQJ5tlSl
php://stdinで取得できる入力って、 スクリプトが実行されている間はいつでも取得できるのですか?
終盤は取得できない
function foo(&$obj) { $obj->data = 123; } という関数に対して、 foo($obj); と foo(&$obj); で 呼び出すのでは結果が違うんですね。 意味がわかりません。
>>44 同じに見えるけど、どう結果が違うの?
PHP5.2 WinXP
class Boo {}
$obj1 = new Boo();
foo($obj1);
print_r($obj1);
$obj2 = new Boo();
foo(&$obj2);
print_r($obj2);
function foo(&$obj) {
$obj->data = 123;
}
pho4と5ではそこらへん挙動が変わってる でも呼び出す側でfoo(&$obj);ってする事は 無いと思うんだけど
おかしいなぁ。確かに、$thisと&$thisで挙動が変わっているんだよ。 PHP4ね。フレームワークでいろいろ実行される一部分の処理だから 具体的にどこが問題なのかわからないや。
CakePHPの問題だったよ。 PHP4でoverloadを使ったとき(多くのクラスで使われている)の問題。 バグなのか仕様なのかわからんけど。 class A extends overloadable { function foo(&$obj) { $obj->value=2; } } class B {} $a = new A(); $b = new B(); $b->value=1; $a->foo($b); print_r($b); これを実行すると1が表示される。 $a->foo($b); を $a->foo(&$b) ; に変更すると 2が表示される
CakePHP部分を取り除いて通常のPHPにしました。
これと似たような問題?バグであり回避は不可能なのかな?
php4で overload() して __call() を定義するとリファレンスで返せなくなる?
http://blog.livedoor.jp/a_day_in_the_radio/archives/50660248.html class A {
function foo(&$obj) {
$obj->value=2;
}
function __call($method, $params, &$return) {
return true;
}
}
overload('A');
class B {}
$a = new A();
$b = new B();
$b->value=1;
$a->foo($b);
print_r($b);
51 :
nobodyさん :2008/02/27(水) 15:37:55 ID:lCPSweHG
どうにも不可解な事が起こったのでお時間ある方試していただけないでしょうか? (長文なので3つに分けます。コード部分は2つです。すいません) コードをさらします。UTF-8で保存してください。 session_start(); if(!isset($_SESSION['test'])){ $_SESSION['test'] = array( array("name"=>"ほげ","age"=>32,"date"=>"2008-02-27 13:03:24.999999"), array("name"=>"ふが","age"=>23,"date"=>"2008-02-27 13:03:24.333333"), array("name"=>"おおおええええ","age"=>23,"date"=>"2008-02-27 13:03:24.999999"), array("name"=>"文字化け","age"=>25,"date"=>"2008-02-27 13:03:24.333333"), array("name"=>"最新","age"=>26,"date"=>"2008-02-27 13:03:24.111111"), array("name"=>"ぼえぼえ","age"=>32,"date"=>"2008-02-27 13:03:24.666666"), array("name"=>"おろろろ","age"=>25,"date"=>"2008-02-27 13:03:24.111111"), array("name"=>"おえ","age"=>26,"date"=>"2008-02-27 13:03:24.666666"), ); } $order = array("age"=>SORT_DESC,"date"=>SORT_ASC); _2KeySort($_SESSION['test'], $order); $temp = $_SESSION['test']; foreach($temp as $key=>$value){ $value['name'] = mb_convert_encoding($value['name'], 'SJIS', 'UTF-8'); $temp[$key] = $value; } echo "<pre>"; print_r($temp); echo "</pre>"; echo "<pre style='background-color:#EEEEEE;'>"; print_r($_SESSION); echo "</pre>"; //続く>>
52 :
51 :2008/02/27(水) 15:38:37 ID:lCPSweHG
//51の続き function _2KeySort(array &$array, array &$columns_order){ $array_sort = array(); $array_order = array(); $i=0; foreach($columns_order as $column => &$order){ if(!array_key_exists($column,reset($array))){ require_once 'Sd/Exception.php'; throw new Sd_Exception("ソートに指定されたキー[{$column}]がありません。"); } foreach ($array as $key => &$row) $array_sort[$i][] = $row[$column]; $array_order[$i] = $order; ++$i; } array_multisort($array_sort[0], $array_order[0], $array_sort[1], $array_order[1], $array); }
53 :
51 :2008/02/27(水) 15:39:26 ID:???
>>51 の続き
@まず、セッションに配列を保存。
Aセッションの配列をソート
Bセッションを別の変数に代入し文字コードを変換。
C代入した変数とセッションを表示
という流れです。
なぜか、セッションのデータも文字コードが変わってしまいます。しかも、全部ではありません。うちの環境では「おえ
」だけがUTF-8のままです。なので、表示の度に、めちゃめちゃに文字化けしていきます。
ちなみに、ソートする関数をコメントアウトすると、セッションの文字コードは変わらなくなります。
$temp = $_SESSION['test']というのは参照ではなく値のコピーですよね?
ソートする関数で、参照渡しにしなくていいところもありそうですが、それ以前に、セッションの文字コードに影響が出るのはおかしくないでしょうか?
実際には、Zend_Frameworkと、出力部分にSmartyを使用した、そこそこ大きなアプリで起こったことなのですが、
いろいろ試して、やっとここまで問題を切り分けました。
ソートする関数の参照渡しをやめるか、セッションに保存する前にSJISに変換して、出力の度に変換するのをやめれば
この問題は解決できるのですが、根本的な解決というか、理解になっていないので、気になります。たすけてください。
PHP Version 5.1.6です。
長文すいません。
なんで肝心なとこだけ書かないの? わざわざ回答者が全部見ると思う?
55 :
51 :2008/02/27(水) 16:05:29 ID:???
今、またいろいろ試してたのですが
ソートする関数内で、
array_multisortの為に、ソート対象カラムの配列を作るところのforeachで
foreach ($array as $key => &$row)
を
foreach ($array as $key => $row)
と参照をやめると、文字化けしないようです。
ここはソート対象カラムの配列のために、代入してる場所なので参照にする必要はなかったです。
なんかarray_multisortまわりか、参照渡しのバグっぽくないですか?
>>54 すいません。
これでもかなり問題を切り分けて、まとめて、要点のみ書いたんです。
ソースをそのまま実行できるように書いたほうが、いいのかなあ、なんて・・
せめて、53を最初に書いたほうがよかったかな。
読むのうざいと思いますが、そこを何とかお願いします
>>51 たぶんmb_convert_encoding出来て無いんだと思う。
mb_language('Japanese');
$value['name'] = mb_convert_encoding($value['name'], 'SJIS', 'auto');
こうするとどうなる?
autoはダメだろjk
ってか、なんでまたID隠し始めたんだ?51は
>>55 > なんかarray_multisortまわりか、参照渡しのバグっぽくないですか?
自分のソースをまず疑え
とPHPのえらい人が言ってました
どこで文字化けが起きてるかprint_rなどで各場所で文字化けがおきていないかチェックしたら?
>>57 ダメだけど、ひょっとしたら自動変換してたら、と思って。
未だに jk とか使ってる奴いるんだな。 生きてて恥ずかしくないか?
j 女子 k 高生 ?
「常識的に考えて」
>>61 KYは知っていたけどね。
おぢさん、初めて知ったよ。
ありがとう。早速今度の会議で使ってみるよ。
危険予知は現場労働の基本だからな。
66 :
nobodyさん :2008/02/27(水) 18:03:18 ID:n+zWmSsJ
Apacheの設定がおかしいんだろうから、とりあえず Apacheのエラーログ見れ。
なんと分かりやすい
69 :
66 :2008/02/27(水) 18:21:44 ID:???
>>67 httpd.confの書き換えが間違っていたようです。
ありがとうございました。
70 :
51 :2008/02/27(水) 18:29:48 ID:lCPSweHG
>>56 $value['name'] = 'hogehoge';
でも元のセッションが変わってしまします。(同じく一部を除いて)
>>57 文字コードを変換してるforeachのなかで、元のセッションかわちゃってます。
IDは隠したわけじゃなく、連続で上げたら怒られるかなとおもって、sageにしちゃいました。
ためしに5.2.5が入ってるサーバーで試したら元のセッションは一切変わらず、問題なく動きました。
サーバーの設定かもしれませんが、基本php.iniはデフォルトのままで、.htaccessで設定してるので
見比べた感じ原因と思われるような違いはありません・・・
欧文ならマトモに動作するんだよね? sessionファイルをtmpから引きずり出して覗いて見るのは、さすがにキツい?
解説サイト見てもよくわからんのですが ログファイルを使ったページ分割のロジックはどういうものなんでしょうか? 記事数を1ページ辺りの記事表示数で割って表示しますよね。 その後の前のページに戻るとかのロジックがまったくよくわかりません。 スーパーグローバル関数のGETとか使うんですよね?
前のページに戻る機能は現在のページから1引いた数をアンカーに付ければいいだけだと思うが。 そういう話じゃない? 全74件あって10件ずつ表示するなら、ページ5でリクエストが来たら41〜50件目の内容を、ページ4では31〜40件目の内容を取得すればいい。 ページごとに独立して考えればそんなに難しくないと思うけども。
そのページ5で指示が来た時に該当件数を表示する 書き方がよく・・・・・・・ すべての投稿数数えて一ページあたりの表示数で割って それから具体的にどうするんでしたっけ? 単に基礎知識足りなさ過ぎるだけなのか 頭が猛烈に足りないのか・・・・・・ htmlなら直感的にイメージ出切るぐらいまでそこそこわかるんですが こういう二重、三重のロジックだとどうしても思考停止状態に陥ってしまうんですよね・・
例えば総ページ数を番号で出すには 全体の投稿数を1ページ辺りの投稿数で割り余り分のためにページをプラス1して 表示するんですよね? 今度は表示したリンクをクリックした後に該当の投稿行をピックアップするように またプログラムを用意すると・・・・あああ、ややこしい。
君は向いてないね
だと思います・・・・・ 直感的なデザイン畑の人間ですし・・・・・
はなむけに現在のページ数の受け取り方だけ教えてもらえませんか。
<?php $page = $_GET['page'] ? $_GET['page'] : 1; $all = countArticles(); $one = 10; $start = ($page - 1) * $one + 1; $end = $page * $one; $articles = getArticles($start, $end); こんな感じ?検証してないけど
$allPages = cell(($all / $one)); echo "<p>総記事数は $all 件です</p>"; echo "<p>全部で $allPages ページあります</p>"; echo "<p>現在 $start 件目〜 $end 件目を表示しています</p>"; for($i=1; $i<$all; $i+=10){ if ($i == $page) { echo '<a href="?page='.$i.'">['.$i.'] </a>'; } else { echo '['.$i.'] '; } } ついでにこんな感じ
85 :
nobodyさん :2008/02/27(水) 22:56:10 ID:rbJ5iPpD
DBに保存してある画像のバイナリデータ(形式はjpeg,gif,png)をリサイズしたい場合はどうすればよいのでしょうか。 php4.3のGD入ってます 一旦ファイルに保存してimagecreatefromjpegとかするしかないのでしょうか。 そんな馬鹿な。
間違えた。最後のfor文は素直に for($i=1; $i <= $allPages; $i++){ でokだ。 全ページ数を使わないで出力するなら$iのインクリメント用と記事数比較用の2変数使えばできる。まぁ蛇足だが。
>>85 お怒りはごもっともですが
現在、この世界のいたるところで
あなたの言う『ばかなこと』が起きています
88 :
nobodyさん :2008/02/27(水) 22:59:30 ID:rbJ5iPpD
めっけた。 imagecreatefromstring これでいい気がしてきた。
課題だとか勉強用だとかじゃなければ素直にそのへんのpager使えばいいのに
WebARENA SuiteX
PHP5
で、次のアップロードスクリプトを設置しています。
http://hellogirls.myphotos.cc/hellogirls/manual/index.html Suite2 PHP4の時は問題なく動作していたのですが、SuiteXにしたらアップロードファイルにつけるコメントに日本語が含まれていると文字化けするようになりました。
色々、調べてみましたがちんぷんかんぷんで解決策がわかりません。
この辺りのソースをいじれば良さそうな気がするのですが…
どなたかアドバイスやヒントでもいいのでいただけないでしょうか。
PHPやCGIの設置はできるけど、プログラムの具体的なことは何も理解できてません。
こんな私ですがどうかよろしくお願いします。
コメント
<input type="text" size="45" name="com" value="'.($c_comu ? $input_comment : '').'">
//ファイルリスト表示
if($c_com) echo '<td class="column_comment">'.$com.'</td>';
//項目読み取り
list($id,$ext,$com,$host,$now,$size,$mtype,,$orig,,$img_width,$img_height) = explode("\t",$logline);
PHP4からPHP5の仕様変更が文字化けの原因みたいで、それでこちらのスレに誘導されてきたのですが。 改造スレに行ったら、それは改造ではなくPHPの仕様の問題だからPHPスレで聞けと言われそうです。
>>90 PHP4.4.x(PHP5では動作確認していません)
と書いてあるので諦めろ……
ソースみたけど、PHP4に依存してる場所はなさそうだったけどね。
form_upload_file.phpをいじってるのなら、文字コードがSJISになっていないか確認。
きちんとEUC-JPになっているか?
ログファイルをエディタで開いて見て、EUC-JPで文字化けしないかどうか。
そのあたり確認して報告しろ。 寝るのでまた明日。
ありがとうございます。 form_upload_file.phpはEUC-JPになっていました。 ログファイルを確認したところ、日本語で文字化けしているコメント部分もログファイルではまだ文字化けしていませんでした。 ログファイルを読み出して表示するまでの過程で文字化けがおこっているようです。
95 :
nobodyさん :2008/02/28(木) 09:55:35 ID:OSai0GdG
PEAR::DBを使ってデータをINSERTする作業をしているのですが、 debug_backtrace();の部分で、エラーが出ます。 数万〜数十万ほどINSERTを繰り返すループなのですが・・・
96 :
nobodyさん :2008/02/28(木) 11:14:01 ID:hOKfamSR
質問です。 CentOS5のディストリビューションを使って環境構築したのですが、画像やファイル情報をphpを使用して、PostgreSQLにbyteaでコミットをする時にmemory_limitが不足する現象が起きています。 <確認している現象> ・2MBの画像のコミット時にはmemory_limitに53MB以上が必要 ・4MBの場合は、128MB以上 ・8MBの場合は、400MB以上 といった具合です。 <環境> OS :CentOS5 WEB:Apache/2.2.3 (CentOS) PHP:PHP Version 5.1.6 DB :PostgreSQL8.1.9 windowsやRedhatで同じphpなどで構成し、モジュールを実行した際には8MBのファイルでもデフォルトのmemory_limitの設定である16MBで問題なくコミットできました。 他の環境でも検証していきますが、この原因って何が考えられますでしょうか。
質問です。 $word = $_GET[WORD]; $word = mb_convert_encoding($word,"SJIS","UTF-8"); PHP5(WebARENA SuiteX)なのですが、大部分はこれでデータの受け渡しは問題あり ません。 しかし、"90's"を受け渡す際に"90\'s"になってしまいます。stripslashesを使え ば解決できることはできるのですが、今度はこれを使うと"ソニー"を受け渡す際 に文字化けしてしまいます。 "90's"も"ソニー"も問題なく受け渡す方法を教えていただけないでしょうか。
99 :
97 :2008/02/28(木) 11:59:15 ID:AxRhgNfU
>>98 申し訳ない。「自分のIDを表示させること。」というのを見逃してました。
>>99 php.iniの設定でクオートが自動でされる設定になってるんじゃまいか?
auto_magic_quoteだっけ?
101 :
nobodyさん :2008/02/28(木) 12:02:50 ID:z722MoHc
102 :
nobodyさん :2008/02/28(木) 12:12:19 ID:AxRhgNfU
SuiteXは共有サーバーなのでphp.iniをいじれないんですよ…。 何かプログラム的に逃げる手があればいいのですが…。
PHP内で一時的にPHP.iniの設定を変更できるini_set()関数がある
たぶん受け取る前に書けばできるはず 不安だったらhtaccessで設定すればいいし・・・
>>105 受け取る前っていつ?
PHPのモジュールが呼び出された時点では $_GET / $_POST に値が設定されてるんじゃないの?
試したけど、やっぱムリじゃね。(PHP5.2 WinXP)
ini_set('magic_quotes_gpc', 'Off');
print_r($_GET);
マニュアル見ると
magic_quotes_gpc
PHP_INI_PERDIR
PHP <= 4.2.3 では PHP_INI_ALL。PHP 6.0.0 で削除。
http://jp2.php.net/manual/ja/ini.php#ini.list ってなってるけど、PHP4はPHP_INI_ALLだから出来たという事なのかな。
値の参照時にでも処理してたんだろうか。これもよくわからん。
108 :
nobodyさん :2008/02/28(木) 13:16:55 ID:AxRhgNfU
皆さんお昼休みなのにありがとう。SuiteXは個人で使っているので、家に帰ってから色々と試してみます。
>>103 その発想なかったです。試してみますね。
>>104 順番を変えるのもちょっとやってみますね。
>>105 >>106 受け渡し前はごく普通のHTMLです。
<form action="XXXX.php" method="get" name="form1">
<input type="text" name="WORD">
モジュールが呼び足された時点で値が設定されてしまいますね。
109 :
nobodyさん :2008/02/28(木) 13:22:10 ID:AxRhgNfU
>>107 PHP4(WebARENA Suite2)の時にはこれだけで動いてました。
$word = $_GET[WORD];
$word = stripslashes($word);
文字化けもなく不要な"\"も出てきませんでした。PHP4では逆にmb_convert_encoding
でエンコード変換すると文字化けしてしまってました。
110 :
nobodyさん :2008/02/28(木) 15:48:07 ID:SiLzRmwx
mb_send_mailをして受け取ったメールを見ると、行間が1行ぐらい空きます。 サーバはEUCなので、 mb_language("Japanese"); mb_internal_encoding("EUC-JP"); という指定を入れています。どうしてこうなるのでしょうか?
改行コードが入ってるからじゃね?
112 :
110 :2008/02/28(木) 16:01:23 ID:SiLzRmwx
>>111 改行コードを取り除くのに、↓を入れたのですが、特に変わりません。。
$body = str_replace("\r", "\n", str_replace("\r\n", "\n", $body));
>>112 取り除いてねーじゃん
置き換えてるだけじゃねーか
str_replace(array("\r\n", "\r", "\n"), "[改行]", $body);
みたいにして、BODYの中での改行なのか他で改行入ってるのか調べてみれ
>>101 vote.php?id=17685&value=1
このスレ来ると和むな〜
すみません。助けてください。 HTMLとPHPとがまじったファイルがあるんですけど、シンタックスエラーがでます。 どうやら '}' をひとつ抜かしてしまったみたいなんですが、どこで抜かしてしまったかがエラーメッセージからは分かりません。 ファイルはHTMLとPHPとが混ざった500行を超えるファイルです。 正直、どうやって探せばいいのかわかりません。 こんなとき、みなさんどうしてますか。
対応する括弧が強調表示されるエディタを使ってチェック
エディタ(自分の場合はEmacs)使ってインデントつける。
119 :
108 :2008/02/28(木) 19:53:20 ID:s0/KCSkK
>>104 108ですが家に帰ってきました。
そして、順番を変えてmb_convert_encodingの前にstripslashes置いたら
ちゃんと動作するようになりました!
$word = $_GET[WORD];
$word = stripslashes($word);
$word = mb_convert_encoding($word,"SJIS","UTF-8");
104さん本当にありがとうございました。
あと他にコメントいただいた皆さんもありがとうございました。
121 :
nobodyさん :2008/02/28(木) 21:00:56 ID:UIzvtCsy
PHPのクラスについて理解が深くないのですが、 PHP5.1.6で以下のコードを書いたときの疑問です。 class Stack { public function getInstance() { return new Stack(); } } $stack = Stack::getInstance(); の様に、static宣言されずに::を使ってメソッドにアクセスできるのはなぜですか?
>>121 PHP4との互換性のため。
ただしstaticつけると Stack::getInstance() はOKでも $stack->getInstance() はエラー。
124 :
nobodyさん :2008/02/28(木) 21:06:14 ID:UIzvtCsy
>>122 それは日ごろ確かに感じます。こだわりがないって。
>>123 staticをつけなくてもstaticに呼び出されているんですか?
試してみりゃすぐ分かるがな
掲示板のフォームから内容受け取って
150個のログ以上は消すと言うロジックはみなさんどうしてます?
file()で全ログ格納してからarray_unshiftで新しい内容を挿入、
その後forを使って何かするんでしょうけどそこが具体的によくわかりません。
>>84 ありがとうございます、
おかげさまでできました。
本当に感謝です。
>>124 >staticをつけなくてもstaticに呼び出されているんですか?
yes
PHPでは static に呼び出すのも、static じゃない呼び出しも、どっちも同じ。
たんに、static な呼び出しだと $this にアクセスできないというだけ。
staticで呼び出す方が遅い訳だが
129 :
nobodyさん :2008/02/28(木) 23:06:49 ID:CZGTxiZs
あらやだ、ホントだ PHP 5.2.3 class foo { var $buf = null; function foo() { $this->buf = 100; } function static_func() { return 100; } function member_func() { return $this->buf; } } -- call foo::static_func 10000 * 1000 min: 0.0476429462433 max: 0.0605020523071 ave: 48.9423131943 -- call foo->member_func 10000 * 1000 min: 0.0209789276123 max: 0.0423769950867 ave: 21.8284888268 なんで?
130 :
nobodyさん :2008/02/28(木) 23:42:39 ID:psOQg9xE
PDOでfetch()を使うとfetchAll()を使うように怒られるのがむかつく。 仕様なんですか?
過去のいきさつはよくわからないのだけど magic_quote_gpcとかregister_globalsとか 過去の遺産も簡易FAQに入れたがいいのかなぁとか思った。 個人的には今更そういう設定のサーバがあること自体が不思議なんだけど 99を見る限りまだ生きてるっぽいし 逆に、そういう動作があるっていうのを知らない人が増えてきた今だからこそ 問題だとか思うんだ。 というわけで解説よろしく ↓
解説じゃないけど。 >個人的には今更そういう設定のサーバがあること自体が不思議なんだけど PHP5 では magic_quote_gpc はデフォルトで On だからなぁ。
PHPの設定で magic_quote_gpcというものがあって、 これがONであるとPOSTとかGETの中身は渡された先で勝手にクオートされます。 面倒なのは、同じスクリプトでもサーバーのPHPの設定によって 挙動が異なってしまうことです。 これを防ぐためには、 自サバならばPHP.iniのmagic_quote_gpcをoffにしてください。 そうでないならば、 $_POST,$_GET配列をまず最初に処理する関数を作り、その中に if(get_magic_quote_gpc()){ として、各要素をstrip処理すれば良いと思います。 ini_set()はなにやらオススメできないようです。
最後の2行が随分曖昧だな
>>134 めんどくなった。
ついでに俺130なんで誰か答えてくれ。
怒られるって誰に?上司に?
PDOに怒られます。 Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.' と言われます。
コードがおかしいんだべ。
いくつも仕事を同時にさせるな、ボケって言われてるだけじゃないの?
140 :
nobodyさん :2008/02/29(金) 00:50:06 ID:lB4w3WIe
誰もなったことないの? 誰もPDO使ったことないってことか? そこをfetchAll()にすると直るんだけど、 fetchAllって名前から想像つくと思うけど全行読むから メモリもったいないかと思って。
141 :
132 :2008/02/29(金) 01:06:54 ID:???
>>133 偉いっ!!すばらしいっ!!結婚して!!!当方マンションもち。
もっと単純に
自分でPHP.ini触れるんならmagic_quote_gpcはoff
触れないんだったら全てのスクリプトで(なんだっけ)せれ
質問はその後だ
みたいに強制的でもいいのかでもとか思った。
「誰もなったことない」 ⇒ 「誰もPDO使ったことない」 素晴らしい推論能力をお持ちのようで。 まぁそんなことはさておき、コード出してみたら?恐らく普通とは違う書き方してるんだろうし。
143 :
nobodyさん :2008/02/29(金) 02:06:51 ID:lB4w3WIe
$rs=$db->query("SELECT UNKONAME FROM UNKOTABLE WHERE UNKO_ID=1"); $unko=$rs->fetch(); echo $unko["UNKONAME"]; $rs2=$db->query("SELECT UNKONAME FROM UNKOTABLE WHERE UNKO_ID=2"); $unko2=$rs2->fetch(); echo $unko2["UNKONAME"]; みたいな感じにSQLを2回やるとなんか怒られます。 fetchAllにして、1個しかない結果セットを$unko[0]["UNKONAME"] とかやって取り出せるんだけどね。
144 :
nobodyさん :2008/02/29(金) 02:07:51 ID:lB4w3WIe
分かると思うけど$dbはPDOのインスタンスです
147 :
nobodyさん :2008/02/29(金) 02:43:19 ID:lB4w3WIe
static ○ Object::obj(); × $obj->obj(); ○ $this->obj(); public ○ Object::obj(); ○ $obj->obj(); ○ $this->obj(); protected × Object::obj(); ○ $obj->obj(); ○ $this->obj(); private × Object::obj(); × $obj->obj(); ○ $this->obj(); これでおk?
>>148 だめー
大体にしてメソッド名をobjにするなややこしい。
コンストラクタかと思うじゃねーか。
そもそもそういう理解の仕方じゃまずいぞ。
privateなメソッドというのは「class hoge{}の外からのアクセスは完全にNG」て意味。
中からなら$this->やObject::obj()でアクセス可能って意味だ。外から$thisなんてことはできないので$obj->objかObject::objを使うことになるけど、
それらのアクセスはprivateじゃ無理よってこと。
protectedは継承したクラスもアクセス可能という意味。だから、class fuga extends hoge{}はhogeのprotectedなメソッドを
$thisとかObject::objで扱うことができるってこった。だが当然インスタンス生成してのアクセスである$obj->objは不可能だし、
外部からのObject::objも不可能。
publicは外からのアクセスもできる。$thisだろうとObject::objだろうとOKだ。
staticは上記3つとは別な概念。上記3つは同時に存在できないが、こちらはpublic staticのように併存OKだ。
staticなメソッドは、「外部からそのクラスのインスタンス生成なしで呼び出すことのできるメソッド」
と言う意味。でも重要なのは「staticと指定したメソッドは、そのクラスのstaticでないプロパティや
メソッドを呼び出せない」ってこと。staticでないメソッドやプロパティを呼び出してるメソッドにstaticを設定すると
エラーが出るはず。staticなメソッドはぶっちゃけて言うと一般の関数と変わらない使い方ができる。
PHPみたいなゆるい言語においては微妙な存在ってこった。ただ、「こういう処理をする関数はここにまとめておこう」みたいなときに
使ったりするね。
>>150 うるせーこっちは13時から試験があるから逃避してんだよw
この$noを求めるのに前のログの$noに+1して 書き込む処理をこの上でしてるんですが それだと書き込みが重複した時にナンバーが同じ値になったりするのでしょうか? 削除に使うナンバーなのでなるべく厳密になるようにしたいのですが。 $data = "$no\t$name\t$comment\t$delkey\t$time\n"; $filename = ('card.txt'); $log = file($filename); $handle = fopen($filename, "w"); flock($handle,LOCK_EX); fwrite($handle,$data); for($i=0; $i<150; $i++) { fwrite($handle,$log[$i]); } flock($handle,LOCK_UN); fclose($handle);
>>152 厳密にやるならデータベースを使う。
データベースが使えないなら、uniq_id()やmd5(microtime(true))で重複しない乱数で代用する。
$no+1する前の段階でファイルロック掛けておけばいいんじゃ?
ありがとうございますmd5(microtime(true))でやってみます、 多分私の扱える知識がないデータベース以外で精度が高いのは これだと思うので。 これで作り出したIDが重複してないかファイル捜索するのは時間の無駄ですかね?
>>149 staticなプロパティは異なるインスタンス間で値を共有できるから便利
え? fopenする前にファイルロックできるんですか? ちょっと最近勉強始めたのでよくわかってないのですが。
こういうことですかね。 $filename = ('card.txt'); flock($filename,LOCK_EX); $log = file($filename); $no = explode("\t", $log[$i]) $data = "$no[0]\t$name\t$comment\t$delkey\t$time\n"; $handle = fopen($filename, "w"); fwrite($handle,$data); for($i=0; $i<150; $i++) { fwrite($handle,$log[$i]); } flock($handle,LOCK_UN); fclose($handle);
>>156 md5だけなら重複する可能性があります。
ロック用ファイルを別に作ってもいいけど155で言いたかったのは 1.ファイルオープン(a+) 2.ファイルロック 3.ファイル中の最新の番号を取得 4.番号を1増やす 5.新しい記事を追記 6.ファイルロック解除 7.ファイルクローズ 的な感じ。いつもDB使ってるからファイル関係はよく知らんけど。
あ
>>159 ひどいな・・・・
fopen時にw以外で読み書き可能なものを選ぶと言うことか・・・・
でもそうするとログ追記型で過去ログ削除できなかったりとややこしい・・・・
>>160 それを元に乱数生成とかですよね、多分。
>>161 ご丁寧にすいません、その後記事の数を決めた定数以内にしたい場合、
何かいい方法ないでしょうか?
>>163 プログラム云々依然にロジックの質問かよ!
165 :
nobodyさん :2008/02/29(金) 15:56:02 ID:SImzeFcn
includeしたファイルが数値だと普通に表示されますが 日本語文字列だと表示されません。 文字コードの設定だとは思いますがお教えください。
文字コードの設定を正しくする。 それ以上何を言えばいいんだ?
167 :
165 :2008/02/29(金) 16:05:45 ID:SImzeFcn
>>166 文字コードの設定の仕方が分かりません。
現状では<meta http-equiv="Content-Type" content="text/html; charset=euc-jp" />
にしていますが文字化けしてしまいます。
shift_jisだと全てが文字化けしてしまいます・・。
もう何もかもが
突っ込んだら負けってヤツ?
171 :
167 :2008/02/29(金) 16:14:27 ID:SImzeFcn
// サイトURL
$url = "
http://example.ex/ ";
// サイトネーム
$site_name = "日本語文字列";
// サイトサブタイトル
$sub_title = "日本語文字列";
// 現在時刻を取得
$time = getdate();
>>170 こんな感じで書いています。
(・∀・)ニヤニヤ
173 :
167 :2008/02/29(金) 16:18:39 ID:SImzeFcn
177 :
nobodyさん :2008/02/29(金) 19:02:38 ID:TvsAPhPQ
図1 図2 . ○ .バックアップ ├ fo └○ │ ├ test2 ├ fo │ │ ├ a.txt .. │ ├ test2 │ │ ├ b.txt .. │ │ ├ a.txt │ │ └ c.txt .. │ │ ├ b.txt │ └ testfile.txt │ │ └ c.txt └ test.txt .. │ └ testfile.txt └ test.txt 図1を図2のようにバックアップフォルダにコピーしたいのですが よい方法はありませんでしょうか? なにとぞご教授お願いします
図を作る努力をphpに振り向けるんだ!
答える気の無いヤツと答えるフリして逃げるヤツしかいないのか
うーん外部コマンド以外の方法があればどなたかお願いいたします
<?php define( "srcDir", "○" ); define( "dstDir", "バックアップ" ); dircopy( srcDir, dstDir ); function dircopy($srcdir, $dstdir, $verbose = false) { $num = 0; if(!is_dir($dstdir)) mkdir($dstdir); if($curdir = opendir($srcdir)) { while($file = readdir($curdir)) { if($file != '.' && $file != '..') { $srcfile = $srcdir . '\\' . $file; $dstfile = $dstdir . '\\' . $file; if(is_file($srcfile)) { if(is_file($dstfile)) $ow = filemtime($srcfile) - filemtime($dstfile); else $ow = 1; if($ow > 0) { if($verbose) echo "Copying '$srcfile' to '$dstfile'..."; if(copy($srcfile, $dstfile)) { touch($dstfile, filemtime($srcfile)); $num++; if($verbose) echo "OK\n";} else echo "Error: File '$srcfile' could not be copied!\n";}} else if(is_dir($srcfile)) { $num += dircopy($srcfile, $dstfile, $verbose);}}}closedir($curdir);} return $num;} ?> これでおkだろ
>>182 ありがとうございます!!!!!
助かりました!!
>>184 OSは?
再インストールってどうやった?
俺もやったことあるけど復活させたぞ
>>185 XP homeです。
再インスコはOSではなくてソフト入れなおしただけです・・・
>>186 アンインストールは単なる削除か?
要は「システム」としてインストールしたMySQL(とかXAMPP)が
アンインストールされてないとお話にならないってわけだよ。
アンインストールしてなくてもroot権限でMySQLに入れるなら
GRANTとかで治るとおもうけど、
一応再インストールとか厄介なことしたわけだから、
完全にアンインストールすることを強く勧める。
で、
Windowsの コントロールパネル>管理ツール>サービス
を開き、その中にmysqlとかXAMPP Serviceってのはあるか?
>>187 プログラムの追加と削除からのアンインストールです。
サービスの中は両方ともにありませんでした。。。
どーでもいいがDB板向けな話題だなw
>>186 C:WINDOWSに'my.ini'が残っているとか?
関係ないか...。
191 :
nobodyさん :2008/03/01(土) 02:58:59 ID:Nw5SqNkj
素人ですが教えて下さい。 ユーザーが投稿する写真のサムネイルを表示したいと思っています。 私が読んでる参考書に表示スピードを考慮した画像縮小方法として、GDライブラリが紹介されていました。 しかしGDライブラリは指定したサイズに縮小するだけのように思えます。間違ってたらすいません。 投稿される写真のサイズはバラバラで、縦長の写真、横長の写真、正方形の写真など様々です。 縦長は縦長のまま、横長は横長のまま、正方形は正方形のままに縮小したい(mixiのマイミク一覧のよう な感じ)のですが、一般的にはどうのように行っているのでしょうか?ヒントだけでもお願いします。
>>191 算数の素人さんですか
100x100を半分にすると50x50
100x200を半分にすると50x100
指定したサイズに縮小できたら十分。
高さと幅の最大値を決めて、あとはそれに合うようにアスペクト比をあわせればおk どっちかの小さい方にあわせんだっけかな
縦書きの日本語をGDで表示したいんだけど 横書き用フォントでは カ ー ネ ー シ ョ ン ってカンジに表示されてしまう どうやったら縦書き用フォントが使えるんですか?
>>195 このスレはこの程度か
ありがとうございました
>>196 >>7 よりググレカスの方が正しいかも
「GD フォント指定」でそれっぽいのが出てくるのに
悔しくて捨て台詞をいう程度のカスなんでしゃーないなぁ
198 :
191 :2008/03/01(土) 14:01:50 ID:Nw5SqNkj
>>192 すいません、質問が悪かったと思います。
元の大きさがバラバラなので、ただ半分にしただけじゃ並べたときにデコボコになります。
縦横の比率を保ったまま、縮小後の大きさを大体同じ大きさにしたいのです。
200×100は1/2で100×50
400×400は1/4で100×100
250×500は1/5で50×100
というふうに大体100×100の枠に納めたいのですが、元の写真がどのサイズで来るか分かりません。
GDライブラリは試してないのですが、100×100へ縮小としてしまうと、正方形の写真以外は歪ん
でしまうんじゃないでしょうか?
歪ませずに大体100×100の大きさに納めるにはどうすれば良いでしょうか?
だから長いほうを100pxにすればいいじゃん
201 :
194 :2008/03/01(土) 14:22:00 ID:z6e/g20g
>>196 ちょwwwなにやってんだ
>>197 おれは196じゃないです
ID表示させとけばよかった
「GD 縦書き」とかで検索しても出なかったんで聞いてみたんです。
縦書きに切り替える関数とかあるのかな?
202 :
194 :2008/03/01(土) 14:24:36 ID:z6e/g20g
縦書き専用フォントを使えばいいのかな?
203 :
194 :2008/03/01(土) 14:29:55 ID:???
204 :
nobodyさん :2008/03/01(土) 15:21:32 ID:MLWBh96T
質問です。 アップローダーを作っているのですが、 アップロードファイルのローカルパスの一部をファイル名と認識してしまい難儀しております。 入力フォームで ”C:\Documents and Settings\User\デスクトップ\sample.doc” と入力して $_FILES[ パラメータ名 ][ name ]で ファイル名を抽出すると ”デスクトップ\\sample.doc” とでてきてしまいます。 環境 PHP 5.2.5 Apache/1.3.41 対処法をご存じの方、ご教授をお願いします。
205 :
nobodyさん :2008/03/01(土) 16:27:41 ID:SX7Jze++
質問です 4択式のリアルタイムアンケートを作成したいのですがご教授ください ページで投票してもらって 最終的に各回答の合計数がカンマ区切りの○○○.txtというデータで吐き出されればよいです。 ビジュアルとかはこだわりません。
207 :
nobodyさん :2008/03/01(土) 17:03:11 ID:bS1QPxn9
preg_match
209 :
nobodyさん :2008/03/01(土) 17:12:33 ID:bS1QPxn9
>>208 ありがとうございます
なんとなく理解できました
あと書き忘れたのですがtest.htmlも固定されてません。
もう少し調べてみます
mysql_escape_string と mysql_real_escape_string の違いについて、 後者は文字コードを考慮する、とマニュアルには記載されていますが、 結果として、 後者ではなく、前者を使用していると 脆弱性が発生したりするケースはあるのでしょうか。
>>187 亀ですみません。
root権限で入ろうと思いますが、その方法がわかりません。
差し支えなければ教えていただけませんか?
>>210 前者は非常に危険です。
後者でも危険性が指摘されています。
質問スレだか、初心者いびりスレだかわかんなくなってきてるな……。
>>214 このスレには初心者は来ていませんよ?
少なくともマニュアルを一通り目を通したりぐぐったりしてきてるはずなんで。
219 :
nobodyさん :2008/03/01(土) 21:06:57 ID:Y1gVmTFW
開発をWindowXPでやってます PDO::exec()でクエリを実行する場合影響した行数が帰ってくるはずですが、まったく影響のないクエリを実行してるのに1が返ってきます バグでしょうか? apache2.2 php 5.2.5 Postgresql 8.2
はい、バグです。 次の方どうそー。
>>219 DBMSによっては、delete で全行削除した場合、削除した行数を返さないらしい。
必要な場合は、where 1=1 ってやるのが定石だそうだ。
postgresをPDOで使ったときに同じ問題があるかどうかは知らない。
すいません、質問させてください。 PHPを一度ソースからインストールした後に、libxsltが必要になったので 再インストールを試みたのですが、makeで以下のようなエラーが出ました。 ext/xmlreader/.libs/php_xmlreader.o(.text+0x14a9): In function `zim_xmlreader_XML': /usr/local/src/php-5.2.5/ext/xmlreader/php_xmlreader.c:1109: undefined reference to `xmlTextReaderSetup' collect2: ld returned 1 exit status make: *** [sapi/cli/php] エラー 1 あと、環境は以下のとおりです。 OS:Vine4.2 PHP:PHP5.2.5 実行したconfigure:./configure --with-apxs2=/usr/local/apache2/bin/apxs --enable-mbstring --enable-zend-multibyte --with-pgsql --enable-sockets --with-zlib --with-xsl=/usr/include/libxslt 解決方法をご存知の方いらっしゃいましたら、ご教示ください。
223 :
nobodyさん :2008/03/01(土) 22:13:34 ID:Y1gVmTFW
>>222 xslライブラリをなんのオプションも無くコンパイルしたなら --with-xsl=/usr/local/lib じゃないかな
>>221 いろいろ試して見たら、selectとかupdateとか、どんなクエリ実行しても1しか返って来ません
失敗の場合のみfalse
これは開発もlinuxにするしかないのか…?
224 :
nobodyさん :2008/03/02(日) 01:08:51 ID:kiurO7do
こんばんわ プログレスバーについてなのですが 自身のループ処理による待ち時間ではなくて 重い外部のファイルを読み込むなど、一関数が完了するまでの間 flush()でメーターを描画する場合どのような方法があるのでしょぅか? よろしく願いします。
>>224 ajaxで読み込む(画面遷移せず)
↓
現在の画面にぷろぐれすばー表示(その間にサーバで処理)
↓
処理完了
↓
画面遷移
って流れでやったら?
このスレはこの程度か。 ありがとうございました。
227 :
nobodyさん :2008/03/02(日) 04:11:35 ID:jR385ymf
会員制のサイトからデータを取得する場合、 あらかじめ取得しておいたIDとパスをそれぞれ変数に入れて、 それらの変数をもってaction先に飛ばす そしてファイル取得 こんな感じでいいのでしょうか
228 :
nobodyさん :2008/03/02(日) 04:12:23 ID:8nU9J7zG
Dreamweaver8でPHPを使ってメールフォームを作りたいのですが 現在XAMPPというのをインストール(セットアップ?)した直後です。 見積依頼のフォームのファイルはindex.phpにして設定もしました。 <?PHPprint("PHPを使って文章を出力します"); こうなっているのですが次の手順が分かりません。デザインビューで 見積依頼のフォームをこのindex.phpの<?PHPprint("PHPを使って文章を出力します"); の下に作ればいいのですか。 PHP初心者です宜しくお願いします
>>228 見積もり依頼のフォームというのが説明されていないのでわからない
そもそも次の手順ってそもそも何がしたいのか
ソース丸ごと見せてもらった方が早い
ちなみに、PHPで文章を出力したいんだけなら
<?PHPprint("PHPを使って文章を出力します");
↑の PHPを使って文章を出力します
の部分に記述
230 :
nobodyさん :2008/03/02(日) 04:47:47 ID:8nU9J7zG
231 :
nobodyさん :2008/03/02(日) 04:48:24 ID:8nU9J7zG
>>229 そしてメールフォームの内容は
お名前
住所 〒
TEL
E-mail
見積希望日
見積希望時間 9時〜12時
12時〜15時
15時〜18時
何時でも可能
メッセージ
としたいのです。
232 :
nobodyさん :2008/03/02(日) 05:09:59 ID:8nU9J7zG
>>229 デザインビューで「文章を出力します」のとこを修正しようとすると
「HTMLタグに対して正確なフォーマットではありません。無効とマークされ
ました。コードビューを使用してソースコードを修正して下さい」
と出てしまい「文章を出力します」のとこの変更ができません。
233 :
nobodyさん :2008/03/02(日) 06:19:08 ID:cPv2Uin/
class unko{ private $unko; public function getUnko(){ return $this->unko; } において、 public function checkUnko(){ の中は $unko=$this->unko; がいいのか $unko=$this->getUnko(); がいいのか。 } 当然速いのは$this->unkoだと思うけど、この書き方って オブジェクト指向を貫く上で問題ありかな?
checkUnko()というメソッド自体なんかおかしいだろ
235 :
nobodyさん :2008/03/02(日) 08:46:32 ID:qS2qya1q
%A5%A2%A5%A4%A5%AA%A5%E9%A5%A4%A5%C8(文字コード不明) をデコードしたいのですが、何にエンコードされたかを知るにはどうしたらいいでしょうか? また、PHP関数で何か良いものはありますでしょうか?
urlencode
237 :
235 :2008/03/02(日) 08:55:02 ID:???
すみません。上記質問ですが、utf8で書いているphpで、EUC-jpにurlencodeや、EUC-JPでエンコードされたキーワードを デコードし、表示するにはどうすればいいのでしょうか?に訂正させてください。
間違えた。urldecode まぁ、両方の関数のマニュアルを見ておけ
239 :
235 :2008/03/02(日) 09:05:40 ID:???
$test = "アイオライト"; $test = mb_convert_encoding($test, "EUC-JP", "UTF-8"); $test = urlencode($test); echo "$test<br><br>"; $test = "%A5%A2%A5%A4%A5%AA%A5%E9%A5%A4%A5%C8"; $test = mb_convert_encoding($test, "UTF-8", "EUC-JP"); $test = urldecode($test); echo "$test<br><br>"; 上はうまく行きましたが、下が変なひょうじになります。全体としての設定はutf8です。
240 :
235 :2008/03/02(日) 09:07:37 ID:???
すみません。自己解決しました。 $test = mb_convert_encoding($test, "UTF-8", "EUC-JP"); $test = urldecode($test); の上下を入れ替えたら出来ました。
241 :
222 :2008/03/02(日) 12:52:29 ID:???
>>223 レスありがとうございます。
apt-getでlibxsltをインストールしたところ、
libxslt.a
libxslt.la
libxslt.so
libxslt.so.1
libxslt.so.1.1.17
が/usr/libにつくられていたので、
--with-xsl=/usr/lib にしてやってみましたが、同じエラーでとまってしまいました・・・
242 :
nobodyさん :2008/03/02(日) 13:13:25 ID:1wdULA7X
yumのphp-mysqlがmysqlに依存しているので、mysqlが一緒に入ってしまいますが mysqlはtritonn(mysql with senna)を使いたいです。 こういう場合どうしたらいいですか?
243 :
222 :2008/03/02(日) 13:19:35 ID:???
--disable-xmlreaderをつけたところ、
>>222 で起きていたエラーが出なくなりました。
しかし、--disable-xmlreaderをつけてもlibxsltは使用できるのでしょうか?
どなたか教えてください。。。
>>242 普通にphp.iniとかでphp-mysqlでインストールしたほうじゃなく
そっちのmysqlを使うように設定したらええやん?
>>243 聞く前にやったほうが早いんじゃ?
もうその環境なんだろ?
>>233 スーパークラスでも一貫して $this->getUnko() を利用すべき。
サブクラスで getUnko がオーバーライドされる可能性があるので
戻り値 === $unko が保証されないから。
247 :
nobodyさん :2008/03/02(日) 16:58:37 ID:LTTkeK/B
txtファイルをphpファイルにするにはどうすればいいですか?? メモ帳つかって拡張し使ってもxxx.php.txtとかなるのですがその後どうすればいいかわからんとです。
お前さんフォルダオプションだかなんだかの 「拡張子を表示しない」にチェックしてあるまんまだな? はずすことを推奨する
249 :
219 :2008/03/02(日) 17:36:31 ID:???
なんかほんとにバグっぽいので報告してきます
>>247 メモ帳ならSJIS保存しかできないんじゃ?
まともなテキストエディタに乗り換えろ
>>242 yumで入ったmysqlを削除して
yum版のmysqlのsrc.rpmからspecをとりだして
--with-mecab, --with-sennaを加えてrpmbuildしてできたrpmをつかう
>>249 mysqlだけどちゃんと行数返ってきたよ
>>253 もう何年もWindowsは使ってないのでよく覚えてない
最近のメモ帳はまともなん?
メモ帳のファイル保存形式は ANSI, Unicode, Unicode big endian, UTF-8 の4つから選べる
リンク元からGETで持ってきたidを今いるところののformを通してさらにリンク先に渡したいんですが どうやったらできますか?
>>256 エスパー回答してやる
<?php
echo '<form action="post">';
foreach ($_GET as $key => $value) {
echo '<input type="hidden" name="'.$key.'" value="'.$value.'">';
}
echo '</form>';
?>
正直何をしたいのかがわからん
もうちょっとちゃんと説明しろよ
echo '<form action="post">'; ・・・
貴重な瞬間に立ち会えたことを神に感謝する
256がまともに書かないのに ちゃんとしたレスがある筈ない
PHPみたいなスクリプト言語でもいちいちinterfaceとか作って 厳密にオブジェクト指向ばりばりってどーなの? 遅くなるだけじゃね? XOOPSとかMediaWikiってどうなってるんだろ??
>>263 プログラマが気をつけるじゃなくて、それを使うことが保証されるっていうところに
オブジェクト指向の肝があるんじゃないか?
遅くなるってことは実際あると思うけど、微々たるもんだし、速度が問題になるようならそもそも、システム設計自体に問題があると思う。
まあ、小さいシステムで、後々それほど手を入れないならスパゲッティーでもいいと思うけど
俺はオブジェクト指向で組まれていないシステムを読み解くのはあんまり好きじゃないな
>>263 自分の場合、instanceof とかで判定しないなら、interfaceは定義しない。
GETで渡したパスの内容読み取りたいのですが、 ディレクトリさかのぼり、がちょっと怖いです。 $root_path = "/home/hoge/public_html/open/"; if( strstr( $GET['path'], ".." )) die("error!!"); fread($root_path.$GET['path']); これで /home/hoge/public_html/open より上の層は見られない、 と断言できますか? (..さえ拒否すればさかのぼりは完全に防げると判断して良いのでしょうか?) open_basedirがini_setでスクリプト内で 設定できたら、自由にchroot風にできて安全そうで よさそうだったのですが、ini_set内では無理でした
267 :
nobodyさん :2008/03/03(月) 00:17:00 ID:8BSVZMuK
質問させてください。 PHPでサイト構築しているのですが、 ある日突然、複数のスクリプトで 大量のエラーログをサーバー側に 記録するようになりました。 使用リミットをオーバーするような 膨大な量です。しかし、 サイト上では問題なく実行され表示されています。 エラーも出ていません。 この場合どんな原因が考えられますか?
>>264 なるほど。オブジェクト指向で書こうとすると
設計に悩んでフリーズしてしまうことが多い。
慣れてないしデザインパターンもどれをあてはめればいいのかわかんない。
かと言って本能のまま書くと役割分担のはっきりしないクラスばっかりになる。
結局「PHPごときにちまちまとオブジェクトなんてやってらんね」ってなるんだよね。
>>265 それぐらいの塩梅でいいかな。
エラーログの内容みれ。
270 :
nobodyさん :2008/03/03(月) 00:34:41 ID:8BSVZMuK
>>269 内容はPHP Notice: Use of undefined ・・・・
というものが多いです
エラーが記録されているスクリプトの種類は多岐に
わたっています。たとえばフリーで公開されているものを
そのまま導入して使用していたものからそうでないものまで。
それはPerl風にいうとuse strict;をつかってないルーズなプログラムだからな
>>267 突然って何よ?まぁめんどくさいから答えなくてもいいけど
httpd.confとかphp.iniでも制御できるからうまく設定したらいいよ
詳しいことはググレ
273 :
nobodyさん :2008/03/03(月) 01:12:41 ID:8BSVZMuK
>>271 おっしゃる通りルーズなプログラムかもしれませんorz
>>272 今までは問題なかった(と思う)のでほんとに突然なんです(涙
月替わりに突然エラーログが大量に記録されるようになったというイメージです。
ちなみに現在はエラーログはまったく出ていません。
php.iniの設定を見てみたのですが
log_errors On
log_errors_max_len 1024
error_reporting 6143
となっているのでエラーがあれば記録されると思うのですが・・
なぜこのような事がおきたのか原因を知りたいです
shared extentionにできるものとできないもののリストって どこかにないですか?
275 :
nobodyさん :2008/03/03(月) 02:25:43 ID:33Hm4dS7
function Hoge(){} $func = "Hoge"; $func(); ↑これは動いて "Hoge"(); ↑なぜこれは動かないのでしょうか? 変数に入れれば良いことではあるのですが、 どうも気になってしようがありません。 PHPの関数呼び出しの仕組みってどこかに載ってますか?
おまいらヘボプログラマでもNoticeレベルのエラーまで完璧に処理してるの?
278 :
nobodyさん :2008/03/03(月) 03:15:49 ID:rD8lqAq1
どこに質問を投げていいか分からないのですが、もし適切な場所がありましたらご誘導下さい。 友人の紹介で仕事を回してもらうことになったのですが、 仕事としては始めてのphpによる開発なんですが、 見積もりを出してくれと言われていて少し困っています。 【ご質問】見積もりの中で人月に加えてステップ数を求められているのですが、 ステップ数って、空行とかコメント行もステップに数えるのでしょうか? あと、ステップ数って、プログラムの書き方にも変わりますよね? 1行======================================= if ($value == 1) { print "test";} 3行======================================= if ($value == 1) { print "test"; } ネットで調べると1人月当たり、1000ステップらしいですが(COBOL)、 PHPの場合も、それが当てはまるのかそれも疑問です。 宜しくお願いします。
>>277 この仕組みのこと、可変関数と言うのですね、今まで知りませんでした。
Reflection機能も初めて知りました、とても勉強になります。
夜中に素早いご回答、どうもありがとうございました。
>>278 Web制作板のSOHOスレで聞けばいいかもしれない。
ただちゃんとした答えが返ってくるかは保証できないけど。
>>278 空行やコメントはステップとは言わない
それだと2ステップじゃないかな?
とりあえず
必要工数*欲しい時給+何かあった時の自分的保険費用で出してみたら
因みに俺の知ってる所だと1人月で
30-70マンぐらいの幅があった
>>278 ステップ数ってのは、処理手順の事?ソースの行数の事?
よく判らないんだけど、開発前からステップ数なんて判るものなの?
>>278 そんなのは7行としておけばいい。
ステップ数なんてのはパンチカード時代の遺物だ。
そんなもの求める会社は注意したほうがいいぞ。
おまえらメール送るとき文字コード何にしてんすか?UTF-8?
286 :
nobodyさん :2008/03/03(月) 11:57:57 ID:GThXklLZ
PHP5.2.5から導入されたメモリマネージャは、 memory_limitとは無関係なのでしょうか? memory_limitを-1にしても、zend_mm_heap corruptedみたいなエラーが吐き出されてしまいます。
287 :
nobodyさん :2008/03/03(月) 13:05:13 ID:KrsbPUyK
OSX10.4 php4.2を使用しています。 $POST = array_map("htmlspecialchars",$_POST); のような形でpostを一気に変換しています。 普段は問題ないのですが、 <select name="hoge[]" size="8" multiple="multiple"> のような要素がある場合、 Warning: htmlspecialchars() expects parameter 1 to be string, array given in... という警告が出てしまいます。 これって、解決する方法ないんでしょうか? よろしくお願いします。
>>287 htmlspecialcharsを元に配列に対応した関数を作ればいいんじゃね。
「php htmlspecialchars 配列 対応」あたりをググルと幸せになれるかもね。
289 :
nobodyさん :2008/03/03(月) 14:03:39 ID:DWqAIEY6
PHPでアクセスカウンタを組んだのですが、キリバンの表示方法がわかりません。 誰かご教授ください。
>>289 お前の言うキリバンはいったいいくつのカウントになるんだ?
そのカウントだったらキリバンと表示すればいいんじゃね?
>>289 if( ($count % 1000) == 0 ){
print "切り番おめでとう";
}
292 :
nobodyさん :2008/03/03(月) 14:58:46 ID:ut4WA0El
ちょっとお聞きしますが $title = $item[title]; こいうのは $title = $item['title']; ↑こういう風に書いた方が良いんですか?
うん
>>292 その辺詳しくないから曖昧な回答になるが了承くだしあ
上記はまず定数であるかどうか判別される
下記は文字列としてそのまま行く
上記の場合の定数であるか判別する余計な処理があるので下記のほうがいい
また、「title」って定数が合った場合そっちの値が優先されてしまう
295 :
nobodyさん :2008/03/03(月) 15:45:12 ID:HPgcFf+Y
296 :
nobodyさん :2008/03/03(月) 16:42:21 ID:a83ZZyIL
参考程度に聞かせていただきたい。 くだすれぐらいしか聞くとこがなくて。 こんな風に書かれた時間から年月日を取り出す場合 皆さんならどう取り出しますか? とりあえず3パターン考えてみた。 | $str = "2008-11-08 22:12:25"; | | //パターン1 | $array = split("-",$str); | $day = substr($array[2],0,2); | echo $array[0]."年".$array[1]."月".$day."日"; | | //パターン2 | $year = substr($str,0,4); | $month = substr($str,6,2); | $day = substr($str,9,2); | echo $year."年".$month."月".$day."日"; | | //パターン3 | $array1 = split(" ",$str); | $array2 = split("-",$array1); | echo $array[0]."年".$array[1]."月".$array[2]."日";
どう考えてもstrtotimeだろ
strtotimeは、php言語の中で一番最悪の関数だろ。 引数の書き方が自由すぎてバグの元だよ。 どうして、こんなひどい設計したんだよ。
でも便利
利便性とセキュリティーは、相反する命題だろ。 こういう似非プログラマーが日本の中枢にいるから、 この業界の単価が下がっているんだろ。 生活できねーよ。
利便性とセキュリティーは相反する命題だという話から 似非プログラマー論になる話の流れがわからん。 俺は時と場合に応じた道具の使い分けが出来ません、って告白?
DBにYYYY-MM-DD HH:ii:ssで格納されてるのを、 strtotimeを使う分には問題ないと思うんだがどうだろう
303 :
296 :2008/03/03(月) 17:29:37 ID:a83ZZyIL
>>296 ですがstrtotimeってのがあったのか。
確かにこれは便利ですね。
一応自分が今使おうと思ってるのは
データベース内に格納されてるのを判別するので
多分strtotimeで問題はありません。
しかしバグがあるというのは問題ですね。
使いどころを間違えないように使用したいと思います。
ありがとうございました。
>>303 時と場合によるけど、sqlでDATE_FORMATなんてのも有り
305 :
nobodyさん :2008/03/03(月) 19:37:52 ID:BS/MlDiQ
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) } な配列を array(3) { [1]=> int(2) [0]=> int(1) [2]=> int(3) } な配列にしたいんだけど、どうすればいいのだろう?
306 :
305 :2008/03/03(月) 19:41:59 ID:BS/MlDiQ
数値を例に出したけど、文字列が添字の場合でも出来る方法が知りたいです。 やりたい事を言葉にすると、配列のキーと値の関係を保持しながら、 要素の場所を入れ替えたり、好きな場所に移動させたいということです。
308 :
305 :2008/03/03(月) 20:35:02 ID:o2rZ954m
移動したのでID変わってると思うけど、、
>>307 もちろんマニュアルは見たのだけど、いまいちうまい事やる方法が
思い浮かばなくて質問しました。
309 :
287 :2008/03/03(月) 20:36:48 ID:???
>288 あざーす!! ばっちり解決できました。 ありがとうございます!
310 :
2050 :2008/03/03(月) 20:50:47 ID:1O+7QDSJ
echoを使用して、HTMLを出力しています。 この度、JAVASCRIPTを含む記述で壁にぶち当たってしまいました。 <?php print "<input type='submit' value='送信' onClick='return confirm('送信します');'>"; ?> と、フォームのボタンを押すと、JAVASCRIPTでメッセージが表示されるように したいのですが、シングルクォートの中に、さらにJAVASCRIPTのシングルクォート が来るのが原因のようで動作しません。 どうしたらいいものでしょうか?
>>310 print "<input type='submit' value='送信' onClick='return confirm(\"送信します\");'>"
javascript と html の話でPHPあんまり関係ないよ。
>>310 エスケープって知ってるかい?
っていうかそこはPHPから抜けて書きなよ。
<?php
〜
?>
<input type="submit" value="送信" onClick="return confirm('送信します');">
>>310 php関係ないけど\でエスケープ
>>308 array_spliceやarray_sliceなど。
ただ連想配列を使っておきながら順序を気にするというのはあまりいただけない
314 :
2050 :2008/03/03(月) 21:15:48 ID:???
>311>312>313 ご丁寧に有難うございます。 実は、これを変数として格納し、別のtxtファイルに出力し、 さらに別のPHPファイルからこのtxtを読み込みます。 一度試してみます。有難うございました。
315 :
2050 :2008/03/03(月) 21:21:05 ID:???
>311>312>313 正しくできました。有難うございます!
316 :
305 :2008/03/03(月) 21:35:13 ID:o2rZ954m
>>313 そうですね。僕としても連想配列はたまたま順序を保持する実装になっているだけ、
という認識で、基本的にはハッシュでもいけるような使い方をするようにしています。
で、教えていただいた関数ですが、うまく使えば良い感じに出来るんじゃないかとは思いますが、
いまいち使い方がよくわかりませんorz もっと精進します。ありがとうございました。
追伸 : 拙作を貼付けておきますので、添削等していただけるとありがたいです
function hoge($array, $p1, $p2) {
$ret = array(); $v_p = array_values($array); $k_p = array_keys($array); $c_p = 0;
foreach($array as $k => $v) {
if ($i == $p1) {
$ret[$k_p[$p2]] = $v_p[$p2];
$i++;
continue;
}
if ($i == $p2) {
$ret[$k_p[$p1]] = $v_p[$p1];
$i++; continue;
}
$ret[$k] = $v; $c_p++;
}
return $ret;
}
317 :
305 :2008/03/03(月) 21:36:28 ID:o2rZ954m
改行が多すぎると怒られたので、読みにくい感じになっていますが、ご容赦ください。
318 :
nobodyさん :2008/03/03(月) 21:43:03 ID:bM6XDXSb
ヒアドキュメントってPHPerの間では忌み嫌われてるの? 時々こんなソースが暗がりから飛び出てきて 3時間ぐらい仕事する気を無くすんだが。 print "<body bgcolor=\"#99ccff\">" print " <form action=\"./index.php\" method=\"post\" name=\"PRadioList\" id=\"PRadioList\">" print " <table width=\"250\" border=\"1\">" print " <tr>" print " <td width=\"30\"><div align=\"center\"><input name=\"radioBtn\" value=\"0\" type=\"radio\" id=\"qf_ad7dfc\" /></div>" print " <td>たぬき</td>" print " </table>" print " <table width=\"250\" border=\"0\">" print " <tr>" print " <td align=\"center\">" print " <input name=\"submit\" value=\"送信\" type=\"submit\" />" print " </td>" print " </tr>" print " </table>" print " </form>" print "</body>"
早く逃げた方がいい
セミコロンはどこいった
>>318 それはなんちゃってPHPerが書いたPerler?が書いたソース
普通はこう書く
?>
<body ~>
-中略-
</body>
あ、日本語壊れた
変数展開する必要もないのにヒアドキュメントなんて使いたがる318は素人
色々閉じタグ無いのはいいのか
>>318 さすがにそんなのは稀すぎる
連結してるのはたまに見るが
print "hoge"
. "hoge"
. "hoge";
ていうかhtmlに組み込めるんだから、viewは普通にhtmlで書けっていう話
つまり
>>323
>>323 おらぁ2行に別けた方がいいと感じたら
変数展開無くてもヒアドキュメントつかうだよ
いやだからHTMLモードで書けばいいじゃn
328 :
お願いします。 :2008/03/04(火) 00:52:40 ID:G7JIaGfr
Windowsで正常に動作していたメール送信プログラムを
qmail(・・・※)設定済みのLinux(CentOS5)に移行した上で
実行したのですが正常に送信先に届きません。
(また、php側でエラーは発生しません。)
【ソース】
if( mb_send_mail($addressTo, $subject, mb_convert_encoding($message,"shift_jis","shift_jis"),$header) )
{
#この部分に正常に入ります。
print("送信完了しました。");
}
else
{
print("エラー:送信に失敗しました");
}
【Linuxmメールサーバ構築参考サイト】
http://centossrv.com/qmail.shtml
>>328 apache?
apacheならapacheのエラーはどう?
330 :
お願いします。 :2008/03/04(火) 01:21:47 ID:G7JIaGfr
>>329 Linux版は、次のコマンドでWEBサーバを構築して、恐らくApacheだと思われます。
yum -y install httpd
再度、作成したテストページよりメールを送信した結果、apacheのログファイルを見てみると
次の様なエラーが表示されていました。
【error_logの内容】
[Tue Mar 04 01:19:02 2008] [error] [client 127.0.0.1] File does not exist: /var/www/html/index.css, referer:
http://localhost/FI.html [Tue Mar 04 01:19:02 2008] [error] [client 127.0.0.1] File does not exist: /var/www/html/css, referer:
http://localhost/FI.html [Tue Mar 04 01:19:03 2008] [error] [client 127.0.0.1] File does not exist: /var/www/html/index.css, referer:
http://localhost/SendMail.html [Tue Mar 04 01:19:03 2008] [error] [client 127.0.0.1] File does not exist: /var/www/html/css, referer:
http://localhost/SendMail.html
>>330 sendmail_pathはおk?
もちろんphpインストール時にqmailにしたよな?
とりあえずmail()でやってみ
332 :
お願いします。 :2008/03/04(火) 01:36:30 ID:G7JIaGfr
SendMail.html の中に存在しないcssを参照する不要なタグが存在した為、
再度メールをWEBページより送信してみたところ、エラーログには何も表示され
なくなりました。
送信先メールアドレスには、自宅(
[email protected] )
を指定しています。
また、CentOS5に付属のメール送信ソフトより自分のメールアドレス
にメールを送信したところ正常にメールは届きます。
※また、143番ポートは正常に開放されています。
333 :
nobodyさん :2008/03/04(火) 01:37:53 ID:KsHjc6mm
2008-03-04 01:40:00 のように、秒までのデータをタイムスタンプに 変換したいのですが、どうすればいいのでしょうか? やはり分解して、mktimeにするしかないのでしょうか?
334 :
お願いします。 :2008/03/04(火) 01:44:49 ID:G7JIaGfr
>>331 phpのインストールについては「LAMサーバ構築」という雑誌を
参考にしてインストールしてました。。。
php.ini 内でメールサーバ回りの詳細な設定は行っていませんでした
ので、ちょっと設定ファイルを確認してみます。
>>335 ありがとうございます。上手くできました。
337 :
お願いします。 :2008/03/04(火) 01:50:57 ID:G7JIaGfr
【php.ini】の中身です。
[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25
; For Win32 only.
;sendmail_from =
[email protected] ; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = /usr/sbin/sendmail -t -i
↑
メールサーバを、qmail に変更したので上の記述を変更する必要がある様
に思うのですが具体的にはどうすれば良いでしょうか?
お教え願います。
>>337 そこまでわかっててまだ何を聞くつもりだ
sendmail_path = qmailのパス
にしてapache再起動してみ
それでもわからなかったらちゃんと初心者スレ行くかあきらめろ
>>309 htmlspecialcharsの第二と第三引数もしていしたほうがより安全と言われている。
340 :
お願いします。 :2008/03/04(火) 02:27:07 ID:G7JIaGfr
だめだ。。。メールが届かない。
>>338 system-switch-mailで終わりそうな問題だな
phpmyadminでいきなり 特権無しになりました 直し方教えてください 連たる鯖なのでコンソールが開けない状況です
343 :
nobodyさん :2008/03/04(火) 10:20:42 ID:xFHlt45M
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php で、全て./index.phpで実行しているのですが、 __FILE__で取得すると、URLではなく実際に稼動しているスクリプトが表示されますよね。 これはサーバー依存なのでしょうか? ブラウザによって変化するのであれば__FILE__の使用を控えようと思うのですが・・・。
>>337 qmailのsendmail-wrapperが /var/qmail/bin/sendmail とか、/optの下あたりにないかい?
which sendmailするとどうなる?
付属のメーラって奴はローカルホストのSMTPで送信するの? それともsendmailコマンドを叩くの?
そもそも送れないってどういうこと? バウンスは返る?
つか、当然最初にメールログは確かめたんだろうね?
謎だらけの質問しやがって...
345 :
343 :2008/03/04(火) 11:41:43 ID:xFHlt45M
__LINE__が鯖側じゃないと判別する術がないっぽいので、 __FILE__も鯖側の処理と勝手に判断してみます・・・。 別の質問なのですが、 func_get_argsで引数を配列として返しますが、 逆の場合は可能なのでしょうか? 配列をリストにするlistという関数がありますが、 引数の数が不特定なので困ってます。
346 :
nobodyさん :2008/03/04(火) 11:43:37 ID:HRhAVQ3q
cakePHPのチュートリアルをコピペして(ブログではなく、認証のほう) 動かしてみたら Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\cake\app\config\routes.php:1) in C:\xampp\htdocs\cake\cake\libs\controller\controller.php on line 447 というのが出て動きませんでした。 何がおきてるんでしょうか。 windowsXPにxamppをいれて、htdocsにそのままcakeを入れてます。 あぱっちの設定とかは一応したつもりなんですが。 誰か教えてください。
__FILE__が実行しているファイル名で __LINE__はその行番号。
>>346 自分で作ったファイルはある?
あるならそれにBOMついてないか調べてみ
>>346 どうせ ?>の後か<?phpの前に
改行とかスペースとか入ってんだろ
350 :
nobodyさん :2008/03/04(火) 11:46:05 ID:xFHlt45M
>>347 「実行しているファイル名(__FILE__)」のパスを、
クライアントサイドで判断しているのかサーバーサイドで気になっただけです。
__LINE__はサーバーサイドでしか判別できないので、__FILE__も同じと見ていいんですよね。
ってことが知りたかっただけです。
351 :
nobodyさん :2008/03/04(火) 11:48:31 ID:HRhAVQ3q
346です。
>>348 すいません。
BOMってなんでしょうか。
googleでしらべたらunicodeがなんとかと書いてありました。
コレでしょうか?
>>351 UTF-8で保存しているつもりでも、
UTF-8Nという形式で保存していることがある。
UTF-8Nの場合、先頭に3バイト変なものがくっついていて (ごめん、3バイトの内容は詳しく知らない)
headerを実行する前にそれが先に出力されてるから、headerでエラーが出てしまう。
353 :
nobodyさん :2008/03/04(火) 11:51:10 ID:HRhAVQ3q
>>349 いま確認してみました。
大丈夫でした。ありがとうございます。
354 :
nobodyさん :2008/03/04(火) 11:53:56 ID:HRhAVQ3q
>>352 文字の関係は何回も挫折しているところです。
どう対処すればいいですか。
なんとなく方針を教えて頂けませんでしょうか?
>>354 何のエディタ使ってるよ
とりあえずTeraPadでいいから起動してみて文字コードが何になってるか調べてみれ
356 :
nobodyさん :2008/03/04(火) 12:06:54 ID:HRhAVQ3q
>>355 TeraPadを使っています。
文字コードはUTF-8です。
保存改行コードが自動になっていました。
これが原因でしょうか?
>>356 ファイル->文字コード指定再読み込み
これでShiftJISにしたら文字化けするよな
そのときに<?phpの前に変な文字化けないか?
358 :
nobodyさん :2008/03/04(火) 12:20:21 ID:HRhAVQ3q
359 :
nobodyさん :2008/03/04(火) 12:25:30 ID:HRhAVQ3q
>>357 BOMありにしてEUCにしたときに「鏤深?php」となっていました。
いまいちBOMがなんなのかはよくわかりませんがこういうことがあるんですね。
勉強になります。ありがとうございました。
仕様変更の理由は大きく分けて二つあると思う。 一つは客の気まぐれ。そして、もう一つはSEの見通し不足。 今話題になっている話に例えれば、 日本の最高裁判所が出して判断が後になって間違ったことに気付いたが、 一事不再理の原則によって、判決の変更はできない。 そこで、主権が違うアメリカに依頼してもう一度裁判をやってもらうことにした。 たしかに、法理論的には裁判権はアメリカにあるし、他国の一事不再理による制約を受けないことは言うまでもない。 しかし、国権の最高機関である最高裁判所が出した判決を日本政府の勝手な仕様変更で、 アメリカの手を借りて裁判をやり直すことができるのか。 私は、鳩山邦夫法務大臣にこの件について聞いてみたくなった。
>>362 その隣にある「いたずらPMの無理難題な落とし物」というのは
どういった類の食い物なのかね。
せんせー質問 Aサーバにあるディレクトリを丸ごと、別のBサーバにアップしたいです。 PHPで出来ますか? Aサーバのログイン情報とBサーバのログイン情報は持ってます。
ネットワークエンジニアやりつつ簡単なPGをphpで書いているが、 webプログラマーの技術レベルはなんでこんな低いんだろう。 同じ経験年数のwebプログラマーとネットワークエンジニアで比較すると、 明からにレベルが低い。webは、適当にやっていても動くことは動くからか? このスレだけかと思ったが、Javaスレでの議論もレベル低すぎ。web全体がまだまだ。
そうだね。 で、質問は何?
そりゃ、ネットワークに比べたら、 ウェブなんてほんの10数年前に生まれたようなものだからな。 色んなものが変わりまくっているのだから仕方が無い話。 あとウェブが適当のやっていても動くものと勘違いしている人。 そう考えている人もレベルが低い。
> あとウェブが適当のやっていても動くものと勘違いしている人。 > そう考えている人もレベルが低い。 いやむしろお前のレベルが。 ネットワーク負荷を全く考えないプログラム。(ネットワークエンジニアの努力が水の泡) セキュリティーが穴だらけのプログラム。(ネットワークエンジニアの努力が水の泡) メモリー浪費しまくりのプログラム。(余計なHWの出費。コスト意識の低さか?) HTMLの仕様のいい加減さ。ブラウザ制作会社の実装が悪いらしいが。 ・・・
( ´ω`)今は、ネットワーク負荷とか、メモリー浪費とか、そんなのどおでもいいんだお! 一番高いのは人件費なんだから、ハードウェアで細かい事言う時代じゃないお( ^ω^)
あともう一つ大事な点。 処理速度を全く気にしないプログラム。 この画面が重くてもしょうがない、とか訳ワカメです。 動けばいいで飯を食べていけるwebの技術者って何? バグばっかりだし。こんな奴らと組んで仕事すんのストレスたまるわ。
>>366 はコピペじゃないなら、かわいそうな人なんだからほっとけよ。
そりゃネットワークと違ってある程度適当でも動くからな。 ネットワークは基盤、WEBプログラムは娯楽も含む幅広さがある。 基本的に基盤に遊びもミスも許されない、娯楽は何でもあり。 相対的にミス出来ない基盤には能力が高い人しか生き残れない。 WEBプロウグラムは上から下まで裾野が広い。 役割の違いだろ。 比べるもんでもない。 大体人の仕事をうんぬん言う奴なんて、その程度。
WEBのリンク切れ → リンク間違っていましたね。直しときます〜。軽ッ ネットワークのリンク切れ → 全然繋がんねーよ、どうなってんだよ!!!
375 :
ミミ :2008/03/04(火) 16:39:27 ID:/crDQgGy
PHP でローカル変数の一覧を取得することはできますか? グローバル変数であれば $GLOBALS ですが。。。
>>375 「php 変数 一覧」でググッたら一発だったが?
phpinfo();
378 :
ミミ :2008/03/04(火) 17:03:24 ID:/crDQgGy
>>376 もしかして get_defined_vars() のこと?
それはローカルだけを取り出してくれないからダメなの。
>>378 なら書いておけばいいのに・・。
ローカルだけ取り出せないかな。
get_defined_varsのうち$GLOBALでissetされてれば表示しない って関数を自作
書き方間違った、ローカル変数以外を取り除けばいいじゃない? 他は決まった値のように見えるけど・・。 試してないからなんとなくだけどね。
382 :
nobodyさん :2008/03/04(火) 17:19:42 ID:qMhs4IBH
もの凄く下らないんですが教えて下さい。 microtime()の使い方なんですが、 >0.22720000 1204618533 このような値が返ってきますが、どうやって使えばいいんでしょうか? 作業の経過時間を計測したいんですが。
>>382 半角スペースで区切って
前がマイクロ秒、後ろがtime()と同じやつだ
>>382 余りにもくだらなくて警察に通報しようと思ったよ。
microtime()は、その名前の通りマイクロ秒を表示する関数。
1秒は、1000ミリ秒
1ミリ秒は、1000マイクロ秒
ここまで言えば馬鹿でも分かるよな?
386 :
nobodyさん :2008/03/04(火) 17:35:46 ID:l1KE8Zjp
387 :
ららら :2008/03/04(火) 18:06:18 ID:/crDQgGy
助けてなのら! $n = (int) func1(); $flag1 = ($n == 0); $flag2 = ($n != 0); とした後、デバッグのために値を確認したら、 print "flag1 = $flag1 <br>"; print "flag2 = $flag2 <br>"; flag1 は 1 となるのに、flag2 のほうは何も表示されないのら。 なんでなのら?! 0 になるんはずじゃないのかなのら!
>>387 ひとまず返ってきた値をvar_dumpぐらいしたらどうか
情報小出し厨は死ねよ。
391 :
nobodyさん :2008/03/04(火) 18:33:55 ID:qMhs4IBH
>>383 ありがとうございます。
>>384 こういう偉そうな奴って大抵底辺だんだよな・・・
>>385 なるほど!そんな便利なのがあるんですね!
ありがとうございます!
392 :
ららら :2008/03/04(火) 19:20:32 ID:/crDQgGy
>>389 var_dump ?そういうものがあるのかー。
var_dump($n) としてみたら、次のようになったよ。
bool(false)
ブール値は文字列に変換すると空になるのかー。
ふむふむぅ〜。
文字列falseを論理型のfalseに変換するにはどうしたらいいんでしょうか? $test = "false"; if(!変換関数($test)){ print 'falseになったよ' } でprint文が表示されるようにしたいのです。
function toBool($str) { return $str==='false' ? false : true; }
395 :
393 :2008/03/04(火) 22:08:28 ID:???
>>394 ありがとうございます。
phpのデフォルトの関数に変換関数はないんですね・・・
true falseの代わりに0と1を使うことにします。
PHPって誰が何のために作ったの? 何か人の知性を退化させようとする陰謀めいたものを感じるんだけど 馬鹿にはPHPを使わせて、 他の人はもっとまともな言語で仕事をして差をつけてるんじゃないの?
仕事でphpしかやってないヤツなんていないからそんな心配は無用だよ。
>>399 アホか結構いるぞ、phpでしか自社サービスやってないところとかもあるし。
煽りにマジレスごめんな。
>>400 お前いい加減にしろよ。
独善的で他の言語を徹底的に弾圧しようとするのは、創価学会会員そっくりだなw
>>402 別に切れてはいない。
ただ、個人の価値観はお互い尊重されるべきだということ。
phpだろうと、javaだろうと、仕様が実現できればいい話。
優越をつける必要もない。
俺が前居た会社はphpオンリーだったな まぁ趣味でJavaとC#やってたけど
全くだ。春休みボケした勘違いちゃんか。
>>404 会社によるが普通は逆だな。
業務では使わないし趣味でやってて、
手軽さから社内で使うちょっとしたものならPHPで実装なんてことはある。
PHPは金にならないから、PHPオンリーってとこは零か小規模で細々やってるとこだろう。
うちも小規模だが、PHPの仕事はないなぁ。
まぁ業務視点はどうでもいいとして、
PHPはhtmlに直接書けるから、直感的にWebデザイナーにも受け入れられやすい、
デザイナー向けの言語といったところではないだろうか。
環境構築の手軽さからも、次のステップへ進むための入門用言語としてもいいかもしれない。
(個人的には逆にわかりづらくなりそうな予感もするが)
>>407 phpを殆ど使ったことの無いような人の意見だな
まぁPHPは小規模案件多いけど大規模な構築事例もある
addons.mozilla.orgやyahooもだっけか
確かにhtmlは直接書けるが
そんな風にごちゃ混ぜで書くと解りにくいソースになって
後でメンテし難くなる
phpでシステム作ってる所は普通にフレームワークとか使ってやってるので
デザイナーはviewしか殆ど書く事ない
簡単な書き方もできれば、
普通にJavaとかのような書き方もできるのがPHP
php使ったサイトは割りと多いけど、どうみても作ってるのがスキルないんだよな。 エスケープミスとか素人ミスが多かったり、phpのソースがhtmlに出ちゃってたり。 某MMOの運営会社なんてひどいぜ。 どういうやつがコーディングしてるんだよw
>>400 のアホかという余計な一言はよくないにしろ
言語弾圧なんてしてるようにはちっともさっぱりこれっぽちも見えないが
addonsaddonsそればっかうるせーなw ケーキペチパー落ち着けよ
413 :
nobodyさん :2008/03/05(水) 09:42:25 ID:LSCm3THv
public function getParam() { $array = func_get_args(); $this->Params = $array; } public function text_dump($text1, $text2, $text3) { echo $text1."\n"; echo $text2."\n"; echo $text3."\n"; } 取得したパラメータを、別のメソッド(text_dump)で使用したいのですが、 引数の数が変動する場合に、何か良い振り分け方法はありませんか?
>>413 引数の処理が同じ処理なら
パラメーターを配列かし、text_dump再帰処理をtext_dumpで書けば良いと思う
>>413 それこそfunc_get_args使えよw
function test_dump() {
$ary = func_get_args();
foreach ($ary as $value) {
var_dump($value);
}
}
>>409 phpは入門しやすい言語だから幅広いレベルの人間がいる。
だからなんだというのだろう・・。
javaなんかごちゃごちゃインストールしまくりでやってられない おなじことができるならphpでいいじゃん
PHPの人気はCの人気と近いと思うな。 共通点として、無理が通せてしまう言語ってこと。
419 :
nobodyさん :2008/03/05(水) 18:44:16 ID:JDEU3z4H
<?php include_once("php/header.inc"); ?> <?php echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; ?> 上記をxhtmlファイルの先頭に書いてるんですが、 web上のページを見てみると、先頭に改行が入ってしまってエラーが出ます。 先頭に改行が入らないようにするにはどうすればいいのでしょうか?
で?エラー文なしでエスパーしてもらえと?
PHP+Mysqlで書籍検索システムを作っています。 検索フォームには ・書籍タイトル ・著者名 ・出版社名 があります。 それで、文字列が入力されているフォームのみ、 クエリに条件として追加したいのです。 たとえば、書籍タイトルだけが入力されている場合は SELECT * FROM books WHERE title = %s〜 書籍タイトルと著者名が入力されている場合は SELECT * FROM books WHERE title = %s AND author = %s〜 としたいのです。 どうかご教授下さい。
422 :
419 :2008/03/05(水) 18:58:51 ID:JDEU3z4H
すみません、エラー文です。 XML パースエラー: 外部実体の初めに XML 宣言がありません。 行番号: 2, 列番号: 1:
なんで1行目に改行があると判断したのかkwsk
424 :
419 :2008/03/05(水) 19:11:14 ID:JDEU3z4H
>>421 そんなのNULLで無い時に、その条件を足してやりゃいいだけじゃん。
426 :
421 :2008/03/05(水) 19:21:56 ID:???
即レスありがとうございます。 条件を足す方法というのは if文でチェックして .= で追加すればよいのでしょうか?
すいません初歩的な質問で申し訳ないのですが $ccc = @$_POST['aaa'] && @$_POST['bbb']; のような文の「@$」ってどういう意味でしょうか? $の前に@が付いているのは初めて見ました。 どなたかご教示いただけると幸いです。 特殊文字は検索がしにくい・・
>>426 YES
それと質問時はIDを出しましょう。
430 :
427 :2008/03/05(水) 19:33:31 ID:???
おおっ ありがとうございます!
>>419 php/header.incの中身が
<?php echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; ?>
ってこと?
432 :
419 :2008/03/05(水) 22:00:52 ID:JDEU3z4H
>>431 いえ、違います。
<?php include_once("php/header.inc"); ?>
<?php echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; ?>
この2行をxhtmlファイルの先頭に書いてあります。
header.incには他のことが書いてあります。
>>432 incファイルの中で空行を出力しているかBOM
>>432 中身は<?php ?>の空のheader.incを使って再現してみたが、
俺の環境では問題なし。
おそらくサーバ側の問題。
xrea無料あたりの広告を自動挿入されるようなサーバ使ってるならそれが怪しい。
435 :
337 :2008/03/05(水) 22:20:40 ID:uqdrOXeC
qmailでのメール送信が出来ない件についてー1
>>344 >qmailのsendmail-wrapperが /var/qmail/bin/sendmail
>とか、/optの下あたりにないかい?
確かにその階層に、「sendmail」というファイル(?)は存在していました。
また、現在のphp.iniのメール回りの設定は、次の様に記述しています。
現在、
sendmail_path = /var/qmail/bin/qmail-inject
としている記述を
sendmail_path = /var/qmail/bin/sendmail
にすれば良いのでしょか?
※一応こちらも例しましたが送信出来ませんでした。
436 :
nobodyさん :2008/03/05(水) 22:26:50 ID:knvJCigj
しつもん。 置換文字列が見つからないときに元の文字を返す置換変数ってありませんか。 str_replaceとか失敗したら返り値がfalseになるじゃないですか。 正規表現使わないときにpreg_replaceは止めろ、ってマニュアルに書いてあるから その通りにしようと思ったのにうまくいかないじゃん。 結局今はif(strpos()){str_replace();}みたいなことやってます。
437 :
337 :2008/03/05(水) 22:27:20 ID:uqdrOXeC
qmailでのメール送信が出来ない件についてー2
>>344 >which sendmailするとどうなる?
[hoge@localhost ~]# which sendmail
/usr/sbin/sendmail
でした。
現在、使用している(標準でCentOS5についていた)メールソフトは、
Evolutionであり、こちらは現在契約しているプロバイダのSMTP(POP)サーバを
指定してメールは送信しています。
phpやってると脳が腐りそうになるってのは同意 言語に罪はないが利用者が酷い 関数すらろくに作れないヤツが殆どだからなぁ
>>432 過去に、UTF-8のファイルを使っているエディタ以外で開いて保存して
同様の現象が出たことあります。
ファイルの文字コードを調べるツールで確認してみてはどうですか?
面倒だったら
1.そのファイルを移動
2.元の場所に同名のファイルを作成
3.エディタでそのファイルを開き、移動したファイルの内容をコピー
で直りませんかね?
440 :
419 :2008/03/05(水) 22:57:19 ID:JDEU3z4H
>>433 >>434 >>439 皆さんありがとうございます。
余計な改行と空白があったみたいでして、
文字コードをUTF-8Nにして改行と空白を削除しましたら無事に表示されました。
.htaccessと同じように最後の行は改行しなくてはならないと思い込んでいました。
こんな初歩的なことでスレを使ってしまい申し訳ありませんでした。
phpの閉じタグは htmlと混ぜて書いている時意外書かない方がいい
mb_ereg() と mb_ereg_search_regs() の使い分けが分からない
443 :
337 :2008/03/06(木) 00:12:48 ID:eYOrPk/W
php(WEBページ)から再度、メールを送信しログを確認したところ
次の様なエラーログが吐かれていました。
事象について、ぐぐったのですが何もヒットしません。
qmail+phpで正常にメール送信が出来ている方がいましたら、助けて下さい。
エラーメールログー1
Mar 6 00:02:08 localhost qmail: 1204729328.505456 new msg 19727037
Mar 6 00:02:08 localhost qmail: 1204729328.505530 info msg 19727037: bytes 266 from <
[email protected] > qp 3412 uid 48
Mar 6 00:02:08 localhost qmail: 1204729328.507171 starting delivery 5: msg 19727037 to remote
[email protected] Mar 6 00:02:08 localhost qmail: 1204729328.507233 status: local 0/10 remote 1/20
Mar 6 00:02:08 localhost qmail: 1204729328.511988 new msg 19727040
Mar 6 00:02:08 localhost qmail: 1204729328.512133 info msg 19727040: bytes 338 from <
[email protected] > qp 3414 uid 48
Mar 6 00:02:08 localhost qmail: 1204729328.518935 starting delivery 6: msg 19727040 to remote
[email protected] Mar 6 00:02:08 localhost qmail: 1204729328.519187 status: local 0/10 remote 2/20
Mar 6 00:02:08 localhost qmail: 1204729328.802970 delivery 6: failure: Connected_to_125.63.38.26_but_sender_was_rejected./Remote_host_said:_550_unrouteable_sender_address/
Mar 6 00:02:08 localhost qmail: 1204729328.803198 status: local 0/10 remote 1/20
Mar 6 00:02:08 localhost qmail: 1204729328.809493 bounce msg 19727040 qp 3417
Mar 6 00:02:08 localhost qmail: 1204729328.809645 end msg 19727040
Mar 6 00:02:08 localhost qmail: 1204729328.810220 delivery 5: failure: Connected_to_125.63.38.26_but_sender_was_rejected./Remote_host_said:_550_unrouteable_sender_address/
444 :
337 :2008/03/06(木) 00:13:31 ID:eYOrPk/W
エラーメールログー2
Mar 6 00:02:08 localhost qmail: 1204729328.810354 status: local 0/10 remote 0/20
Mar 6 00:02:08 localhost qmail: 1204729328.810420 new msg 19727045
Mar 6 00:02:08 localhost qmail: 1204729328.810477 info msg 19727045: bytes 973 from <> qp 3417 uid 507
Mar 6 00:02:08 localhost qmail: 1204729328.818246 starting delivery 7: msg 19727045 to local
[email protected] Mar 6 00:02:08 localhost qmail: 1204729328.818474 status: local 1/10 remote 0/20
Mar 6 00:02:08 localhost qmail: 1204729328.822610 bounce msg 19727037 qp 3418
Mar 6 00:02:08 localhost qmail: 1204729328.822753 end msg 19727037
Mar 6 00:02:08 localhost qmail: 1204729328.857829 new msg 19727044
Mar 6 00:02:08 localhost qmail: 1204729328.858247 info msg 19727044: bytes 901 from <> qp 3418 uid 507
Mar 6 00:02:08 localhost qmail: 1204729328.861612 starting delivery 8: msg 19727044 to local
[email protected] Mar 6 00:02:08 localhost qmail: 1204729328.861752 status: local 2/10 remote 0/20
Mar 6 00:02:08 localhost qmail: 1204729328.861831 delivery 7: success: did_0+0+1/
Mar 6 00:02:08 localhost qmail: 1204729328.861906 status: local 1/10 remote 0/20
Mar 6 00:02:08 localhost qmail: 1204729328.861968 end msg 19727045
Mar 6 00:02:08 localhost qmail: 1204729328.868252 delivery 8: success: did_0+0+1/
Mar 6 00:02:08 localhost qmail: 1204729328.868471 status: local 0/10 remote 0/20
Mar 6 00:02:08 localhost qmail: 1204729328.868569 end msg 19727044
445 :
337 :2008/03/06(木) 00:17:58 ID:eYOrPk/W
※補足 因みに、qmail用に作成したユーザに対して次のコマンドを実行すると 正常に送信出来ています。(ローカルへの送信はOKと言う意味。) [root@localhost ~]# /var/qmail/bin/qmail-inject to:localhogeuser <Ctrl + D> なぜ、外部メールアドレスへの送信は出来ないのでしょうか?
447 :
nobodyさん :2008/03/06(木) 01:59:19 ID:F9M1Wqca
print 8000000000 % 100; これプリントしてみ? 結果がおかしいんだが・・・ 因みにこっちの環境では47と出る・・・ バグ?
まぁプログラムする側もintの値域超えないように考えてプログラムしろってことなんだろ
449 :
nobodyさん :2008/03/06(木) 04:17:20 ID:F9M1Wqca
>>448 ヒントdクス
intの値域は2147483647までなのね。
しかし、
print 8000000000 / 100;
をすると80000000とちゃんと出力されたんだが・・・
すんごい 基礎でつまってるんですけど。 <html> <body> <?php print "hello php! " ; ?> </body> </html> でこれで hello php! ってブラウザに出力したいんですけど、なぜか でないんです。テラパッドに書き込んでIEブラウザで読み込んでるんですけど 動かないんです。どなたかご教授いただければ、幸いです。
拡張子はphpにしてる? まさかphpがインストールされてないとかそういうわけじゃないよね?
まずapacheとかのHTTPサーバを組み込んだ? いくらPHPはHTMLに似ているからと言って IEだけじゃPHPは動かないぞ。
xamppでapache php mySQLとかはダウンロードして インストールして 起動させてるんで ブラウザからlocalhostのページもみれるんでたぶん 動いてるとおもうんですけど・・・。拡張子もphpにしてみたけど、だめです。
拡張子phpにしてもブラウザからみれば アドレス側の名前の最後php.txt になってるみたいなんですが、これ原因ですかね?
>>454 ひどいオチだな。拡張子表示するようにしなよ。
メモ帳系のソフトは登録されていない拡張子だと後ろに.txtをつけることがある。
保存するときにファイルの種類をすべてのファイルにしてからphpとうつか、
txtで保存したあと拡張子を変えるかでいける。
452さん 453さん 455さん ありがとうございました。拡張子の付け替えうまくいきました。 前進したようです。 でもこんどは読み込むとブラウザの画面が真っ白なページになってしまいまし た。orz
もういいよ
ありがとうございました。もうすこし自分で調べてきます。
拡張子表示すら知らない人がやるんだから、PHPの裾野の広さは色んな意味で恐ろしいほど広いよな・・。
そんなヤツらが毎年入社してくるんだよ。何とかしてくれ。。
いやどちらかと言えば俺はそのほうがいいと思うよ。技術は使われるものじゃなくて使うもの
拡張子のことを知らない人は、論理的な思考が出来ないということでもないから、気にする事でもない。
>>456 PHPスクリプト自体、htdocsに入れてるか?
携帯電話からメールがきた際、返信メールを返すシステムを構築しているのですがドコモからきたメールを返してくれません。 状況としてはこんな感じです。 ドコモのメールアドレス(ユーザアカウント部分)にドットが含まれている(auのアドレスには含まれていない。) mail関数で返信している。 メールアドレスは正常に取得できている。(送信前にtoをvar_dumpしてみました) お願いします。
その手の質問はphpばかりやっているから。 もう少し、言語に依存しないプログラムの基本的な理論や プログラムの設計理論について学ぶべきだよ。 基礎ができていないプログラマーは、 いつも行き当たりばったりで、 自己解決がいつまで経っても出来ないからね。
>>464 どのように返しているの?
cronかメ鯖か
>>464 さん
耳が痛いです。。。
そろそろ基礎から学ぶべきだとは思ってます。
>>466 さん
メ鯖で返してます。
メールが来たらforwardして
ログみるとPHP側にはわたっているデータは残ってるんでmail関数が怪しいと思ってます。
>>467 さん
なんどもすみません。
環境
OS:Fedora Core5
Mail:postfix
php5
です。
470 :
464 :2008/03/06(木) 19:11:43 ID:???
自己解決しました。。。。 受信拒否解除してなかっただけでした。 すみません_| ̄|○ il||li
どうせそんな事だろうと思ったよ
>>471 何も答えない癖に、何言っていんのこの馬鹿?
開発会議で全然発言しなかったくせに、
開発途中で設計に変更の必要がでると、
「やっぱり、その設計はまずかっただろう」
とか誇らしげに言っているF次長と一緒。
まったくウザイ。どうしてこんな奴が次長の椅子に座っているの?
どうなっても知らんよ。
それをF次長に直接言えるようになるといいね。
>>468 「そろそろ基礎から学ぶ」という発言に違和感を覚えないようなら相当やばいと思う。
今すぐ行動すべき。でないと手遅れになる。
基礎もわからず応用から入れる人って ある意味羨ましい
ここでいう基礎が不明確だな。SICP終わったくらいか
基礎と言えば「BASIC」
まずは機械語の理解からだろ
今更mov ax,0とかld a,0なんてできんわぁ
で、お前らはnoticeエラーもきちんと処理してんのか?
>>480 またお前か。下らんことばっかきいてんじゃねえよ。
普通は処理する
逆に、そんなにnoticeって出る?? どういうとこで出るんだろ。
きっちり書いてればでないよ 一番多そうな例としては <?php $hoge = $_GET['hoge']; こんな風にいきなり書く場合が多いんじゃないかな
FW使えばok
すみません初心者質問なのですが こういうのはecho "<a href=\"$url\">$title<a>; こうした方がいいのでしょうか? echo "<a href=\"$url\">".$title."<a>";
何故$titleだけ
488 :
nobodyさん :2008/03/07(金) 02:58:35 ID:dvnvybav
phpでF5キーを押すのと同じ働きをするコマンドはありませんか? つまりページを再取得するという意味。
489 :
nobodyさん :2008/03/07(金) 04:07:02 ID:slLJ/4/b
if ($_SERVER["REQUEST_METHOD"] == "POST") { foreach($_POST as $k => $v){ // 「magic_quotes_gpc = On」のときはエスケープ解除 if (get_magic_quotes_gpc()) { $v = stripslashes($v); } $v = htmlspecialchars($v); $$k = $v; } } これの意味がわかりません。 なんでこれでデータをゲットできるの?
可変変数のことを言ってるのか?どこの意味が分からないのか書かないと人に伝わるわけない
>>488 コマンドって・・・
PHPは入力などを受け取ってサーバ側で処理をしてブラウザに結果を返すというだけのもの。
現実的なのはPHPでmetaタグのrefreshコード(HTMLの)を出力するとか。
F5と同じ働きをするわけではないが、結果をリアルタイムに取得して表示することが可能なAjaxという技法を使うか。
チャットとかでリアルタイムに表示したいようなものを作るならAjaxが定番。
ページ遷移が行われるmeta refreshによる自動更新はかえって迷惑なのでやめたほうがいい。
492 :
nobodyさん :2008/03/07(金) 06:48:34 ID:9kEaF3pZ
PHP初心者です。テキストからドットを取り除く関数はあるのでしょうか。 例)1.2.3.4.5 ↓ 12345 よろしくお願いいたします。
>>492 正規表現による置き換え
preg_replaceあたり
494 :
492 :2008/03/07(金) 07:05:14 ID:???
str_replaceで十分なんじゃないかw
496 :
492 :2008/03/07(金) 08:20:19 ID:???
>>495 レスありがとうございました。
実際はいくつかの文字変化が必要でしたので次のようにしてみました。
みなさんありがとうございました。
$moji0 = "1.2,3.4,5 6 7" ;
$moji1 = array ("/\./" , "/,/" , "/./" , "/,/", "/ /", "/ /") ;
$moji2 = array ("", "", "", "", "", "") ;
echo preg_replace ($moji1, $moji2, $moji0) ;
497 :
nobodyさん :2008/03/07(金) 14:31:43 ID:l69x+LwZ
自分でphpの関数を作ってみようと思うのですが、 作る方法を解説したサイトはありますか? C++の基礎がやっと分かる程度ですが、 Smartyのpluginのような感じで簡単に追加できるならやってみたいと思います。
有識者の意見を伺いします。画面にこのようなメッセージが表示されます。 解読願います。 Service Temporarily Unavailable The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later. -------------------------------------------------------------------------------- Apache/1.3.34 Server at www.hashimoto-toru.com Port 80
>>499 アクセス集中時で繋がらないときのメッセージ
通常時間をおけば解消する
っていうかスレ違いだしそんくらいググレ
502 :
nobodyさん :2008/03/07(金) 15:50:14 ID:9kEaF3pZ
PHP初心者です。本日symfonyなるものを知りました。いきなりですが なんて読むのでしょう。シンフォニーだとスペルがちがいますし。 またPHPのフレームワークにもいくつかあるようですが、主流というのは あるのでしょうか。よろしくお願いいたします。
>>500 昨夜更新したときに、何か不具合が発生したのかと思いました。
心より、感謝します。
>>502 そんなん言ったらPerlだってスペル違うし。
>>499 橋本さんの所の人なんですか?
公人の場合、こういう場所に書くとき、
色んな事に気をつけたほうがいいと思いますけどね。
余計なお世話ですけど
更新ってF5のことだろ 政治家のサイトの更新するようなやつがそんな質問するわけないw
その通りです。互角を招いて申し訳ありません。
>>507 そうだと思いました。では、この話題はこれでおしまい。
>>502 Symphonyだと音楽のほうがぱっと思い浮かぶから
Symfonyは単語として存在しない=PHPのフレームワークをさす固有名詞になれる
この名前がそういう理由でつけられたかはわからないが
そういう理由で単語にないものをつけるのはよくあること
商標登録(だっけか?)とかそういうのするときにも使えるしな
日本ではCakePHP Symfonyが特に人気
PHPのフレームワークはソースごとサーバにアップロードすれば動くものなので
人気かどうかを考えるより自分にあったものを使えばよろしい
個人的には和訳ドキュメント量が豊富なのを使うようにしてるけど
くだらねぇ事だけど、symfonyの先頭は小文字にしような。
510 :nobodyさん:2008/03/07(金) 17:07:00 ID:??? くだらねぇ事だけど、symfonyの先頭は小文字にしような。
512 :
502 :2008/03/07(金) 17:13:51 ID:???
皆さんレスありがとうございます。 >日本ではCakePHP Symfonyが特に人気 CakePHPも調べてみます。ありがとうございます。
513 :
nobodyさん :2008/03/07(金) 18:39:08 ID:ysjWWEjV
mp3について質問です。
header("Content-Type: audio/mpeg");
$hoge = file('hoge.mp3');
$data = "";
foreach($hoge as $hogehoge) {
$data .= $hogehoge;
}
echo $hoge;
これで
「
http://www.hogehoge.com/hoge.php?hoge=hoge1.mp3 」
こんなことできるかなーって思ったんだが
最初の3秒ぐらいしか再生されず。
何故?
514 :
nobodyさん :2008/03/07(金) 18:42:20 ID:ysjWWEjV
あ、修正。 最後は echo $data です。
515 :
nobodyさん :2008/03/07(金) 18:52:44 ID:ysjWWEjV
>>513 あ、MP3読み込んでるのにmpegをheaderで指定しているからか。
ありがとうございました。
関係ないかもしれんが、ばらして結合するぐらいなら、 file_get_contents 使えば?
あると思ってたがやっぱりこんな関数あったんですね。 ありがとうございました。
欲しいと思う関数がある、それがphp。 こんな偉大な言語はない。 但し、PGになるハズが無かったPGを存在たらしめた副作用も意識しなければいけない。
緩い関数はあんまり使いたくない。バグの元。
理由は分からんがContent-Lengthが必要のようだ。
↓を追加したら最初のコードで問題無く聴けたよ。
header("Content-Length: ".filesize('hoge.mp3'));
しかしまあ
>>513 のコードはなんか気味悪いな。
改行しないfile関数があってもよさそうだね・・。
みんな大好きsprintf
524 :
nobodyさん :2008/03/07(金) 20:41:02 ID:ysjWWEjV
525 :
nobodyさん :2008/03/07(金) 22:11:52 ID:d1NS98q0
すいません質問です PHPで書いたスクリプトを定時に作動させたいのですが、 それってシェルスクリプトというのを書けばいいのでしょうか それ以外に簡単な方法はないでしょうか ちなみに扱える言語はPHPだけです
cron使えばいいんじゃね?
527 :
nobodyさん :2008/03/07(金) 22:26:54 ID:l69x+LwZ
>>526 私が借りてるサーバーはcronも使えるようです
cronも全くわからないのでやり方調べてきます
ありがとうございました
テンプレにあるじゃん。はげ
また、2chから逮捕者か
533 :
489です :2008/03/08(土) 00:16:04 ID:hakb0/u4
if ($_SERVER["REQUEST_METHOD"] == "POST") { foreach($_POST as $k => $v){ // 「magic_quotes_gpc = On」のときはエスケープ解除 if (get_magic_quotes_gpc()) { $v = stripslashes($v); } $v = htmlspecialchars($v); $$k = $v; } これでたとえば、html上のフォームのデータ がすべて受け渡しができる意味がわからないのですが 教えてください。
>>533 スーパーグローバル変数$_POSTにpostで送られてきたキーと値が格納されるから
535 :
489です :2008/03/08(土) 00:38:44 ID:hakb0/u4
ありがとうございます。 magic_quotes_gpc = Onのときはエスケープ解除って どういう意味?
magic_quotes_gpc でぐぐればわかるカナ?
537 :
nobodyさん :2008/03/08(土) 02:17:31 ID:l7Ped3Na
ファイルアップロードする時に、 参照ボタンを押してダイアログからファイルを選択し開くボタンを押すと 同時にサーバに送る方法はありませんか?
どっちみち不可能。諦めろ。
540 :
nobodyさん :2008/03/08(土) 02:41:08 ID:l7Ped3Na
あれ?出来ないのか。 どっかで見た気がしたんだけどな。
>>537 PHPだけじゃできないが可能でしょ。
問題は自分で使うならいいが、公開する場合そんなハタ迷惑な実装はやめていただきたいものだな。
ブラウザにもよると思うが、セキュリティのためかなんかで<input type=file>周りはガチガチに固められてるハズ。
前に
>>537 と似た内容の要求仕様があったんで、そっくりに作ったFLASHで勘弁してもらったことがある。
ちょっとしたヤバイファイルホイホイになって面白そうだ
出来ないのはvalueを設定する事ができないだけ 参照は出来た筈なので 値が変わればpostしてやるjavascriptを動かせば良い gmailとかでファイル添付しようとしたら自動でアップされるので それを参考にすると良いんじゃない(JS側だけ)
545 :
nobodyさん :2008/03/08(土) 11:59:45 ID:GVJUSgTC
質問します。
xamppをインストールしてphpmyadminにアクセスしようとしているのですが、
エラーが出てしまい、使えなくて困っています。
やったこと:
・
http://www.apachefriends.org/jp/xampp-windows.html から xampp-win32-1.6.6a-installer.exe をダウンロード・インストール
・
http://localhost/ にアクセスして「日本語」をクリック
・
http://localhost/xampp/ の左の一覧から「phpMyAdmin」をクリック
→下記のようなエラーメッセージが表示される。
--- ここから
phpMyAdmin 2.11.4 へようこそ
MySQL サーバに接続しようとしましたが拒否されました。config.inc.php のホスト、ユーザ名、パスワードが MySQL サーバの管理者から与えられた情報と一致するか確認してください
エラー
MySQLのメッセージ:
接続できません: 設定が無効です
--- ここまで
・config.inc.phpを色々いじった
・$cfg['Servers'][$i]['user'] = 'root'; の root を root@localhost とか
[email protected] とか変えてみたり
・コマンドラインからmysqlに入って、rootのパスワードを空ではなく適当な文字列にしてみたり
(それに伴い、$cfg['Servers'][$i]['password'] = '';は変更しています)
→メッセージに変わりなし
xamppは、インストールするだけで、とくに設定変更なしでphpmyadminも使えたと記憶していたのですが。。。
スレ違いであれば誘導お願いします。
xamppやめる
547 :
nobodyさん :2008/03/08(土) 14:29:42 ID:l7Ped3Na
とりあえず、このコードは IE7/Firefox2/Opera9/Safari3 で動作した。 <input type="file" onChange="alert('onChange')"/>
どうでもいい事だけど、 クリックしたら+1されるスクリプトをテストで組んでサーバーに上げて試してみたら どうしても「+2」ずつとかされて「あれ?おかしいな?」と思っていたら、なぜかグーグルのクローラーに拾われてた。 俺がクリックした瞬間に来るから おかげでクリックする度に「+1」だったり「+3」だったり明らかに挙動がおかしい・・・ とゆうかサーバーにファイルをあげてから10秒ぐらいでクローラーが巡回しにきたんだが、 一体何なんだ・・・・こえーな・・・
550 :
nobodyさん :2008/03/08(土) 14:43:01 ID:i79H3oER
phpで簡単なアクセス解析らしきものを作っています。 アクセス解析.phpを、サイトのトップに<iframe>で表示させて情報を取得させています。 しかしこれだとそのサイトのトップのリファラーしか得られません。 トップにアクセスした時点のリファラーって取得できないのでしょうか?
>>549 クリックしたらグーグルのクローラーが来ます!ってプログラムで売り出してください。
>>552 ググったらjavascriptの奴は出てきたんですが、PHPでは出来ないでしょうか?
スクリプト配布してんの?
>>555 ツールバーが知り得るサーバでした、じゃないの?
>>557 陰謀論というかちゃんとログが残るように作ってるから、そいつがアクセスしているのは事実なんだけどな。
まぁ、metaタグでクローラーの巡回を禁止にすれば済む話ではあるが、ただちょっと、
誰も知りえない隔離された場所に一人でいたつもりが、予想外の訪問者があってビビッタだけ
561 :
550 :2008/03/08(土) 16:11:04 ID:i79H3oER
それをphpでやる場合は JSでhoge.phpに JS側 if (document.referrer == parent.frames.location) { refer = top.document.referrer; } else { refer = document.referrer; } refer = escape(refer); document.write('<img src="hoge.php?referer=' + refer +'">'); php側 <?php $ret = null; if (isset($_GET['referer'])) { $ref = $_GET['referer']; } ここらへんで$ref似格納してあるリファラの処理 // 以下画像出力 $img = "R0lGODlhAQABAIAAAP///////yH5BAAHAP8ALAAAAAABAAEAAAICRAEAOw=="; header("Content-Type: image/gif"); echo base64_decode($img);
公式サイトの日本語ドキュメントの訳が間違ってたらどこに言えばいい?
565 :
550 :2008/03/08(土) 16:46:44 ID:i79H3oER
>>562 エッチな人ありがとうございます!
親フレームのリファラ取得に成功しました!
正規表現でいいじゃん
ありがとうございます。 preg_match_all('/^(http?|https)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $strInputDate, $aryURL); こんな感じで実現できそうです。 多謝!
よくある使える文字全部ってやつだな
こんばんわ 繰り返し処理 while文 はどうゆう時に使うんでしょうか?
何らかの処理を繰り返したいときです
>>574 その何らかの処理って例えばどんなんですか?
>>575 while(1){
system('ping www.omae-no-server.com');
}
centos5、php5,1,6使ってます。 変数に値の受け渡しが出来てなくて フォームタグが一切効かないんですが(反応しない) 同じソースコードなのに環境によって変わるものなのでしょうか?
579 :
nobodyさん :2008/03/09(日) 01:34:54 ID:bMNZC/Zo
>>491 参考にさせて頂きます。
ありがとうございました。
※実は、スパムメール業者から1クリ詐欺のURLの掛かれたメールが届いたので
勉強中のPHPで何万回かアクセスをしてサーバに負荷をかけてやろうと思ってましたw
.NETのWindowsアプリから直接サーバをコールした方がてっとりばやいそうですね。
掲示板で書き込むとhtmlページを作成するものがありますが phpでhtml作成する関数ってあったでしょうか?
582 :
578 :2008/03/09(日) 01:58:11 ID:???
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC_JP"> <title>formtest</title> </head> <body> <FORM ACTION="formtest.php" METHOD="POST" NAME="line"> 名前<INPUT TYPE="TEXT" NAME="name" SIZE="15"><br> コメント<br> <TEXTAREA NAME="comment" rows="4" cols="60"></textarea><br> <INPUT TYPE="SUBMIT" VALUE="submit"> <INPUT TYPE="HIDDEN" NAME="action" VALUE="regist"> </FORM> <?php if($action == "regist"){ if(($name != "") && ($comment != "")){ print "渡ったよ"; } } var_dump($_POST); ?> </body> </html> var_dump($_POST);では値は渡っていますが$nameや$commentには渡っていません。
結構有名な問題みたいですね。ありがとうございます。試してみます。
register_globalsは怖いよ
グローバル連想配列でアクセスすることが推奨されてるみたいなので、 一度onに切り替えてうまくいったらoffに戻して そっちのやり方を調べてみます。
すいません〜 バイトってどうやったら分かるんでしょうか? 1文字 1バイトとかですか?
>>586 オススメはしないが
extract使えば入るよ
<?php
extract($_POST);
if($action == "regist"){
if(($name != "") && ($comment != "")){
print "渡ったよ";
}
}
>>587 文字のバイト数なら
strlenで数えるのが楽かな
register_gloval=onは解決に至りませんでした。 >588 extractって初めて聞きました。 POSTの配列の値をnameやcommentに入れてるみたいですね。 これやったら動きました。ありがとうございます!
591 :
nobodyさん :2008/03/09(日) 02:34:11 ID:O0qbW4Oe
解決したなら別に良いけど、編集すべき php.ini / htaccess が間違っているか、Apacheの再起動が必要な気がする。 設定は phpinfo() で確認すべし。
ムダに上げちゃった。もう寝よ。 (ρw-).。o○
phpinfoで確認しつつ設定後リブートしたらextractなしでも動くようになりました。 原因がわかったのでグローバル変数でアクセスとやらを調べてきます。 ありがとうございます。おやすみなさい。
>>582 どこでこのサンプルを拾ったか分からんが。
register_globalsがonとかextractで動くようなサンプルは参考にしないほうがいい。
それはセキュリティの面でですか? もうちょっとレベルが上がったら 他の配布プログラムなどがどのような構造になっているか見てみます。
>>595 セキュリティ面とregister_globalsがonな環境って現在はかなり少数派
わかりました。ありがとうございます。
598 :
nobodyさん :2008/03/09(日) 11:37:23 ID:8H4G5Ydo
ブラウザから入力された文章をその場でtxt等の ファイルにしてダウンロードさせたいのですが ↓の方法以外に何かよい方法はないでしょうか、たとえば変数の中身をファイルに変えてブラウザに出力など 一時ファイルを作成→その一時ファイルに文章を書き込み→一時ファイルをリンクで開く
Content-Typeを指定していろいろやっておりますがなんとか解決の見通しがつきそうです もしまた詰まりそうならそのときによろしくお願いします
詰まりそうなとき
遅レスだが、Content-DispositionとApplication/Octet-Stream または存在しないContentTypeでいけそう。
掲示板とか作ってる人は自分で1から作ってるんですよね? どのくらいかかってるんでしょうか?
単純に書き込んで、単純に読むだけのものなら2〜3時間てとこか
>>603 単純に書き込んで、単純に読むだけのものに、2〜3時間も掛けるとは・・・
いつもの荒らし復活ですか
606 :
nobodyさん :2008/03/09(日) 17:45:27 ID:/1sOFXZx
3時間で理解できるphpの高機能掲示板スクリプトはありませんか? 機能はNGワードを指定すれば以前の投稿でもNGワードが含まれている場合は非表示に出来る程度で十分です
>>604 ごめんね遅くて
君は何分くらいでできるの?
荒らしは書き逃げが得意。
普通は30分もかからんだろ。
俺なんて、5分でできるよ。 レンタルですけど。
>>606 >3時間で理解できるphpの高機能掲示板スクリプトはありませんか?
そんな都合のいいもんはない
>機能はNGワードを指定すれば以前の投稿でもNGワードが含まれている場合は非表示に出来る程度で十分です
どういう風に実装すれば見当がつかないからこんな質問してるんでしょ?
こんくらいの実装がわからないようじゃ3時間なんて無理無理
もしわかるならどう実装すればいいか言ってみ
まぁそれが言えたらその通り実装すればいいって話になっちゃうんだが
一本のプログラムを何回もマニュアルを見ながらじゃないと プログラムできない人なら何時間も掛かるだろうなぁ。 仕事でプログラミングやっている人は、 ほとんどマニュアル見ないで組み上げるから、 そこが日曜プログラマーとの違いとも言える。
要はhtmlでデザインを組める程度の非プログラマーが、 PHPを初めて触って掲示板を何時間で作れるかってことだよな。 非三時間で一ヶ月かかりました。ハイ。
>606 これマルチだから、放置して。
使い方解るのに3時間じゃねぇの?と思ったんだがw
>>612 確かに、phpなら20、30分で出来るが、UNIX-Cで組めって言われたら、
半日か1日掛かるかも知れんな。
617 :
nobodyさん :2008/03/09(日) 18:54:18 ID:/1sOFXZx
> では「書いた本人が1年後に見直して3時間で理解できる」でお願いします。 言ってる意味がわからない 理解できなきゃ書けないし定期的にいじってれば忘れることはないので1年後も理解できるだろ 通常バグ修正でたびたびいじる機会もあるし理解は深まる一方のはずだが とりあえずプログラム基礎がない0からの素人じゃ他人のソース見ても3時間で到底理解できるはずがない 理解できるってのが設置に対する理解であってただのスクリプト探していますというだけならスレ違い Web制作板に昔あった気がするがなくなってるけど
何が嘘なんだか
みなさん早いですね。
622 :
nobodyさん :2008/03/09(日) 20:53:50 ID:3KfA+lxF
"comment":"YouTube\u3067\u30cb\u30b3\u30cb\u30b3\u52d5\u753b\u306e\u5b9f\u6cc1\u6570\u3092\u8868\u793a\u3059\u308bextension",
これってどうやってデコードすればいいんですか。
urldecode base64 gzinflate
は効果無しでした。
はてなブックマークエントリー情報取得APIで得られる情報なんですが
http://b.hatena.ne.jp/entry/json/ http://usrb.in/nce どなたかお願いしまうま
json_decode
624 :
nobodyさん :2008/03/09(日) 21:20:15 ID:3KfA+lxF
>>623 ありがとう。
Services_Jsonでパースしたら
エンコードされてる部分が「a」とか「c」
になっちゃうんですよね
Jsonパース自体が問題あるのかもしれないですね。
tagsの部分
Array
(
[0] => Firefox
[1] => extension
[2] => a
[3] => a
[4] => 3a
[5] => a
[6] => 3a
[7] => c
[8] => ≫
[9] => YouTube
)
これは他のパーサーでやったほうがいいということですかね。
まぁ、世の中難関の国家試験を突破して仕事についている人が沢山いる中で、 3ヶ月勉強すればニワカ技術者としてお金貰える世界なんだから、 全体的に低レベルな議論ばかりでもしょうがない。 単純労働者よりはマシ程度。
次の質問どうぞー
今使っているレンタルサーバーではPHP5.1.*が使えるのですが、 そのバージョンのPHPはどうやって入手したらよいのですか
CentOSは相変わらず化石だな phpに関してはガンガンverUPしないとだめだよね
>>630 あってるだろ
値が無かったらtrueが返される
varが空、若しくは0以外の場合はFALSEを返します って事だからあってると思うが?
>>630 お前の読解力が足りない日本語勉強しれ
varが空でない=varには何か入っている→falseを返す
varが空→trueを返す
634 :
630 :2008/03/10(月) 01:23:01 ID:???
・・・・うーん ごめん。勘違いしてたわ・・・・ 値があったら→false 値がなかったら→true か。_ノフ○
まぁ、慣れればそうでもないが、 なれないうちは難しい表現ではあるわな。 始めのうちは多少手間でも「?」と思ったら=で繋げていったりしないと間違うべ
0 は 空なんでしょ。「var が空でない場合 FALSE を返します。 」 で十分じゃないのか。 ま、いいけどさ。 >次のような値は空であると考えられます。: >"" (空文字列) >0 (0 は整数) >"0" (0は文字列) >NULL >FALSE >array() (空の配列) >var $var;(変数が宣言されているが、クラスの中で値が設定されていない)
このスレが適切か分かりませんが質問です。 ファイルなどをアップロードする場合、 input type=fileなどを使い、PHPでサイズ上限などを設定して処理しますが 画像よりもっと大きいファイル、500MBくらいのものをアップロードするにはどうしたらいいでしょうか? 特に制限を設けず参照ボタンからアップロードした場合はタイムアウトするのか、失敗してしまいます。
(゚听)
えらーログみれ php側の制限なら何かしら出てるはず
php.iniいじってください
>>637 そんなでかいファイルをアップロードしないでください
ピーエッチピーがかわいそうです。
いろいろなことはこの際度外視して
どうしてもやりたいならFTPのアノニマスユーザーで
アップロードできるようにした方が良いと思います。
>>641 PHPがやってることが、ストリームの内容を、全体をメモリ中にバッファしたりしないで、一時ファイルに出力してるだけなら、
あまりかわいそうでも無いと思ってるんだけど、実際のところどうなんだろ。
httpでそこまでのファイルをやり取りするのが間違ってるんじゃないか? 素直にftpを使うほうがいい気がするけど。 別にphpはかわいそうとは思わないw
>>642 おまえ→PHPタン→/tmp
<上がりきるまで繰り返し>
アップロード正常終了
/tmp/アップロードしたファイル→PHPタンが指定したパス
っていう順序でデータが流れます。
まるっとメモリに溜め込んだりはしないみたいなので、あんまし
可哀想でもありません。
むしろ、いぢめたくなるくらい可愛い(w。
>>644 ありがと。
PHPって なんか垢抜けてないドジッ娘のイメージ。イジめたい気持ちはわかる。
お前ら、なんにでも萌えなきゃ気がすまないのかw
647 :
nobodyさん :2008/03/10(月) 15:12:34 ID:9++q5i3u
date関数で一桁の分を返すことってできるんでしょうか? 今は $date = date("i"); if(substr($date,0,1) == 0){ $date = substr($date,1,1); } こんな感じでやってるのですが不便です。
>>647 $date = (int)date('i');
$date = (int)"01";
var_dump($date);
650 :
nobodyさん :2008/03/10(月) 15:30:44 ID:9++q5i3u
651 :
nobodyさん :2008/03/10(月) 16:16:07 ID:ZuF9csTh
すいません。教えてください。 curlを使ったバッチをphpで作ったのですが、 コマンドラインから実行するとcurlの取得結果が流れています。 これを無くしたいのですがどのようなオプションを指定すれば良いのでしょうか? よろしくお願いします。 centOS 5 apache2、php5、
>>651 curl使った事ないし、CLIで使えるか知らんけどflush系の関数とか?
>>651 何をしたいんだ?
取得した内容をコンソールに出したいの?
もうちょっと具体的によろしく
バッチで実行してとめりゃいいんじゃないの
655 :
nobodyさん :2008/03/10(月) 18:48:35 ID:IVVyU3M+
PHPで本や商品などの管理をするときに 1. ファイル(タブ区切りやcsvなど)と連携させて管理するのと MySQLなどのRDBMSと連携させてで管理するのは どのような違いがあり、件数によってどのようなメリットデメリットがあるのでしょうか? 2. またもし仮に現在、ファイルで管理していたとして、みなさんは(目安として)何件程度で MySQLなどのRDBMSへ管理方法を切り替えようと意識するでしょうか? 少し長いですかこの1.と2.に関して何卒ご教授お願いいたします
SESSIONファイルのパーミッションをデフォで644にしたいのですがそんなオプションはないですか? 現在は生成にchmodでチェンジしてます。
>>655 本や商品なんてデータが蓄積していくことが容易に予想できるでしょ
そんなもんは1件から当然DBだ
658 :
nobodyさん :2008/03/10(月) 19:18:06 ID:+peMqgQu
PHPでIPアドレスを記録したログがあります。 これを一ヵ月後、六ヵ月後、一年後、5年後にホスト名に変換したとき、 どの期間に変換作業を行ってもホスト名は同一でしょうか? いまIPアドレスかホスト名で記録するか迷います。
>>658 > どの期間に変換作業を行ってもホスト名は同一でしょうか?
んなわけない
660 :
nobodyさん :2008/03/10(月) 19:29:10 ID:+peMqgQu
かわりますか・・・。ホスト名で記録できるなら、なるべくホスト名でログを取るほうがいいですか?
>>655 1 1000件ちょっとくらいならファイルのほうが早い
2 一万件くらい
>>657 なるほど・・・
1のメリットデメリットはどういった感じでしょうか?
>>662 ありがとうございます
データが一定量(1,000件〜10,000件?)くらいを境にファイルとデータベースの有利さが代わってくるんですね
<?php $member ["name"] = "僕ドラえもん"; $member ["age"] = 21; $member ["tall"] = 70; print $member ["name"]; print "<br>"; print $member ["age"]; print "<br>"; print $member ["tall"]; ?> <?php $member = array("name" =>"僕ドラえもん", "age" => 20, "tall" =>70); print $member ["name"]; print "<br>"; print $member ["age"]; print "<br>"; print $member ["tall"]; ?> 上と下は同じですが、配列を使うと上より下のほうが楽だよって意味ですか?
>>663 ファイルで不都合することがあってもDBで不都合することはない
少ない件数での速度面は誤差にすぎない
DBに接続する分のオーバーヘッドも微々たるもので気にすることはない
DBはファイルと違ってデータを扱うことに特化して設計されているので
あらゆる面でファイルでデータを扱うより強い
何よりファイルよりずっとデータの管理が楽
まぁそういうわけでデータの管理という点で特に不都合がないならDBを使えばいい
DBが使えない環境下であるか短期で使う間に合わせのものならファイルでもいいと思う
両者は全く違うものなので優劣をつけることはできませーん
>>665 なるほど、勉強になりました拙い質問に答えていただきありがとうございます
>>665 前提条件も定義しないでDBが優位と主張するのは意味不明。
DBとファイルを経験則だけで論じるのは不正確で、
質問者に対して混乱させるだけ。
個人的には一度DBの便利さに慣れたらファイルでやりたいとは思わない。 配布とか環境とかでどうしようもないならやる
10万件とか100万件単位になってきたらデータベースに軍配が上がるな
DBといっても、ファイルとそれを操作するプログラムで成立しているってことを分かっていない奴ばっかwww
>>667 データ管理という点ってちゃんといっただろ
データベース→「ファイル+ファイルを管理するソフトウェア」 ファイル→ファイル 要するにデータを扱うもの作るときにごちゃごちゃ書かなくてで楽できる→データベース と書いてみる
データを集めてベースにするのだよ。 ホワイトベースを思い浮かべればわかりやすいだろう?
下らねぇ質問だけじゃなく 下らねぇ回答も書かないといけないのか?
デーテーベーっす
データベースに訳分からん妄想を頂いている奴ばかりで驚いた。 仕組みを理解していないと、いつまで経ってもダメなプログラマーどまりだぞ。
トランザクション管理と(特にリレーショナルな)検索処理を自作する気にはならんなぁ。 SQLiteなら PHP5にバンドルされてるから、サーバプログラムのインストールもいらないし。
なんでも自分でコントロールしてなくちゃ不安な優秀なプログラマさんは きっとOSも自作なんだろうなぁ・・・
>トランザクション管理と(特にリレーショナルな)検索処理を自作する気にはならんなぁ。 (・ω・`)?
>>684 優秀なプログラマはあるものを有効に利用して手早くよいものを作る
OSから自作なんて暇なこと考えるのは優秀とはいえない
ネタにマジレス って久しぶりに見たよ
ネタとか釣りとか後から言ってもかっこ悪いぜ 本気でそう思って書いたんだろうけど反応が悪くて逃げたくなったんだろ
OS自作を本気に思うって、それどこのひげぽん?w
691 :
651 :2008/03/10(月) 23:09:32 ID:???
よくわからんけど取得したのを変数にいれてそこから必要な内容とやらを抜き出せばいいんでないの 正規表現かなんかで
各ホストごとに、ユニークなID振って欲しいなぁ。 IPアドレスって流動的だし、アクセスの規制がやりにくい。 これって、TCP/IPの欠陥じゃないかと思う。どうよ?
どうよって言われても じゃお前がTCP/IPに変わるプロトコル提唱して広めろよと 技術的に自分でやるのが無理なら今の技術で我慢しろ っていうかスレ違いなんだよ
>>694 IPのヘッダーに接続元のMACアドレスを付与すれば言いだけだろ。
与えられたものを使うだけの低脳ですか?
結局認証の話になるだろうから、SSLレベルの話じゃないかな。 続きやりたきゃネット板で。
697 :
nobodyさん :2008/03/11(火) 00:50:35 ID:yiYYpGYN
>>693 15年ぐらい前はユニークなIDだったよ。
あの頃は完璧だったな。
とりあえずIPv6まで待てという事だな
>>695 お前が低脳だろ
MACアドレスが固定とかおめでたいな
3回スレタイ嫁。
>>699 おめでたいのはお前。自分で何も考えられない低脳は社会のゴミだな。
>>701 考えるだけの口だけニートで社会のゴミはお前だ
考えるだけなら猿でもできるんだよ
実行にうつして成功してから言え
煽りに煽りで返すってどんだけ低脳だよ。
やはり考えるだけで実行にうつさない能無しだったか
下らねぇ雑談はよそに書き込みやがれ
ここで流れを断ち切る質問。 ごめん、何書こうとしてたか忘れた。
とっくに沈静化してたのになんというKY
ちょっと疑問に思ったんだが、 ニコニコ動画ってカテゴリのタブ押すと、そのカテゴリに飛ぶけど URLは変わらないんだな あれはどうやってやってるんだろう? HTMLを見ると「?g=radio」とかクエリが付いてるけど
Ajaxだろ
JavaScript(DHTML)だろ?
クリックしたらJSで表示用HTML取りにいって innerHTMLでセットしてるだけ firefox拡張のfirebug使えば直ぐ解るよ
すみません。phpとあまり関係ないかもしれませんが、 ご存知の方がおりましたら教えて下さい。 地下鉄13号線が開通した場合に、西武線と東武線は、どこまで乗り入れるのでしょうか? 現在、西武線と東武線には、地下鉄有楽町線が乗り入れていますが、 ここに13号線まで通すとすると、相当な過密ダイヤになると思いますし、 輸送密度が飽和状態になってしまうと思うのですが。 宜しくお願いします。
715 :
nobodyさん :2008/03/11(火) 03:38:27 ID:Nb1PMFs8
すみません、sageてました。
upしてすぐに反映されないしcronで生成でもしてるんだろうか
717 :
nobodyさん :2008/03/11(火) 04:04:38 ID:aGeGDpSr
質問します。 PHPによるWebアプリケーションスーパーサンプル 第2版 で、アプリケーションの部分からぜんぜんソースが複雑 になってきて、半分くらいしかわからないのですが、 これ全部わかるようになりたいです。 どの本やどのソースを見ればいいでしょうか? 買った方意見ください。
719 :
nobodyさん :2008/03/11(火) 05:31:33 ID:3im4ko0N
他サーバにファイルが存在するかチェックしたいのですが file_existsが使えません そこで404 NOT FOUNDが返ってきたら〜という処理をすることにしたいのですが どの変の関数で実装できますか? サーバにアクセスしてみてレスポンスコード(あってるかな?)を取得するみたいな感じだと思うのですが
PEAR::HTTP_Requestオススメ
721 :
nobodyさん :2008/03/11(火) 05:40:31 ID:3im4ko0N
レスありがとうございます。 PEAR使ったことなくて・・・使い方もわかりませんorz 一応調べてみますが他の関数で間に合いそうならそれもお願いします file_get_contentsで出来そうな気はしたんですが 404だとWarningが表示されてしまって・・・ エラー制御して消すのはあまりよくないですよね?
722 :
nobodyさん :2008/03/11(火) 06:20:28 ID:o2D8ORnz
725 :
nobodyさん :2008/03/11(火) 11:22:14 ID:mDxl1eoa
質問があります。 現在携帯電話向けのHPを作成しています。 そこで「直前のページに戻る」リンクを作成したいのですが、 携帯向けHPのため、JavaScriptが利用できず <a href="javascript:history.back()">戻る</a> のようなタグも使用することができません。 phpでプログラムを組む事でこの機能は実現できないものでしょうか? また、HP内部ではPOSTによるページの再帰呼び出しを複数回行っているため、 「ページ(画面)遷移時に直前ページのアドレスを保持しておく方法」 は使えません。 レンタルサーバを使用しており、環境は OS:Linux 言語:PHP 4.4.8 となっています。 よろしくお願いします。
ページの呼び出し元と呼び出し先が違うときだけ URLを保存するでもダメなの? あとは、画面遷移の時に直前ページとしたいものは POSTで一緒に投げるとか。 自動でどうにかなるもんじゃないから そういう仕組みを作るしかないんじゃないかなぁ。
これって一行でかけないのだろうか? $obj = new IO::IO(); $obj->get("./data.text",false);
>>727 無理
$obj = new IO();
$obj->getHoge()->get();
とかってーのはphp5あたりからできるけど
>>651 もう解決したかもしれないけど、
setopt で CURLOPT_RETURNTRANSFER か、output_handler で。
>>725 「※携帯電話の戻るキーで戻ってください」
と書いておく。
昨夜までまともに見れたんですが、いきなり日本語が一切でなくなりました。。。
ttp://gameranking.jp/ ページは全てEUC、DBもMySqlなのでEUCで運営してました。
phpAdmin使ってます。
どこに問題があるんでしょうか?
>>731 レン鯖?
mysqlのバージョンアップとかなんか変更した点ある?
mysqlは途中のバージョンから言語設定しないと文字化けするようになりましたね
>>728 やはり無理ですか、どもども
>>732 はい、レン鯖です。xbit。
Mysqlのバージョン変更はしてません。
管理会社からも連絡はありませんでした。
phpAdminから文字コードの変更とかってできるんでしょうか?
>>734 ドメイン情報引いてxbit.jpに行ってみたけどサポートがあるみたい
だし聞いてみたら?
>>735 やっぱりそれですかね、、、サポートに連絡しても返事が来なくて、、、もうちょっと待ってみます。
あ、
わざわざ、ありがとうございました
PHP で、マジックナンバーを使いたくないから、 Java、C++ の enum みたいなことやりたいんだけど、どうしてる? クラス定数で何とかせいってはなし?
>>737 うん。あとは定数ファイル作るとかかな?
定数を定義すべきかもしれんが、どうせコンパイルチェックもしてくれないんで、 このごろは文字列をそのまま使ってる。今のところ困って無い。
740 :
737 :2008/03/11(火) 15:48:04 ID:???
>>738 やっぱそうか。。。
定数ファイルは微妙だな。。。ファイル間の結合度が上がるのが好きじゃない。
>>739 あぁなるほど。
文字列入れておけば、var_dump() とかの値見て混乱することもなさそうだね。
俺はとりあえずファイルつくって define('HOGEHOGE', '1'); define('HOGEGEGEGE', '2'); みたいにしてるなぁ。
SESSIONファイルのパーミッションをデフォで644にしたいのですがそんなオプションはないですか? 現在は生成にchmodでチェンジしてます。
大文字小文字の判別をしていないのか・・・今頃気付いた ml("./io"); function ML(){ echo"view"; }
関数・メソッドは大文字小文字を判別してない 変数はしてる
>>742 サーバプロセスのumaskを022にすればいいんじゃないの?
>>745 phpの質問をしているのに、OSの話なんか誰もしてないだろ?
トンチンカンな回答にも程がある。
750 :
742 :2008/03/11(火) 18:51:20 ID:???
データベース作る?
common.phpにネームスペース名を入れずにpage::commonとして読み込みたいのですが どうしたら良いのでしょう? $vi common.php class common{ } $vi index.php namespace page; require "./common.php"; class page extends common{ function main(){ } }
>>752 名前空間は実装はphp6からなので
気にしなくて良いですよ
結局、phpはJavaの後追いばっか。 エリート技術者が、phpに居ないわけだよ。
>>754 お前だってエリートじゃねーだろ。
javaだってc++の真似ばっかだろうが。
俺はこれでも東京大学理工学部出身だ。お前の学歴入ってみろ。
756 :
755 :2008/03/12(水) 00:08:33 ID:???
ごめんなさい。ネタです。
謙虚で泥臭い仕事もしてくれるのがPHPタンの可愛いところ。
そんなphpは、開発単価も謙虚です。 phpというだけ安く扱き使われている優秀なプログラマーって可哀想
759 :
nobodyさん :2008/03/12(水) 03:10:43 ID:MCrGmIFl
if (ereg("^[0-9][0-9]*[0-9]$",$to_name)){ ↑これどういう意味ですか?
>>759 冗長
if (ereg("^[0-9][0-9]*[0-9]$",$to_name)){
を、
if (ereg("^[0-9][0-9]*$",$to_name)){
としても同じ
761 :
nobodyさん :2008/03/12(水) 03:23:48 ID:MCrGmIFl
>>760 いじってるスクリプトがあるんですが
これで値が数字の場合はデータベースにその数字がないと
topページにリダイレクトされるようになってると思うのですが(多分)
数字以外だと処理されないので
アルファベットも追加するにはどう書けばよいですか?
漢字とか、たとえばヘブライ語とかハングルとかもあるし全部判別しないといけないんですかね?
自分でも言ってる意味があれですが
762 :
nobodyさん :2008/03/12(水) 03:27:30 ID:MCrGmIFl
すみません忘れてください 寝てないので・・
連想配列で下記の様に品目、色という構造だった場合に array{ [0]=>array{ [0]=>banana [1]=>yellow } [1]=>array{ [0]=>apple [1]=>red } } 色だけを別の配列に格納したいんだけど、やっぱforeachとかしなきゃだめ?
ループ使うのがいやなら全部手動でいれろ
766 :
nobodyさん :2008/03/12(水) 07:34:38 ID:az5ZSXBa
いきなり$a = $_POST['a'];とかかくとデバッグ画面でエラー出ますが これを回避するのってどうやって書けばいいんでしたっけ? if (isset($_POST['a'])) { $a = $_POST['a']; } みたいなかんじだったとおもうのですが、なんか微妙に違うようで
>>760 2つ以上の数字と1つ以上の数字は同じじゃないぞ、ニート!!!
768 :
nobodyさん :2008/03/12(水) 08:44:29 ID:CaFkVlTg
聞く前に拳法でurlencodeしてみたらどうなんだ
見るからにutf-8って容易に予想できるだろ
ああ
Webプログラム言語を勉強したいのですが、 Java、PHP、Perl、など、いろいろあって違いがわかりません。 スクリプト言語とかの違いはわかるのですが、 ”こういうページに向いてる”というようなのがあれば教えてください。
勉強するのが目的なら、周囲の友人に質問・相談できる言語が良いんじゃないの。 一つ覚えれば、他の言語覚えるのも難しくないし。 まぁ、マイナーな言語持ち出すヤツとは距離置いた方が良いけど。
一つ覚えれば〜って観点から見ると perlはおすすめしないな phpかjavaでいいんじゃねぇの
>773 マイナーな言語って例えばなに?日本ではpythonか?
rubyもかな
>>772 PHPかPerlでいいよ。
実際に作ってレンタルサーバで稼動させるんだろうし、
Javaが動くサーバは高額なので日曜プログラマ向けではない。
というわけで自分が使う環境で動くもので開発すればいい。
結局どういうページ作るにしても作り手次第でよくも悪くもなる。
778 :
はな :2008/03/12(水) 11:05:18 ID:DpVFawg8
すいません、教えてください。
ユーザーエージェントで
「■■以外は
http:// ▲▲に飛ばす」
を記述する際、エラーになってしまいます。
notとかカッコとかがダメなんでしょうか?
よろしくお願いします。
$ua = $_SERVER["HTTP_USER_AGENT"];
if(ereg((not"■■"),$ua)){
header("Location:
http:// ▲▲");
exit;
}
if(!ereg〜
お前ら脱線しすぎですよ
このスレは優しい人ばかりで大好きですが 最近はそうでもないです
>764 元の配列作る段階で array { "banana" => "yellow", "apple" => "red" }; みたいにしておけばいいのに
784 :
nobodyさん :2008/03/12(水) 13:47:02 ID:bPECnjgM
mb_split('[,./-+,./−+、。・ ]', $keyword); こんな感じでマルチバイトで区切れたよね なぜか mbregex compile err: empty range in char class とかエラーが出るんです。 何か使えない文字入っていますか?
785 :
784 :2008/03/12(水) 13:50:01 ID:bPECnjgM
ああ、普通に入ってた・・・ エスケープしてなかた、ごめんにょ
>>764 array_mapとかでやればいいんでね
787 :
778 はな :2008/03/12(水) 16:06:22 ID:DpVFawg8
すいません。 「ereg」 の逆みたいな書き方はありますか?
>>780 が目に入らないのだろうか
!は否定を意味する演算子
eregでマッチするのなら!eregにすればマッチしないという意味になる
基本すよ
こないだも@の意味を聞いてたヤツいたな。
すいませんちょっとお尋ねしますが、 ${sample} みたいな変数の書き方があるのを初めて知ったのですが、 これは $sample とはどう違うのでしょうか??
794 :
792 :2008/03/12(水) 17:17:51 ID:???
ありがとうございます!
xdebug を リクエストごとに(正確には特定の PHP ファイルだけ) ON/OFF したいときって、CGI モードを使って dl() を使う以外に、なにか方法ない? .htaccess か、ini_set() で何とかなるとよさげなんだけどなぁ。。。
796 :
nobodyさん :2008/03/12(水) 19:14:37 ID:W7u96JdG
現在割り当てられているドメインを代入するような関数はありますか? hogehoge.com - 割り当て - public_html(ディレクトリ) 例えば public_html に入っている test.php の内部に記述すると、 hogehoge.com を自動的に判断して、そこに代入される感じです。 現在共通パーツがあるのですが、置換速度が遅くなるほど 画像、文章、タグが入り込んでいて簡略化したいのですが。
>>796 んん?
つ$_SERVER['HTTP_HOST']
798 :
nobodyさん :2008/03/12(水) 19:33:14 ID:30ilS6/S
すいません質問です。 正規表現でURLからホストのみ抜き出したいんですが URLを抽出するサンプルしか検索にかからなくて困っております。 「ホスト抽出 正規表現 URL php」などで検索かけてみました。 なので自作関数を作ろうと思ってるのですがホスト名というのは 「//(スラッシュ)」が二回出たところから 「/(スラッシュ)」が三回目に出たところまで を抽出する考えで間違っていないのでしょうか? よろしくお願いします。
800 :
nobodyさん :2008/03/12(水) 19:43:06 ID:30ilS6/S
>>799 なるほど、このような関数があるのですね。
ありがとうございました。
>>797 thx!!
サーバ変数なるものがあったのか、、
802 :
nobodyさん :2008/03/12(水) 22:41:25 ID:frkhoFZA
phpのクラスの動作について教えて下さい。 クラスをnewしたままプログラムを終了しているのですが、 Javaみたいにオブジェクトを破棄する処理をしないといけないのでしょうか? メモリーに使わなくなったオブジェクトがどんどん溜まって メモリーの使用量がどんどん上がってことはありますか? 実は、時間が経過するについてメモリーの使用量が増えていき、 ある一定の使用量になると何もしていないのに勝手にapacheの再起動されます。 原因として考えられるのがこれくらしか思いつきません。 宜しくお願いします。
ない、放っておいて無問題。
804 :
nobodyさん :2008/03/13(木) 00:08:01 ID:r9ewSs4N
SSLでPOSTしたいのですが、 php_openssl.dll を有効にして fsock を使用するのと、 php_curl.dll を有効にして、cURL を使う方法、 どちらの方が良いのでしょうか?
カレンダー関数をphpizeでビルドすることはできますか?
>>802 内部では使用していないクラスやオブジェクトを、自動的に破棄してくれる機能はありますが
即時性はなく一定時間キャッシュされてしまいます
ですので、メモリーの節約や行儀的には明示的に開放しないといけません
複雑な処理でなければそのようなヘマはしないが 作り方次第では永遠に開放されない場合はある (保持されたままガンガン新しく作り続ける)
>>802 は、そもそもPHPの問題ではない気がするんだが?
> ある一定の使用量になると何もしていないのに勝手にapacheの再起動されます。
apacheが再起動するのか、
PHPがapacheに再起動させられるのか
日本語でおk?
apacheの設定といろんなモジュールとアプリによっては、
プログラムを終了しても、メモリーがどんどん増えるなんて現象
ありえるかもしれんが、普通はないんじゃない?
いろいろ使っていれば、まずそっちを疑うだろうし。
サーバーとかOSとかアプリの仕様とか、情報が足りなすぎ。
あとPHPでもJavaでもクラスをnewしたまま終了しても一般的には問題はない。
パフォーマンスに関係することもあるが、不具合的な現象が起こることはない。
そもそも PHPの一つのスレッドが長い間動いていると使用メモリが増大するのか、 何度も呼び出して実行していると使用メモリが増大するのかも良くわからん。 前者なら、メモリリークが発生する事があるのは自明。 後者なら環境変えても発生するのか知りたいところ。
>780 ありがとうございました! できました(^^) >788、>789 すいません、言われて気が付きました! ありがとうございました!
811 :
nobodyさん :2008/03/13(木) 01:52:09 ID:Kk2Hpxcb
>>808 こうゆう奴が平気でメモリリークするプログラム組むんだよな・・・
>>803 >>806-809 アドバイス色々とありがとうございます。
オブジェクトについては、プログラマムを終了した時点で、
破棄される又はいつでも破棄されるうる状態に遷移するんですね。
メモリー使用率を監視していると、時間の経過とともに増えていきます。
そして、一定の使用率(20%)を超えた位でapacheが再起動します。
その瞬間メモリー使用率が10%前後になります。そして又増えるのサイクルです。
となると、やはりphpが原因としか考えられない気がします。
セマフォ関係のphpのメモリ関数は使っていません。
OSもFreeBSD6.2Rの安定バージョンを使っています。
また、特定のスクリプトが長時間動いているということはありません。
開発環境はWindowsを使ってやっていますが、
ここでも不具合は出来ます。ある一定の時間がたつとDBへの接続エラー※が発生して、
そのときもapacheを手動で再起動しないとDB関係の処理は全て失敗します。
※接続エラーは、接続は出来るもののTBLからデータが取得できません。apache再起動でTBLへ接続可能です。
あれ、もしかしてもPDOかな?PDOを使い初めて少し立った位からそういう症状になったような。
構成をちょくちょく変えているので、どれが原因が検討が付かないです・・・
自分は使ったこと無いけど、コネクションプールとかは、メモリリークの原因になりうるかもね。
PHPでメモリ気にするようなプログラムなんて組まないだろ
時間の経過でメモリが溢れるPHPプログラムってどんなの? オブジェクトの扱い方が悪いんじゃない?
PHPがapache上で動いていて、そのプログラムが”終了”する以上 終了してもメモリリークしたりしたら、PHP言語で書いたコードに 問題があることは無いだろう。使用しているモジュールか apacheそのものに根本的な問題がある。 その問題を回避する為にPHP言語で書いたコードを修正することは あるだろうが、あくまで根本的な問題はPHP言語で書いたコードには無い。
PHPでメモリリーク起こしてシステムダウンなんて聞いたことないな
819 :
nobodyさん :2008/03/13(木) 11:28:34 ID:Kk2Hpxcb
PHPで"終了"しないものだってあるだろ。
singleton実現するためにmemcached入れたりとか。キャッシュ系だな。
>>813 はDBコネクションが切れてないだけのようだが。
820 :
795 :2008/03/13(木) 11:29:35 ID:???
>>795 ・・・誰かレスをくれるとうれしいな。。。
>>819 >>802 を読め。終了する と書いてあるだろ。
たしかに終了させない方法もあるが、
そういうことをしていれば、普通自分で気づくだろ?
そもそも環境すら書かずにメモリ云々してる時点でアウト、 php.iniのメモリ使用量が少ないんじゃねぇの? 4と5じゃ大違いだし。
再帰呼び出し辺りでミスってるんじゃねえ?
たとえ再帰呼び出しをミスっても、apacheが再起動することはないだろ?
>>820 デバッグ情報だけキャッチして別ファイルというかモニタリング用ページに吐き出せば?
再帰ループでメモリ食いつぶしてOS落としたことがあるのは俺だけのようだ
Apacheはメモリストレスに弱い
>>827 もしメモリ制限がかけられているPHPで、
再帰ループでメモリ食いつぶしてOS落としたのなら、
確かに、それはお前だけだろうなw
>>829 正直、落ちる理由がよくわからないが再帰を使わないようにすれば落ちなくなったw
ログを見た限りではswap領域が確保できないからhttpdを殺す!ってメッセージが残って
その後音信不通になっている
逆か メモリ制限かけてあるから、設定以上の領域が確保できなくて落ちた?
まともなコーディングならメモリリークするわけない、 phpとApacheの設定を怪しんだ方が正解だな。
834 :
795 :2008/03/13(木) 13:44:33 ID:???
>>823 >>826 いやなんか、特定の PHP だけ、xdebug が ON だと落ちるんよ。。。
835 :
nobodyさん :2008/03/13(木) 14:06:08 ID:+qmn4vHF
実は再起動してないって落ち? プロセスが消えるから再起動したと勘違いしてるとかw
837 :
813 :2008/03/13(木) 15:27:05 ID:OwBZy3+J
沢山のアドバイスを頂きまして、どうもありがとうございました。
バージョンは書き忘れてしました。すみません。5.2.5です。
>>822 さんへ
>>php.iniのメモリ使用量が少ないんじゃねぇの?
>>4と5じゃ大違いだし。
php.iniでメモリー使用量というのは、
memory_limit = 128M ; Maximum amount of memory a script may consume (128MB)
のことでしょうか?
とりあえず、これを上げてみて様子をみてみます。
>>814 さんへ
パフォーマンス向上のためコネクションプールを使っていますが、
メモリーに常住するといういみではこれも怪しいですね。
一回解除してみます。
>>836 apcheのログを見ると、リスタートしているログが残っていますし、
Apache Server Statusのrestar timeとも合致します。
MRTGでリソース監視していますが、httpdのプロセス数やCPUの使用率をみても、
強制再起動と因果関係がなさそうです。
>>819 さんへ
>singleton実現するためにmemcached入れたりとか。キャッシュ系だな。
phpにキャッシュする実装はしていないです。代わりに、MySQLのMEMORYテーブルを作って高速化はしています。
設定を変えて1日、2日様子を見て、またご報告させて頂きます。
障害の切り口がお陰で分かりました。どうもありがとうございました。
ログにリスタートする理由が書いてない? 実はlogrotateとか、MaxRequestsPerChildとかで殺されてるってことは無いの? 可能ならgdbをサーバプロセスにアタッチして監視するとかしたら?
839 :
nobodyさん :2008/03/13(木) 18:37:21 ID:9PIbKVj5
class Hoge { public function TEST() { } } これでpublic functionの部分で、 Parse error: syntax error, unexpected T_STRING, expecting T_FUNCTION とエラーが出てしまいます。 function TEST() { } にするとエラーはなくなりました・・・。 publicは使えないのでしょうか?
840 :
nobodyさん :2008/03/13(木) 18:39:06 ID:9PIbKVj5
ちなみに new Hoge(); でこのエラーが出ます・・・。
>>839 PHPのバージョンが4以下だったりしない?
public宣言とかが出来るのはPHP5からだった気がする。
842 :
nobodyさん :2008/03/13(木) 18:42:31 ID:9PIbKVj5
あー、環境忘れてました、すみません。 PHP 5.5.2 Apache 2.2 何かすごく初歩的なミスをしているような気がしなくもないですorz
PHP5.5?
>>843 訂正
ぐぐったらあるみたいだね。ごめん。
845 :
nobodyさん :2008/03/13(木) 18:46:24 ID:9PIbKVj5
ごめ、5.2.5
分からないなぁ。 publicとfunctionの間が全角スペースになってたとかない?
847 :
nobodyさん :2008/03/13(木) 18:50:59 ID:9PIbKVj5
ありがとうございます、そのとおりでしたorz 今後気をつけます・・・。 Eclipseって全角半角わかりづらいっすね
>>844 再訂正
β版でもあるのかと思ったけど、やっぱりないっぽい。
googleでヒットしたのはただのタイプミスか。orz
849 :
nobodyさん :2008/03/13(木) 19:33:19 ID:Mmit1vUp
アクセスランキングなどを貼ってあるブログにリファラスパムをして アクセスランキングをぐちゃぐちゃにする方法があるようですが、 あれってどういうことをやっているのか教えてもらえませんか
>>849 君が書いてる通りのことをすれば良いだけだと思うが
851 :
nobodyさん :2008/03/13(木) 19:39:22 ID:Mmit1vUp
>>850 すいません書き方が悪かったですね
リファラスパムそのものの方法を聞いているのです
852 :
nobodyさん :2008/03/13(木) 19:43:25 ID:Mmit1vUp
>>850 いま必死に調べてるのかな?
もう少しだけ待ってあげるからね
俺に質問を訂正させる手間かけさせたんだからきちっと答えろよ
無理なら許すけどさ
任意の深さの階層のXML文書を再帰的にぬるぽする方法は?
854 :
nobodyさん :2008/03/13(木) 19:53:59 ID:Mmit1vUp
855 :
nobodyさん :2008/03/13(木) 21:10:20 ID:Kk2Hpxcb
QuickFormにて手動でerrorsに追加するにはどうすればいいですか?
∩___∩ | ノ ヽ ! / ● ● | こいつすげぇアホ | ( _●_) ミ 彡、 |∪| / .\ / __ ヽノ / \ ...\ (___) / .│ ..│ │ │ / ヽ l..lUUU .U
∩___∩ | ノ ヽ ! / ● ● | ? | ( _●_) ミ 彡、 |∪| / .\ / __ ヽノ / \
たわしねこ見て餅つけ
860 :
nobodyさん :2008/03/13(木) 23:57:20 ID:KzoZRqtO
しつもんですがPHP6はIE7.0にたいおうしてますか?
861 :
nobodyさん :2008/03/14(金) 00:20:41 ID:CVUKE/w5
>>860 php6はIE6までしか対応していない。
IE7であればphp7が出るまで待つしかない。
862 :
nobodyさん :2008/03/14(金) 00:25:13 ID:TU1K9tdo
え、じゃあみんなIE7に対応したサイト作るときどうするの? なんかプラグインとか入れなきゃダメなの?
>>864 そのくらいのプラグインはみんな自作してるよ。
>>865 うわ、マジかよ…orz
IE7でも問題なく見れてたからこれでいいのかと思ってた・・・
ちょっとググってくる。ありがとう。
なんだこの展開は・・・笑
868 :
nobodyさん :2008/03/14(金) 01:34:38 ID:mBxJ6iKU
関数の引数に a-b-c という引数を渡したら $array['a']['b']['c']という値を返したいと思っています。 -をexplodeして一つ一つの要素に分解するまでは良いのですが、 渡される引数の数が決まっていません。よって a もあれば a-b-c-d もあります。 これをうまい具合に解決する方法はありませんでしょうか? わかりにくい文章ですみません。
IEのバージョンなんて関係ねぇ .netじゃないんだからw
へっ、おまいらが遊んでる間に再帰的ぬるぽを書き上げたぜw
>>868 $array['a']['b']['c']
これって3次元配列って意味?それとも
$array = array("a","b","c");
の事?
とりあえず3次元だった場合のあれ
function hoge($str, $delimiter = "-")
{
$ary = explode($delimiter, $str);
if (is_array($ary) == false)
{
return false;
}
$ret = array ();
$cnt = 0;
do
{
$ret = array(array_pop($ary) => $ret);
}
while (0 < count($ary));
return $ret;
}
>>868 これでどう?
$list = array(1,array(2,3,array(4,5)),6);
echo getValOf($list, '1-0').'<br/>'; // 2 が表示される
echo getValOf($list, '1-2-1').'<br/>'; // 5が表示される
function getValOf($list, $path) {
foreach(explode('-',$path) as $key) {
$list = $list[$key];
}
return $list;
}
>>868 >a-b-c
こんな変な引数渡すよりfunc_get_args使ってやったほうがいい
>>874 呼び出される側はそれで良いだろうけど、呼び出す側も可変に出来るの?
>>875 874ではないが
call_user_func_arrayってーのを使えばできる
第1に関数名、第2にパラメータの配列
まぁこんな事するなら普通に配列渡せって感じだし
こんな変な設計になるのは何かが間違ってるとしか思えんがw
>>876 ありがとう。
自分も、その通りだと思う。
テスト
879 :
868 :2008/03/14(金) 12:27:35 ID:mBxJ6iKU
将来的に第二引数に値を渡す仕様のため、func_*系の関数は使えませんでした。 また、第一引数にはarrayも渡せる仕様にしました。 オブジェクト的な配列にアクセスするために -> のような視覚的効果が欲しかったって言うだけです。 皆様有り難う御座いました。
880 :
nobodyさん :2008/03/14(金) 13:31:04 ID:DyyjdTiB
ABCDEFG 10010010 1にマッチする場所のアルファベットを取得したいんですが、 そんな感じの変数ってありませんでしたっけ・・・? 何か以前に近いことができたような・・・
意味がわからん
882 :
880 :2008/03/14(金) 13:37:21 ID:DyyjdTiB
ABCDEFG 10010010 ADFを出力
>>880 多分ない
var_dump(hoge("avc","010"));
function hoge($str1,$str2)
{
$ret = '';
foreach (str_split($str2) as $key => $value) {
if ($value != 1) {
continue;
}
$ret .= $str1[$key];
}
return $ret;
}
884 :
nobodyさん :2008/03/14(金) 13:55:28 ID:DyyjdTiB
おおー、わざわざ作ってくれてありがとー
そういうことか。 だったら、数字とアルファベットの桁数を揃えないと分かりずらいだろ。
0と1ならビット演算子使ったほうがスマートじゃね?
スレ違いかもしれませんけど 周りにエロい人がいないので ここでアドバイスを願います。 PHPのSESSIONIDを推測して同時にアクセスしている人に なりすますことは可能でしょうか?偶然を除いて。
CSRFとかセッション固定化攻撃とかって類か まぁ一応可能っちゃ可能かな?
890 :
nobodyさん :2008/03/14(金) 16:00:45 ID:drEqqpJQ
mod_deflateで圧縮するのとPHPの設定で圧縮するのどっちがいい?
>>891 sessionidの生成ロジックから、
同一ホスト同時アクセス時のユニーク性も証明できないって、
なんちゃって技術者か。
最近、この手のコンピューターの基礎理論や数学的な教養もない技術者が増えていて嘆かわしい。
業界人口が急速に増えると、人材の劣化が激しいことの証左だな。
数学的教養
>>892 だれがユニーク性の話をしているの?
予測の困難さの問題だと思うんだけど。
>>894 ユニーク性の証明から、予測の困難性を演繹的に証明できるだろ。
お前は、どういうアプローチで予測の困難性を証明しようとしているの?
よーするに、気にする必要も無い程非常に困難、でおk?
PHPのくだすれで今更言うことでもなくないか?
SessionIDの成りすまし簡単だぜ? ターゲットにしているユーザーのパソコンに外部から接続して、乗っ取りが成功すれば ブラウザが使用しているメモリ領域から情報を引き出せる それを元にすれば早いだろw
SessionIDを発行している鯖をハッキングした方が早くね?
>>901 私は捕まるのですね
捕まるぐらいなら死んだ方がマシです
さようなら
903 :
nobodyさん :2008/03/14(金) 18:10:01 ID:MYksIzGY
SSL使えば、クライアントが入れ替わってないか判別できるんだよね。 その場合でも、同じセッションID使われたら、特別な処理をしないかぎり、セッションハイジャックってできたりするの? とりあえず環境は Apache2.x + PHP5.x あたりと仮定して。
* * * うそです + n ∧_∧ n + (ヨ(* ´∀`)E) Y Y *
905 :
903 :2008/03/14(金) 18:12:09 ID:???
そもそも、SSLってクライアント側に証明書いれておかないと、クライアントの認証はしないんだっけ?
PHPのSessionIDが特別仕様というわけではなく、PerlやJAVAなどが使用している使い古された手法 そこは古いApache側のセキュリティホールを利用とかじゃなければ、PHPだからというのはないな
>>903 > セッションハイジャックってできたりするの?
分からん。SSLのレベルの定義されていないし、解読に掛かる時間も定義されていない、
解読に要するリソースの制約条件も定義されていない。
条件が全くといっていいほど定義されていないのに、答えられる訳がない。
>>889 > ターゲットにしているユーザーのパソコンに外部から接続して、乗っ取りが成功すれば
ネタですよね? もはやセッションIDの乗っ取りとは関係ない話。
909 :
903 :2008/03/14(金) 18:27:02 ID:???
>>906 Servletの場合、SSLじゃなくてIPアドレスチェックの話だけど、APサーバによっては途中でIPが変わると
セッションが切れた気がする。AirH"がユーザが気がつかないうちに接続しなおすものだから、突然ログアウト
してしまうという現象が発生した記憶がある。
だから、同じような話で、SSL使ってチェックしたりする設定がないかなぁという期待。
もしくはデフォルトでそうなっているとか。
どうなんだろ。
>>909 ipアドレスが変わるたびにセッションが切れていたら、docomoは全然だめだな
ドアに鍵をかけていても、その鍵を簡単に取れるところに おいていたら意味はない。 また、その鍵が机の鍵のようなちゃちい鍵だと余り意味は無い。 そういう問題外の状態は論外として取り扱わないとして ちゃんとした使い方をしていれば、他人のセッションIDを 推測することは不可能。
912 :
903 :2008/03/14(金) 18:37:31 ID:???
>>910 IPアドレスが変わったとき、Servletならばセッションが存続しないって話じゃないから。
そういう環境があったというだけで。だから、それは別問題。
俺は知らないけど、SSLの仕様を調べれば済む話じゃないの? 「〜なき気がする。どうなんだろう。」とか言ってても仕方ないと思うんだがww
>>908 他人のSessionIDが知りたいだけなら間違いではなかろう
セッションハイジャックをして何がしたいんだ?
>>913 そもそもSSLは関係ない話。
セッションIDとSSLは関係ない技術
916 :
nobodyさん :2008/03/14(金) 20:26:13 ID:6wdnTdIf
例えば、hoge.txtの読み書きをする場合、 ロック専用ファイルをflockでロックして、 hoge.txtの読み書きをする。 hoge.txtをflockでロックして、 hoge.txtの読み書きをする。 どっちが普通ですか?
917 :
nobodyさん :2008/03/14(金) 20:30:52 ID:XPDryAhR
htmlspecialchars_decodeについて質問です。 php5を使用してるのですが htmlspecialchars_decodeを1回目の使用の場合戻らなくて 2回かけると戻ることがあるのですが、これは何故なのでしょうか? よろしくお願いします。
918 :
917 :2008/03/14(金) 20:36:04 ID:XPDryAhR
っんだよ、よくソース見たら<とかになってんじゃねーか畜生 ありがとうだっつーの!
919 :
nobodyさん :2008/03/14(金) 20:36:37 ID:XPDryAhR
>>918 > ありがとうだっつーの!
どういたしまして。お役に立てて光栄です。
>>916 後者をfile_put_contentsでやるのがPHP5でのたしなみ
古いことが何か悪いことでもあるのだろうか?
PHP4はセキュリティアップデートのサポートから除外されたからやばいんじゃねえ? 今年中にPHP6出るらしいし、PHP5に乗り換えときなよ
php6にしないと、IE6で動かなくなるよ
927 :
nobodyさん :2008/03/15(土) 03:14:39 ID:zI+80wWb
もうIE6なんて使っているやついねーよ
うちは未だにIE2
おれっちはIE4
このスレ前はいい人たちばかりで、私も色々助けてもらったけど、 もうこのスレには変な人間ばかりしかいないのかな。
>>930 まだ謝礼を貰っていなかったな。
ほれ、ケツあげろケツ。
激しく既出なのかもしれませんが... スクリプトはEUC-JPで書いてます。 mb_internal_encodingもEUC-JPです。 htmlをはき出す時は、以下のようにしています。 header( "Content-type: text/html;charset=Shift_JIS" ); ob_start("mb_output_handler"); print $buf; ob_end_flush(); これで、EUC-JPをSJISに変換して出しています。 ところが、xhtmlの場合、ヘッダーを header( "Content-type: application/xhtml+xml;charset=Shift_JIS" ); とすると、文字コードが変換されません。 これはこういうものなんですか? なんか間違ってますか?
>>930 今度はお前が助ける番だ
しっかりやれよ
>>934 虫の脳って、言語を扱える程に発達してたっけ?
代わりに高性能なマイクロチップが入っているんだよ つまりこのスレにはザレムの住人がいる
>>932 正確なことは知らないんで違ってるかもしれんが、そもそもPHPって header で charset指定するだけで
文字コード変換したりするんだっけ?変換処理をするとすれば Apacheじゃなくて PHPだと思うんだけど、
それらしい記述がマニュアルからみつけられない。
対応としては、ob_get_contents して変換するのが定石じゃないかと思うけど。
フレームワーク作ってたらMVCではなくVCになったw やりなおそw
>>932 mb_http_output('SJIS');
とか利用してないのか?
941 :
937 :2008/03/15(土) 18:27:49 ID:???
>>940 ありがとう。こっちの方がシンプルだね。
確認なんだけど、
>header() により"Content-Type: text/*" を送信した場合には、テキストが送信されるとみなし、
>文字コード設定に 基づいて出力文字コード変換を行います。
ってのは、Content-Typeが text の場合は、mb_http_output の設定にしたがって変換するという意味ですよね。
Content-Type で charset 指定しても文字コード変換はされないと思ってるんだけど、それは合ってますか?
今回の
>>932 の件も、Content-Typeが text じゃないから、明示的な指定が必要ということか。
>>932 iniかhttpd.confか.htaccessで
output_handlerをmb_output_handlerにして
PHP内で
mb_http_output("SJIS");
と指定して
echo mb_convert_encoding($contents, "SJIS","EUC-JP");
参考書を読んでも$_GETと$_POSTの違いが理解できません。 $_GET データを送信する。 $_POST データを送信する。 ・・・。 どなたか簡単な例に例えて説明してくれませんでしょうか?
$_GET = URLの?以降 簡単に変更出来るが長さに制限がある $_POST = method=post になっている <form> から送信したデータ
945 :
943 :2008/03/15(土) 23:27:59 ID:WjD0JvRK
>>944 なるほど php?id=xxxxxxxxxxxxが $_GET なんですね
ありがとうございます
946 :
のぼdyさん :2008/03/15(土) 23:29:54 ID:J4XO1nny
すみません、皆様の考えを教えていただけると助かります。 よくコンボボックスで、下記のように「良い」は「1」、「悪い」は「2」というように 指定します。 <select name="evel"> <option value="1">良い</option> <option value="2">悪い</option> </select> その「1」と「2」の値を、データベースに保存しているのですが 下記の「良い」は「良い」のままデータベースに保存するのは何か弊害があるのでしょうか? <select name="evel"> <option value="良い">良い</option> <option value="悪い">悪い</option> </select> 文字化けして、ブラウザから送信されたときはバリデーションで弾けますし 欠点は、HDD容量を多めに必要とするぐらいだと思うのですが。
>>945 初心者っぽいけど、httpプロトコルを検索してみたらもうちょっと理解を深めれるかも。
余計にわからなくなる危険性もあるけど。
>>946 例えば表現を変えようとした時とか
あとは使用されるメモリ量とか(微々たる差だけど
バリデーションノしやすさとか
>>946 (例)項目名 kubun
1=良い
2=悪い
これをどう使うかの用途次第
DB登録→検索に使用すると想定するならその時のSQLは、
(a)select ・・・ from tbl where kubun=1;
(b)select ・・・ from tbl where kubun='良い';
もし kubun が増えた場合を考えると、範囲検索って場合も・・
(a)select ・・・ from tbl where kubun between 1 and 3;
(b)select ・・・ from tbl where う〜ん…どうしましょ?
PHPには関係ないが、そんな感じ
>>950 そのレベルでどうしましょとかおまえセンスないぞ
不便になるって言いたいだけだろ。
さすがに
>>950 のSQLも思いつかんヤツはいないかと^^;
いいんじゃない? optionのvalueを文字列にしてpostしたり、 項目の数だけカラム作ったりするのもWebアプリ学び始めの醍醐味というものさ。
>>940 932です。
おぉぉ、ありがとうございます。。。
すっきりししました。
955 :
nobodyさん :2008/03/16(日) 10:53:12 ID:9hRtdL6R
php.ini-distのdistって何の略ですか?
distance
$pageと$_GET[p]に関するところ全部
959 :
ららら :2008/03/16(日) 12:49:45 ID:6BeO6z+t
年月日が $y, $m, $d に入っているとき、 その次の日や前の日の年月日を取得するための 簡単な関数ってあるかな? mktime で日付を範囲外にしてもうまくいかなかった。 (たとえば mktime(0,0,0, 10, 1, 2007) で 2007/09/30 に なることを期待したけど、だめだった。)
960 :
ららら :2008/03/16(日) 12:50:27 ID:???
>>959 × たとえば mktime(0,0,0, 10, 1, 2007) で 2007/09/30 に
○ たとえば mktime(0,0,0, 10, 0, 2007) で 2007/09/30 に
こちらの環境では echo date("Y/m/d", mktime(0,0,0, 10, 0, 2007)); を出力したら 2007/09/30 になったが?
962 :
ららら :2008/03/16(日) 13:03:03 ID:???
えー?そーお? 別のところが間違っているのかなー。。。
963 :
ららら :2008/03/16(日) 13:04:23 ID:???
ほんまや、ちゃんとできた。 コードのミスやった。。。。
終わってたorz
967 :
ららら :2008/03/16(日) 14:55:55 ID:???
>>966 別のロジックとの絡みだから、説明しても役に立たないよ。。。
うん、それで?
969 :
nobodyさん :2008/03/16(日) 15:15:26 ID:5AI0UypY
>>2 の
1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
Shift_JISを使用しない方が良いのは何故ですか?
html、cssをよく標準でShift_JISを指定しているのですが、
アクセス解析や、部分的にphpスクリプトを埋め込んでいるのですが。
Google先生に聞くと幸せになれるよ
>>970 ぱっとみたがロジックが全く分離されてないカオスなスクリプトだな
簡単そうだし0から自分で書けばいい
973 :
946 :2008/03/16(日) 16:17:49 ID:g1Wku69A
CGI・PHPは問わないので一日に UP可能な容量が設定できるアップローダ探しています。 何方かご存知ありませんか?
>>974 そんなのphp.iniの制限値を設定すればいいだけだろ。
こいつニートじゃねーの?
>>976 1日の制限値なんてあったっけ?
ちょっと落ち着けw
転送量の話をしているのではないかと
>>957 書くのめんどいからほれ
因みに最初の何行かは削除してある
<?php
$page = isset ($_GET['p']) ? intval($_GET['p']) : 1; // 最初はページ1
if ($page > 1) {
$pager .= "<a href=" . $url . sPage($page -1) . "><<前の" . $perPage . "件</a> ";
}
if ($page <= $delta) {
$alpha = $delta - $page +1;
}
$links = $pager = '';
for ($i = $page - $delta;($i <= $page + $delta + $alpha) && ($i <= $totalPage); $i++) {
if ($i < 1) {
continue;
}
$preTag = "<a href='" . $url . sPage($i) . "'>";
$aftTag = "</a> | ";
if ($i == $page) {
$preTag = "<strong>";
$aftTag = "</strong> | ";
}
$links .= $preTag . $i . $aftTag;
}
$pager .= substr($links, 0, -2);
if ($page < $totalPage) {
$pager .= "<a href=" . $url . sPage($page +1) . ">次の" . $perPage . "件>></a> ";
}
echo $pager;
function sPage($page) {
return sprintf("%03d", $page);
}
>>969 文字コードがらみでふぁびょる奴が多いから
>>978 だったらお前が答えてみろ。何この上目線の生意気な奴。市ね
この上目線の生意気な奴 上目線・・・ 上目線・・・ 上目線・・・
/ニYニヽ /( ゚ )( ゚ )ヽ /::::⌒`´⌒::::\ でっていうwwwwwwww | ,-)___(-、| | l |-┬-| l | \ `ー'´ /
987 :
nobodyさん :2008/03/17(月) 10:05:40 ID:6BYisms4
Warning: Invalid argument supplied for foreach() これって「配列ではない」というエラーですよね? foreach($array as $key=>$value) { } これの直前でprint_r($array)をしてみたのですが、 Array ( [0] => 居酒屋 ) と配列になっています。 何が原因なのでしょうか・・・?
こっちの環境でやってみたが正しく実行できたよ。 エラーが再現するコード出してみたら?
989 :
nobodyさん :2008/03/17(月) 10:14:05 ID:6BYisms4
どうやら2週ほどあって、2週目がString型のようでした。 print_r($array); die; としていたため見逃していました。 原因追求してみます、ありがとうございました。
990 :
nobodyさん :2008/03/17(月) 10:23:29 ID:6BYisms4
メソッドがどこから呼び出されたか取得するとか不可能ですかね・・・? [class.php] class TEST { public function abc() { #呼び出されたスクリプトを返す。# echo "ABC"; } } [test.php] require_once 'class.php'; $obj = new TEST(); $obj->abc(); この場合、test.php on line 2を返す
debug_backtrace
993 :
nobodyさん :2008/03/17(月) 17:43:03 ID:Xuq5ifxr
.htaccessスレがないのでスマソだがこちらに。 phpのみアクセスできる.htaccessの記述ってあるのだろうか? 中の画像をセキュりたいんだがリファラ以外の指定方法ってあるますか? お願いします。
>>993 <Files ~ "\.jpg$">
deny from all
</Files>
じゃダメ?
前々からphpとperlとcでどれだけのパフォーマンスが違うのか、 よく分からなかったので、メジャーな処理20パターンで試してみた。 が、絶句した。なんで、ファイル処理がこんな実装になっているのかと・・・
は?ソースもなしで煽ってんじゃねーよ乞食
>>997 弱点を突かれたからって、ふぁびょってんじゃねーよwww
>997 涙目ワラ
>>997 自分の方こそソースだせないくせに、こいつは確実にニート
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。