トップページphp
1001コメント288KB

【PHP】下らねぇ質問はここに書き込みやがれ 47

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/05/26(土) 21:03:53ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 45
http://pc11.2ch.net/test/read.cgi/php/1177635762/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0402nobodyさん2007/06/15(金) 13:49:11ID:???
お前ら、酸素と水素と炭素と微量の元素で出来ている分際で、
偉そうなこと言っているんじゃねーぞ!
0403nobodyさん2007/06/15(金) 14:00:57ID:???
class math{
function test($way, $inc , $math){
$result = $way + $inc + $math;
return $result;
}
}

class word{
function word($string, $string2){
$result = $string.$string2;
return $result;
}
}

$calc = new math;
$result = $calc->test(1,2,3);

echo "math : ".$result; // 6

$word = new word;
$words = $word->word('men','bou');

echo "words : ".$words; // ERROR: MISSING ARGUMENTS

上のMathではエラーはでないのですが
下のWordクラスでは Missing Arguments 1 for word::word()とか出てくるんですが、どうしてですか?

PHP5.10です。
0404nobodyさん2007/06/15(金) 14:15:47ID:???
コンストラクたんになってるから
0405nobodyさん2007/06/15(金) 14:21:42ID:???
>>403
つ[ wordがコンストラクタなのに引数がないからどうしてもやりたいなら ]
class word{
function word($string="", $string2=""){
$result = $string.$string2;
return $result;
}
}
0406nobodyさん2007/06/15(金) 14:27:45ID:1n6QxpIg
すいませんユーザー定義関数について質問させてください

ユーザーがフォームより文字列を送信、$_POST['text']に文字列が入りました。
以下のコードで文字列を表示させたいのですが、

test();
function test() {
   echo $_POST['text'];
}


このままでも文字列を表示することができました
test($_POST['text']);
function test($srt){}とかみたいな書き方をしなくても入ったんですけどユーザー定義関数内に値を
わたす記述をしなくてもはいったんですけどなんでですかね?
0407nobodyさん2007/06/15(金) 14:28:13ID:???
修正
class word{
var $result;
function word($string="", $string2=""){
$this->result = $string.$string2;
}
function re(){
return $this->result;
}
}

$word = new word('men','bou');

