【PHP】下らねぇ質問はここに書き込みやがれ 61at PHP
【PHP】下らねぇ質問はここに書き込みやがれ 61 - 暇つぶし2ch175:nobodyさん
07/12/23 06:23:36 /N04QiDA
sageてしまった……すいませんorz

SimpleXMLElementで、

<data>
aaa
<p>bbb</p>
ddd
</data>

てなXMLの"aaa"とか"ddd"のようなTextノードにはどうやって
アクセスしたらいいでしょう??
asXML()すると復元できるんだよなぁ


1つ思いついたのは、
$dom = dom_import_simplexml($xml);
$dom->firstChild->nodeValue = 'zzz';
$sXml = simplexml_import_dom($dom);
とやる。
ってこれじゃーSimpleXMLの意味がない

176:nobodyさん
07/12/23 07:02:39
XMLはあまり得意じゃないんで補足を待ちたいが、"aaa"とか"ddd"ってそれぞれ
単独のテキストノードなの?
aaa~dddまでひとつのノードじゃないかって気がするんだけど。
<data></data>しかないじゃん。

さらにそのサンプルは<data>zzz</data>にしてる気がするんだけど、
"aaa"や"ddd"へのアクセスってのとの関連がよくわからん。

177:nobodyさん
07/12/23 07:13:23
んでいちお意図を汲み取ると
<?xml version='1.0' standalone='yes'?>
<data>
<content>aaa</content>
<content><p>bbb</p></content>
<content>ddd</content>
</data>
ってことになるのかな。
$dom->content[0]で"aaa"、$dom->content[2]で"ddd"が取得できる。

後半意味が分からんのは変わらんので、
URLリンク(jp2.php.net)
ここの例の部分よく読んで意図がちゃんと分かるように書き込みやがれこのキャベツ野郎。

あ、書いたXMLが正しいかどうかはとりあえずメモ帳当たりにコピペしてXMLで
保存してIEあたりで開けば分かるよ。

178:nobodyさん
07/12/23 07:19:03
>$dom->content[0]で"aaa"、$dom->content[2]で"ddd"が取得できる。

ここ紛らわしいかな。
$xml = new SimpleXMLElement($xmlstr); //$xmlstrには177のXML文字列が入る
$content0 = $xml->content[0]; // aaa
$content2 = $xml->content[2]; // ddd
ってことね。

179:175
07/12/23 07:45:21 /N04QiDA
<data>
aaa
<p>bbb</p>
ddd
</data>

この状態でXMLとして正しくてDOMで厳密にいうと、
Elementノードdataの最初の子はTextノードで、"\naaa\n"となる。
2番目の子は、Elementノードpで最後の子がTextノードの"\nddd\n"。

んで、SimpleXMLElementから、"\naaa"などのTextノードにアクセスしたい。

$sXML = new SimpleXMLElement($xml);
$dom = dom_import_simplexml($sXml);
$dom->firstChild->nodeValue = 'zzz';
$sXml = simplexml_import_dom($dom);
ってやると、結果は
<data>zzz<p>bbb</p>
ddd
</data>
となる。

'zzz'の部分を"\nzzz\n"とすれば、
<data>
zzz
<p>bbb</p>
ddd
</data>
こうなる。




180:175
07/12/23 07:49:19 /N04QiDA
あっしまった。s/sXML/sXml/です。

ちゃんと書くとこう。
<?
$xml = <<<XML
<data>
aaa
<p>bbb</p>
ddd
</data>
XML;

$sXml = new SimpleXMLElement($xml);

$dom = dom_import_simplexml($sXml);
$dom->firstChild->nodeValue = 'zzz';
$sXml = simplexml_import_dom($dom);

echo $sXml->asXML();
?>

