【PHP】下らねぇ質問はここに書き込みやがれ 61
at PHP
[前50を表示]
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)
Wikipedia項目リンク
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のメル鯖に全部投げとか)にするかを書いた上で聞けばいいよ。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4073日前に更新/264 KB
担当:undef