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

【PHP】下らねぇ質問はID出して書き込みやがれ 99

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/10/13(水) 12:01:33ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 98
http://hibari.2ch.net/test/read.cgi/php/1284805237/

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0619nobodyさん2010/10/21(木) 07:10:02ID:???
>>618
質問はID出してね
0620nobodyさん2010/10/21(木) 07:39:15ID:2AZCD3Ve


【PHPのバージョン】5.3



【質問内容】
ttp://php-web.net/faq/rss.html

ここを参考にRSSを読み込んでみたのですがrss2.0が読み込めないみたいです。
simplexmlでRSS2.0を読み込む方法ってありますか?
0621nobodyさん2010/10/21(木) 07:47:30ID:???
>>620
本当にRSS2.0のせいで読み込めないの?
0622nobodyさん2010/10/21(木) 07:53:03ID:2AZCD3Ve
http://list.chiebukuro.yahoo.co.jp/list/question_list.php?flg=0&rss=1

これが読み込めない・・・
0623nobodyさん2010/10/21(木) 07:55:27ID:2AZCD3Ve
自己解決しました。
構造が違うのか・
0624nobodyさん2010/10/21(木) 08:27:53ID:???
phpって凄いな
echo "<bgsound src="mrpg.mid" hidden="true" loop="infinite" autostart="true">"
でechoで表示されるのが"こんにちは"とか文字だけじゃなくHTMLの構文までできるとは
もしかしてこの""の中にJavaScriptとか入れても平気なんですか?
だとしたら物凄い色々な事出来ると思うんだけど
0625nobodyさん2010/10/21(木) 08:30:25ID:???
>>624
HTMLも文字だけどな。
0626nobodyさん2010/10/21(木) 08:32:16ID:???
>>613
FWとかで画像にレイア指定して
画像からHTMLに変換できるのがあって
多分それの事じゃないのかなと
0627nobodyさん2010/10/21(木) 08:33:29ID:???
>>624
単に、直接書くかPHPに書かせるかの違いで、クライアントに届くHTMLは同じものだからね
0628nobodyさん2010/10/21(木) 08:42:11ID:???
>>624
それだとエラーでない?
"で括ってる文字列に含まれる"には\をつけないと
0629nobodyさん2010/10/21(木) 08:48:42ID:???
echo 'value="100"'
実際にはこんな感じでやってます
更に""で括ったら\\でやったらいいんですかね?

以前"value="100""とやったらエラーでましたのでこうしてるのですが
0630nobodyさん2010/10/21(木) 08:50:44ID:???
>>629
まずIDだせな

えと、
value="100"を出力したいのなら''で括ってよい
value="$value"みたいな変数を含む場合は""で括らないと変数が展開しない
細かいことをいえば、''だと\nでソースを改行しようとしても\nがそのまま出力される
0631nobodyさん2010/10/21(木) 09:07:22ID:09ClhB8v
>>630
なるほど!
よくわかりました!
0632nobodyさん2010/10/21(木) 09:12:00ID:???
echo '<bgsound src="',$src,'" hidden="true" loop="infinite" autostart="true">';

