トップページ⇒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カテゴリ)の各スレで
0685nobodyさん2007/06/21(木) 11:26:10ID:???
根本的にもっとググろう
0686nobodyさん2007/06/21(木) 11:36:19ID:???
>>684
講座サイトは1ページ程度のがあるんだろ?
その気になれば何でも作れる
メリットは花王の商品!サンプルは薬局で!!
0687nobodyさん2007/06/21(木) 11:49:24ID:???
>>684
散々既出だが、Javaで勉強して下さい。
PHPがある程度理解できてれば、
OOPの基礎程度ならJavaのソースも理解できるはず。
0688nobodyさん2007/06/21(木) 12:08:50ID:???
>>687
むぅ…そうですか…

手続き型とOOPで、こういう便利差が出て来るんだよ
っていう例を見たことがないんですよね
書き方はわかっても、漠然とした設計しかできないんです。
0689nobodyさん2007/06/21(木) 12:12:53ID:???
>>688
>手続き型とOOPで、こういう便利差が出て来るんだよ
っていう例は、C++の本読めばいくらでも出てくる。
0690nobodyさん2007/06/21(木) 12:14:27ID:???
本当の基本はCかを学ぶことです
0691nobodyさん2007/06/21(木) 12:19:32ID:???
>>680
$a = 0.1;
echo $a;
0692nobodyさん2007/06/21(木) 12:58:34ID:???
>>680
.1と表示させる方が難しいと思う
0693nobodyさん2007/06/21(木) 14:41:37ID:???
もちろんsprintfには%fをつけて表示させようとしてるんだろうな?
0694nobodyさん2007/06/21(木) 15:21:35ID:???
自称上級者が多いのもゆとりか
0695nobodyさん2007/06/21(木) 16:14:44ID:???
>>694

>>683
0696nobodyさん2007/06/21(木) 16:15:29ID:???
>>677
APIの仕様が変わると使えなくなるけど

echo $xml->result[0]->parameter[1];

でできるみたい。
var_dump($xml->result[0]->parameter);
をやってもparameter[0]以降が出力されないのはなぜ・・・?
0697nobodyさん2007/06/21(木) 16:45:59ID:???
>>696
var_export は?
0698nobodyさん2007/06/21(木) 17:05:35ID:MWxUMnTb
>>696
おお!!すばらしいです!
ありがとうございます!
0699nobodyさん2007/06/21(木) 17:32:08ID:aLnDUqVp
ホントに下らなさすぎてすみません。
”やっちゃった。http://test.com/test/1304890です。”

上記文字のURLの部分だけ抽出して変数に格納する関数ってありますか?
できれば文章中にURLが複数でてきた場合最初のだけ抽出したいのですが。
下らなすぎてすみませんが一応ググってもereg系統でちょっと似た処理が
なかったもので。よろしくお願いします。
0700nobodyさん2007/06/21(木) 17:43:36ID:???
正規表現でかすめ取れ
0701nobodyさん2007/06/21(木) 17:44:42ID:???
んなもん腐るほどあるだろ
07026992007/06/21(木) 17:52:35ID:aLnDUqVp
>>70
正規表現のereg_replaceは良く使ってるのでがあれは置換ですので。
バカほど簡単なことなのですがどの関数名だけでも教えてもらえないでしょうか?
後はググりますのでよろしくお願いします。
0703nobodyさん2007/06/21(木) 17:59:14ID:???
んなもんereg_replaceをマニュアルでひけば関連の関数から見つかるだろ。

