【PHP】下らねぇ質問はここに書き込みやがれ 51
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/07/27(金) 16:32:46ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 50
http://pc11.2ch.net/test/read.cgi/php/1184143801/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0554nobodyさん
2007/08/06(月) 12:17:13ID:???0555nobodyさん
2007/08/06(月) 12:37:04ID:???0558nobodyさん
2007/08/06(月) 14:00:17ID:???0559nobodyさん
2007/08/06(月) 14:02:41ID:apvw8HmBhttp://au.php.net/manual/ja/function.preg-match-all.php
ここの例にあるコードでは、複数行に渡る文字列を取得できません。
<h1>
たとえばこういうの
</h1>
そこで、
preg_match_all("/(<([\w]+)[^>]*>)((.|\n)*)(<\/\\2>)/", $html, $matches, PREG_SET_ORDER);
こういう風に書き換えたんですが、やっぱりだめでした。
どうすれば改行を含んだタグ内の文字列を取得できるんでしょうか。
お願いいたします。
0561nobodyさん
2007/08/06(月) 14:43:56ID:???$file = file_get_contents($url);
$file = str_replace("\n","", $file);
0563nobodyさん
2007/08/06(月) 15:00:00ID:apvw8HmBありがとうございます。
strip_tagsは盲点でした。
一応これで、文字列を取り出して、この文字列にマッチしたものをpreg_replaceしたのですが、
<h1>一行で<h1><h2>かかれてる</h2>
こういう行や、途中に改行のある行は、無視されてしまいます。
つまり、単純な<p>こういう文章</p>だけしかヒットしませんでした。
う〜ん、難しいのかな、こういうのは。
0564nobodyさん
2007/08/06(月) 15:30:25ID:apvw8HmBfile()で配列に1行ずつ入れているということを言い忘れていました。
連結しなきゃ、絶対判断できないですよね。。。
でもソースのタブや改行を維持したいんですよ。
無理でしょうか??
0566nobodyさん
2007/08/06(月) 16:43:47ID:???fileで読んでforeachで回して1つの文字列に汁。
開始、閉じタグをpreg_split汁
中身の入っている配列だけ取り出す
ってのはどう?
0567nobodyさん
2007/08/06(月) 16:56:46ID:9ONTVzmvforeach($items[1] as $item){
}
こんな感じにすれば複数行でも取得できるはずです
正規表現で複数行取得の修飾子のsを入れるのがポイントです
0568nobodyさん
2007/08/06(月) 17:15:07ID:apvw8HmBありがとうございます。
どちらにせよ、連結しなければいけないですよね?
正規表現、覚えられる気がしない・・・・・・。
0569nobodyさん
2007/08/06(月) 17:51:11ID:apvw8HmBpreg_match_all("/(<([\w]+)[^>]*>)(.*)(<\/\\2>)/si", $html, $matches, PREG_SET_ORDER);
としてから、$matchesの内容を確認したところ、ページのソース全てがマッチしてしまったようです。
うーん、よくわからん。。。
0570nobodyさん
2007/08/06(月) 17:55:25ID:FNzF7YoDセッションクッキーってどれくらい強固なんでしょうか?
セッションのクッキーでない、いわゆる一般のクッキー偽装って
自分のPCで編集しようと思えばできそうだけど、
自分のPCからでも参照できないセッションクッキーって
セキュリティの穴がなさそうに見えるんですが、どうなんでしょうか?
どこかに詳しいサイトありませんか?
0573nobodyさん
2007/08/06(月) 20:38:50ID:OuVmhPr1今、セッションのテストしてるんですが、ログアウト処理のPHPに対象となるユーザのIDを
GETメソッドで送る処理を考えています。
で、以下のリンクを作ったんですがパラメータに値がはまりません。
<a href="logout.php?user_id=<?php $_SESSION["user_id"]; ?>&onamae=<?php $_SESSION["onamae"] ?>">ログアウト</a>
なぜでしょう? ちなみに、上のコードの書かれてるPHPで
print $_SESSION["user_id"] としても、正しい値を表示します
よろしくお願いします
0574nobodyさん
2007/08/06(月) 20:46:08ID:???0575nobodyさん
2007/08/06(月) 21:00:20ID:OuVmhPr1ありがとうございます ウッカリしてました。確かにechoがいりますね
聞きたいのですが、session_unset() っていうのは、セッションを全て削除するとはいっても、
そのサイトで使っているものだけですよね?
他のサービスで使っているものは破棄しないですよね?
それでもsession_destroyとの使い分けを知りたかったので質問させてもらいました
0576nobodyさん
2007/08/06(月) 21:20:14ID:???WinXP sp2
apache2.2.4
php5.2.3
で動かしています。
■質問
system関数からネットワークドライブに対して読み書きを行いたい。
■詳細
PC ( a ) 鯖環境を入れています。
PC ( b ) このEドライブをネットワークドライブとして使用しています。
aからネットワークドライブに対する読み書きは基本的に以下のURLの方法で成功し、phpでの動作も確認しています。
ttp://nanakorobiyaoki.at.infoseek.co.jp/etc/win_apache_mapping.htm
ただ、私の場合phpから行うsystem関数に対しても読み書きをさせたいのです。
具体的には
$str = "WinRAR x -r -y -ep -pPASS 解凍先 圧縮ファイル\\";
system($str);
このようなsystem関数を使い、解凍先にネットワークドライブを指定しています。
この場合、ネットワークドライブに対して解凍を行ってくれません。
恐らく、システム権限でネットワークドライブにアクセスしにいこうとしているため、ネットワークドライブにアクセスできないのだと思います。
これを回避する方法として、色々考えて
1:system関数でadministrator権限にてアクセスする方法を探す
2:win上でなんとかsystem権限でネットワークドライブにアクセスできる方法を探す
3:winrarのコマンドラインオプションで権限変更できそうな項目を探す
を思いつき探しているのですが、どれもいい方法が見つかりません。
もし宜しければお力添えしていただけないでしょうか。宜しくお願いいたします。
0577nobodyさん
2007/08/06(月) 21:22:57ID:SHp45+BZそのような定義ずみの変数ってないでしょうか?
0580nobodyさん
2007/08/06(月) 21:41:06ID:???批判的なレスをすると、すぐに公開PROXY規制されます。
誰がどうやって、ホストを調べて公開PROXY規制をかける
のか、仕組みが分かる方はいますか?
0582nobodyさん
2007/08/06(月) 21:52:13ID:???何のことを言ってるのかね
規制をかけるのは常識的に考えて管理人
Proxyは特有の環境情報を吐くのでそれを見てProxyかどうかを判定
公開Proxyを毎日チェックしてデータベースに蓄積させてるというわけではない
0583582
2007/08/06(月) 21:53:12ID:???0584580
2007/08/06(月) 21:59:34ID:???公開ProxyじゃないのにProxy規制されるんです。
スレのテーマについて、アンチレスをした時だけすぐに。
なんか書き込みさせないようにされてる。
そんなことはあり得ますか?
0585577
2007/08/06(月) 22:17:14ID:SHp45+BZサンクスです!
0586nobodyさん
2007/08/06(月) 22:19:03ID:???一応言っとくがPHPとは全く関係ないしスレ違いなんだよ
あと荒らしを手助けする場所ではないからな
公開・非公開なんて串を制限するのに関係ない
串とわかる判別方法がいくらかある
>スレのテーマについて、アンチレスをした時だけすぐに。
自動でそういう仕組みを作ることは可能
最初から串通してカキコしてるなら
串制限されてるというよりIP制限されていると考えるほうが自然
串変えても書き込みできない場合クッキーやセッションの情報が残ってると考えるのが自然
通常一人の荒らしにたいして毎回串制限かけるなんてことはしない
0587580
2007/08/06(月) 22:43:55ID:???すみません。
初心者なのでどこで質問すればいいか
分かりませんでした。
串の刺し方もPHPの知識もないです。
それと「荒らし」じゃありません。
ゲーム関係スレで信者に意見しただけです。
親切な回答どもです。バカなので理解少しですが
IP制限をみてみます。
0588nobodyさん
2007/08/07(火) 00:16:58ID:ZZAVPEGP自分がかりてる鯖ではそのためのツールを用意していないとのことでした。
Namazuその他の全文検索ツールを見るといずれも鯖にインストールが必要なようですが
共用鯖の個人が使えるようなライブラリ等で、代用できるようなツールってないでしょうか?
0589nobodyさん
2007/08/07(火) 01:01:18ID:???http://pc11.2ch.net/test/read.cgi/hp/1166794984/
0590nobodyさん
2007/08/07(火) 01:12:42ID:ZZAVPEGPライブラリやモジュールの話は板違い?
0593nobodyさん
2007/08/07(火) 02:28:03ID:fxW4NvJ3phpinfoで出てくるMYSQL_SOCKET等の位置が異なり、
PHPからmysqlに接続できません。
ApacheやPHPはRPMでインストールしました。
どうすればmysqlに接続出来るようにできますか?
0594nobodyさん
2007/08/07(火) 02:45:23ID:???0595nobodyさん
2007/08/07(火) 02:59:44ID:???0596nobodyさん
2007/08/07(火) 03:03:24ID:???0597nobodyさん
2007/08/07(火) 03:06:56ID:???Perlの後発であるぱいそんとPERLでは、
これから1から習得するとなればどっちが優位な選択?
Perlは日本での普及もしてるわけで困ることも少ないだろうけど、
言語としてはぱいそんのほうが優れてるのは明白なんだよな。
しかし日本での普及率といったら全然で、苦労することも色々と出てくるんじゃないかと。
0598nobodyさん
2007/08/07(火) 03:10:20ID:???0599nobodyさん
2007/08/07(火) 03:13:33ID:???0600593
2007/08/07(火) 03:13:48ID:???どうも後からの設定ではMYSQL_SOCKET等を変えたりは出来ないようで…。
RPMでPHPを入れるならmysqlもRPMにしておけということでしょうか
0601nobodyさん
2007/08/07(火) 03:18:37ID:???世界でも通用しそうなイメージはあるな。
Perlはもはや過去の遺物じゃないかね。
0602nobodyさん
2007/08/07(火) 03:20:20ID:???ただ開発環境を整えるのに一苦労なんだよね>python
0603nobodyさん
2007/08/07(火) 03:21:03ID:???0604nobodyさん
2007/08/07(火) 03:22:00ID:???0605nobodyさん
2007/08/07(火) 04:22:59ID:jAF++rY9今、PHP5の勉強をしてるのですが、本でオブジェクトやクラスの解説を読んでいると、
凄く観念的というかややこしくてクラクラしてきます。
(abstract宣言とか抽象クラスとかオブジェクトインターフェースとか)
これらは全部理解しないとまずいんでしょうか? みんな完璧にマスターしてるの?
おそらく、効率化を考えたり、他人のプログラムの引継ぎをする立場なら
理解していた方がいいと思うんですが、とりあえず無視して出来る範囲で
プログラム組んでくってやり方じゃまずいでしょうか?
ちなみに僕はデザイナで、理解できた方がいいだろうという動機でPHPやってます。
0606nobodyさん
2007/08/07(火) 04:31:00ID:???小中高の授業じゃないんだし、片っ端から全て覚えるなんて必要はなく、
必要になったら覚えるっていう程度で問題ない。
必要性を感じないなら無視していいし、必要性が感じられればまたそこに戻ればいい。
デザイナならそれだけで食っていけるだろうに。
才能を持ってるってうらやましいぜ。
0607nobodyさん
2007/08/07(火) 04:33:11ID:???実際説明文を読んで理解しようとするよりも、どういった動作の流れかを解析することで理解できるようになるかと
まぁSE目指してるんなら技術を習得する価値はあるかと
0608nobodyさん
2007/08/07(火) 04:34:34ID:???デザイナ→WEBエンジニア 努力次第で何とか
0610nobodyさん
2007/08/07(火) 04:44:18ID:???簡単さではデザイナ>エンジニアなんだし、コツさえ掴めば何とか...
0611588
2007/08/07(火) 05:38:49ID:f/NUq+xJ最良の選択かどうかはわからないけど・・
>>592
下らねぇ「回答」はスレ違いかと。
0612nobodyさん
2007/08/07(火) 05:41:05ID:???それ以上のことやりたいなら自分で書けよ
0613nobodyさん
2007/08/07(火) 05:47:48ID:???別に困難だとは思わないけどなぁ
むしろロジックを知っているからプログラマーにやさしいデザインを作ってくれるような気がする
0614nobodyさん
2007/08/07(火) 05:52:05ID:???0617nobodyさん
2007/08/07(火) 06:10:52ID:???デザイナーはなりたくてなれるもんじゃないんだよ。
勉強したって努力したって結局はセンスと才能次第。
幼少期の感性が特に重要になってくる。
>むしろロジックを知っているからプログラマーにやさしいデザインを作ってくれるような気がする
結局はクライアント次第なんだよ。
0618nobodyさん
2007/08/07(火) 06:15:31ID:???http://pc11.2ch.net/test/read.cgi/php/1183023058/
0619nobodyさん
2007/08/07(火) 06:23:53ID:???0620nobodyさん
2007/08/07(火) 09:17:59ID:???0621nobodyさん
2007/08/07(火) 10:17:08ID:???プログラマーにやさしいデザインをつくることはできるとはおもう
ユーザーに受け入れやすくやさしいデザインを作る事は個人に依る
なんか俺、作り込めば作り込む程きたないデザインになるんだorz
0622605
2007/08/07(火) 10:27:04ID:nqMZFXTjやっぱりできるところからやったほうがいいですよね
理解できない技術を上手に解説してくれるようなコードを探しつつ
頑張ってみます ありがとうございました
0623nobodyさん
2007/08/07(火) 11:31:15ID:HmBP9Y+FCannot load /usr/lib64/httpd/modules/libphp5.so into server: /usr/lib64/httpd/modules/libphp5.so: undefined symbol: zend_qsort
と出て、apacheが再起動できません。
どうしたらいいでしょうか?
0624nobodyさん
2007/08/07(火) 11:38:51ID:2PnksrHfこの配列を\nで区切り文字列にしたものを変数に入れたいのですが、
そんな関数ありますか?
$array = array(1, 2, 3, 4, 5);
↓↓↓↓↓↓↓↓↓↓
$strings = "1\n2\n3\n4\n5\n";
0625624
2007/08/07(火) 11:40:23ID:2PnksrHf自己解決しました。スレ汚しすみませんでした。
0626nobodyさん
2007/08/07(火) 11:49:23ID:???Cannot load
can not load
読み込みできない = /usr/lib64/httpd/modulesにlibphp5.soファイルがない
0627nobodyさん
2007/08/07(火) 11:51:59ID:???昔同じ症状になってLinux使いなれてないこともあってそのまま放置したなぁw
確かその時どっかで調べたんだけど、コンパイル時にlibphp5.soを作るみたいなオプションがあった気がする。
yumじゃ古いから困ったもんだね。
0628623
2007/08/07(火) 11:56:25ID:HmBP9Y+Fレスありがとうございます。
/usr/lib64/httpd/modulesには
ちゃんとlibphp5.soが入っています。
ttp://archive.netbsd.se/?ml=php-install&a=2006-01&m=1656042
このへんと同じ状況だと思うのですが、解決策が見つけられません。
0629nobodyさん
2007/08/07(火) 12:05:05ID:???CentOSはRHELクローンだからこの問題抱えてるんじゃないかな?
>libphp5.soのみをはじめに作って、そのあとに自分の必要なconfigureでPHPのインストール作業を行うことで解決できます。
って書いてるけど一応試してみたら?
0630nobodyさん
2007/08/07(火) 13:37:40ID:???勝ち負けがどの辺りでついたんだい?
無理やり宣言して自分の勝ちにしたい、しないと反論できないのはのはどっちだ?ん?
さっさと死ね知障糞野郎
0631nobodyさん
2007/08/07(火) 13:53:41ID:???0632nobodyさん
2007/08/07(火) 14:04:29ID:???0633nobodyさん
2007/08/07(火) 14:32:20ID:???proc_open 関数で runas コマンドを使うのはいかがかしらん。
>>593
php.ini の mysql.default_socket や、
または実行時に mysql_connect の $host 引数で、
mysqli_connect なら $socket 引数で、
PDO なら DSN の unix_socket パートでそれぞれ指定できるそうです。
これらとは違いますか?
0634nobodyさん
2007/08/07(火) 14:53:27ID:???echo ++$a;
ってやると'B'と表示されますが
$a = 'A';
$x = 1;
echo $a + $x;
で'B'と表示させるにはどうしたらよいですか?
なにか関数を使ってやるのでしょうか?
0638nobodyさん
2007/08/07(火) 15:42:01ID:HOQBI3SIphp4ではしっかり表示されるんですが
php5になるとエラーがでます。
○○のファイルはHTMLタグのテーブルです。
<? include("○○");?>
○○をURL指定でもよびだせません
相対パスでも呼び出せません。
php5から仕様がかわったのでしょうか?
includeに同じようなタグはphpではありませんでしょうか?
アドバイスお願いします;;
0639nobodyさん
2007/08/07(火) 15:45:30ID:???>php5になるとエラーがでます。
エラー内容は?
<?php
include("○○");
?>
でもダメ?
0640nobodyさん
2007/08/07(火) 15:47:03ID:Lc4TIg8iとするとApacheのエラーログが化けます。
[Tue Aug 07 15:43:49 2007] [error] [client ***.***.**.***] \xe3\x81\x82\xe3\x81\x82\xe3\x81\x82\xe3\x81\x82\xe3\x81\x82
ファイルはUTF-8, php.iniは
mbstring.internal_encoding = UTF-8
mbstring.http_input = UTF-8
mbstring.http_output = UTF-8
です。サーバのどこの設定を変えればよいのでしょうか?
0641nobodyさん
2007/08/07(火) 16:04:07ID:???ツールで一括ダウンロードされないようにするにはどんな方法が有りますか?
0642nobodyさん
2007/08/07(火) 16:06:10ID:???1. 読まない ・・・説明書などを読まない。読む気などさらさらない。
2. 調べない ・・・過去スレ、ググるなど最低限の内容も自分で調べようとしない。
3. 試さない ・・・めんどくさいなどの理由で実行しない。する気もない。
4. 理解力が足りない ・・・理解力以前の問題で理解しようとしない。
5. 人を利用することしか頭にない ・・・甘え根性でその場を乗り切ろうとする
0643nobodyさん
2007/08/07(火) 16:19:18ID:???ファイルの文字コードがEUCでUTF-8ではないとか?
>>641
リクエストヘッダで確認
それ以外は基本的にむりじゃない?
ブラウザで表示した時点で一括ダウンロードなんだし…
0644nobodyさん
2007/08/07(火) 16:25:00ID:???cookieを使うとか、javascriptでファイルへのリンクを作るとか、captchaとか、
どの程度強く守るかによっていろいろ考えられるでしょ。
0645nobodyさん
2007/08/07(火) 16:27:03ID:???0646640
2007/08/07(火) 16:47:07ID:Lc4TIg8i>>645
php.iniのログの出力先を指定することにより、日本語のロギングができました。
ありがとうございました。
0647638
2007/08/07(火) 16:58:14ID:HOQBI3SIレスありがとうございます。
エラー内容ですが
Warning: include() [function.include]: Unable to access ○○/lib/htmltemplate/htmltemplate.inc(366) : eval()'d code on line 452
○○はサイトパスです。
>>639
それを実行しても同じエラーでした><
0649nobodyさん
2007/08/07(火) 18:28:10ID:???PHPでもMySQLでも、そのどちらの設定ファイルや
起動オプションでも位置を指定できる筈だが。それで問題あるの?
my.cnfの[mysqld]ディレクティブに
「socket=/tmp/mysql.sock」とか記述するか、起動オプション
php.iniの方は
「mysql.default_socket = /tmp/mysql.sock」
とかね。
0651nobodyさん
2007/08/07(火) 18:51:08ID:q5cnbu6Y画面が10回に1回程度、画面が途中から切れてしまいます。
http://web1.kcn.jp/00/cgi-bin/src/up0098.jpg
CSS使っているからかもしれませんが、どの辺の設定を見直せば宜しいでしょうか?
0653nobodyさん
2007/08/07(火) 19:06:57ID:???0654nobodyさん
2007/08/07(火) 19:20:08ID:2wg4iJ0gform.php→confirm.php→complete.php
に戻したのですが、別にセキュリティ的に問題ありませんよね?
今までは↓のようにしていたのですが、なんか使いづらくて・・。
index.php?page=inquiry_form
■ このスレッドは過去ログ倉庫に格納されています