俺ならこう書く
JSでシングル使うならその部分だけダブルで
そして改行コードはPHP_EOLだな
0633nobodyさん2010/10/21(木) 09:24:58ID:???
今はJavaよりもASP.net
0634nobodyさん2010/10/21(木) 10:06:42ID:???
このスレ自己主張強い人間多いよな
0635nobodyさん2010/10/21(木) 10:11:41ID:???
ネット限定だけどな
0636nobodyさん2010/10/21(木) 10:14:23ID:???
>>632
> そして改行コードはPHP_EOLだな
echo '<p>test</p>'.PHP_EOL;
これでソース改行されたんですが、こんな書き方であってます?
0637nobodyさん2010/10/21(木) 10:34:34ID:???
あってるよ
0638nobodyさん2010/10/21(木) 10:53:38ID:???
>>637
ありがとうございます
0639nobodyさん2010/10/21(木) 10:59:22ID:???
いいってことよ
0640nobodyさん2010/10/21(木) 11:03:46ID:???
平和が一番だね
0641nobodyさん2010/10/21(木) 12:29:30ID:???
さくらインターネットの共有サーバで独自ドメインに対して
共有SSLを設定するとセキュリティーに脆弱性があるとの事なのですが、
どうすれば独自ドメインで安全に https で操作出来るになりますか?
0642nobodyさん2010/10/21(木) 12:34:47ID:???
それがPHPとなんの関係が?
0643nobodyさん2010/10/21(木) 12:39:04ID:???
脆弱性があると言った人に聞くのが一番だろ、得意げに教えてくれるよ
鯖内部の設定まではわかりませーん
0644nobodyさん2010/10/21(木) 12:54:49ID:???
>どうすれば独自ドメインで安全に https で操作出来るになりますか?
専用サーバ借りて証明書取得して下さい
0645nobodyさん2010/10/21(木) 13:18:28ID:???
>>644
専用サーバだと金が高いです。
0646nobodyさん2010/10/21(木) 13:34:00ID:???
じゃ無理
そもそも証明書は1つのIPにつき1つしか証明してくれない
0647nobodyさん2010/10/21(木) 14:07:54ID:???
× IP
○ ドメイン
0648 [―{}@{}@{}-] nobodyさん2010/10/21(木) 14:08:13ID:???
http://hibari.2ch.net/test/read.cgi/hosting/1279878089/935-
0649nobodyさん2010/10/21(木) 14:12:17ID:???
IPだよ
0650nobodyさん2010/10/21(木) 14:28:34ID:???
>>641
共有SSLは、セキュリティーに脆弱性があるのではなく、正しい会社かまでは保証してくれないってことでは?
フィッシング詐欺とかの可能性。
0651nobodyさん2010/10/21(木) 14:30:25ID:???
>>646-647,649

スレチだが釣られる
マルチドメイン証明書やワイルドカードで検索しましょう。
0652nobodyさん2010/10/21(木) 14:51:06ID:???
マルチドメイン証明書なんてパチモンじゃん・・・
0653nobodyさん2010/10/21(木) 14:52:21ID:???
>>646 >>650 >>651
マルチ質問してみましたが

どこでもやはり専用サーバにしろ

とサクラの鯖管が営業してきてうざいのですが
どうやら無理の様なので専用サーバを考えます。

ただ、月額3000円程度で100G使えるサーバを提供してるところとか
ありませんか?

出来るだけ金を掛けたくないのです。
0654nobodyさん2010/10/21(木) 14:54:18ID:???
マルチ質問してみましたがじゃねえよw
一般マナーとして禁止事項ってことぐらい覚えとけ
0655nobodyさん2010/10/21(木) 14:55:11ID:???
だ・か・ら 板違いってことを気づけよ
0656nobodyさん2010/10/21(木) 15:13:51ID:EvaxVDot
Pearを使用したログイン処理を作成しているのですが、
画面内にid/passを入力後、自画面(login.php)にPOSTする際に

次の様なエラーが表示されてしまいログインする事が出来ません。
$a->start();  を実行した場合になぜこの様なエラーが出てしまうのでしょうか?

【login.php】

<?php
header('Content-Type: text/html; charset=UTF-8');

if(isset($_GET['login']))
{
 $optional = true;
}
$a = new Auth("DB", $params, "loginFunction", $optional);
$a->setExpire(600) ;
$a->start();

/*
 ■$a->start(); を実行した時に出力されるエラー
  Cannot modify header information - headers already sent by
  (output started at C:\htdocs\hogehoge\login.php:96) in
  C:\php\PEAR\Auth.php on line 858

 ■96行目のコード
  print("<!DOCTYPE html PUBLIC \"-//W3C//Dtd Xhtml 1.0 Transitional//EN\"
    \"http://www.w3.org/tr/xhtml1/Dtd/xhtml1-transitional.dtd\">");
*/
?>
0657nobodyさん2010/10/21(木) 15:18:48ID:???
>>656
エラーメッセージの通りで、login.phpの96行目でprintしてるけどそのタイミングでは早すぎる。

もっと後で出力するように直してください。
0658nobodyさん2010/10/21(木) 15:24:15ID:EvaxVDot
>>657
ありがとうございます。エラーが出なくなりました。
0659nobodyさん2010/10/21(木) 19:06:45ID:xUlWog0Z
言語設計者たちが考えること [大型本]
にPHPがない
0660nobodyさん2010/10/21(木) 19:13:49ID:???
チェック処理は理想を言えば、