ereg系はマッチするか調べるだけなら単にereg
0704nobodyさん2007/06/21(木) 18:05:25ID:???
strposとsubstrを組み合わせるという手もある
0705nobodyさん2007/06/21(木) 18:11:38ID:???
eregはキャプチャ出来ないのかと思ってマニュアル見直したけど
普通に出来るじゃん
0706nobodyさん2007/06/21(木) 18:16:00ID:???
preg_matchでおk
0707nobodyさん2007/06/21(木) 18:21:53ID:GueGRCMc
mixiとかのログインページで次回から入力を省略ってやつありますよね。
あれってどうやってるのかな。
CookieにIDとパスワード保存するのはまずいからなぁ。。。
0708nobodyさん2007/06/21(木) 18:24:56ID:???
>>707
セッションを張るか引きずり回すか
0709nobodyさん2007/06/21(木) 18:33:00ID:???
引きずり回しちゃらめええええええええええええええっっ
0710nobodyさん2007/06/21(木) 18:34:30ID:???
>>709
一度、認証したら関連のあるキーを発行して引きずれば良いじゃな〜い
0711nobodyさん2007/06/21(木) 18:34:54ID:Nvm2On4V
質問です。。
入力フォームに書いた文章を、メールアドレスを指定した
送信ボタンを押してメールで受信したいんですが、
一つのアドレスじゃなくて、二つのアドレスに同じ文章を受信させたいんですが
そういった場合どういう書き方をしたらいいのでしょうか??
0712nobodyさん2007/06/21(木) 18:35:01ID:???
mixi入ってないから知らないけど、
普通にCookie使ってるんじゃないの?
0713nobodyさん2007/06/21(木) 18:40:50ID:???
セッションだよ
0714nobodyさん2007/06/21(木) 18:42:32ID:???
>>711
2つのメールアドレスに送信すればいい。
メールアドレスをデリミタで区切って配列にいれてforでまわす。
0715nobodyさん2007/06/21(木) 18:46:15ID:???
そのセッションが入っているのがクッキーだけどね
0716虚弱PHP2007/06/21(木) 18:52:27ID:???
>>707
mixiの内部実装はしらんけど、
自動ログイン用のクッキーを用意して、
次回アクセス時にそのクッキーが有効なら
そのクッキーを認証代わりにして、認証なしでログインさせる
ってのが普通の方法かな。
0717nobodyさん2007/06/21(木) 19:20:02ID:???
つまりパスワードとかは保持してないってことっすかね
0718nobodyさん2007/06/21(木) 19:23:39ID:???
IDパスをこねくり回してできた可逆値をcokkieにもたせれば良いでしょ
0719nobodyさん2007/06/21(木) 19:23:48ID:???
そうっす
0720nobodyさん2007/06/21(木) 19:24:22ID:???
cokkieて…
0721nobodyさん2007/06/21(木) 19:25:10ID:???
>>718
そんなことするならPHPのセッション機能使ってるのと然程代わりないんだから
セッション機能つかったほうがいいでしょ。
0722nobodyさん2007/06/21(木) 19:26:42ID:???
>>718
どんな方法であれデコードできるのは危険なんじゃ・・・
0723nobodyさん2007/06/21(木) 19:28:15ID:???
可逆とか論外だろ
0724nobodyさん2007/06/21(木) 19:37:25ID:???
こんにちは!こんにちは!
0725nobodyさん2007/06/21(木) 20:13:18ID:???
公開鍵で暗号化したIDをcookieにもち、サーバの秘密鍵で復号。
07267212007/06/21(木) 20:22:18ID:???
うわ、よく見たか可逆だったか^^;
0727nobodyさん2007/06/21(木) 23:09:57ID:ycnzE7QZ
>>654です。
あれから色々やってみたのですがCSSを読み込んで
くれません 
申し訳ありませんがもう一度ご教授いただけないでしょうか
・ DW・FFFTPでアップしたのですが駄目でした。
・ .phpで保存
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<link rel="stylesheet" href="○○.css" type="text/css">
</head>
よろしくお願い致します。
0728nobodyさん2007/06/21(木) 23:19:19ID:???
>>727
そのPHPファイルをどこにおいていある
CSSファイルはどこにおいてある
0729nobodyさん2007/06/21(木) 23:29:18ID:ycnzE7QZ
>>728
レス有難うございます。
PHPファイル・CSSは同一ファイルに入っています。
0730nobodyさん2007/06/21(木) 23:32:37ID:???
CSSのパスは正しいか?CSSの記述は正しいか?ちゃんと確認汁。

<link rel="stylesheet" href="○○.css" type="text/css">をブラウザが解釈して
取りに行くんだから.phpかどうかってのは無関係なんだよ。
0731nobodyさん2007/06/21(木) 23:43:25ID:???
単純にcgi-bin以下においているだけでは?
寝る!
0732nobodyさん2007/06/21(木) 23:45:54ID:???
> <link rel="stylesheet" href="○○.css" type="text/css">
> PHPファイル・CSSは同一ファイルに入っています。

どっちなんだよ
どうしたいんだよ
0733nobodyさん2007/06/21(木) 23:50:56ID:???
>>727
書かれたコード*だけ*のファイルを .php で保存しても○○.cssが適用されてるかどうかは
わからんだろとか、○○.cssがマルチバイトのファイル名で面倒なことになってねーかとか
PHPと関係なさそうな話に見えるよ。
0734nobodyさん2007/06/21(木) 23:51:09ID:???
phpとは全く関係ない気がするのだが。
外部cssが読めないということはhtml側の問題。
パスがおかしいかcssの書き方がおかしいとか。
その様子じゃphp側でエラーはおきていないんだろうしな。
0735nobodyさん2007/06/22(金) 00:21:40ID:???
>>729
同一ファイル内に記述してるのに、どうして外部css読み込みのタグを使うのよ
0736nobodyさん2007/06/22(金) 00:29:54ID:???
同一フォルダの間違いじゃね?
ていうかPHPどころかHTMLの基礎を理解してないんじゃないかな・・・
0737nobodyさん2007/06/22(金) 00:30:47ID:???
>>727
なんで、一つづつ確認しない。

ステップ1)
PHPで生成されたページをブラウザ上から右クリック→ソースの表示

ステップ2)
表示されたソース内の <link rel="stylesheet" href="○○.css" の 「○○.css」 部分を、メモ帳にコピー

ステップ3)
今開いているURL のアドレス(http://www.example.com/hoge/fuga.php の http://www.example.com/hoge/ と 2)のコピーしたパスを連結して
http://www.example.com/hoge/○○.css を作り、このURLでCSSファイルがブラウザ上で直接開けるか確認

ちなみに ○○.css 部分が 実はフルパスになっているなら、 ステップ3の連結作業はいらない

ステップ3で、どうせCSSファイル読み込めないでしょ。→ PHP 関係ねーよ。


つうか、
FireBugとか IE developerToolbar とか使えばすぐわかるだろうに。
07387372007/06/22(金) 00:42:31ID:???
あと、これも定番だが
ブラウザ側のキャッシュのせいということもあり得る。
キャッシュをクリアして、ブラウザ再起動して、つないだら、最新のスタイルシートが有効になるとかね。
0739nobodyさん2007/06/22(金) 01:01:01ID:0bmUXnFC?2BP(341)
<html>
<head>
<title>PHP</title>
</head>

<body>
<?
i = 0;
do{
echo"ここは一回は通ります\n";
}
while($i<10){
echo"$iは現在$iです。<br>\n";
i++;
}
?>
</body>
</html>

なんでシンタックスエラーがでるんでしょうか?
0740nobodyさん2007/06/22(金) 01:04:59ID:???
>>739
do-whileとwhileがくっついてるから。
http://www.php.net/manual/ja/control-structures.do.while.php
0741nobodyさん2007/06/22(金) 02:50:12ID:Fy74ujcr
空行が含まれた文章をポストしたときに

・空行を<br />に置き換えて出力する
・あるいは空行また行頭・行末に囲まれた文章を<p></p>で囲う
ex)<p>空行が含まれた〜したときに</p><p・空行を<br/>に〜で囲う</p><p>のように〜ください</p>

のように処理したいのですがどうすれば良いのでしょうか?
ご教示ください
0742nobodyさん2007/06/22(金) 03:45:23ID:Ujvjt0/r
nl2br($_POST);
0743nobodyさん2007/06/22(金) 06:11:33ID:???
>>741
要するにこういうこと?

$str = preg_replace(array("/[\n]{2,}/", "/[\n]/"), array("</p><p>", "<br />"), $str);
$str = "<p>$str</p>";
0744nobodyさん2007/06/22(金) 07:22:22ID:???
>>739
エラーを出すPHPの気持ちがよくわかるよ
0745nobodyさん2007/06/22(金) 07:49:57ID:???
>>741
つうか少しは自分で考えてコード書けといいたい。少なくとも正規表現で出来そうとは思わないのか?
0746nobodyさん2007/06/22(金) 08:10:51ID:BcpgaIwJ
function checkVar($var)
{
if($varの値が不正){return false;}
else{return $varの値をこねくり回した値;}
}
というメソッドを作った後、

function setVar{
if($this->checkVar($var)){
$this->vars[]=$this->checkVar($var);
}
}
のように書くのと、
function setVar{
$result=$this->checkVar($var);
if($result){
$this->vars[]=$result;
}
}
のように書いた場合で、checkVarが実行される回数って異なりますか?
0747nobodyさん2007/06/22(金) 08:21:15ID:???
>>7742
せんんせい、空行をうまく認識してくれません(linuxなら良いのでしょうか?)

>>743
なるほど!すごいです!
それをいベースにろいろ応用してみます!!

>>745
正規表現苦手なんです。。。
07487462007/06/22(金) 08:24:24ID:BcpgaIwJ
すんませんsetVarの引数書いてなかったけど
setVar($var){}です。
0749nobodyさん2007/06/22(金) 08:34:16ID:???
違うのあたりまえ。
07507462007/06/22(金) 09:24:28ID:BcpgaIwJ
ありがとうございます。
別の質問なのですが、