echo "words : ".$word->re(); // ERROR: MISSING ARGUMENTS
0408nobodyさん2007/06/15(金) 14:28:46ID:???
>>406
$_POSTはスーパーグローバルな変数だから
0409nobodyさん2007/06/15(金) 14:31:04ID:???
>>406
つ[ ttp://search.net-newbie.com/php/reserved.variables.html ]
0410nobodyさん2007/06/15(金) 14:33:56ID:XHx+Mhrp
var_dump すると以下のようになっているオブジェクトから
["row:protected"]に入っている配列を連想配列として取り出したいです。
aggregate_infoや(環境がPHP5なので使えなかった)
get_object_varsでは取り出せなかったのですが、どうすれば良いのでしょうか。

object(Hoge)#14 (5) {
["pdo:protected"]=>
object(PDO)#2 (0) {
}
["table:protected"]=>
string(4) "hoge"
["row:protected"]=>
array(4) {
["id"]=>
string(6) "100000"
["test"]=>
string(4) "aaaa"
["number"]=>
string(2) "80"
["check"]=>
string(0) ""
}
["constraints:protected"]=>
array(1) { ["id"]=>string(6) "100000" }
["children:protected"]=>
array(0) {
}
}
こうしたい↓
$val =array(["id"] => "100000", ["test"] => "aaaa", ["number"] =>"80", ["check"] => "",);
0411nobodyさん2007/06/15(金) 14:48:28ID:???
fetch()とかfeachAll()とかPDOの結果セットを取得するメソッドがあるだろ
0412nobodyさん2007/06/15(金) 14:53:09ID:???
>>404 >>405
あっそうか。。PHP5はコンストラクタ関数があるから大丈夫なのかと思っていました。
PHP4ではコンストラクタはクラスと同じ名前にしてたんですね。互換性のためかな。
用例も見せてくれて有難う(´・ω・`) この場合 new word ですでに引数がなかったために
MissingArgumentエラーが出てたんですね。なるほど。しっかり理解できました!
0413nobodyさん2007/06/15(金) 16:10:58ID:???
phpで書かれたファイルをアップロードするプログラムを社内のグループで使っているのですが、
先輩から日本語のファイル名の表示が文字化けするのを修正するように言われました。

どうせ文字コードの問題だろうと簡単に考えていたのですが、
うまくいかなくて困っています。

状況ですが、日本語ファイル名.pdfというファイルをアップロードすると、
ファイル名が 楔譽侫.ぅ詭?.pdf と表示されてしまいます。
これの文字コードを mb_detect_encoding で調べると SJIS となっていましたので、
ページ内容の出力の文字コードと同じ EUC-JP になるよう mb_convert_encoding で変換してみたのですが、
ワク?ユ・。・、・?セ.pdf となり、文字化けを解消できません。
また、あ.pdfというファイルの場合は、
日本語の部分がすべてなくなり、.pdf というファイル名になってしまいます。

根拠はないのですが、phpに渡った時点で、すでにファイル名がおかしくなっているように思っています。
この現象の原因や解決策を教えていただけないでしょうか。

phpは php-5.2.1 を --enable-mbstring で make したもの、
apache は 2.2.4 です。
04144102007/06/15(金) 16:12:09ID:XHx+Mhrp
>>411
オブジェクトは$rowにもう入っていて
$row->fetchAll()とかしても、メソッドがありませんといわれるのです。
$row->idとかやればidの値は取れるのですが、カラム数が多かったりすると大変なので

04154132007/06/15(金) 16:13:11ID:kZwLm+ij
すみません、sageでIDが表示されていませんでした。
0416nobodyさん2007/06/15(金) 16:28:35ID:???
>>414
protectedだから他からはアクセスできないんでねーの?
publicにするかアクセスメソッド作れ。
0417nobodyさん2007/06/15(金) 16:28:42ID:???
>>413

必要最低限コードぐらいはのせましょう。
それともエスパーがくるまで待つことです
0418nobodyさん2007/06/15(金) 16:45:19ID:???
>>410
なんか数スレ前にも同じような質問があったな。
get_object_varsとかマニュアルのUser Contributed Notesに乗ってたような気がする
0419nobodyさん2007/06/15(金) 17:01:07ID:???
すみません教えてください。
キーボードについた精子を綺麗にふき取るような関数ってありますか?
04204102007/06/15(金) 17:08:35ID:XHx+Mhrp
>>418
get_object_varsのマニュアルのUser Contributed Notesの中にあった
obj2arrayを使って、取り出すことができました!ありがとうございます。

このやり方ってすごいですね…。
強引というか何というか。
0421nobodyさん2007/06/15(金) 17:09:29ID:???
水洗い+完全乾燥。
ディスプレイも庭に出して水でジャバジャバ洗って完全乾燥。
0422nobodyさん2007/06/15(金) 17:17:19ID:???
>>413
文字コードは両方ともEUC
先頭の3バイトが抜けるとそうなる
日本語ファイル名
C6 FC CB DC B8 EC A5 D5 A5 A1 A5 A4 A5 EB CC BE
楔譽侫.ぅ詭?
DC B8 EC A5 D5 A5 A1 A5 A4 A5 EB CC BE

なんで抜け落ちるのかは知らない
0423nobodyさん2007/06/15(金) 17:20:24ID:???
たまに公式マニュアルで出てくる
3fe0
とかの文字列ってなんなんだ?
0424nobodyさん2007/06/15(金) 17:22:36ID:???
>>420
取得の仕方間違ってるんじゃないか?
オブジェクトでしか見れない(しかもprotected)になってるなんて有得ない
http://jp2.php.net/manual/ja/ref.pdo.php
http://jp2.php.net/manual/ja/function.PDOStatement-fetch.php
もっかいPDOクラスの使い方ちゃんと見とき
0425nobodyさん2007/06/15(金) 17:31:30ID:???
ブラウザのサイズを取得する方法を教えてください
0426nobodyさん2007/06/15(金) 17:38:46ID:???
>>425
javascriptの話
うぇb制作ばんいけ
0427nobodyさん2007/06/15(金) 17:40:24ID:???
ばんじゃなくていただ
0428nobodyさん2007/06/15(金) 18:08:35ID:???
>>426
PHPの変数に値を取り込む方法をしりたいんですよ
0429nobodyさん2007/06/15(金) 18:26:37ID:???
PHPはサーバ側で動いてるんだぞ
0430nobodyさん2007/06/15(金) 18:43:48ID:???
最近は、PHPのブラウザ組み込みモジュールとかもあるから
一概には言えない
0431nobodyさん2007/06/15(金) 18:44:23ID:???
まじかよ
0432nobodyさん2007/06/15(金) 18:56:49ID:???
PoA(PHP on Ajax)だろ。かなり開発進んでるらしいし
0433虚弱PHP2007/06/15(金) 18:58:10ID:???
>>413
サーバーOSは?
Fedoraとかなら日本語はUTF-8じゃない?

変換すべき文字コードはページの文字コードとは無関係だと思う。
0434nobodyさん2007/06/15(金) 19:30:22ID:???
>>426
まずjsでブラウザサイズを取得したらサーバーに送信すりゃいいだろクズ
0435nobodyさん2007/06/15(金) 19:43:35ID:???
>>434
めんどいよ馬鹿無知
0436nobodyさん2007/06/15(金) 19:46:29ID:???
どこがめんどいんだろ
onloadかなんかでサイズとってhiddenにでも投げとけばいいだけじゃん
0437nobodyさん2007/06/15(金) 19:52:05ID:???
豚のくせにぶーぶーうるさいぞ
0438nobodyさん2007/06/15(金) 19:54:26ID:???
ぶーぶ
0439nobodyさん2007/06/15(金) 20:12:18ID:???
これは、酷い。
こういう一方的に自己主張だけして、混乱に陥れようとしているところは、
将に日本共産党員の典型。赤は死ね。
お前らは、国家の屑だ!!!
0440nobodyさん2007/06/15(金) 20:45:08ID:???
スレ違いがしね
0441nobodyさん2007/06/15(金) 20:57:12ID:FDraLFra
# バイナリファイルURL(テーブル・ディレクトリまでのパスです)
# (例)テーブル名に fuss を指定した場合に
# バイナリが、http://www.***.com/~user/fussbbs/fuss/bin/bin000.jpg の場合は
# $BinUrl = "http://www.***.com/~user/fussbbs/"; と指定します。
# テーブル・ディレクトリ(sample)以降は指定しません。
# → パスの最後は / で終わること
$BinUrl = "http://www.***.com/~user/fussbbs/";

↓ここをHPアドレスに書き換えるのですか
$BinUrl = "http://www.***.com/~user/fussbbs/";


 
0442nobodyさん2007/06/15(金) 21:04:49ID:FDraLFra
うまく画像が反映されません。。。。
投稿するとbinってディレクトリに画像が格納されてるんですが
HPには 画像は映ってません
$BinUrl = "HPアドレス/~bin/fussbbs/"; こんな風にしてるのですが
アドバイス宜しくお願いします
0443nobodyさん2007/06/15(金) 21:10:32ID:???
(゚д゚
0444nobodyさん2007/06/15(金) 21:29:50ID:???
何いってるか分からんな。
0445nobodyさん2007/06/15(金) 21:37:58ID:nxdNazxT
>>441
パスの指定が間違っているのだろう
普通のHTMLでイメージが表示されるか試してみろよ
0446nobodyさん2007/06/15(金) 21:39:02ID:FDraLFra
簡単に言えば 画像掲示板を作ったんだが 画像投稿しても
画像が Xで写らないので 教えてほしいです

サイトはここからDLしました。詳しい人教えて下さい。。。
 http://www.hero.ne.jp/~db/calmbbs.shtml
0447nobodyさん2007/06/15(金) 21:43:34ID:FDraLFra
http://www.hero.ne.jp/~db/fussbbs.shtml

レス式のこちらでした。
0448nobodyさん2007/06/15(金) 21:46:42ID:???
>>446
パスが間違っているんだろ
それじゃなきゃ、画像を入れているディレクトリがドキュメントルートの
下にないか
0449nobodyさん2007/06/15(金) 21:50:32ID:FDraLFra
public_htmlの 中に入ってるんで

パスの間違いですね>< すいません
0450nobodyさん2007/06/15(金) 21:52:50ID:FDraLFra
はじめて cgiいじってるんで 超初心者で 申し訳ございませんでした。
ありがとう ございます。
まだ 解決してないですけど いじってみます。
また わからなかったら ここに 書き込みますので
その時は 皆さん宜しくお願いします。
0451nobodyさん2007/06/15(金) 22:06:34ID:???
い 
    え

 ど                う
          い た                           し


          し
                           て
  。
0452nobodyさん2007/06/15(金) 22:15:42ID:???
>>451俺様自作のあぼ〜んフィルターにかかったなw
たぶん広告かAAなんだろうけど
0453nobodyさん2007/06/15(金) 22:27:29ID:FDraLFra
できましたーーー

ありがとうございましたーーーーーー


(● ̄(エ) ̄●)(● ̄(エ) ̄●)(● ̄(エ) ̄●)(● ̄(エ) ̄●)
0454nobodyさん2007/06/15(金) 22:27:37ID:???
一見の価値あり

ねーけど
0455nobodyさん2007/06/15(金) 22:46:24ID:???
>>413
>>422
どうすればいいのかは分からないけど、basename()で同じことが起きたことがある。
/のコードで…とも思ったが、そう言う訳でもない。
理由は分からない。

あとは詳しい人お願い。
0456nobodyさん2007/06/15(金) 23:01:15ID:???
>>451
IQサプリか
0457nobodyさん2007/06/15(金) 23:07:22ID:???
phpのエクステンションにphp_smtpってあるけどこれどんなもんなん?
phpだけでメール送信できたりする?
0458nobodyさん2007/06/15(金) 23:37:50ID:ZskjeWsl
mb_convert_encoding()の引数につかえる文字コードのリストって
どこかに載ってますか?
0459nobodyさん2007/06/16(土) 00:05:39ID:???
>>455
解決法じゃないけどこれ?
http://bugs.php.net/bug.php?id=37738
0460nobodyさん2007/06/16(土) 00:05:55ID:???
>>458
たくさんあるぞ
http://phpspot.net/php/man/php/ref.mbstring.html#mbstring.supported-encodings
0461nobodyさん2007/06/16(土) 00:10:24ID:MziDa52y
>>460
UTF-8ってないんですか?
0462nobodyさん2007/06/16(土) 00:21:46ID:???
>>461
そんな糞サイト参考にしちゃダメ
http://jp.php.net/manual/ja/ref.mbstring.php#mbstring.supported-encodings
0463nobodyさん2007/06/16(土) 00:23:00ID:MziDa52y
>>462
ありがとうございました。
これから見るべきマニュアルまでわかりました。どうもです。
0464nobodyさん2007/06/16(土) 04:40:06ID:???
>>413
まずその先輩を修正

>>457
これでも読んどけ
ttp://www.oreilly.co.jp/books/4873110289/
0465nobodyさん2007/06/16(土) 12:02:17ID:???
文字列から 英数字 ひらがな カタカナ 漢字 を残して、
それら以外の 記号('"!+*☆○等) 全てを削除する方法を教えてください。
0466nobodyさん2007/06/16(土) 12:20:45ID:???
>>465
一文字ずつ判定すればいいと思うよ。
04674652007/06/16(土) 19:49:57ID:???
>>466
初心者は黙ってろよ
0468nobodyさん2007/06/16(土) 20:37:41ID:???
ハイハイ ワロスワロス AA(ry
0469nobodyさん2007/06/16(土) 22:41:19ID:HvhIs2CL
PHP5でServletっぽくコーディングしているんですが変態ですか?
0470nobodyさん2007/06/17(日) 00:03:47ID:???
>>465
記号を置換して消せばいいじゃん
0471nobodyさん2007/06/17(日) 00:05:41ID:???
>>469
どんな風に?
0472nobodyさん2007/06/17(日) 01:15:20ID:???
>>465
一文字ずつ判定すればいいと思うよ。

define("DEFAULT_CHARSET","お前のキャラセット");
function mb_trim($str)
{
$result="";
for($i=0;$i<mb_strlen($str,DEFAULT_CHARSET);$i+=1){
$mbchar=mb_substr($str,$i,1,DEFAULT_CHARSET);
if(!in_array($mb_char,array("お前の消したい文字の配列")){
$result.=$mbchar;
}
}
return $result;
}
04734652007/06/17(日) 01:48:17ID:y9C1bGQM
もっとスマートな方法ありませんか?

$str = 'あ!井\"ウ#え$尾%カ&き\'区(ケ)こ=~\~|{`}*+_?\/.,><';
$array = array('!', '\"', '#', '$', '%', '&', '\\', '\'', '(', ')', '=', '~', '\~', '|', '{', '`', '}'
, '*', '\,', '+', '_', '?', '/', '.', ',', '>', '<');

foreach($array as $str_replace){
$str = str_replace($str_replace,"", $str);
}

echo $str;
0474nobodyさん2007/06/17(日) 02:55:40ID:???
一番スマートなのはそんな意味不明な仕様を根本から考え直すことだな
0475nobodyさん2007/06/17(日) 03:14:37ID:???
>>465
それでいいと思うよ
0476nobodyさん2007/06/17(日) 03:15:18ID:???
あ,>>473のコードについてね。
それが適してる
0477nobodyさん2007/06/17(日) 03:40:08ID:???
>>465の条件はどこいったんだよ
0478nobodyさん2007/06/17(日) 04:03:02ID:???
>>465

$str = 'あ!井\"ウ#え$尾%カ&き\'区(ケ)こ=~\~|{`}*+_?\/.,><';
echo preg_replace('/[^一-龠ぁ-んァ-ヴー]+/u', '', $str);

文字コードはUTF-8で。
0479nobodyさん2007/06/17(日) 04:04:32ID:???
あ、英数字もか。

echo preg_replace('/[^一-龠ぁ-んァ-ヴーa-zA-Z0-9a-zA-Z0-9]+/u', '', $str);

こうだね。
0480nobodyさん2007/06/17(日) 04:11:50ID:wSUjnky4
すいません、質問させてください。
メールフォームなんですけど送信する文字列にhtmlspecialcharsをかませるべきでしょうか?
HTMLメールでなければ必要ありませんよね?
0481nobodyさん2007/06/17(日) 04:13:20ID:???
HTMLメールだろうがテキストメールだろうが必要ないよ
0482nobodyさん2007/06/17(日) 06:59:43ID:???
なっぜ?
おれはいつもやってるぜ
0483nobodyさん2007/06/17(日) 11:09:52ID:???
なぜやってるんだ?
0484nobodyさん2007/06/17(日) 11:36:58ID:???
xxs対策じゃないの?
0485nobodyさん2007/06/17(日) 11:43:30ID:???
必要なとき必要なだけしろよ
じゃないとひろみちゅに怒られるぞ
0486ひろみつ2007/06/17(日) 12:30:13ID:HuxhPGRr
必要なときってのは、フォームでテキストを受け取るとき
全部だ。
0487nobodyさん2007/06/17(日) 12:37:51ID:???
>>486
だまってろ
0488ひろみつ2007/06/17(日) 12:40:42ID:???
>>487
うるせえ。おまえこそ、だまってろ。
0489nobodyさん2007/06/17(日) 12:45:54ID:???
これは、酷い。
こういう一方的に自己主張だけして、混乱に陥れようとしているところは、
将に共産党員の典型。赤は死ね。
お前らは、国家の屑だ!!!