JavaScript + サーバ側

だと思うけど開発の工数を考えるとサーバ側だけで
やった方が無難だよね?

二度手間な気がする。
0661nobodyさん2010/10/21(木) 19:23:38ID:???
そのへんはユーザビリティによる
0662nobodyさん2010/10/21(木) 19:25:54ID:???
プログラムを書く側が二度手間になるだけでユーザーにとっては手間が省ける
0663nobodyさん2010/10/21(木) 19:36:17ID:???
やっぱそうだなよな。
仕方が無いからJavaScript側にもチェックを入れるか。

それよりブラウザ毎の仕様を統一しやがれ。
0664nobodyさん2010/10/21(木) 19:43:12ID:kMTwulle
sqlite_openでdbが読み込まれないんですけど、ありがちな原因を教えていただけないでしょうか?
パスの指定も間違ってはいないのですが...
0665nobodyさん2010/10/21(木) 19:50:12ID:???
作ってる奴が馬鹿
0666nobodyさん2010/10/21(木) 20:24:13ID:???
>>664
ありがちな原因というとsqlite_openが使えない環境で使おうとしてることかな?
0667nobodyさん2010/10/21(木) 21:10:08ID:???
ありがちな原因:本人が間違っていないと思っているパスの指定が間違ってる
0668nobodyさん2010/10/21(木) 21:11:52ID:???
>>663 >それよりブラウザ毎の仕様を統一しやがれ。
新しいバージョンが出ても新機能は追加できないということですね
0669nobodyさん2010/10/21(木) 21:12:13ID:kMTwulle
>>666
レスありがとうございます。環境は良く分かってないんですが、
sqlitemanagerというツールを使ってdbの生成をサーバー上で出来たので問題ないかと思います。
コピペで申し訳ないですが
make.php
//エラーメッセージ --- エラーメッセージを格納する変数を指定する
$dbHandle = sqlite_open('SQLiteManager-1.2.0/testdb', 0666, $err);
↑これで読み込みません。やはり環境のせいなのでしょうか。
0670nobodyさん2010/10/21(木) 21:13:35ID:kMTwulle
>>667
パスは何度も疑って同フォルダまでぶちこんで駄目だったんで多分大丈夫です
0671nobodyさん2010/10/21(木) 21:27:48ID:JTkcfJp6
プログラミング初心者なんですが
下記のような辞書を作ろうと思っております。

・単語を入力すると、項目に飛ぶ
・検索条件(例:動詞・名詞・英語・ドイツ語など複数選択可)による絞り込み
・検索に一致する候補が複数ある場合は、それを一覧にして表示

これは個人が趣味レベルで作れる代物でしょうか
作れるとしたら最も適した言語は何でしょうか
0672nobodyさん2010/10/21(木) 21:29:03ID:???
データが既にあるなら個人でもわかる奴が作れば1時間で作れるよ
言語は何でもいい
0673nobodyさん2010/10/21(木) 21:31:31ID:hQgLU4cA
クラスのオブジェクトの結合って出来ないのでしょうか?

$obj = new Main();
$obj =& new Sub();
print_r($obj);

イメージ的にはこんな感じかと思っていたのですが、
上記のコードはSubしか取得出来ません。
0674nobodyさん2010/10/21(木) 21:35:16ID:???
javascriptのプロトタイプでもやってろ
0675nobodyさん2010/10/21(木) 21:36:32ID:JTkcfJp6
>>672
ありがとうございます。
0676nobodyさん2010/10/21(木) 21:48:28ID:???
>>669
バージョンによっては使えなくなったんじゃなかったっけ?
sqlite_openとか使わずにPDOで書いたほうがいいよ
0677nobodyさん2010/10/21(木) 22:59:11ID:???
>>673
実はこれを使えばできる
http://jp.php.net/manual/ja/book.runkit.php
0678nobodyさん2010/10/21(木) 23:06:44ID:hQgLU4cA
>>677
情報ありがとうございます。
逆にこれを使わずに素のPHPでは出来ないんですね。