parent::method();
とやって呼び出せるのは静的メソッドだけですよね。
function method($value)
{
$value=trim($value);//子クラス特有の何らかの処理
parent::method($value);//親クラスの同名メソッド(動的)を呼び出す(ただし下のは静的メソッド)
}
このような例で動的メソッドを何としても呼び出したいときはどうすればよいですか?

ちなみに、テンプレートメソッドパターンで
function method($value)//親クラスのメソッド
{
$value=$this->premethod($value);//ここのメソッドは子クラスのもの
return strtolower($value);//何らかの処理
}

function premethod($value)//子クラスのメソッド
{
return trim($value);//子クラスの処理
}
という風にする、っていうのは今実装できない、ということにしてください。
0751nobodyさん2007/06/22(金) 09:54:27ID:???
自分のオナラの臭いを吸ってエクスタシーを日々感じている、
エクスタシー王子こと尾奈良崇夫です。
宜しく!!
0752nobodyさん2007/06/22(金) 10:03:19ID:???
くさっ
0753nobodyさん2007/06/22(金) 10:14:39ID:???
CSV出力したファイルのダウンロード先を
ユーザーが指定する形にしたいんだけど、
どうしたらいいですか?

CSV出力までは出来たけど、CSVファイルの保存先がソースと同じフォルダになっちょる!
0754nobodyさん2007/06/22(金) 10:21:50ID:???
マニュアル読め
0755nobodyさん2007/06/22(金) 10:36:24ID:54Cz/LMH
>>707のものですけど、
IDとパスワードをそれぞれMD5で暗号化して、それを連結させたものをまたMD5して、
そのあと、後ろにユーザーのID(主キー)をくっつけたものをクッキーに保存。

で、次きたときクッキーを見て、値があればとってきて、33ビット目からの数字を取り出して、
その数字を主キーでDBから検索。
DBから出てきたユーザのID/パスワードを上記のクッキーに保存した方法で暗号化する。
その値と、クッキーの値を比べて、同じならログインさせる。

こういう方法考えたんですけど、何かセキュリティ的に問題点とかあります?
0756nobodyさん2007/06/22(金) 10:38:12ID:???
>>750
さっきの質問もそうだけど、何が知りたいのか不明。言葉の意味をわからず使ってる感じもある。
意味があるか知らんけど
class child extends parent{
function method($value)
{
$value=trim($value);
$parent = new parent;
$parent->method($value);
}
}
$rtn = new child;
$rtn->method('foo');
で出来るだろ。
デザパタ用語使う前に、インスタンスとstaticの関係を少し勉強したほうがいいよ。
0757nobodyさん2007/06/22(金) 10:46:33ID:???
クラスの概念がなかなか理解できません
$this->←を見ると逃げ腰になってしまいます
どうすれば良いでしょうか?
0758nobodyさん2007/06/22(金) 10:48:40ID:???
>>755
(ビットじゃなくてバイトね)
ユーザID=主キーってのが気になる。
自分ならクッキー用キーを別途発行して、それをIDと一緒に別テーブルに入れたいけど。
(認証期間切れとかにも対応できるし)
0759nobodyさん2007/06/22(金) 10:54:21ID:???
>>757
何となく気持ち分かるww
0760虚弱PHP2007/06/22(金) 10:55:07ID:???
>>755
そんなに問題はないと思うけど
ハッシュにID/PASSWORDを使う必要ないんじゃない?
その方法だと固定文字列になると思うので
ほんのちょっとだけリスクが上がる。
↓こんな感じでいいんじゃないかな?
http://blog.ohgaki.net/index.php/yohgaki/2006/05/12/espcs_if_a_fa_ia_a_pa_e_oa_a_sa_da_ca_sa

さらに認証を強くしたいなら、UAをとるとか。
(ブラウザバージョンUPするとオートログイン切れるかもしれないから注意)。

ハッシュもMD5よりSHA1とかSHA512を使った方が良いよ。

それから、基本的にオートログイン自体がセキュリティリスクだってことは忘れちゃだめ。
0761nobodyさん2007/06/22(金) 10:57:29ID:???
クッキーには適当に長めのランダムなセッションキーだけ入ってりゃ十分。
あとの情報は鯖側でセッション情報としてもっとけ。

