【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カテゴリ)の各スレで
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
0655nobodyさん
2007/08/07(火) 19:45:09ID:p4Sr4eD2http://www.specters.net/cgipon/labo/it_emoji.html
の絵文字変換サブルーチン→パターンマッチ(置換文)をPHPに移植するとどうなるでしょうか?
試しに
$sjis = '[\x81-\x9F\xE0-\xF7\xFA-\xFC][\x40-\x7E\x80-\xFC]|[\x00-\x7F]|[\xA1-\xDF]';
$emoji = '[\xF8\xF9][\x40-\x7E\x80-\xFC]';
$str = preg_replace('/\G((?:$sjis)*)($emoji)/', "\\1".'?'.unpack('n',"\\2").';', $str);
としてみたのですが、 絵文字のバイナリコードを$strに渡してもスルーされてしまいます。
(実行後も$strは元のバイナリコードのまま)
絵文字を変換できればいいので、正規表現であることにはこだわりません。
どなたか教えてください。
0656nobodyさん
2007/08/07(火) 19:55:09ID:MdqSrwDzecho "$key$value";
}
$keyは0から始まりますが、1から始まるようにすることはどうやってできますでしょうか?
0658nobodyさん
2007/08/07(火) 20:09:29ID:MdqSrwDzありがとうございます。
0659nobodyさん
2007/08/07(火) 20:17:00ID:???0660nobodyさん
2007/08/07(火) 22:23:25ID:sWk5FzeFcgiだとプロセス使って重くなるらしいので、
ファイル作成の部分だけを別離して、
if (!file_exists("filename")) {
//アクセスするだけでfilenameが作成されるcreate.cgiにアクセス
}
ということをしたいのですが、このcgiを呼び出す(アクセスする)ための関数みたいのありますか?
0663nobodyさん
2007/08/08(水) 01:29:50ID:???は満たしてるような
0664nobodyさん
2007/08/08(水) 03:40:33ID:9os+tc0T会員認証や、会員情報の登録を行うプログラムを作っているのですが、
セキュリティを高める為に、接続先DB関連の情報(ホスト名やsqlのuser、pass)を
宣言したPHPはhtdocsの外に置いてそれぞれ定数化するなどし、実行側PHPでは
それをincludeするなどしたほうがいいんでしょうか?
会員認証・情報登録のシステムを作る上で皆さんが行っている
セキュリティ向上の為の仕掛けやアイディアを教えてください。
よろしくお願いします。
0666nobodyさん
2007/08/08(水) 04:16:21ID:9os+tc0Tありがとうございます
具体的にはどういうことでしょうか?
henkou.php?dbhost=www.aaa.co.jp&dbUser=uName&dbUser=dbPass
みたいな感じですか? (僕の誤解でしょうか)
失礼ですが、もしこういう意味なら、逆に危なくないですか?
(セッションに保存した方がよさそうな…)
それともそんなに気にかける必要ないといういみでしょうか?
こんな時間に済みませんが、また気が向いたら教えてください
他の方もよろしくお願いします
0667nobodyさん
2007/08/08(水) 04:44:39ID:???別にやらないよりはやったほうがいいんじゃない
大事なのはどの手法にどんな利点と欠点があるかを正しく把握することかと
0668nobodyさん
2007/08/08(水) 04:57:16ID:???おいおい、そうじゃないよw
GETパラメータを内部ターンで回せばって言っている。
.htaccess使っているなら、rewriteを使ってGETパラメータ渡しすれば、
管理も楽でセキュリティーもかなり強固になる。
0669nobodyさん
2007/08/08(水) 05:20:50ID:???ですね〜 知識不足なんで色々調べてみます
ありがとうごさいました
>>668
htaccessをつかうんですか。知りませんでした、まるきり勘違いですみません…
調べて試したいと思います
ありがとうごさいました!
他にも気が向いた方がいたら、ご意見よろしくお願いします
0670nobodyさん
2007/08/08(水) 07:31:07ID:???これはあんぜんなの?
0671nobodyさん
2007/08/08(水) 07:58:39ID:???でなんか処理なんかしないよ。REQUEST_URIとかPATH_INFOのパスコンポーネント系で処理する。
0673660
2007/08/08(水) 09:02:10ID:CLPnux1Mどうもありがとうございます。
しかしfile_get_contentsでは作成されませんでした。(書き方が悪いのかもしれませんが・・・)
a.php
$filename = realpath('./') . '/test.txt';
if (!file_exists($filename)) {
file_get_contents('a.cgi');
}
?>
a.cgi
#!/usr/bin/php
<?php
include_once('a.php');
$handle = fopen($filename, 'x+');
fclose($handle);
?>
a.cgiに単独でアクセスするとちゃんと作られるのですが、
a.phpにアクセスしてもtest.txtが生成されません。(もちろんサーバ側にtest.txtはない状態です)
それとfile_get_contentsの本来の使い方とはだいぶ外れてるようですが、気にしないでいいですか?
もっと的確な関数や方法があれば是非アドバイスお願いします。
0674nobodyさん
2007/08/08(水) 09:48:51ID:???0675nobodyさん
2007/08/08(水) 10:00:15ID:???file_get_contentsはファイルのテキスト全文読み込み
includeはファイル読み込み
a.cgiをバックグラウンドで実行したいみたいだから
execかsystemじゃないのか??
0676nobodyさん
2007/08/08(水) 10:22:42ID:KXoVBglR0677nobodyさん
2007/08/08(水) 10:44:50ID:???たぶん正規表現の文字列のクオートをダブルクォートにする必要があるのと、
PHPのunpack()の返り値は文字列じゃなかったはず。
0678660
2007/08/08(水) 10:53:10ID:CLPnux1M>>674
こちらも書き方が悪いかもしれませんが無理でした。
>>675
>execかsystemじゃないのか??
こちらの関数もセーフモードじゃ制限があるのでcgiでないと・・・orz
こちらでやるならcgiよりシェルスクリプトでも作ったほうがよさそうですね。
とりあえず別の方法を思いついたのでそちらを試して見ます。
(ファイルがなかったら全工程を記述したcgiにheader関数で飛ばすという荒業・・・)
0679nobodyさん
2007/08/08(水) 11:02:21ID:???>PATH_INFOのパスコンポーネント系で処理する
というのは、shusei.php?namae=yamada という表記を /shusei/yamada とする処理のことですか?
この処理の意味は「ファイル名をディレクトリのように見せる」ということだと思うんですが、
その効果としては.phpを直接ダウンロードさせないことがメインなんでしょうか?
0681nobodyさん
2007/08/08(水) 13:01:37ID:b5KxDrLFが発生したプロセスには死んでほしいのですが
なぜか固まって生き残ってしまいます。
この人たちに自殺させる方法を教えてください。
0682nobodyさん
2007/08/08(水) 13:06:16ID:???0683nobodyさん
2007/08/08(水) 13:09:54ID:???まずエラーメッセージはググレ
http://www.google.co.jp/search?q=Maximum+execution+time+of+30+seconds+exceeded&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox
0685nobodyさん
2007/08/08(水) 13:46:27ID:???$var=計算式
return $var;
}
$a=hoge();
こうすれば$aに$varが入るのは分かるんですが、2個以上の返り血をもらいたいときはどう書けば良いんでしょうか
function hoge(){
$var1=計算式
$var2=$aを使って計算
return ????
}
$va1や$var2を計算する文を毎度書いているのでなんとかしたいです
0687nobodyさん
2007/08/08(水) 13:58:55ID:???0688nobodyさん
2007/08/08(水) 14:00:12ID:???0689nobodyさん
2007/08/08(水) 14:01:10ID:???0690nobodyさん
2007/08/08(水) 14:05:15ID:j6ELTh/zini_set('session.use_only_cookies', 0);
ini_set('session.use_cookies' , 0);
ini_set('session.use_trans_sid' , 1);
で、セッションにクッキーを使わず、自動的にURLにセッションIDを付加させたいのですが、
リンク先に飛んでもIDを付加してくれません。
ほかになにか設定を変更する場所があるのでしょうか?
(リンク先にも同じ設定をしています。)
0692nobodyさん
2007/08/08(水) 14:23:53ID:j6ELTh/zローカルのリンク先ではなくサーバーのリンク先になっていましたorz
0693nobodyさん
2007/08/08(水) 14:53:34ID:???0694nobodyさん
2007/08/08(水) 15:00:00ID:2+jr8RRcもしかしてxml関係の関数で簡単にできちゃったりする?
0695nobodyさん
2007/08/08(水) 15:07:43ID:???0696nobodyさん
2007/08/08(水) 15:28:29ID:2+jr8RRcどうもありがとうございます。
ですよね。でも構造が似てるので、できちゃったりするのかな、と思いました。
それでいろいろ調べてみた結果、tidy関数というものがありました。
そこで、もう1つ質問で、
PEARって、インストールしていないPHP上でも動くようにできないんですかね?
例えば、tidyのライブラリ?を作ったものの同じフォルダに入れて、zipしたり。。。
つまり、なるべくどこでも動くようにしたいのです。
0697nobodyさん
2007/08/08(水) 15:38:15ID:???0699nobodyさん
2007/08/08(水) 15:42:43ID:???PECLのインストールは管理者じゃないと無理
0701nobodyさん
2007/08/08(水) 16:22:03ID:9os+tc0T$documentroot = dirname(__FILE__)."/";
require_once $documentroot.'../php_libs/config/config.inc.php';
上記のようなソースが今使っている本に書いてありました。
1行目は現ファイルの絶対パスに末尾に/を付けて変数に入れてるわけですが、
2行目は何をやっている処理なんでしょう?
require_onceが対象ファイルを読み込む関数ということはわかるんですが…
ファイル構造は
/htdocs/index.html(このファイル)
/php_libs/config/config.inc.php
という形になっています
0703nobodyさん
2007/08/08(水) 16:29:29ID:???そこまで考えれたんならもうちょっとだろ
・require_onceが対象ファイルを読み込む関数
・$documentroot.'../php_libs/config/config.inc.php';
・$documentrootの中身
0704nobodyさん
2007/08/08(水) 16:54:42ID:9os+tc0Tありがとうございます しかしわからないです
「.」 連結演算子?の理解不足なんですかね〜
現在の階層に相対パス(ファイル)をくっつけてる??? わけないか、、
本の文脈的には「config.inc.php」の中身を読みに行く処理だと思うんだけど…
見たことない書式なので…
0705nobodyさん
2007/08/08(水) 16:56:38ID:???echo $documentroot.'../php_libs/config/config.inc.php';
してみればいいんじゃない?
0706nobodyさん
2007/08/08(水) 17:02:55ID:j6ELTh/zmixiにログインして、自分のページの名前などを引っ張ってきたいのですが何か良い方法はないでしょうか
0707nobodyさん
2007/08/08(水) 17:04:55ID:???ためしてみてできなかったら質問してください。
0708nobodyさん
2007/08/08(水) 17:06:22ID:j6ELTh/zログインを試しました
すると、ダミーページ?みたいなのがあって、そこでhome.plにジャンプする仕様でした
セッション維持できれば次にhome.plに飛ばすこともできるんですが、
どのようにすればセッションを扱えるのかなと
0709nobodyさん
2007/08/08(水) 17:07:18ID:OHuigtha0710671
2007/08/08(水) 17:09:54ID:CQkJQVbI>shusei.php?namae=yamada という表記を /shusei/yamada とする処理のことですか?
違う。それを一番シンプルなかたちでrewriteで書くなら
shusei/(..*)$ suisei.php?namae=$1
shuseiも隠したいなら(単なるyamada) ^(..*)$ suisei.php?namae=$1
この場合「GET」 OR QUERY_STRINGS値として取得される。
PATH_INFO,REQUEST_URI系と言ってるのは、
rewrite無しでも
shusei.php/yamada(あるいは直下のパスに意味を持たせたいならshusei.php/namae/yamadaとか)
yamada以下の部分はPATH_INFO、REQUEST_URIでなにもせずに処理可能
rewrite有りならさらにshusei.phpを全部隠しながら単なるyamadaでいい。
^(.*)$ shusei.php ←REQUEST_URI
^(.*)$ shusei.php/$1 ←PATH_INFO系
つまりはGET云々なんか無視してやればいいということ。
一番スマートなのは、apacheを使ってるならばREQUEST_URI系。
■ このスレッドは過去ログ倉庫に格納されています