CakePHPが「this->モデル名->関数」のような指定方法で書いているので
複数のクラスを結合して一つにまとめていると思っていました。
(Cakeを見ても良くわかりませんが・・・
0679nobodyさん2010/10/21(木) 23:21:18ID:lvmPzwix
セッション内容を破棄して終了する場合って
$_SESSION = array();
session_write_close();
session_destroy();
でいいの?
session_destroy();はいるのかね?
0680nobodyさん2010/10/21(木) 23:40:58ID:???
>>678
それはOOPの所を読もう
0681nobodyさん2010/10/21(木) 23:43:35ID:???
>>679
というよりsession_write_closeはいるのかね?
0682nobodyさん2010/10/21(木) 23:44:24ID:xUlWog0Z
>>679
いる
0683nobodyさん2010/10/21(木) 23:48:29ID:???
session_destroyの直前にsession_write_closeしてどうすんの
0684nobodyさん2010/10/22(金) 00:30:19ID:???
>>671
「web api 辞書」 でググって利用すれば、簡単に作れるかも。
もしどこかのAPIを使わないのなら、辞書データを作成するのが一番のネックになる。フリーもあるけどね。
0685nobodyさん2010/10/22(金) 00:33:00ID:???
>>679
session_destroyはいる
session_write_closeがいらねーんじゃね
0686nobodyさん2010/10/22(金) 00:40:38ID:Quj7u5DL
先生!

#hoge = <<< HEY
oraora
oraora
oraora
oraora
HEY;

こんなコードがあったんですけどこれってどういう意味ですか??
phpのマニュアルが検索できないです><
0687nobodyさん2010/10/22(金) 00:51:33ID:???
#hoge

$hoge

こうですた
0688nobodyさん2010/10/22(金) 00:57:09ID:???
>>686
マニュアルの基礎から読め
0689nobodyさん2010/10/22(金) 00:57:29ID:???
>>688
どこ?
0690nobodyさん2010/10/22(金) 01:01:03ID:???
別スレで聞いたら10秒で答えてくれたわ
おまえらレベル低すぎ!
0691nobodyさん2010/10/22(金) 01:14:58ID:???
Pear::Auth を使った認証を破棄(ログアウト)する場合に

logout();


を使っているのですがこれを行えばセッションも完全に破棄されるのでしょうか?

無駄にリソースを食ったりしやしないかちょっと心配です。
0692nobodyさん2010/10/22(金) 01:18:01ID:???
セッションはテンポラリだから気にしないでいいよ
0693nobodyさん2010/10/22(金) 01:18:41ID:???
>>691
>>1
0694nobodyさん2010/10/22(金) 01:26:38ID:???
>>692
ありがとうございます

>>693
しにくされ
0695nobodyさん2010/10/22(金) 02:25:25ID:???
死肉去れ?
0696nobodyさん2010/10/22(金) 04:41:40ID:qwjMjkx8
画像ファイルの削除について質問です

/picture/ディレクトリの中に
key1_100.jpg, key1_103.jpg, key1_4562.jpg などの画像ファイルが入っています
ファイルの名前はkey1_という文字列が冒頭についているものとします

この条件で、 key1_〜で始まるファイルをまとめて削除したいんですがどうしたらいいですか?
ファイル名が拡張子まで含めてわかってたら
unlink("/picture/key1_100.jpg"); でいいのかなと思いますが
key1_以降がわからないので上記の形での削除はできません。
またkey2_〜というファイルもあるので、ディレクトリの中身を全部消すなども無理です。
ご意見よろしくお願いします
0697nobodyさん2010/10/22(金) 06:58:31ID:???
>>696
http://jp2.php.net/manual/ja/function.unlink.php
一番下

function delfile($str)
{
foreach(glob($str) as $fn) {
unlink($fn);
}
}

delfile('/picture/key1_*');
0698nobodyさん2010/10/22(金) 10:32:39ID:FczuqSIi
ログを表示したいんだけど、さくっと簡単に出来るライブラリとかない?
0699nobodyさん2010/10/22(金) 10:35:15ID:???
お前のログなんてみたくない
0700nobodyさん2010/10/22(金) 10:35:24ID:???
>>1
0701nobodyさん2010/10/22(金) 10:44:14ID:a21HIBns
PHPでは通常POSTされたデータを name を指定する事により
取得しますが、これをIDを指定して受取る方法とかってあるのでしょうか?

<input id="id_simei" name="name_simei" type="text" />

$_POST["name_simei"]

$_POST["id_simei"] 的な取得は可能ですか?
0702nobodyさん2010/10/22(金) 10:56:03ID:???
>>701
ありません。そもそもブラウザからidは送られてこない。

普通にPOSTするかわりにjavascriptで情報拾って鯖に投げるとか
いちいち書けば可能かもしれんがやめとけ。
0703nobodyさん2010/10/22(金) 10:56:32ID:???
>>701
postメソッドで送られてるのはnameと値の一対だからidは送信されてないと思うよ
0704nobodyさん2010/10/22(金) 10:59:27ID:9Z1FVvDn
[[foo|mailto:bar@hoge.jp]]
みたいな記述を
<a href="mailto:bar@hoge.jp">foo</a>
に書き換えて表示させたいんですが、

$comment = [[foo|mailto:bar@hoge.jp]];
$comment = preg_replace("/\[\[(.*?)\|(.*?)\]\]/","<a href=\"$2\">$1</a>",$comment);
とやっても置換できませんでした

[と|はエスケープ必須ですよね?

どこをどう修正したらうまくいきますでしょうか
お教えくださいますようお願いします
0705nobodyさん2010/10/22(金) 11:02:33ID:a21HIBns
>>702 >>703
ありがとうございます。
仕方が無いのでやはり従来通り name で取得します。
0706nobodyさん2010/10/22(金) 11:04:18ID:???
>>704
できてるけど?
0707nobodyさん2010/10/22(金) 11:06:40ID:???
>>706
$comment = $line[comment];

$comment = [[foo|mailto:bar@hoge.jp]];
$comment = preg_replace("/\[\[(.*?)\|(.*?)\]\]/","<a href=\"$2\">$1</a>",$comment);

echo $line[comment];

ってやってました・・・
0708nobodyさん2010/10/22(金) 11:49:04ID:CQ5MzjSC
mysqlで、元のレコードの値に関数をかけることってできませんか?

例えば
function _rk($_val){
if($_val >= 5){
$text = "good!";
}
return $text ;
}

こんな感じの関数を

update table1 set
point= point+ 1,
rank = _rk(point + 1)
where no = 1

こんな感じで(実際にはできませんが)適用したいのです。
selectで一度データをひっり出してから
rank 値を作成するのは効率が悪いので避けたいです。
分かりくくてすみません。
どなたかいい案があればお願いします。
0709nobodyさん2010/10/22(金) 12:01:00ID:???
>>708
update文で、CASE使えばできる
「mysql update case」とでも検索してみてください
0710nobodyさん2010/10/22(金) 12:40:28ID:???
SEO対策にスクリプトの拡張子を表示させない様にしたいです。
具体的には
http://hogehoge.com/test.php
というURLでアクセスされると
http://hogehoge.com/test
として表示させたいのですが
どの様な mode_rewrite を書けば良いでしょうか?


0711nobodyさん2010/10/22(金) 12:42:18ID:???
まぁそんなことでSEO対策にはならんけどな
0712nobodyさん2010/10/22(金) 12:58:28ID:???
なんでPHPと関係ない質問が多いのか
なんで他人様のドメインを勝手に直リンさせるのか
0713nobodyさん2010/10/22(金) 13:06:30ID:qwjMjkx8
>>697
どうもありがとう!
0714nobodyさん2010/10/22(金) 13:51:06ID:CQ5MzjSC
>>709
ありがとうございます!
0715nobodyさん2010/10/22(金) 15:39:17ID:???
どういたました!
0716nobodyさん2010/10/22(金) 17:04:47ID:???
コールバックっていう言葉の意味は
returnから帰ってくる値って意味でいいんですか?
0717nobodyさん2010/10/22(金) 17:10:07ID:???
>>712
紛らわしいドメインを取ってる奴が悪い。
0718nobodyさん2010/10/22(金) 17:13:27ID:???
>>4
> 2. このスレに書き込むときに自分のサイト名を晒したくない
> → http://example.com/が例文などのために予約されている。hogehoge.comは使っちゃダメ。
■ このスレッドは過去ログ倉庫に格納されています