外に情報ださなければ破られる心配もない。
0762nobodyさん2007/06/22(金) 11:00:16ID:???
>759
(*´・ω・)(・ω・`*)ネー

じゃなくて!
どなたか突破口を教えて頂けませんか?よろしくご教示ください
0763nobodyさん2007/06/22(金) 11:08:33ID:???
各クラスのコンストラクターに
$好きな名前 = & $this;
って一行書いておけば$this->を見なくて済む。
いつでも
$好きな名前->
でオブジェクトにアクセスできるよ。
07647552007/06/22(金) 11:14:41ID:54Cz/LMH
>>760
・新しくDBテーブル追加しない
・入力フォームにID/パスワードを初期値としていれる

この2つの要件満たすためには、ハッシュにID/パスワード使う必要があるんですよね。。
上記2つを満たすような方法、>>755以外でありますかね?
07657512007/06/22(金) 11:19:30ID:???
>>762
クラスを理解する突破口は、まず自分のオナラの臭いを吸ってエクスタシーを感じること。
その後に、必ず何か見えてくるはずだよ。
0766nobodyさん2007/06/22(金) 11:21:16ID:???
くだらん。そうならそうと、最初からそういえよ。
「この2つの要件を満たす」という前提で、そういうお遊びオートログインを作ろうとしている貴方の頭が
セキュリティ上の問題だよ。あとは勝手にしなさい。
0767nobodyさん2007/06/22(金) 11:24:27ID:???
>>763
ありがとうございます
でも、$this->同様に複合演算子もむりぽ・・・

>>765
やはり実家の家業を継ぐべきでしょうか?
0768nobodyさん2007/06/22(金) 11:34:43ID:54Cz/LMH
>>766
すいません、お遊びオートログインなんです。
でも、オナラの臭いを吸ってエクスタシーを感じて落ち着いて。
ここはくだらねぇ質問する場所です。
お付き合いください。
0769nobodyさん2007/06/22(金) 11:54:49ID:???
くだらねぇ質問をする場であって、くだらねぇ奴が質問する場ではない件
0770nobodyさん2007/06/22(金) 11:59:41ID:???
>>769
まぁまぁ、君もまず自分のオナラの臭いを吸ってエクスタシーを感じてみなよ。
その後に、必ず何か見えてくるはずだよ。
0771nobodyさん2007/06/22(金) 12:00:53ID:???
つまんね
0772nobodyさん2007/06/22(金) 12:01:57ID:J7y8syt9
フォームからリクエストが何で(GETかPOSTか)行われたかを知る
にはどうしたらいいのでしょうか?
0773nobodyさん2007/06/22(金) 12:06:01ID:???
if($_GET) echo "GET";
if($_POST) echo "POST";
0774nobodyさん2007/06/22(金) 12:10:31ID:???
>>762
thisって自分自身、クラス云々考えずにjavascriptの this.valueと同じだぐらいに軽く考えれば?
0775nobodyさん2007/06/22(金) 12:10:51ID:???
$_SERVER['REQUEST_METHOD']
0776nobodyさん2007/06/22(金) 12:12:34ID:???
>>770
あんまセクハラ的な発言をくりかえしてんじゃねえよジジイ。
見てて不快だからとっとと消えろハゲ。
0777nobodyさん2007/06/22(金) 12:16:15ID:???
>>763
コンストラクタに書いても変数スコープ違うからメソッド内で使えないだろうが
0778nobodyさん2007/06/22(金) 12:16:30ID:???
>>772
$_SERVER["REQUEST_METHOD"]
0779nobodyさん2007/06/22(金) 12:23:32ID:J7y8syt9
>>773 >>775 >>778
ありがとうございます

>>773さんのもいいのですが
今回は>>775さんと>>778さんの方がシステム条件に合うので
そちらを採用させてもらいます
0780nobodyさん2007/06/22(金) 12:23:33ID:???
>>776
> あんまセクハラ的な発言をくりかえしてんじゃねえよジジイ。
セクハラ「的」じゃないでしょ!!立派なセクハラでしょ。
的って何?バカじゃないの?
0781nobodyさん2007/06/22(金) 12:29:52ID:???
スレ違いバカはお前だ消えろ
0782nobodyさん2007/06/22(金) 12:34:58ID:54Cz/LMH
いっとくがおなら発言の発生源は俺じゃないからな。
0783虚弱PHP2007/06/22(金) 13:09:56ID:???
>>764
2番目の要件が良くわからないけど、
なんでそんな制限かけてるの?
そっちの方が気になるなぁ。
0784虚弱PHP2007/06/22(金) 13:11:29ID:???
あ、ごめん。日本語ぶっ壊れてますね。
>>783は、
○2番目の要件の意味がよくわからない。
○なんでそんな(ふたつの)制限があるの?
のふたつの意味で書きました。
■ このスレッドは過去ログ倉庫に格納されています