次の選挙で、どこの党に票を投じるべきか、もう分かるよね。
0490nobodyさん2007/06/17(日) 14:13:33ID:???
あぶない文字列がmail関数のところで変な動作したら穴にならないか?
だからやるべきじゃねえのか?あ??
0491nobodyさん2007/06/17(日) 14:31:36ID:???
mail関数のところはデータをそのまま扱うだけだから大丈夫でしょ。
不特定なユーザから入力されたデータをHTMLメール上に乗せるなら
htmlspecialcharsするべき。scriptタグは動かないけど表示が崩れるおそれがあるので。
0492nobodyさん2007/06/17(日) 15:48:44ID:/YxgTj0k
普通の掲示板作るときにはどんな風に安全に気を配れば良いですか?
とりあえずhtmlspecialcharsを使うくらいですが、なにかこれだけはしておけってのあります?


ちなみに記事はデータベースに保存します
0493nobodyさん2007/06/17(日) 16:10:40ID:???
'


これについての対策
0494nobodyさん2007/06/17(日) 17:35:37ID:???
ログイン認証があるページで、
HTMLのソース中に、一部PHPの変数がミスで漏れているサイトがあるのですが、
セキュリティ的に何か問題ありますか?
漏れているのはform actionで指定したアドレスを変数にいれたものと、
ドメイン名を変数に入れたものと、
そのドメイン名の変数後に$smarty.server.PHP_SELFという記述があります。
0495nobodyさん2007/06/17(日) 18:25:43ID:???
問題があるにきまってるだろ、そんなサイト
0496nobodyさん2007/06/17(日) 19:53:30ID:???
>>495
PHPは詳しくないのでどの変が問題か具体的に教えていただきたいのですが、
とりあえずそこをなおしてもらえないとログインできないので、
ログインできないとだけ報告したいと思います。
0497nobodyさん2007/06/17(日) 20:03:09ID:???
>>496
>>1
0498nobodyさん2007/06/17(日) 20:13:42ID:???
この手の質問はageたとこで誰も答えないだろ
0499nobodyさん2007/06/17(日) 20:19:50ID:???
ageるんじゃねーだろ
ID出すんだよ、死ね

答える以前にお前は質問する権利がないんだよ
0500nobodyさん2007/06/17(日) 22:21:46ID:???
>>499
|-`).。oO(うざ…)
知らないやつは黙ってろ
0501nobodyさん2007/06/17(日) 22:31:04ID:???
htmlspecialchars(笑
使ったことねーよ
■ このスレッドは過去ログ倉庫に格納されています