181:nobodyさん
07/12/23 10:36:41
すみません質問です。 ヒアドキュメントの中で、プルダウンを動的に生成できません
というか、ヒアドキュメント外で実行した関数の値(プルダウン表示)を中に
持ち込めない状況です
$address1_PD = $callData->makeKenPd("address1",$address1,1);
(↑の関数は、<option val=n>nName</option>を40回ほどループしてprintします)
echo <<<DOC
<select name="address1">
$address1_PD;
</select>
DOC;
とやってもうまくいきません $address1_PD = print($callData~ なども
試したんですがダメでした
お手数をおかけしますが、回答お願いします php5 apache2 winxpです

182:nobodyさん
07/12/23 10:37:51 6DPIzhWO
すみません 上の181書き込みe-mail欄を消去しそこねました
アドバイスよろしくお願いします

183:nobodyさん
07/12/23 11:22:06
おっぱいカッコ

184:nobodyさん
07/12/23 11:42:34 MvcJEZMN
fgetcsvについて質問です。
A,B,C,D,E
F,G,H,I,J
K,L,M,N,O
という内容のテキストファイルcount.txtから

$handle = fopen("count.txt", "r");
$data = fgetcsv($handle);
for ($c=0; $c < 5; $c++) {
echo $data[$c];
}
fclose($handle);

というコードを用いてファイル内容を表示させようとしてるのですが
一行目までのABCDEまでしか値を取得出来ません。
二行目を抜き出すにはどんな条件を設定すればいいのでしょうか。
PHPManualを見ても、どの条件が該当するのか分からなかったので
よろしくお願いします。

185:nobodyさん
07/12/23 11:53:45
>>184
URLリンク(jp2.php.net)
例をよく見ろ

186:nobodyさん
07/12/23 12:12:21 MvcJEZMN
>>185
すみません、質問が悪かったですね。

Manualでは表示のためにwhileでfor文を繰り返してることは分かるのですが
!== FALSEがファイルの終端での全処理終了条件であることを除けば
単純にfor文を繰り返してるだけに見えるんです。
ABCDEABCDE...とループを繰り返さないための条件が何処に該当するのか、
ご教授お願いします。

187:nobodyさん
07/12/23 12:41:31
>>186
fgetcsv()すればファイルポインタが1行進む。
しまくればいずれEOFに到達して終わる。

188:nobodyさん
07/12/23 13:01:34 MvcJEZMN
>>187
whileの継続条件で用いられているfgetcsvが、
同時にポインタを進める役割も果たしてたということですか。
ポインタについてあまり学んでいないので気づきませんでした。
回答ありがとうございました。

189:nobodyさん
07/12/23 13:06:40 Dd+txFZ/
質問です。
変換するコマンド、をexecさせたいのですが、
どうしても引数を受け取る関数が必要なのでしょうか?
例えば、
exec("convert $hoge $huga);
$hogeが引数のファイル
$hugaがconvertした後のファイル
としたいのですが、失敗してしまいます。

190:nobodyさん
07/12/23 13:25:53
上の文を訳しなさい。【30点】

191:nobodyさん
07/12/23 13:37:38
質問です。
FATをNTFSに変換するコマンドconvertをPHPのexec関数で実行させたいのですが
どうしても出力を受け取る第二引数が必要なのでしょうか?
例えば、
exec("convert $hoge $huga);
$hogeが変換するファイル名
$hugaが変換後のファイル名
としたいのですが、失敗してしまいます。

192:nobodyさん
07/12/23 13:39:07 j7tEfXX4
質問があります。
PHP+PostgresqlまたはPHP+mysqlでシステム
を作ろうと思うのですが、PHP5が認識をしてくれません。
PHP info();でその部分がでてきません。
なんのパッケージをインストールしたらいいのでしょうか?
OSはFedora core4です。
板違いかもしれませんが、よろしくお願いします。


193:nobodyさん
07/12/23 13:42:43
>>192
何をしたけど認識をしてくれないの?

194:nobodyさん
07/12/23 13:48:06
SQLを、じゃない?

195:194
07/12/23 13:48:45
誤爆

196:nobodyさん
07/12/23 14:46:06
>>192
板違いです
「fedora core4 php mysql インストール」とかでググレカス

197:nobodyさん
07/12/23 14:55:33
板違いだが教えよう。
普通はyumでいれればパッケージ全部はいるはずだが、あとはphp-mysqlを入れればよいはず。php関連に限っていえばね

198:176
07/12/23 15:49:32
>>175
そのXMLであってるのか。。
DOM的には確かにノードの扱いはそうなると思うけど、XML的には
\naaa\n<p>bbb</p>\nddd\n がひとつのノードになるのは確かだと思う。
なので、
・DOM使ってXML的にもノードがばらけるように変換する。
・XML文字列を適当に文字列変換する。

くらいしかやっぱりないような気がするけどなあ。

199:nobodyさん
07/12/23 16:13:53
>>175>>176
\naaa\nはTextNode
<data></data>、<p></p>はElementNode
firstChildNode、SiblingNodeとNodeTypeとかでとれる気もするけどXMLってそういう使い方はしない気がする。
そしてSimpleXMLElementにそれがあるかどうかは知らない。

200:nobodyさん
07/12/23 17:04:49 4Xlz9Mde
複数の変数をいっきにチェックしたいのですが効率的な書き方ありませんか?

if (empty($var1) && empty($var2) && empty($var3))

今こんな風になってます。

201:nobodyさん
07/12/23 17:13:25
自分で関数を作る

202:nobodyさん
07/12/23 17:52:07
emptyて !$hoge と同義じゃなかたけ?


203:nobodyさん
07/12/23 17:56:22
>>200
別にその書き方でいいと思うんだけど。

204:175
07/12/23 18:08:04 /N04QiDA
>>175
XPathでもXQueryでもSAXとかも全部別々にあつかうし
XMLでも、それぞれ別にあつかうよ

>>198
それについては、>>179-180に

結論としては、やっぱ無理っぽい
SimpleXMLElementって名前な時点で、Elementノードしか
無理じゃないかな~て気はしてたんだ

それでもやるなら、SimpleXMLElement派生させるなりHelper関数用意するしかないっぽい


205:175
07/12/23 18:11:12 /N04QiDA
どんべえ食いながらレスしてたら、レス番号ずれまくり……orz
>>204において

>>175>>198
>>198>>199

です。

206:nobodyさん
07/12/23 18:11:19
>>202
変数限定(返り値や即値は使えない)ってことと
UndefinedVariableエラーにならないってとこらが違うかな。

207:nobodyさん
07/12/23 19:35:35
>>200
in_array

208:nobodyさん
07/12/23 19:56:37 Lt3D3rib
PHP4 から PHP5に移行して
サンプル集を買ってきたんですが

$select = "select * from hoge where name = $hage";
$query = mysql_query($select);
$result = mysql_result($query,0,0);

などと書いてた事が

$db = new mysqli(-------);
$aa = $db->prepare("select * from hoge where name = ?");
$aa->bind_param("s",$jakld);

みたいな文に変わってるのですが、結局どっちでもいいのでしょうか?
かなり戸惑ってまして一から勉強しないと全く分からない状態で・・。


209:nobodyさん
07/12/23 19:57:23
>>200
1つのメソッドにする。
by 「リファクタリング」

210:nobodyさん
07/12/23 20:04:09
>>208
mysql関数を使うスタイルとmysqliを使うのは
好き好きでいい(でもPHP5以降ならmysqli使った方がスタイルが入り混じらないので良い)
けど、後者のサンプルにあるプリペアードクエリの発行の仕方は反映した方が良いよ。

211:nobodyさん
07/12/23 20:23:13
>>208
練習したり、ちょっとした使い捨てでないなら、どっちもよくない
PDOでもadodbなりPEARのライブラリなり、何でもよいが、
なんらかのインターフェイスでラップするべき
お薦めは、PDOだ。

212:nobodyさん
07/12/23 20:24:33 2UmaE0fQ
pdoってなんですか?

213:208
07/12/23 20:38:27 Lt3D3rib
>>210
ありがとうございます。
prepareはたしか、パフォーマンスの向上と自動的にエスケープ
されるんでしたよね。

>>211
参考になります。ありがとうございました。

>>212
PHP Data Objects (PDO)
俺が説明するより検索したほうが確かな情報が得られると思うので。

214:208
07/12/23 20:51:51 Lt3D3rib
あ。。。
mysql4.1移行はmysqliを使わないとだめなんですね。。
サーバーが4.1以降だからmysqli使わないと・・・。

勉強しなおしか・・・。

215:nobodyさん
07/12/23 21:04:06
別にmysqlでも書けるけど

216:208
07/12/23 21:34:13 Lt3D3rib
>>215
え?
試してみましたがエラーになってしまいます・・。

217:nobodyさん
07/12/23 21:38:57
エラーになったと言われても
エラーを晒さないと解らないな

・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。


218:208
07/12/23 21:44:48 Lt3D3rib
>>217
大変失礼しました。。。
平凡なエラーなんですが
Call to undefined function mysql_connect
です。

なんか凡ミスしてるっぽいなぁ・・・。

219:nobodyさん
07/12/23 21:56:53
ぉぃぉぃ…

220:nobodyさん
07/12/23 22:15:35
>>218
エスパーなので、Windowsだということも判るし
php_mysqli.dllが読み込まれてるのに
php_mysql.dllは読みこまれてないということも判る。

221:208
07/12/23 22:18:13 Lt3D3rib
!!
あなたの言うとおり!

ありがと。

222:nobodyさん
07/12/23 22:20:25
すげえw

223:nobodyさん
07/12/23 23:00:41
以上、自演でお送りしました

224:nobodyさん
07/12/24 00:05:58
ID:Lt3D3ribが楽しそうでなによりだ。

225:nobodyさん
07/12/24 00:48:15 sRF6QhUm
192です。
fedora core4 php mysql インストールで
ググッてみたんですが、でてきません。
また、今後はどこの板で聞けばいいでしょうか?
後postgresqlも認識してくれないのですが。
php-mysqlと同じでいいのでしょうか。
すいませんが、よろしくお願いします。
このことに関するサイトがあれば教えてください。



226:221
07/12/24 00:59:41 PecBMOMk
>>225
ここじゃだめかしら?

URLリンク(www.fedoraz.com)

227:nobodyさん
07/12/24 01:37:31
>>225
それで検索すると>>226が出てくるわけで、それで分かんなきゃあきらめたほうがいい

228:nobodyさん
07/12/24 02:52:04
あるサイトに昨日アクセスした際にスクリプトエラーが出て、
その内容が画面に出た際、xxx.incの何行目のエラーとか出た。
試しに、xxx.incのURLで指定したら、そのソースが丸見えwwで、
その中にDBの接続のためのパラメータ(ID、PWDまで)まで書かれている。

こんな馬鹿な作りをしているサイトに天誅を下そうと思うのだが、
面白い天誅の食らわし方ない?

知っている人も結構多い、大きめのサイトなんだが。

229:nobodyさん
07/12/24 03:11:37
>>228
は?直ちに管理者にその旨を連絡するべきなのに、悪用しようなんてお前が逆にリアル天誅を食らうだけだから

一応言っておくと、明示的に公開されていないものに対してのアクセスで逮捕された前例もある

230:192です。
07/12/24 03:19:58 sRF6QhUm
226さん、227さんありがとうございます。
postgresqlも使いたいのですが、yumでphp側のインストール
はなにをすればよいでしょうか?
サイトがあれば、サイトはありがたくブックマークしました。


231:208
07/12/24 05:28:08 PecBMOMk
>>229
「リアル天誅」ウケたwwwww

>>230
ごめんよ。fedora core4 とか初耳だし
OS違うとそんなにインストの方法が変わるなんて
知らないし、教えてあげられんよ。。。

232:nobodyさん
07/12/24 05:48:42
>>230
検索ぐらいしようぜ
yum postgre phpとかで検索すれば直ぐ出てくるだろ


233:nobodyさん
07/12/24 08:41:55
>>229
じゃ、リアル天誅を食らわないように、日本の捜査権が及ばないクラッキング集団のサイトとかないの?
そこで、IDとPWDさらせば問題ないってことだよね?

234:nobodyさん
07/12/24 09:30:50 P1UMzL+u
phpMyAdminでCSVデータをインポートする時に、
CSVのフィールド囲み記号は「"」で指定すると、
データの数値で「"」で囲まれていない部分があると読み込んでくれません。
(「フィールド数が合わない」とエラーが出ます。)

もともとこういう仕様なのでしょうか・・・?
それだと、ダウンロードしてきたデータが読み込めなくて大変です
(基本的に「"」で囲まれているのは文字列だけなので)

235:nobodyさん
07/12/24 09:49:55
>>233
やー、考え浅いぞ
そういう奴らそもそも裏取るまで行動起こさないし、まずそういう情報投げた奴を洗うし叩くし。要はここと大差ねえな
そういう厨房っぽい所存でいくなら、ハッカーになりたがってるご同類の
サイトの掲示板にでも書き込んだ方がいいんじゃねえの。
無論揉め事になったら煽動で関わった事になるけどな

忠告はした
alt.2600あたりでぐぐってあとはお好きなように。類似のアレなのも色々芋蔓で引っかかるでしょう
一応先に自衛でtorやらのなんとかする品物でも入れとけよ

236:nobodyさん
07/12/24 10:14:28
>>235
詳しくサンクス。参考になった。

最近多いんだよな。素人のくせに自鯖立てて踏み台にされて迷惑掛けているやつとか、
簡単に会員の個人情報がわかるようなサイトとか、
こういうのは天誅を下さないとダメだろうなぁ。

こういう奴に限って、過失を認めず、過失を認めても誤って終わりとか。
警察や役所やプロバイダーやクレジット会社から個人情報が流出しても、損害賠償なんてしないし、天誅しかないな。

237:nobodyさん
07/12/24 10:17:04
ちなみに、俺はクレジット会社から個人情報が流出されて、
一時期毎日のようにサラ金業者から電話に掛かってきた。
テレビで報道されているのを知って、苦情言っても、
謝っても、それは私たちから漏れている情報ではないかの一点張り。理不尽な世の中に天誅を。

238:nobodyさん
07/12/24 10:34:27
世知辛い大義名分だなあ
もっと理性的な説諭の手段がありそうなもんだが。
ま、ただの感想だ。流してくれや

239:192
07/12/24 11:13:48 sRF6QhUm
URLリンク(shikabo.ddo.jp)
これがみつかった。
ほかにないかな?

240:192
07/12/24 11:14:47 sRF6QhUm
連続すいません。
上記のがみつかったのですが、
ほかにもっと詳しく書いてあるサイトはないかな?
知っている人よろしくです。


241:nobodyさん
07/12/24 11:23:36
もっと詳しいのが必要ってことは、そこの手順と対処方法で躓いたんだよね?
どこで躓いたのか明記しないと誰も有益な情報返せないんじゃないかな
只でさえfcな人がどんだけ見てるのか判らんのだし。

linux板とか当たってみるのもありかも

242:nobodyさん
07/12/24 12:32:11
なんとか苦労してApache2.0とPHP5をインストール完了。
ブラウザはFireFoxを使ってるんだけどアドレスバーから「URLリンク(localhost)」と打つと
問題なくページが表示されるんだけどフォルダからダブルクリックで「abc.php」を開くと
ブラクラみたいにタブが無限に開いていってしまう (; ´Д`)

どうしたらいいんですか・・・・?

243:nobodyさん
07/12/24 13:19:28
>>242
abc.phpのどっかが無限ループになってるんでしょ。
winならxamppという便利なものがあんのに。

244:nobodyさん
07/12/24 15:48:25 tHEPo1ls
<form>
<input type="text" name="text">
<input type="submit" value="test1" name="test1">
<input type="submit" value="test2" name="test2">
</form>

こんな感じでformの中にinput-submitのボタンが複数あって、
押したボタンによってPHP側で"text"の処理分けしたいんですが、
valueの値で判定するしかないんでしょうか。
valueだとボタンの名前として表示されるため他の方法を探しています。

245:nobodyさん
07/12/24 16:15:56
>>244
var_export($_GET); したものをtest1、test2のクリック時に見比べてみ

246:nobodyさん
07/12/24 16:27:38
isset()

247:244
07/12/24 17:11:12 tHEPo1ls
>>245
valueの値だけは違いがありますね。

input-submitじゃなくて
button-submitを使いボタン名をvalueとは別に設定することで解決しました。
レスありがとうございました。

248:nobodyさん
07/12/24 17:19:57
どうみても押したボタンのnameとvalueのセットだけが送信されます。
本当にありg(ry

249:244
07/12/24 17:29:41 tHEPo1ls
別の処理でうまくいった気がしたので過信してました。
本当にありがとうございました…。

250:244
07/12/24 17:54:23 tHEPo1ls
あまりに下らないので、スレ汚し続けたくはないのですが間違いがあったので訂正だけ。
<button type="submit" value="test" name="test1">内容</button>
だとvalueに設定されているtestは送信されなくて、内容が送信されるようですね。
手元のHTML本ではvalueが送信値となってますが、仕様変更でもあったのか。

>>248さんのご指摘とは違い他フォームの内容もちゃんと送信される模様です。

251:nobodyさん
07/12/24 18:18:44
>>250
嘘だろうと思って動作確認したらIE7では確かにそう動いた。
ちなみにFireFox2 Opera9 ではvalue値が送信されてる。(IE7と動作が異なる)

PHPの話題じゃないけど、RFC的にはどうなんだろ。

<html>
<head><title>test</title>
<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
</head>
<body>
<?php print_r($_GET); ?>
<hr/>
<form action="test.php" method="get">
<button type="submit" value="test" name="test1">内容</button>
</form></body></html>


252:245,248
07/12/24 19:02:38
RFCというよりHTML4の仕様なんだけど、IE6,7はそれに従っていない。
以下のコードで、
・name1 name2 のいずれかをクリックした時に、3,4は送信されるべきでは無い
・name3 name4 のいずれかをクリックした時に、value3またはvalue4が送信されるべき

DOMの扱い時にも同様の支障がでてくる。
なので、buttonを使うより、input type=button を使う方が良い。(buttonに比べて表示の自由度は落ちる)

検証用コード
<html><body><form>
<input type="submit" name="name1" value="value1"></input>
<input type="submit" name="name2" value="value2"></input>
<button type="submit" name="name3" value="value3">3</button>
<button type="submit" name="name4" value="value4">4</button>
</form><p>
<?php
var_export($_GET);
?>
</p></body></html>

253:nobodyさん
07/12/24 22:47:49
まじで?
IE7でも相変わらず腐ってるんだな・・

254:nobodyさん
07/12/25 08:19:17
imap_open とかでサーバ側のエラーメッセージ(たとえば、LoginError)を
取得したいのですが、基本的に不可能でしょうか?
ZendFrameworkのZend_Mail使ってみたんですが、
オブジェクト指向を完全に理解していないオイラには
かなりつらい部分があったので、imap関数に移ろうとしてるのでつが。

255:255
07/12/25 09:05:15 Coxwnlyh
linux環境でphpを勉強し始めて5日の者です。phpのサンプル集を買って勉強しているんですが、
その中のメールフォームサンプルを自分のサイトの隅っこに置いて、apacheを起動させて動作確認してみたところ、
フォームに文字入れて確認画面に進み、送信を押すと 本当は「送信成功しました。or失敗しました。」と表示されるはずが、何も
表示されず、メールも送られていません。php.iniはデフォのままなんで、そこがダメなんじゃないかと思うのですが、
どうなんでしょう。書籍には何も書いてないです。

256:nobodyさん
07/12/25 10:39:57
エラーのときどうする、って話が書いてない本はダメだね。
そういう本(書いてない本)多いけど

257:nobodyさん
07/12/25 11:11:07
zend_extensionとextensionの違いってなんでしょう?
何時もphp.iniに書く時に迷う・・・

258:nobodyさん
07/12/25 11:15:16 M0LvCdnx
>>255
送信しましたor失敗しました あたりのソースうp


質問ですが、SQLインジェクション対策ってどうしてます?
自分はMySQLを使っていたので、mysql_real_escape_strngを使っていたのですが、
他のデータベースでも書き換えなくていいように、全てのデータベースで活用できるような
インジェクション対策などありませんでしょうか?

259:nobodyさん
07/12/25 11:53:41
>>258
PDOを使うのが定石かなぁ。

260:nobodyさん
07/12/25 12:06:36
pdo丸投げで一切自前では対策してないけど、それでいいのか不安w

261:nobodyさん
07/12/25 13:18:29
test.iniってファイルを
parse_ini_file("test.ini",true);
で読み込むとshift_jisで読み込まれちゃうんですが、ファイル読み込みのエンコーディングをUTF-8にしたいんです。
iniや表示するphpファイルは全てUTF-8になっています。
php.iniでファイル読み込みのエンコードとかでしょうか?

iniの中身は
------------------
[友達]
"佐藤" = "コスプレ"
"伊藤" = "女装"
------------------

262:nobodyさん
07/12/25 13:20:42
>>261
>>1

263:nobodyさん
07/12/25 13:31:06 Kk9QHm5I
すいません、下げ忘れていました

test.iniってファイルを
parse_ini_file("test.ini",true);
で読み込むとshift_jisで読み込まれちゃうんですが、ファイル読み込みのエンコーディングをUTF-8にしたいんです。
iniや表示するphpファイルは全てUTF-8になっています。
php.iniでファイル読み込みのエンコードとかでしょうか?

iniの中身は
------------------
[友達]
"佐藤" = "コスプレ"
"伊藤" = "女装"
------------------

PHP Version 5.2.4

264:nobodyさん
07/12/25 14:32:50
>>263
とりあえずキーはダブルクォート出来ません。

265:nobodyさん
07/12/25 14:41:28 Kk9QHm5I
>>264
そうなんですか、それでも文字コードの問題は残るので解決方法があればお願いします。
ひとまずキーにダブルクォートで動いてはいます。

266:nobodyさん
07/12/25 14:45:46
キーを英語にし、ダブルクォートでも文字化けは変わりませんでした。
一応ご報告を

267:nobodyさん
07/12/25 14:47:22 V7kmAO2b
非常に下らないかもしれませんが、EOSでの質問です。

$bbb[0]['abc']="表示テスト";
$a=<<<EOS
<table>
 <tr>
  <td>$bbb[0]['abc']</td>
 </tr>
</table>
EOS;
print $a;

EOS内で連想配列の変数を簡単に吐き出す方法はありますか?
そのままだと Array['abc'] となってしまいます・・。
変数に入れ直せば良いのですが種類が多いと大変で・・

皆さんはどうやってますでしょうか。

268:nobodyさん
07/12/25 14:51:23 ek1/aJk1
PHPの質問と言っていいのか悩んだんですが、PHPファイルに限って起きるので質問させてください。

WEBサーバーでSSLを設定してそこにPHPファイルを配置したところ、httpでのアクセスだとPHPは正常
に動くんですが、httpsだと何故か404になってしまいます。
他の形式(aspx、txtや画像)はhttpでもhttpsでも問題無く動くのでアクセスしているフォルダが違うとかは
考えられず、httpだとPHPは動くのでPHP自体がおかしいってことも考えられず…。
通常のSSLの設定は終えていますが、PHPをSSLに配置する際は他に何か設定等必要なんでしょうか?

環境ですが、
Windows2000ServerSP4 + IIS5.0 + PHP5.2.5 (+ VisualStudio2003)
です。

よろしくです。

269:nobodyさん
07/12/25 14:52:26
>>267
変数を挿入するときは
{$bbb[0]['abc']}
のように括りましょう。

270:nobodyさん
07/12/25 14:57:18 V7kmAO2b
>>269
即答ありがとうございます!それだけで良かったんですね

基本的な方法が分からずにいろんな遠回り処理した上で
えーーそんな簡単にできたの・・みたいな事がよくあります

有難うございました。

271:nobodyさん
07/12/25 15:32:13
>>268
404時のエラーログに出るフルパスは同じもの?

272:268
07/12/25 15:51:19
>>271
IISのログには相対パスのみ出てまして、httpとhttpsとで別サイトとして登録してますので
パスは別物です。

273:nobodyさん
07/12/25 16:12:23
>>263
自己解決しました。
凡ミスだったので気にしないでください・・。 ;-;

274:nobodyさん
07/12/25 16:32:12
PHPのメジャーな統合開発環境って何ですか?
フリーので。

275:nobodyさん
07/12/25 16:35:17
>>273
       ヽ(・ω・)/   ズコー
      \(.\ ノ

276:nobodyさん
07/12/25 16:41:01 Kk9QHm5I
>>275
すいません ><
ID出し忘れたので偽者と思われないようにも返信しときます・・

277:nobodyさん
07/12/25 16:44:26
>>274
       ヽ(・ω・)/   ドボン
      \(.\ ノ

278:nobodyさん
07/12/25 17:37:59
>>274
EmEditor→phpエディタ→phpeclipse→zend
と使ってきたけど俺はphpeclipseが一番使いやすかった

279:nobodyさん
07/12/25 19:39:53 YdyXWQpG
Yahooのニュース記事の表示が、馬鹿丸出しなんだけどwwwwwwww

URLリンク(headlines.yahoo.co.jp)

 <futoji>元福岡地検検事正で公証人の絹川信博さんの話</futoji> 「鑑定結果が今後、民事訴訟の証拠として採用される可能性は十分ある。
民事分野でも、ポリグラフの活用範囲が広がる可能性がある」

280:nobodyさん
07/12/25 20:31:12 qdKsQYMA
質問です。

array("aaa" => "bbb", "ccc" => "ddd" "???" => "fff")

この配列から「三個目の要素」であること、又は「値がfff」であることから、
不明なキー名である???のみを抜き出したいのですがどのような方法があるでしょうか。
よろしくお願いします。

281:nobodyさん
07/12/25 20:43:37
>>280
URLリンク(www.php.net)

282:nobodyさん
07/12/25 21:14:34 qdKsQYMA
>>281
普通に定義されてるんですね。回答ありです。

283:nobodyさん
07/12/25 22:37:15
>>281
ゴクリ・・・

284:nobodyさん
07/12/26 00:37:13
>>283
やめとけ、その釣り針に味わいどころがあるようには思えない。

285:nobodyさん
07/12/26 00:57:00
 下記 ※※※ の部分にconvertコマンドで画像を少し加工したいのですが、

×imagejpeg ($image_new , $uploadfile , $quality);
○imagejpeg ($image_new , $image_temp , $quality);
 にして、

 /usr/bin/convert オプション $image_temp $uploadfile;
にすると、

PHP Parse error: syntax error, unexpected '/'
in /home/webmaster/blog/nucleus/plugins/NP_ImageLimitSize.php on line 65,
referer: http://******/nucleus/plugins/mediatocu/media.php

 と、出ました、フルパスで書けば問題無いと思ったのですが、どのようにコマンドを挿入すればいいでしょうか?

function event_PreMediaUpload(&$data) {

$collection = $data['collection'];
$uploadfile = $data['uploadfile'];
$filename = $data['filename'];

// evaluate the filetype from the filename
$filetype = strtolower(substr($filename, strpos($filename, ".")+1));



286:285
07/12/26 00:57:53
// filetype is jpeg
if ($filetype=='jpg' || $filetype=='jpeg') {

$size=getimagesize($data['uploadfile']);

// size[0] is the image width
if ($size[0]>$this->getOption('maxwidth')) {

$newheight = $this->getOption('maxwidth') * $size[1]/$size[0];
$image_orig = imagecreatefromjpeg($uploadfile);
$image_new = imagecreatetruecolor($this->getOption('maxwidth'), $newheight);
$quality = $this->getOption('quality');

imagecopyresampled($image_new, $image_orig, 0, 0, 0, 0, $this->getOption('maxwidth'), $newheight, $size[0], $size[1]);
imagejpeg ($image_new , $uploadfile , $quality);

                ※※※

// clear the memory
imagedestroy($image_orig);
imagedestroy($image_new);

}
}

287:nobodyさん
07/12/26 01:02:18
>>1

288:285
07/12/26 01:08:43
>>287
CentOS 5.1
PHP 5.1.6
apache 2.2.3
これ以外しか思いつきません。

289:285
07/12/26 01:10:06
×:これ以外しか思いつきません
○:これしか思いつきません

290:nobodyさん
07/12/26 01:39:36
CentOSってのもあるのか……
Linux界隈、ディストリ間の差異大杉でFreeBSD派にはついていけねえな

291:nobodyさん
07/12/26 03:42:29
カーネル一緒なんだから大差あるようで本質的には大差はない

292:nobodyさん
07/12/26 04:19:38
プリインストールされてるソフトが違うWindowsみたいなもんだからな

293:nobodyさん
07/12/26 04:56:01
>>285
> PHP Parse error: syntax error, unexpected '/'
PHPの文法レベルでエラーが出てるんだからフルパスとかコマンドの違いとか全然関係ねーよ。

>  /usr/bin/convert オプション $image_temp $uploadfile;
> にすると、
ってこれ、PHPのソース中にシェルコマンドを生で書いてるのか?
PHPはシェルスクリプトじゃねーぞ?
system()とか使えよ。

294:nobodyさん
07/12/26 10:54:23 WFCxb7oZ
ローカル側のphpとサーバー側のphpで、相互通信する仕組みを作りたいのですが、
どのような実装方式が一番楽な方法でしょうか?


ローカルphpが、サーバー側phpを呼び出す
サーバー側phpが処理を実行し、実行結果を返す
ローカルphpがサーバー側のphpの実行結果を受け取り、その実行結果により処理を条件分岐する

このような感じで、サーバー側の実行結果によってローカルの実行結果が異なります。

ソケット通信での実装を考えたのですが、少々面倒なので、もっと簡易にできる方法があれば助かります。
宜しくお願いします。

295:nobodyさん
07/12/26 11:57:31
>>294
レスポンス速度重視でないならば、http で通信すればいいんじゃないの。サーバは apache経由にして。

296:nobodyさん
07/12/26 11:58:07
soap

297:nobodyさん
07/12/26 12:17:11
>>296
PHPネタじゃないけど、soapってどうなの?
以前 Javaでやったときは、なんか中途半端に隠蔽されて自由度が低いだけって印象なんだけど。

298:nobodyさん
07/12/26 13:15:38
PHP.iniの設定で
auto_prepend_fileを使いたいのですが、
一部のディレクトリんは適用させたくないのですが、
その場合どのように記述すれば良いのでしょうか?

299:298
07/12/26 13:16:09 0y2BVKsS
すみません、sageチェックついてました
お願いします

300:nobodyさん
07/12/26 13:30:41
つ auto_prepend_file htaccess

301:nobodyさん
07/12/26 13:33:05 0y2BVKsS
>>300
ありがとうございます


すみません、書き忘れていました
レンタル鯖の仕様によりhtaccessでのphp_value・flagが仕様できないのですorz

302:nobodyさん
07/12/26 15:08:20
情報小出しに日本語不自由か…ダメダコリャ

303:nobodyさん
07/12/26 15:14:38
これでまた、何か案を出したら、それはすでにやったんですが・・・
と続くからなw

304:nobodyさん
07/12/26 15:54:46
そして最後には、お前ら使えねーな、で締めるのか

305:nobodyさん
07/12/26 16:07:23 5CJgBllV
認証システム作りたいと思ってます 以下のような処理でOKなんでしょうか?
(ログインフォームの次の会員トップページの処理です)
0)session_start(); (タイムアウト設定も同時にする)
1)$_SESSION['LogIn']=0;//ログイン状態のフラグの用意
2)1)をチェック →0なら3)
3)POSTされたid,passwordをもとにログイン処理 →LogIn=1にする
4)以降のページでは0~3を(外部ファイル化して)最初にチェック
 ※3)のPOSTデータがなければ警告画面に遷移

PEAR:AUTHも考えたんですが、ログインフォームと認証後トップページを
同じにしなきゃだめっぽいんでやめました
環境はPHP5,APACHE2です

306:nobodyさん
07/12/26 16:10:25 0y2BVKsS
>>302
すみません、小出しではなく>>301はただの書き忘れです

307:nobodyさん
07/12/26 16:20:00
>>305
リクエスト毎に 1) の処理を行うの?
そうならヘンだと思うが。

308:305
07/12/26 16:32:50 5CJgBllV
>>307 ありがとう ごめんなさい、間違えました
LogInは初期化しません 最初にチェックするだけです
あと、今思ったんだけど、最初のログイン時にランダム値を持たせといて(DBにも登録)
それもリクエストごとにチェックするとかの方がいいのかな?
それがセッション名(?)てことだからわざわざやらなくていいんでしょうか?

309:nobodyさん
07/12/26 16:53:52
乱数を設定しても意味は無いだろうけど、「ログイン状態のフラグ」を管理するぐらいなら、
誰がログインしているのかという、「ログインユーザのID」を管理した方が良いと思う。

ログイン後は、それが誰だかわからなくても良いなら、別に良いけど。

310:305
07/12/26 17:23:39 5CJgBllV
>>309
ログイン開始と終了を記入するテーブルみたいなのを作るわけですか?
考えたこともなかったです。
ログイン状態のチェックだけなら305の内容でokなんでしょうか 度々すみません

311:nobodyさん
07/12/26 17:33:52
DBじゃなくてセッション変数の話。
「ログイン状態のチェック」が「だれかがログインしているが判定できる」なら、305の内容でOK。
普通は、このセッションでログインしているのが誰かも判らないと困るんじゃないかと。

312:305
07/12/26 17:53:13 5CJgBllV
親切にありがとうございます
しかしセッションの知識が不足でよく理解できません
idに依存したセッション名を発行するのかな、、 ちょっと勉強してきます
ありがとうございました

313:nobodyさん
07/12/26 18:50:16 7SSM1+qD
すいませんお教えいただきたいのですが、

キーボードからそのまま受け取ったデータaを
cに変更して<textarea>に出力する ことはできますでしょうか?
いろいろ調べて下記のようなものを書いてみましたが、できません。

<form>
<textarea>
<?php

set_time_limit(0);
($stdin = fopen("php://stdin", "r"));
$s = trim(fgets($stdin, 256));

if($s == "a"){
$s = "c";
}
print $s;

?>
</textarea>
</form>

ハッスルサーバを使っていて、phpはバージョン4.3です。
初心者の質問で申し訳ありませんが、どうかよろしくお願いします。

314:はっしゅ(前すれ703)
07/12/26 19:02:23 drjhjm0k
>>前すれ734
回答ありがとうごいました。
レベル低すぎて誰も答えてくれないのであきらめてたんですが、今日見たら回答きてたのでお礼に伺いました。
またわからないことあったら教えてください。
遅ればせながらありがとうございました。

315:nobodyさん
07/12/26 20:44:56
キー入力された時その場で変えたいなら
JavaScript使うかAjax使わないと無理

phpはサーバーサイドスクリプトです


316:315
07/12/26 20:45:19
315は313宛ね

317:nobodyさん
07/12/26 20:45:33
>>313
意味がわからない キーボードから受け取ったデータってなんだ?
サーバの送受信はするの? しないんだったらphpじゃなくてjavascriptでしょ
具体的にどういう操作と結果がほしいのかわからなきゃ回答不可だよ

318:nobodyさん
07/12/26 22:33:52
C言語の本読んでもキーボードから1文字ゲットから先に進めない人

ノシ

319:nobodyさん
07/12/26 22:40:10
$white = 'snow';
$black =& $white;
unset($white);
print $black; //snow

これで snowが出力されるんだけど、$blackは$whiteの参照になってるから
unset($white)で$blackの値も破棄されるんじゃないの?

なぜsnowがprintされるのかわかりません。

320:nobodyさん
07/12/26 22:46:40
>>319
URLリンク(jp2.php.net)
>参照渡しされた変数が関数内で unset() された場合に、 ローカル変数のみが破棄されます。
>呼出側の環境でその変数は、 unset() がコールされる前と同じ値を保持します。

って書いてあるから良いんじゃないの。

321:320
07/12/26 22:51:51
良く見たら >>320 とはちょっと違うパターンか。ごめん。

322:319
07/12/26 22:54:50

参照渡しの場合はローカル変数しかunsetされないでいいんかな

323:nobodyさん
07/12/26 23:00:42
mb_send_mail()の引数の本文部分に
「>」を入れると
勝手に「>」にエスケープされるんですが、
ホワイ?
特に htmlspecialcharsとかかけてないんですが。。。


324:nobodyさん
07/12/26 23:11:12
ethnaの$this->af->getで取得した変数だからでした。
勝手にエスケープされるんでつね。。。

mb_send_mail( $this->af->get('to'), $this->af->get('subject'), $this->af->get('body') );
みたいな送信の仕方できないですが、
一回エスケープしたのを戻すとかの作業するのが一般的なんでしょうか

325:324
07/12/26 23:20:58
いや、すんません
ethna関係ないっぽいです、普通にやってむりぽでした。

326:nobodyさん
07/12/26 23:53:50 5CJgBllV
条件分岐でページ遷移する処理をしたいんだけど
Header関数(location)がエラー起こします。ほかに方法はないんでしょうか?
echoでjavascript出力もできますがそれはあんまりなので、、 よろしくお願いします

327:nobodyさん
07/12/27 00:13:03 kzcBaheO
>>326
飛ばしたいページのファイルをincludeすればいいんじゃね?

328:nobodyさん
07/12/27 00:15:44
>>326
エラー書いた方が良い

>>324
うちの環境ではエスケープされなかった


329:nobodyさん
07/12/27 00:39:58
>>326
単に、header関数の前に何か出力されちゃってるんでない?
それか場所の指定に変数を使ったりしてるならそこがおかしいか。

330:nobodyさん
07/12/27 00:54:22
特にローカルの開発環境だと、
キャッシュが効いて動作がおかしくなったりもするがな<header()

331:326
07/12/27 00:57:52 k02W1D9g
>>327-328
ありがとうございます
前に一度相談してて、自力解決めざしたんですができなかったんです
詳細は>>111です 今apacheのエラーログ見たところ、
PHP Parse error: syntax error, unexpected T_EXIT in
 C:\\Program Files\\Apache Group\\Apache2\\htdocs\\system\\admin\\hoge\\index.php on line 14,
 referer: URLリンク(localhost) …らしいです
14行目は>>111のexit;なので、コメントアウトしたら(//exit;)今度は
unexpected '}'~~ と出ました。ただのif文なのに意味がわかりません 
ググっても出てこないし、気が向いた方教えてください お願いします

332:nobodyさん
07/12/27 01:10:18
構文エラーじゃん
エラーの行なんて参考でしかないから
/* */で囲みながら範囲をせばめてエラーで出てる箇所特定しろよ
どうせ、おっぱいかっこ{}の数があってないとか、そういうのだろ

333:nobodyさん
07/12/27 01:32:39
>>313
そいつぁコマンドライン用です。

334:255
07/12/27 03:55:57 tJxOOzWu
>>258 遅れてすいません。
<?php
// メール送信先を指定します。
$to = "実際は指定しました。";
// フォームの値を取得します。
if ($_SERVER["REQUEST_METHOD"] == "POST") {
foreach($_POST as $k => $v){
// 「magic_quotes_gpc = On」のときはエスケープ解除
if (get_magic_quotes_gpc()) {
$v = stripslashes($v);
}
$v = htmlspecialchars($v);
$$k = $v;
}
}
else {
exit();
}

// メール本文を組み立てます。
$naiyou = "お名前:$name\n
メールアドレス:$from\n
タイトル:$title\n
内容:$naiyou\n"

335:255
07/12/27 03:56:48 tJxOOzWu
if ($name != "" and $from != "" and $title != ""
and $naiyou != "" ) {
if (mb_send_mail($to, $title, $naiyou, "From:$from")) {
echo "メールを送信しました";
}
else {
echo "メール送信失敗です";
}
}
?>

336:sage
07/12/27 05:13:26 aXynhXDH
setcookieで「味噌」と日本語を食わして吐き出すと「?」となってしまいます。
ちなみにEUC-JPです。
ファイルを確認した所、保存時では「+%CC%A3%C1%B9+」とurlencodeされているのですが
webで表示(print $_COOKIE[hoge];)するときだけバグります。

64encodeしてから食わし、64decodeして吐かすとも考えたのですが、
ファイル全部の保存と表示部分を直すことは大量すぎて辛いっす。
何かいい解決策は有りませんでしょうか。

337:336
07/12/27 05:28:15
sagemissしてすいません。
追加ですが「あへあへ噌」や「味噌漬け」はバグりません。

338:326
07/12/27 05:57:19 k02W1D9g
>>332
ありがとうございます
構文エラーということで、{の閉じ忘れなどチェックしてもなかったので、
ソースをガンガン削っていったら
1)これは動作する
<?php
header("Location: URLリンク(www.yahoo.co.jp)");
?>
2)これは動作しない
<?php
header("Location: URLリンク(www.yahoo.co.jp)");
exit;
?>
という状況になりました。ホントに上のソース以外一切何も書いてません
誰か同じ症状になった方いないですか? 参った、、
PHP5.2.3 winXP apache2です

339:nobodyさん
07/12/27 09:19:36 jblLPn+a
ドメインについて教えて下さい。
ドメインを正規表現を使って省こうとしているのですが、

このようなドメインが有効なのですが、
ドメインの2番目で3文字以上ないといけないのではないでしょうか?
ドメイン名の規約とかないでしょうか?
URLリンク(www.ms.com)
(モルガンスタンレー証券)

340:nobodyさん
07/12/27 09:22:25
>>339
宣伝乙

341:nobodyさん
07/12/27 09:26:19
>>326
例えば
header("Location: ./");
@file_put_contents("nnnnnnn.txt", "test" ,FILE_APPEND);//ファイル作成
とすると、表示はジャンプで終わるが読み込み処理は終わらずにファイルも作られる。

header("Location: URLリンク(www.yahoo.co.jp)");exit;
@file_put_contents("nnnnnnn.txt", "test" ,FILE_APPEND);
だとexitで終了され、ファイルは作られない。

exit終了しない場合の後述によるエラー文表記は動作が不安定なので一概に言えない。

if(!$a){header("Location: URLリンク(www.yahoo.co.jp)");exit;}
などとしてでも、Locationにexitはセットと考えた方がいい。

でもexitつけたら動作しないというのは初耳。

342:nobodyさん
07/12/27 09:27:56 NgfmXqR6
>>315
>>317
>>333

313で質問したものです、
ご回答ありがとうございました。
javascriptを勉強してみたいとおもいます。


343:nobodyさん
07/12/27 09:29:13
んなもんRFC読めよw

344:nobodyさん
07/12/27 09:33:20
>>305
SESSION使うと「戻る」が使えなくなるから、ユーザーがウザがるよ。
COOKIEでいいんじゃない?
めっちゃ重要なセキュリティーが必要?

345:nobodyさん
07/12/27 10:40:08
> SESSION使うと「戻る」が使えなくなる

んなこたーない

346:326=305
07/12/27 10:41:55 k02W1D9g
>>341
ありがとうございます 結局これは僕の環境の異常という他ないんですかね?
php.iniで自動的に全ファイルに共通読み込みさせる機能がONになってるのかと思い
チェックしたんですがそれも問題ありませんでした…
もうあきらめてjavascript出力してリダイレクトさせることにしました
回答いただいた方、ありがとうございました

>>344
「戻る」が使えないってどういうことでしょう?
本やサイトを見るとセッションを使ってるので自分もそうしようと思っただけで
深い判断はありませんでした
今は>>309さんのいう“誰がログインしているのかという「ログインユーザのID」を管理”
の方が気になってたんですが、、
「めっちゃ重要なセキュリティー」は意識してません 普通の会員システムで十分です

なんかすみません、わからないことだらけで

347:nobodyさん
07/12/27 12:00:59
多分 >>344が言いたいのは、複数のページにまたがって一連のデータを入力させるような場合、
「戻る」操作をするとブラウザ上の表示とセッション変数の状態が食い違うことがあることを
言ってるんだと思う。

セッションの使い方によっては「戻る」操作を禁止するのは定石だけど、セッションを使うと
ページ戻りできないって話はおかしい。少なくもログインチェックに使用しただけで、
ページ戻り出来ないってのはあんまりすぎる。

348:344
07/12/27 13:16:55
わかりにくくてごめん。
SESSIONをかましたページでデータの送信等をした際に
ブラウザの戻るや進むで前の画面に戻ろうとすると
「セキュリティーのどうたら」ってエラー文がでて、送信前の入力データが消えたり
新しくリロードしないとページが表示されないようになる。

セッション値とかは関係ないけど、上記理由で
普通の感覚で「戻る」と「進む」が使えないから
ID新規作成とか、何回もログインしない部分だけをセッション使用にして
ログインとか一般的な頻発部分はクッキーの方がいいと書いたのです。

例、ログインID-A(mailとか)/Passの入力→ID-B(Noとか)と暗号化したPASSのクッキーを発行
各ページでクッキーによって本人承認を行い、1日~4週間&ログアウトでクッキーを消滅させる。

暗号化といえばPHP5の初期設定のままで、md5(一方向)、base_64encode、
urlencode、mb_convert_encoding以外に使えるものってないですかね?
C++のXORみたいなのは用意されてないのかな・・・

349:344
07/12/27 13:21:00
追記。凡ミス。 ×base_64encode → ○base64_encode

350:nobodyさん
07/12/27 13:29:34
>>348
なんかめちゃくちゃ言ってない?



351:nobodyさん
07/12/27 13:36:30
>>349
XORを用意ってビット演算子はあるんだからそれくらいの手間をケチるなよ。
...rot13とかなかったっけ? あとcryptも


352:nobodyさん
07/12/27 13:43:05
>ブラウザの戻るや進むで前の画面に戻ろうとすると
>「セキュリティーのどうたら」ってエラー文がでて、送信前の入力データが消えたり
>新しくリロードしないとページが表示されないようになる。

これはフォーム送信した後に戻ろうとしたら「再送信します OK?」っていうアレのこと?
セッションとは関係なくない?

353:nobodyさん
07/12/27 13:45:14
>> 348
てゆーかセッションわかってる?

354:nobodyさん
07/12/27 13:50:22
>>348
それセッションとかクッキーとか全然関係無いだろw

355:nobodyさん
07/12/27 14:17:26
>>348
それは、no-cache の話じゃないかな。sessionを使うと自動的にno-cacheにしてしまうような
フレームワークがあっても不思議じゃないけど、一般論として、sessionを使うとno-cacheになると
いうものではない。

>>344は、特定の環境で教えられたんじゃないかって気がする。

356:nobodyさん
07/12/27 14:17:58
str_rot13() = 英字の置き換え ABCDE ←→ NOPQR
crypt() = 一方向ハッシュ化 $1$Ze5.ut0.$9k5PF7d6Wogm4fjfYcViE0

cryptってmd5より有名だったと知らなかったPHP暦1年の俺が来たよ
str_rot13についてはマイナーすぎて今知った

357:nobodyさん
07/12/27 14:31:22
「crypt」って、エニグマと同じ方式による暗号化プログラムで、暗号化キーで復号できるものだと
思ってたんだけど、最近はcryptといえば単方向ハッシュであるものを言うようになったのか。

確かにPHPのマニュアルにも単方向って書いてあるし、何時の間にって感じなんだけど。

358:344
07/12/27 14:40:06
>>344>>348デス。
>>347>>350-355
暗号化について解説ありがとうございます。早速今日から使ってみます。
sessionについても丁寧なご説明ありがとうございます。
今調べたらまさにその通りでした。>>305>>346さんゴメンナサイ。

2年も間違ったまま覚えてたってやっべえ恥ずい。
どれぐらいって恥ずかしい性癖とかばれたぐらい?
反省してROMに戻ります。

359:nobodyさん
07/12/27 15:45:25
>>357
たぶんUnixとかネットワーク関係プログラマ界隈では
crypt といえば crypt(3) のこと。
PHPのcryptもcrypt(3)の単なるラッパのはず。

>>356
rot13はたぶん一番古くて一番有名なそして一番弱い暗号だぞ!
シーザーさんをなめるな!


360:nobodyさん
07/12/27 16:52:06
URLリンク(ytteter.so.land.to)

361:nobodyさん
07/12/27 18:06:57
>>359は、宝塚出身の女優と一緒だな。
本人は芝居上手だと勘違いしているが、押し付けがましいパフォーマンスに過ぎない。


362:nobodyさん
07/12/27 18:27:55
だが、ぬくぬくと生き伸びていたりする。

363:nobodyさん
07/12/27 23:42:07
過疎ってルナ

364:nobodyさん
07/12/28 01:18:59 x8Ui+5jw
質問です。

次元数が任意の多次元配列で、その配列の要素数を数えながら
次元を自動的にさかのぼる処理をさせたいと思っています。
具体例を書くと、配列 $arr が下記のようなものだったとして、

Array
(
[0] => hoge
[1] => Array
(
[0]=> koke
[1]=> moke
)
)

$arr[1]の要素数(2)を取得できるようにしたいと思っています。

この時、この配列の内容は事前に分かっていないため、
count($arr) が1以上ならば、その要素を調べ、
更に配列あればが自動的に添え字を付加して(ここでは「count($arr[0])」として)
上位次元を走査するような方法を思いつきました。
そこで変数に格納した添え字を配列変数に付加したかったのですが、
その方法が分かりません。
感覚的には、 $index = "[1]"; だったとしてとして
$arr{$index}{$index} が 「 $arr[1][1] 」となり、「moke」を取得する、
というような動作を希望していますが、$index が文字列のためうまくいきません。
何か他に望む処理を行える方法があるでしょうか?
よろしくご教示ください。

365:nobodyさん
07/12/28 01:28:39
>>364
>>$index が文字列のためうまくいきません。
ここの意味が分からない。

$arr["$index"]["$index"]
って話じゃなくて?

366:nobodyさん
07/12/28 01:33:23
>>364
$index = "[1]";
と、絶対使いにくそうな値を敢えて仮定する理由は?

367:nobodyさん
07/12/28 01:35:23
つまり

$index = "1";
$arr["$index"]["$index"]

みたいな形がやりやすい方法です。

368:364
07/12/28 01:53:54
>>365-367
みなさんレスありがとうございます。
その問いが来るかな、とは思っていたのですが、うまく説明できませんでした。

>>364 の例でいうと、$arr が何次元の配列なのか事前に分からないところが
ネックとなります。
つまり処理を行う前に最高次元が「$arr[]」なのか、「$arr[][]」なのか、
「$arr[][][]」なのかが分からないため、決め打ちできないということが問題です。
そのため、「[]」の角括弧を最初から書いておく「$arr["$index"]」方式では
対応できないので、角括弧を後から自由に付加できるような形を
求めていたというわけです。

例えば、$i = 1; で $index = "[$i]"; ならば、
$arr . $index で「 $arr[1] 」となって欲しいと思っていました。
このような目的を満たす処理方法はありますでしょうか?
引き続き、よろしくお願いします。


369:nobodyさん
07/12/28 02:02:57
最初から分かってたらなら書けと・・

再帰的な手法は分かる?
「再帰的関数 php」とかでググッてみるといい


370:nobodyさん
07/12/28 02:08:52
home/hoge
home2/hoge4
home/hoge2
home/hoge3
home2/hoge5

これを
-----------------
home
 hoge
 hoge2
 hoge3
home2
 hoge4
 hoge5
-----------------
と表示させられるように配列処理したいのですが、
良い方法思いつきません、
お助けを。

371:nobodyさん
07/12/28 02:10:06
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

372:364
07/12/28 02:21:01 x8Ui+5jw
>>369
申し訳ありません。
>>364 の「この時、この配列の内容は事前に分かっていないため」で
伝わるかと思い込んでしまいました。
再帰処理については知っています。
今回の処理も再帰処理で、と思っていたのですが、
どうしても配列変数の添え字を自動生成する方法の所が分からなかったのです。
何か方策はありますでしょうか?

>>371
重ね重ね失礼しました。追記いたします。
サーバのOS: 「Windows2000」
Webサーバ: 「Apache 2.0.59」
PHPのバージョン: 「4.4.7」
以上の環境です。
なおこの環境は、OS 以外は利用しているレンタルサーバのスペックを
模倣したもので、この環境下での動作を求めています。

373:nobodyさん
07/12/28 03:04:11
>>370
/でexplode()してキーと値に宛えば。

>>372
どうにも難しい処理だから微妙だけど
eval("return \$arr{$index};")
とか。

374:370
07/12/28 03:17:21
> キーと値に宛えば

詳しくキボンヌ

375:nobodyさん
07/12/28 04:14:13
「キーと値に使えば」と予想

つまり
home2/hoge4
を分割して
$hoge["home2"] = "hoge4";
って形にすれ


376:nobodyさん
07/12/28 04:44:15
まず読め→【PHP マニュアル】URLリンク(www.php.net)
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
スレリンク(php板)

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

377:255
07/12/28 06:41:54 rEU4Fn3c
環境fedora7

<?php


if (mail('ac10@fb3.so-net.ne.jp','titile','message'))


echo "<b>SUCCESS TO SEND</b><BR>";


else


echo "<b>fail to mail</b><BR>";


?>
でfail to mailという方が出ます。



恐らくphp.iniの設定が不足しているんだと思いますが、
php.iniのsendmail_pathについてまだよく分かっておらず、とりあえずデフォのままにしてます。
ポート25は開けていませんがこれでいいのでしょうか。

378:255
07/12/28 06:46:39 rEU4Fn3c
sh: /usr/sbin/sendmail: Permission denied
というログが出ました。

379:255
07/12/28 06:48:30 rEU4Fn3c
が、lrwxrwxrwx root root system_u:object_r:bin_t sendmail
とあったので別にパーミッションは良いかと思います、、、もしかしたら
bin_tをhttpd_sys_content_tにしなければならないですか。

380:nobodyさん
07/12/28 07:40:41
/var/logを (って/var/logがFedoraにあるのかしらないけど)
良く調べてみたら。隅々まで。

URLリンク(bbs.fedora.jp)

ちょっとググってみたかんじだと SELinuxがどうのこうの、って
話がいくつか出てくるけど

381:255
07/12/28 08:10:09 rEU4Fn3c
有力情報ありがとうございます。SELinux disableにして実行してみたんですけど、やはりfail to mailでした。
ろぐ追加です。
[Fri Dec 28 06:18:37 2007] [notice] caught SIGTERM, shutting down
[Fri Dec 28 06:18:48 2007] [notice] SELinux policy enabled; httpd running as context user_u:system_r:httpd_t:s0
[Fri Dec 28 06:18:48 2007] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Fri Dec 28 06:18:48 2007] [notice] Digest: generating secret for digest authentication ...
[Fri Dec 28 06:18:48 2007] [notice] Digest: done
[Fri Dec 28 06:18:49 2007] [notice] Apache/2.2.6 (Unix) DAV/2 mod_layout/4.0.1a PHP/5.2.4 mod_ssl/2.2.6 OpenSSL/0.9.8b configured -- resuming normal operations
sh: /usr/sbin/sendmail: Permission denied
もう少しググってみることにします。selinuxには気づきませんでせした。

382:255
07/12/28 08:12:50 rEU4Fn3c
あ、ほんとくだらない質問になるんですが、メル鯖立ててなくてもmail関数使えますよね。
sendmailpathの意味するところが分からなくて、、、

383:nobodyさん
07/12/28 08:19:14 /nAj2CVO
会員システム作ってるんだけど kaiin/以下が会員領域だとして
その中にあるファイルはリファラがkaiin/内のファイルじゃない場合強制ログアウト
という処理にしたらセキュリティ上がるかなぁと思ってます
この処理をする場合、効率よくリファラチェックする方法はないでしょうか?
ひたすらif&orでやってけばいいんでしょうが何かみっともないので、、

また、そもそも↑みたいなことやっても意味ないですか?
ファイルをDLして手を加えられる侵入に対策したいと思ったんですが…

384:nobodyさん
07/12/28 08:30:44
>>382
mail()を実行すると、
 Windowsの場合 : メールサーバに接続する(ネットワーク越し) - php.iniのSMTP
 Linuxなど : メール送信用のプログラムを呼び出す(プログラムの引数) - php.iniのsendmail_path
のように、OSごとに違った挙動をする。

>>383
ノートン先生のようにデフォルトの設定でrefererを送信しないものもある。
>ファイルをDLして手を加えられる侵入に対策したい
何をしたいのかよく分からないが、特定の人言い換えりゃ特定の情報を送信してくるブラウザを
識別するには次のどれかだろうね。
・cookie
・セッション(まぁ、これもcookieの場合もあるが)
・WebサーバのBasic認証とかDigest認証とか

385:255
07/12/28 08:34:06 rEU4Fn3c
>>384 ありがとうございます。
windows:mail()→ネットワークに接続
linux:mail()→mail program呼び出し→ネットワークに接続
みたいな感じに理解しました、(あってるかな。。。)

386:nobodyさん
07/12/28 08:47:14 /nAj2CVO
>>384
ノートンてリファラ送信しないんですか じゃあダメですね、やめときます
ありがとうございました

387:nobodyさん
07/12/28 11:31:19
今日で仕事納めです。
早速、phpも仕事を土管とやってみましたが、
やはりmb_系の関数が絵文字処理で悩まされました。

mb_をpregと統一して総合文字列関数として再スタートさせるべきではないでしょうか?
それでは、来年も良いお年をお過ごし下さい。

388:nobodyさん
07/12/28 12:52:34 gGF8c07c
処理が遅い時、ブラウザを勝手に閉じると、
サーバーのスクリプトが終了したときに返却されるレスポンスのパケットはどこにいくのでしょうか?

サーバーの動作が遅いのですが、このパケットが行き先を失って、
ルーター内で無限ループしているってことは考えられますか?

送信要求しておいて、ページが表示されないからって閉じられるクライアントをどうにかしたいのですが、そうもいかないので。

389:nobodyさん
07/12/28 13:04:54
横槍だが、メール送信を使いたいだけで自鯖にメール機能をインストする必要はなっしん。
無料レンタ鯖にデータ飛ばして、そこから送信して、必要なら戻ってくるようにすれば無問題。
使い慣れないメール設定やほーと設定で悩んでいる人にオススメ。

390:nobodyさん
07/12/28 13:14:14
>>388

URLリンク(jp2.php.net)
URLリンク(ja.wikipedia.org)


391:nobodyさん
07/12/28 17:13:21
こんど、
「天皇陛下もやっているPEARの活用講座」
という本を出すことになりました。宜しくお願いします。

392:nobodyさん
07/12/28 18:45:23
こんど、
「将軍様もやっているPECLの活用講座」
という本を出すことになりました。宜しくお願いします。

393:nobodyさん
07/12/28 21:09:26 41MrW7lh
作成中のシステムが
[notice] Parent: child process exited with status 3221225477 -- Restarting.
というメッセージをApacheのログに残して落ちるようになってしまいました。

多分、再帰に失敗してスタックオーバーフローか何かになっているのだと思うのですが、
例えば例外をスローしてくれたりする設定のような、場所を特定する良い方法はないでしょうか?

環境は、PHP5.2 Apache2.0 WindowsXP です。
フレームワークは使用していません。

ご存知の方、教えてください。よろしくお願いします。

394:nobodyさん
07/12/28 22:07:55 /nAj2CVO
自力で会員システム作ってるんですが、二重ログインという問題があることに気づきました
この問題はどう解決したらいいんでしょう? 同一IDで後から入ってくる人を有効にすべき?
仕組みとしてはどういうものが理想ですか?

今考えてるのは、会員情報の管理テーブルに、現行のセッション名を保持するカラムを作って、
各アクションごとにブラウザが持ってるものと保存してるセッション名とを比較する
→不一致の場合強制ログアウト
というものです
どうなんでしょう ご意見いただければ幸いです よろしくお願いします

395:nobodyさん
07/12/28 22:12:07
>>394
その処理が君のシステムにおける理想ならそれでいいじゃん

396:nobodyさん
07/12/28 22:20:49
>>395
調子に乗ってんじゃねーぞ。このニート!!!

397:394
07/12/28 22:28:49 /nAj2CVO
自分のアイディアや知識に自信がないから聞いているので、
それでいいじゃんと言われても…
念のためググって調べて考えた上で質問させてもらいました
不快にさせたんならすみません

398:364
07/12/28 22:38:10
>>373
返事が遅くなりました。
試してみたら eval() で希望の動作が実現できました。
どうもありがとうございました。

399:393
07/12/28 22:44:02 41MrW7lh
例外を生成し、そのスタック長がある上限を超えていたら throwする関数を作って、
これを再帰している箇所に埋め込む事にしました。

400:nobodyさん
07/12/28 22:44:30
>>394
二重ログイン禁止したいならそれでいいんじゃないかな。

後から来た方を拒絶しようにも、明示的にログアウトしてくれる人ばかり
じゃないしね。
一定時間経ったらログアウトって仕組みにしても、その間最ログインできないし。

401:nobodyさん
07/12/29 04:16:39
冬休みを利用して、何か簡単なwebアプリを作ってみようと思い
開発を始めてみたのですが、一点質問させていただいてもよろしいでしょうか。

a.html 内でに b.phpというファイルをインクルードし、a.html内でb.phpの関数を呼び出し
実行したいのですが、うまく実行することができずに悩んでいます。

<?php include('./b.php'); ?>
<html><head></head>
<body>
<?php b_test(); ?>
</body>
</html>

といった具合です。
b_testの内容は、単純に文字列をprintしているだけなのですが
実行されず、ブラウザ上でソースを見るとそのままphpの記述が
残されている状況です。
各所で見て回った簡単なカウンタ等のアプリで同様の記述を行っているものもあり
自分も同じようなことをやってみようと思ったのですが、何か問題がありますでしょうか。
もしくは、他にhtml内でphpの関数を呼び出すのに適したやり方はございますでしょうか。
ご教示お願いいたします。

環境は、windowsXPにxamppを使用し、apache2.2.6とphp5.2.5をインストールしています。
mb_string系を有効にした程度で、ほとんど設定ファイルは弄っていません。

402:nobodyさん
07/12/29 04:44:46
まず読め→【PHP マニュアル】URLリンク(www.php.net)
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
スレリンク(php板)

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

403:nobodyさん
07/12/29 04:45:44
.htmlという拡張子をphp扱いで動かさないとphpは実行できんよ


404:394
07/12/29 09:51:58
>>400
わかりました ありがとう!

405:nobodyさん
07/12/29 11:02:50
softbankの一部の機種じゃ
GETでマルチバイト文字を送れないので
変換すべきと思われるンですが
どんな関数でそれをやればよいですか?>

406:nobodyさん
07/12/29 11:25:51
マルチバイトが送れんつーか、逆に送れる文字つーのが決まってるんでURLエンコードすりゃええ

407:405
07/12/29 11:39:30
>>406
なるほど。
サンクスです。

408:nobodyさん
07/12/29 15:00:42
なんか、ここのスレってサービスが劣化したなぁ。
前は、質問したら丁寧に教えてくれたし5分以内には的確な回答がきた。

今は、質問するとニートとか氏ねとかそんなのが殆ど。
ストレスを発散する場所を間違えないで欲しい。

409:nobodyさん
07/12/29 15:08:36
なんだよもう…面倒くさいなあ。
仕方ない、面倒見てやるか

>>408
ニートとか氏ね

410:nobodyさん
07/12/29 15:11:14
ま、2chだし

411:nobodyさん
07/12/29 15:11:36
>>408
ニートとか氏ね

412:nobodyさん
07/12/29 15:36:55
相手をニートと断定しないあたりに、プログラマらしさを感じた。

413:nobodyさん
07/12/29 16:14:18
>>408
もしお前がニートなら氏ねそうでないならイ㌔

414:nobodyさん
07/12/29 17:09:40
if( >>408 == 'ニート' ){
   $anser = '氏ね';
}else{
   $anser = '市ね';
}


415:nobodyさん
07/12/29 17:11:40
>>414
ちょwwwwおまwwwスペルがwww俺氏ねorz

416:nobodyさん
07/12/29 17:27:27
確かに、誰からも参照されなくなったニートオブジェクトは、ガベージコレクトされるべきではある。

417:nobodyさん
07/12/29 17:56:44 tcLiBXaz
array("Apple" => "りんご", "Orange" => "みかん");
という連想配列を、
array('Apple' 'りんご' 'Orang' 'みかん');
という配列に変換したいんですが、どうすれば良いでしょうか?

418:nobodyさん
07/12/29 18:06:27
>>417
foreach ($array as $key => $val) {
$new_array[] = $Key;
$new_array[] = $val;
}

419:nobodyさん
07/12/29 18:19:38
$a = array("Apple" => "Ringo", "Orange" => "Mikan");
$b = array_keys($a);
$c = array_values($a);
$d = array();
for ($i = 0; $i <= count($a) - 1; $i++) {
array_push($d, $b[$i], $c[$i]);
}
print_r($d);

420:nobodyさん
07/12/29 18:23:01 tcLiBXaz
すげー
天才だ!
有り難うございます。

421:419
07/12/29 18:23:05
配列の値がローマ字に変わってたのはさっきなぜか日本語がうてなかったからだ
気にしないでくれ

422:nobodyさん
07/12/29 18:48:40 WA8jVfpj
PHPでコンストラクタのvisibility (public とか privateなどの指定) をsuper classより厳しく出来ないのは何で?
仕様というより、何の不都合があるのかという意味で。

423:nobodyさん
07/12/29 18:52:50
継承じゃねーからだろ

424:nobodyさん
07/12/29 18:56:45 yIBMpd50
ちりりDUKEの使い方を教えてほしい

425:nobodyさん
07/12/29 18:56:45 WA8jVfpj
>>423
むしろ、継承だと出来ないんじゃないの?

426:nobodyさん
07/12/29 20:06:36
>>414,415
しゅくだいはおわったのかい

427:nobodyさん
07/12/30 01:39:18
ブラウザからPOSTして送るデータの改行コードって
何に依存するんでしょうか?
CRLFになったり、LFになったりして困ってまつ

428:nobodyさん
07/12/30 01:42:14
phpでcookieの内容を受け取るにはどうすればええの?
自分でsetしたcookieではなくて、外部鯖から返されるcookieの値を取得したいんだけど


429:nobodyさん
07/12/30 01:43:35
>>1 も読めないのか。このヴァカども

430:nobodyさん
07/12/30 01:46:14
事故解決

431:nobodyさん
07/12/30 02:34:00 +D3WOxGf
2点質問させていただきます。


1. htmlに書くname属性に日本語を利用しても問題無いでしょうか?

2. htmlのフォームからphpの変数に変換するツール等は無いでしょうか?
    例:html:<INPUT type="text" name="name"> ⇒ php:$name = $_POST['name'];

432:nobodyさん
07/12/30 02:50:16
>>431
2はextract()でできるけど危険

433:nobodyさん
07/12/30 02:57:27
>>431
foreachで回せ
つか$_POST['name']で使うのがそんなに嫌なのか

434:nobodyさん
07/12/30 02:57:38
1 は html 的には何の問題もない

435:nobody
07/12/30 03:15:18 8C08uScj
PHPで多次元配列の値を半分だけとりだすのはどうすればいいでしょうか?

436:nobodyさん
07/12/30 03:21:54
半分だけってどう半分なの

437:nobody
07/12/30 03:35:21 8C08uScj
$a["a"][0]=>1
[1]=>1
[2]=>0
[3]=>1
[4]=>0
の$a["a"][0],$a["a"][1],$a["a"][2]の値です



438:nobodyさん
07/12/30 03:38:15
forなりforeachなりで回して半分まで行ったらbreakすりゃいいでしょ

439:nobodyさん
07/12/30 04:45:05
まず読め→【PHP マニュアル】URLリンク(www.php.net)
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
スレリンク(php板)

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

440:nobodyさん
07/12/30 05:31:14
>>439
お前いい加減うざいよ
わざわざ>>1貼る必要ないだろ
冬休みだからって何回繰り返してるんだよ池沼
せめて>>1嫁ぐらいに留めとけ

441:nobodyさん
07/12/30 05:38:36
>>440
まず読め→【PHP マニュアル】URLリンク(www.php.net)
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
スレリンク(php板)

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

442:nobodyさん
07/12/30 05:44:17
予想通りの流れだな
さすが冬休み

443:nobodyさん
07/12/30 06:49:36
冬休み (笑

444:255
07/12/30 07:51:44 G9WMPe2A
やはりsendmailの設定を何もしていないとまづいんじゃないかと思ってます。が、、、

445:255
07/12/30 08:01:43 G9WMPe2A
でも #sendmail ~ でメールは送れました。。。混乱しながら1週間くらい悩んでます。

446:nobodyさん
07/12/30 08:41:04
そのスクリプトでエラー表示させてる?
エラーが出てて表示させないで真っ白になってるんと違う

447:255
07/12/30 08:52:27 G9WMPe2A
出せてます ifでmail()がtrueを返したらok falseならno をprintさせてます。

、、、先ほど少し進展がありました。
#setenfoce 0
#restorecon -R /var
を設定することでメール関数がokを返すようになりました。
上のはselinuxを無効にするという意味で、下のは、、、どういう意味だろう。
(cd URLリンク(www.atmarkit.co.jp)
でもメールがこない。。。httpdのerroelogを見てみると
Domain of sender address apache@localhost.localdomain
→やっぱりsendmailの設定をいじらないといけないのかなと思い、
とりあえず#sendmail 自分のメルアド
~~~
としてsendmailをテストしてみると無事に自分のアドレス(プロバイダからもらったやつ)に届く

sender addressを設定しなくてもグローバルな環境でメール送れるじゃん
となって今また悩んでいるところです。

448:255
07/12/30 08:54:11 G9WMPe2A
失礼しました。Domain~のところですが、Domain~~~does not exitです。



449:nobodyさん
07/12/30 09:06:56
Fedoraって /var/log/maillog とかないの?

あとif文でOKとか、そういうんじゃなくて、
PHPが吐くwarningとかnoticeとかもみてるのかな?

> Domain~~~does not exit

does not exist? 自分宛に送ったメイルの差出人も localhost.localdomainに
なってるのかな?

450:255
07/12/30 09:46:25 G9WMPe2A
maillogの内容です。基本的にerrorlogと同じようなことがエラーになってま
す。
Dec 30 08:39:28 localhost sendmail[4414]: lBTNdBJQ004412:
to=<:::::::::@fb3.so-net.ne.jp>, ctladdr=<apache@localhost.localdomain>
(48/48),
delay=00:00:17, xdelay=00:00:17, mailer=esmtp, pri=120328,
relay=mxin2.ms.so-net.ne.jp.
[202.238.83.12], dsn=5.1.8, stat=User unknown
Dec 30 08:39:28 localhost sendmail[4414]: lBTNdBJQ004412:
lBTNdSJQ004414: DSN: User unknown

>>Does not exitst
自分宛(?.so-net.ne.jp)に送ったメールの差しだし人が
localhost.localdomaiになってる可能性大です。
この場合やはりsendmailの設定を変更すべきなのでしょうか。
上にも書いた通り端末からsendmailを利用して自分宛(?.so-net.ne.jp)に
送った場合成功するので、
どこを変更すればいいのかで悩んでいます。


451:nobodyさん
07/12/30 10:04:09
もう完全に PHP とはかけ離れてるな

452:nobodyさん
07/12/30 11:35:19
なんか面白い関数とかありませんかね
正月っぽいの

453:nobodyさん
07/12/30 11:40:04
omikuji();
でおみくじが引けるよ!

454:nobodyさん
07/12/30 11:48:59
php_logo_guid()だろ、、、常考

455:nobodyさん
07/12/30 11:59:43
>>450

> メールの差しだし人が
> localhost.localdomaiになってる可能性大です。

俺mail関数使ったことないんで間違ってるかもしれないけど

これ見た感じだと→ URLリンク(jp.php.net)

「メールを送信する際には、必ず From ヘッダが含まれていなければなりません」
とかいてあるけど「可能性大」ってのは自分で「localhost.localdomail」のメアドを
指定した、っていう意味?

456:455
07/12/30 12:13:57
なんか変なこと書いてるな俺。気にしないで

457:nobodyさん
07/12/30 12:28:12
PHPに関係するのは、ctladdrの所だけだぁね。
ctladdr=<apache@localhost.localdomain>
ctladdr - The ``controlling user'', that is, the name of the user whose credentials we use for delivery.
こいつは mb_send_mailの4だったか5番目だったかのパラメータで設定したものが使われる。
指定してなきゃ、sendmailを呼び出したプロセスの所有者が使われるんだったかな。
で、apacheになるっと。

その部分を除いてPHPには全く関係無く、”sendmailを適切に設定していないことが原因” だから板違い。
Linux板か自宅鯖板のsendmailスレで、どういうメル鯖の構成(ISPのメル鯖に全部投げとか)にするかを書いた上で聞けばいいよ。

458:nobodyさん
07/12/30 13:13:30
ユーザー認証のページの作成をしています。
登録後のIDとPASSの管理をファイルでしようと思うんですが、
セキュリティを向上させるための定石というのはあるのでしょうか。

また、どのようにユーザーがログインする時はPOSTでデータを送信、
その後はセッションでログイン情報を維持という風にしたいのですが
これは特に問題ありませんよね?

459:nobodyさん
07/12/30 13:29:12
>>458
とりあえず、オライリーの「入門PHPセキュリティ」を読むことを勧める。

460:255
07/12/30 16:15:22 G9WMPe2A
不本意ながらこの泥沼から逃げることで一応解決しました。つまりpostfixに移行しました。

461:nobodyさん
07/12/30 16:50:41
逃げちゃだめ
とりあえず、オライリーの「sendmail」を読むことを勧める。

462:459
07/12/30 16:56:03
>>461
別に逃げても良いんじゃないの?

463:nobodyさん
07/12/30 19:23:36
<tr>
<td class="aaa">あああ</td>
<td class="bbb">いいい</td>
</tr>

↑をまるごと変数に入れるにはどうすればいいでしょうか・・・

464:463
07/12/30 19:26:45 MvMxVYb6
ID出し忘れました
申し訳ない

465:nobodyさん
07/12/30 19:27:27
1読め屑

466:nobodyさん
07/12/30 19:29:49
$hoge = "<tr>\n<td class="aaa">あああ</td>\n<td class="bbb">いいい</td>\n</tr>";
$hoge = "
<<< HTML
<tr>
<td class="aaa">あああ</td>
<td class="bbb">いいい</td>
</tr>
HTML;
";

467:nobodyさん
07/12/30 19:33:13
>>466は「"」→「\"」で。
下の方法が合ってるかはわからn

468:nobodyさん
07/12/30 19:42:11
>>466
なんか、色々間違ってる気がする。
URLリンク(www.php.net)

469:nobodyさん
07/12/30 20:02:47 1r819gof
聞きたいんですが、php5のマニュアルってどこかでダウンロードできないですか?
昔マンモス本の中身ダウンロードできるサービスがあったような気がするんだけど、
ああいうの今もないでしょうか?
あったら教えてほしいです、田舎に帰って勉強したいんだけど、
でかい本持ち歩くのキツイ、、

470:nobodyさん
07/12/30 20:08:55 lUFWIq2Z
MVCでテンプレートエンジン使わずにVIEWをやりたいんだけど
コントローラーで
$title = "タイトル";
require("hoge.php");
exit;
とかみたいなやりかたってダメ?
他に何かいい方法あるかなー?
っていうかviewを別にするならテンプレート使わないといけないのかな?

471:nobodyさん
07/12/30 20:12:51 lUFWIq2Z
>>469
URLリンク(www.php.net)

472:nobodyさん
07/12/30 20:18:46
>>459
すいませんわがままだと思うんですが
Web上で参考になるセキュリティ対策のサイトというのはないでしょうか・・・

473:469
07/12/30 20:24:49 1r819gof
>>471
すごい! ほんとにあったんですね!! 大感謝です
ありがとう!

474:nobodyさん
07/12/30 20:33:01
>>472
>>1

475:nobodyさん
07/12/30 20:38:53
>>466
レスありがとうございます
↑の書き方で例を表示することはできたんですが、
自分の場合"あああ"、”いいい”の部分も<?=$hogehoge?>の様に変数になっていて、
このまま実行してもセルの中が空になります
変数に変数を代入しようとしてるのが問題だと思うんですが、どうにかならないでしょうか
ローカルでテストしてる場合OSとPHPのバージョンは自分の環境を書けばいいんでしょうか
WindowsでPHP5.25なのですが

476:463
07/12/30 20:39:38 MvMxVYb6
またやってしまった
申し訳ない

477:nobodyさん
07/12/30 20:44:11 lUFWIq2Z
>>475
変数を『{}』でくくるか、
文字列と変数を『.』で繋げればいいんじゃない。

478:nobodyさん
07/12/30 20:48:41
普通にシングルクォートで囲って入れればいい話じゃないのか?

479:431
07/12/30 21:24:43 +D3WOxGf
>>432-434
レスありがとうございます。
とりあえずやりたいことは出来そうです。
もう少し勉強してみます。

480:463
07/12/30 21:58:49 MvMxVYb6
>>477-478
$hoge="<tr>\n<td class="hoge2"><?=hoge3?></td>\n</tr>";

変数と言うか、<td>~</td>間にPHPの書式を書こうとするとだめみたいです
<td class="hoge2">のようにタグの中だと効くのですが、<?=hoge3?>は無いものとして扱われてます
<?=hoge3?>を{}や''で囲むとその囲んだ記号だけ表示されます

481:nobodyさん
07/12/30 22:00:51
俺はシングルクォートで文字列括って改行コードは定数にしてるな
$html = '<a href="hoge.html" onclick="alert(\'ラヴィ\')">'.$hoge.'</>'.NEW_LINE.
'以上ラヴィでした';
こんな感じで書いてるなー

#てーか携帯でソース書くの辛いな

482:nobodyさん
07/12/30 22:09:56
つーかロジックとビューは分離しろ。
ヒアドキュメントとかアホじゃねーのか。

483:nobodyさん
07/12/30 22:22:57
ヒアドキュメント使うと、ロジックとビューが混ざるの?
ヒアドキュメントと文字列に差はないと思うけど。

484:nobodyさん
07/12/30 22:24:45
PHPのヒアは変数展開とかしてくれないから、混ざらないと思う。

485:nobodyさん
07/12/30 22:28:09 UcZOMDnE
>>484
展開したと思う。

486:484
07/12/30 22:34:14
ごめん、勘違いしてたみたい。
自重します。

487:nobodyさん
07/12/30 22:35:18
配列の展開やオブジェクトの参照はしてくれないけど({}付は省く)
普通に$unkoとかは展開されてる

488:nobodyさん
07/12/30 23:08:06 WyJGCA3E
.cgi .plのスクリプトを使いたいのだが
どうすれば いいだろうか?
クリックしても .bat / .exeみたいに 動かないし…

489:nobodyさん
07/12/30 23:15:01
>>488
スレ違い
PHPからなら
<?php
exec("pl hoge.cgi");
?>
とか

490:nobodyさん
07/12/30 23:16:28
(;´Д`)

491:nobodyさん
07/12/30 23:51:59
吹いたwwwwwww

492:nobodyさん
07/12/31 00:40:49
>>427
クライアントのOSだったと思う
俺はLFに統一してる

493:nobodyさん
07/12/31 02:01:26 ye8NBX1l
クッキーにIDとパスがあった場合、
そのままログイン後の画面を表示させるか、
入力フォームに値を入れてボタンを押させるか、
どっちが主流?

494:nobodyさん
07/12/31 02:05:01
IDはまだしも、パスワードはクッキーに保存しちゃ駄目wwwwwwwwww

495:nobodyさん
07/12/31 02:07:28
mysqlも穴だらけだなぁと思う今日この頃。
ソフトウェア開発のがリスクがない分楽かもしれん

496:nobodyさん
07/12/31 02:22:13
>>493
IDやPASSをそのまま入れてる訳ではないけど
ログインしたままが多いんじゃないかな(Googleとかニコ動とかそうだし)

497:nobodyさん
07/12/31 03:43:38
そこらへんのphpゲーム見て回ってるんですけど
普通にhiddenでIDとPASSをやり取りしてページを移動していますよね、
これってセキュリティ的にどうなんですか?。。

498:nobodyさん
07/12/31 03:55:53
最悪

499:nobodyさん
07/12/31 04:08:11
そうなんですか、どこでも普通に使われてるので何かやってるのかと・・・。

ログイン画面でID・PASSを送信、ハッシュ化、
それに応じたハッシュがあればセッションを作成してページ間の移動に利用、
ページを移動したらセッションを破棄、また移動時にセッションを作成、破棄・・・

というの無知ながら考えたんですが、これはセキュリティとサーバーの負担から考えてどうなんでしょう・・・。
どなたかご教授お願いいたします。

500:nobodyさん
07/12/31 04:09:21
クッキーに保存して良いのはセッションIDのような、ワンタイムパスワードっぽいのだけ。

501:nobodyさん
07/12/31 04:44:33
まず読め→【PHP マニュアル】URLリンク(www.php.net)
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
スレリンク(php板)

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

502:nobodyさん
07/12/31 04:46:57
KY

503:nobodyさん
07/12/31 04:59:41
いっそのことテンプレをNGワードにしてしまおうか。

504:nobodyさん
07/12/31 05:18:46
普通に答えてやればいいのに

505:nobodyさん
07/12/31 10:13:13
自信満々な態度でテンプレを貼り付けてくるバカを見ると失笑を買う

506:nobodyさん
07/12/31 14:09:09 ExHZywTc
phpでMySQLからデータを引っ張ってきて、XMLに加工して出力してるんですが、
XMLの加工そのものは成功してて、IEなんかのブラウザで見てる分には問題ないんですが、
Ajaxで非同期受信すると、responce has no propertiesとなってしまいます。
(status=4を受信できないっぽい)

上記のエラーは、FirefoxのFirebagで見てます。
Firebag上は、ちゃんとXMLが取得できてるので、php側からstatusの4を送信できればいいんだと思うんだけど、やり方わかる人っていますか?

507:nobodyさん
07/12/31 14:09:53 ExHZywTc
もしくは、Ajax用にphpで動的にXMLの生成を経験した人っておりますか?

508:nobodyさん
07/12/31 14:21:09
どうせどっかでタイプミスしてんだろ

509:nobodyさん
07/12/31 14:21:27
質問する時は、せめて「どうすればいいですか?」って聞き方にした方がいいと思いますよ。
わかる人、経験した人ってのは案外多いもんです。

510:nobodyさん
07/12/31 14:29:56 ExHZywTc
phpでxmlを出力すると、ヘッダーが違うからっぽいですね。
何を出力すればいいんだろ?

>>508
してないです。

>>509
はぁ・・・


511:455
07/12/31 14:32:14
> php側からstatusの4を送信できればいいんだと思うんだけど

HTTPのことを全く理解せずにAjaxとかやってるやつって
色々大変なんだろうなー

512:nobodyさん
07/12/31 14:33:17
ヘッダなら、これで

header("Content-Type: application/xml; charset=utf-8");


513:nobodyさん
07/12/31 14:37:06 ExHZywTc
自己レスです。やっぱりヘッダでした。無事解決しました。

514:nobodyさん
07/12/31 14:39:10 ExHZywTc
>>511
Ajaxやったことない人からすると、羨ましいですか?

>>512
はい、それです。やっぱ実力のある人は回答をスパッと出しますね。
実力無い人って、なんでウザイんですかね?

515:nobodyさん
07/12/31 14:40:39
>>514
そうそうお前みたいに質問者の癖に無駄に解答者煽ったりとかな。
本当に勘弁して欲しいわ。早く巣に帰れ。

516:nobodyさん
07/12/31 14:43:42

「実力のある人は回答をスパッと出しますね」

実力のないやつがえらそうにこういうこと言うのって恥ずかしいなあ。

"responce has no properties"

"Firebag"

この手の注意力散漫なやつはくだらない打ち間違いで時間を無駄にするタイプ。(中学生か?)

ふつーにFirefox使ってりゃ、この手のバカが打ち間違えないように
赤い下線で打ち間違いを教えてくれるのに、それでも間違えるってのは真性だなあ

517:nobodyさん
07/12/31 14:45:09
恥知らずの中二病が冬休みのお勉強中か?

はやく「php側からstatusの4を送信」してみろよカスが

518:nobodyさん
07/12/31 15:11:38 ExHZywTc
>>515-517
そんなに悔しかったんですか?(w
久しぶりに必死な人を見ました。
今年の歳暮れも大変だと思いますが(w 頑張って下さいね。

519:nobodyさん
07/12/31 15:23:53

Firebag(笑)

> 上記のエラーは、FirefoxのFirebagで見てます。
> Firebag上は、ちゃんとXMLが取得できてるので、




次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch