【PHP】下らねぇ質問はここに書き込みやがれ 47
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/05/26(土) 21:03:53ID:???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カテゴリ)の各スレで
0738737
2007/06/22(金) 00:42:31ID:???ブラウザ側のキャッシュのせいということもあり得る。
キャッシュをクリアして、ブラウザ再起動して、つないだら、最新のスタイルシートが有効になるとかね。
<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:???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/r0743nobodyさん
2007/06/22(金) 06:11:33ID:???要するにこういうこと?
$str = preg_replace(array("/[\n]{2,}/", "/[\n]/"), array("</p><p>", "<br />"), $str);
$str = "<p>$str</p>";
0746nobodyさん
2007/06/22(金) 08:10:51ID:BcpgaIwJ{
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:???せんんせい、空行をうまく認識してくれません(linuxなら良いのでしょうか?)
>>743
なるほど!すごいです!
それをいベースにろいろ応用してみます!!
>>745
正規表現苦手なんです。。。
0748746
2007/06/22(金) 08:24:24ID:BcpgaIwJsetVar($var){}です。
0749nobodyさん
2007/06/22(金) 08:34:16ID:???0750746
2007/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ファイルの保存先がソースと同じフォルダになっちょる!
0754nobodyさん
2007/06/22(金) 10:21:50ID:???0755nobodyさん
2007/06/22(金) 10:36:24ID:54Cz/LMHIDとパスワードをそれぞれMD5で暗号化して、それを連結させたものをまたMD5して、
そのあと、後ろにユーザーのID(主キー)をくっつけたものをクッキーに保存。
で、次きたときクッキーを見て、値があればとってきて、33ビット目からの数字を取り出して、
その数字を主キーでDBから検索。
DBから出てきたユーザのID/パスワードを上記のクッキーに保存した方法で暗号化する。
その値と、クッキーの値を比べて、同じならログインさせる。
こういう方法考えたんですけど、何かセキュリティ的に問題点とかあります?
0756nobodyさん
2007/06/22(金) 10:38:12ID:???さっきの質問もそうだけど、何が知りたいのか不明。言葉の意味をわからず使ってる感じもある。
意味があるか知らんけど
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:???(ビットじゃなくてバイトね)
ユーザID=主キーってのが気になる。
自分ならクッキー用キーを別途発行して、それをIDと一緒に別テーブルに入れたいけど。
(認証期間切れとかにも対応できるし)
0760虚弱PHP
2007/06/22(金) 10:55:07ID:???そんなに問題はないと思うけど
ハッシュに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:???(*´・ω・)(・ω・`*)ネー
じゃなくて!
どなたか突破口を教えて頂けませんか?よろしくご教示ください
0763nobodyさん
2007/06/22(金) 11:08:33ID:???$好きな名前 = & $this;
って一行書いておけば$this->を見なくて済む。
いつでも
$好きな名前->
でオブジェクトにアクセスできるよ。
0764755
2007/06/22(金) 11:14:41ID:54Cz/LMH・新しくDBテーブル追加しない
・入力フォームにID/パスワードを初期値としていれる
この2つの要件満たすためには、ハッシュにID/パスワード使う必要があるんですよね。。
上記2つを満たすような方法、>>755以外でありますかね?
0765751
2007/06/22(金) 11:19:30ID:???クラスを理解する突破口は、まず自分のオナラの臭いを吸ってエクスタシーを感じること。
その後に、必ず何か見えてくるはずだよ。
0766nobodyさん
2007/06/22(金) 11:21:16ID:???「この2つの要件を満たす」という前提で、そういうお遊びオートログインを作ろうとしている貴方の頭が
セキュリティ上の問題だよ。あとは勝手にしなさい。
0767nobodyさん
2007/06/22(金) 11:24:27ID:???ありがとうございます
でも、$this->同様に複合演算子もむりぽ・・・
>>765
やはり実家の家業を継ぐべきでしょうか?
0768nobodyさん
2007/06/22(金) 11:34:43ID:54Cz/LMHすいません、お遊びオートログインなんです。
でも、オナラの臭いを吸ってエクスタシーを感じて落ち着いて。
ここはくだらねぇ質問する場所です。
お付き合いください。
0769nobodyさん
2007/06/22(金) 11:54:49ID:???0770nobodyさん
2007/06/22(金) 11:59:41ID:???まぁまぁ、君もまず自分のオナラの臭いを吸ってエクスタシーを感じてみなよ。
その後に、必ず何か見えてくるはずだよ。
0771nobodyさん
2007/06/22(金) 12:00:53ID:???0772nobodyさん
2007/06/22(金) 12:01:57ID:J7y8syt9にはどうしたらいいのでしょうか?
0773nobodyさん
2007/06/22(金) 12:06:01ID:???if($_POST) echo "POST";
0774nobodyさん
2007/06/22(金) 12:10:31ID:???thisって自分自身、クラス云々考えずにjavascriptの this.valueと同じだぐらいに軽く考えれば?
0775nobodyさん
2007/06/22(金) 12:10:51ID:???0779nobodyさん
2007/06/22(金) 12:23:32ID:J7y8syt9ありがとうございます
>>773さんのもいいのですが
今回は>>775さんと>>778さんの方がシステム条件に合うので
そちらを採用させてもらいます
0780nobodyさん
2007/06/22(金) 12:23:33ID:???> あんまセクハラ的な発言をくりかえしてんじゃねえよジジイ。
セクハラ「的」じゃないでしょ!!立派なセクハラでしょ。
的って何?バカじゃないの?
0781nobodyさん
2007/06/22(金) 12:29:52ID:???0782nobodyさん
2007/06/22(金) 12:34:58ID:54Cz/LMH0784虚弱PHP
2007/06/22(金) 13:11:29ID:???>>783は、
○2番目の要件の意味がよくわからない。
○なんでそんな(ふたつの)制限があるの?
のふたつの意味で書きました。
0785nobodyさん
2007/06/22(金) 13:19:50ID:54Cz/LMHお遊びだから。
0786nobodyさん
2007/06/22(金) 13:41:38ID:???どうぞお引取り下さい。
0787nobodyさん
2007/06/22(金) 13:41:55ID:???0788nobodyさん
2007/06/22(金) 13:49:08ID:54Cz/LMH実装しようと思ったから、データベースは使わないという要件が発生しました。
0789nobodyさん
2007/06/22(金) 13:53:10ID:wwxPOIopメール受信と同時にphpに処理させようと思うのですが
うまくいきません。
とりあえずテスト用のPHP(write.php)は
コマンドラインからの引数をserializeしてfwriteでファイルに保存する単純なものです。
で、dot-qmailに
|php /var/qmail/write.php
と書いたのですが、保存されるファイルは
a:1:{i:0;s:20:"/var/qmail/write.php";}
となります。
例えば
|php /var/qmail/write.php test
とか引数を与えると、それもちゃんと保存されます。
問題はメールの本文をPHP取得できないのです。
dot-qmailのマニュアルを見ると
「本文はコマンドの標準入力に渡す」と書いてあって多分これが問題なのだと思いますが
標準入力をPHPで取得することはできないのでしょうか?
やり方わかりましたらお願いいたします
0790nobodyさん
2007/06/22(金) 13:56:44ID:???100円払って3時間半の間にプログラム1本仕上げませんか?
http://www.nouhibus.co.jp/hidasi/
0791nobodyさん
2007/06/22(金) 14:05:05ID:???0792nobodyさん
2007/06/22(金) 14:05:26ID:D+3gHmlv雑音ばかり入ってしまいます。どうしたらうまく録音できるか教えてください
0793nobodyさん
2007/06/22(金) 14:09:26ID:???0795nobodyさん
2007/06/22(金) 14:28:31ID:???postfix+バーチャルメールボックス→途中にスパムフィルタ→シェル→php起動の例だと
こんな感じでとりあえず動いてる。qmailも同様に出来んか?
#!/bin/sh
INSPECT_DIR=/var/spool/filter
SENDMAIL="/usr/sbin/sendmail -i"
REGMAIL="/usr/local/bin/hoge.php "
SPAMASSASSIN=/usr/bin/spamc
# Exit codes from <sysexits.h>
EX_TEMPFAIL=75
EX_UNAVAILABLE=69
# Clean up when done or when aborting.
trap "rm -f in.$$" 0 1 2 3 15
# Start processing.
cd $INSPECT_DIR || {
echo $INSPECT_DIR does not exist; exit $EX_TEMPFAIL; }
cat | $SPAMASSASSIN -x > in.$$
#cat > in.$$
grep -e "^To: uketuke@example.com" in.$$ \
&& $REGMAIL < in.$$
$SENDMAIL "$@" < in.$$
exit $?
0802nobodyさん
2007/06/22(金) 15:37:03ID:54Cz/LMH/ \ /\ キリッ
. / (ー) (ー)\
/ ⌒(__人__)⌒ \ <○ ○、
| |r┬-| |
\ `ー'´ /
ノ \
/´ ヽ
| l \
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、.
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
____
/_ノ ヽ、_\
ミ ミ ミ o゚((●)) ((●))゚o ミ ミ ミ
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\ /⌒)⌒)⌒)
| / / / |r┬-| | (⌒)/ / / // < ○ ○ だっておwwwwwwwwwwwwwwwwwww
| :::::::::::(⌒) | | | / ゝ :::::::::::/
| ノ | | | \ / ) /
ヽ / `ー'´ ヽ / / バ
| | l||l 从人 l||l l||l 从人 l||l バ ン
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、 ン
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
0803nobodyさん
2007/06/22(金) 15:40:16ID:???AAを貼る前にAAにしゃべらせるセリフを考えるんだ。
ていうか、ここで遊ぶより、お遊びオートログインの実装考えるほうがきっと楽しいよ。
0805nobodyさん
2007/06/22(金) 15:44:15ID:???0806nobodyさん
2007/06/22(金) 15:44:25ID:54Cz/LMHデータベース使わないなら教えてねぇ的な雰囲気なんだもん
0807nobodyさん
2007/06/22(金) 15:57:50ID:???そうじゃないとしても、別にアカウントに依存した文字列を生成する必要はないだろ。
0808nobodyさん
2007/06/22(金) 16:12:20ID:???perlの 2**32 ってどういう意味でしょうか?
2の32乗?
0809nobodyさん
2007/06/22(金) 16:19:00ID:???0810nobodyさん
2007/06/22(金) 16:23:26ID:???不適切な記事や行為があったなら、事前に警告し、こちらが、バックアップを取れる猶予を与えるのが筋ではないでしょうか?
ライブドアの不当な削除については、元お笑い芸人大田さんの無料レポートが有名ですが、まさか地味にアフィリエイトブログをやっている自分がそんな目にあうとは思ってもいませんでした。
リスク管理の甘さ、何らかの行き過ぎた行為があったのかも知れませんが、血と汗で書き溜めた180記事という人の財産をこうも簡単に奪ってよいものでしょうか?
これは明らかに違法行為ではないでしょうか。しかも、私は有料サービスを利用していましたので、問答無用の削除はひどすぎると思いませんか?
0811nobodyさん
2007/06/22(金) 16:26:28ID:???http://jp.php.net/manual/ja/wrappers.php.php
0812nobodyさん
2007/06/22(金) 17:26:26ID:???利用規約を読め。有料だろうが無料だろうが関係ない。
バックアップをとらなかったのは自分の責任。「自己の責任において維持管理」ってあるだろ。
それに免責事項もある。
0814nobodyさん
2007/06/22(金) 17:52:23ID:???利用規約に人情はないけど削除担当者に人情はあるだろう。
RAIDが全部同時に飛んだとかなら自己責任だけど
人の意志によって警告もなしに削除はひどいだろ。
0815nobodyさん
2007/06/22(金) 18:06:28ID:BcpgaIwJそのクラスを継承したクラスBに、上記と同名のメソッドMを再定義します。
クラスBの別メソッドM2には、クラスAのメソッドMのロジックを使いたいです。
このときもちろん$this->M()としてしまってはクラスBのメソッドMを
意味してしまうので使えません。
parent::Mも、Mは動的メソッドなので使えません。
クラスBのメソッドMの中にクラスAのインスタンスを入れ込んで
$A=new A;$A->M();
としても、Mはメンバ変数にアクセスするような関数なので、
$Aのメンバ変数がいじられてしまい、目的は果たせません。
どのようにして、クラスBからクラスAの動的メソッドMにアクセスすべきでしょうか。
0816nobodyさん
2007/06/22(金) 18:08:39ID:BcpgaIwJ誤:「クラスBのメソッドMの中に」
正:「クラスBのメソッドM2の中に」ですすみません。
0817nobodyさん
2007/06/22(金) 18:14:02ID:???動的メソッドってどういう意味合いで言ってるのか意味不明
わかりにくいから具体的にコード張って
ここが動かないってのを示せ
0818815
2007/06/22(金) 18:25:08ID:BcpgaIwJprivate $contents=array();//上でいう「メンバ変数」のこと
public function addcontent($content,$strictly=false){//上でいうメソッドMのこと
$result=$this->checkcontent($content,$strictly);
if($result){$this->contents[]=$result;}
}
}
class htmlpage extends tag{//上でいうクラスBのこと
private $body;//bodyはtagクラスのインスタンス。
public function addcontent($content,$strictly=false){//上でいうメソッドM
$this->body->addcontent($content,$strictly);}
}
private function preRenderProcess(){
★$this->addcontent($body);//ここ。本当は親クラスのaddcontentを使いたい。
}
タグを入れ子にできるクラス群。HTMLページクラスにaddcontentすると、
HTML内ではなくその中のBODYタグ内にcontentが記述されるようにこのような
構造にした。だがHTMLタグ内にBODYタグを入れたい。
0819818
2007/06/22(金) 18:28:18ID:BcpgaIwJ誤:★$this->addcontent($body);
正:★$this->addcontent($this->body);
0820nobodyさん
2007/06/22(金) 18:37:59ID:???0821nobodyさん
2007/06/22(金) 18:40:04ID:???人情を持ち出したところで、消されるようなことをしてるやつは
運営側からするとむかつく奴だろうから、なおのこと警告なんてしないだろ。
0822818
2007/06/22(金) 18:47:42ID:BcpgaIwJvar_dump($this->getcontents());でやるとarray()になる。
vaar_dump($this->body->getcontents());をすると
たくさんコンテンツが入っているのだが…。
0823nobodyさん
2007/06/22(金) 18:57:48ID:???$gov = get_object_vars($this->body);
$this->addcontent($gov);
0824818
2007/06/22(金) 19:05:55ID:BcpgaIwJ$govは再び$this->bodyの中に入っていくのでは??
0825nobodyさん
2007/06/22(金) 19:16:39ID:???上層の呼び出し側でどういう風にやってるのかわからないし
parentで呼び出した時にcheckcontentはちゃんと
result返してるのかわからないし
さすがの俺もおまえが書いてるソースを
透視する能力はないんでここでデバッグされても困る
0826nobodyさん
2007/06/22(金) 19:24:07ID:???preg_replace("/([^\r]\n|\r[^\n])/", "\r\n", $str);
正しく変換するためにはどうしたらいいでしょうか?
0827nobodyさん
2007/06/22(金) 20:30:44ID:???0828nobodyさん
2007/06/22(金) 20:34:42ID:???0829827
2007/06/22(金) 20:44:01ID:???$str = preg_replace("/\r\n|\r|\n/", "\r\n", $str);
こっちなら大丈夫だった。
0830nobodyさん
2007/06/22(金) 21:03:48ID:???0831nobodyさん
2007/06/22(金) 21:11:23ID:???$str = str_replace("\n","\r",$str):
$str = str_replace("\r","\r\n",$str):
記述がスマートじゃないけど、遅くはならないと思う。
0832nobodyさん
2007/06/22(金) 22:03:20ID:???どのような方法がスマートでしょうか?
0834nobodyさん
2007/06/22(金) 22:50:34ID:???pg_ prepareのプレスフォルダにnullを入れたい場合はどうすれば良いでしょうかか。。
0835nobodyさん
2007/06/22(金) 23:16:34ID:???0836nobodyさん
2007/06/22(金) 23:38:57ID:???func html_include($file) {
echo " ";
include($file);
}
0838nobodyさん
2007/06/23(土) 00:56:03ID:???■ このスレッドは過去ログ倉庫に格納されています