07/12/20 09:10:35
セッション使わないでHIDDENで持ち回すほうがよっぽど…
50:45
07/12/20 09:26:29 8BakDrsf
>>46
どうもです あれこれサイト見て勉強します
>>48
どうもです まずい というのは上記の程度のセッションの利用でも、それをきっかけに
のっとりとかされてしまうのかなぁと、、
「修正シーン」に記入値をセッション引用して入れるのも、「ログインしたときだけ値を持たせる」の
ルールからすればダメなのかな、など気になります(別のやり方が思いつかない)
>>49さんの言うとおりhiddenでまわす方法があるのも調べてわかりましたが、
そしたら全部のリンクがpostになる?わけで、デザイン的にいやだしと、、
気が向いたときに回答いただけたら十分なのでよろしくお願いします
自分でも引き続き調べてみますので
51:nobodyさん
07/12/20 12:01:24
だれがログインしてるかって言う情報はサーバが管理すべきものだから、
セッションで管理すべきもの。
今画面に何を表示しているかについては、議論なり判断があって良いと思うけど、
これについては、個人的には hidden 推奨。
52:nobodyさん
07/12/20 12:04:00
同意。formタグ内で統一できて分かりやすいし、楽。
53:nobodyさん
07/12/20 12:11:34
こういう時はsessionだろ
54:nobodyさん
07/12/20 12:53:32
さあまた盛り上がってまいりました
55:45
07/12/20 14:09:16 8BakDrsf
>>51-52
え? つまりフォームの記入(修正)ページに入れる値は、hiddenですか?
てことは確認ページで
<input type="hidden" name="namae" />などしてキープして、
戻るボタンにjavascriptかなんかで修正ページに向けてsubmitするの?
ちょっと本屋で見てこよう、、
56:nobodyさん
07/12/20 14:12:30
ポカーン・・・
57:51
07/12/20 14:43:41
>>55
JavaScript使用可の前提で書くけど、どっちにするかといえば、Hiddenにする。
自分が作るなら、確認用ページはJavascriptで生成するようにする。
確認ページ表示に、サーバに問い合わせる情報が必要であればAjax的な方法で取得する。
携帯みたいな通信コストが無視できない場合は、セッションでの管理も考えるけど。
58:nobodyさん
07/12/20 14:49:48
会員の情報をサーバーに問い合わせるのにAjaxて怖くない?
サーバーサイドで完結してたほうがいいような気がするが。
59:nobodyさん
07/12/20 14:54:08
>>58
何で?
Ajaxでもセッション管理は出来るし、不要な情報はブラウザに返さなければ良いし。
60:45
07/12/20 21:21:17
>>57
なるほど 携帯とPCで使い分けするんですね、考えたこともありませんでした
あの、最後にひとつだけ聞きたいんですが
<input type=text name=namae>ってのが記入ページにあったとき、
確認ページは
<form action=kanryou.php>
<input type="hidden" name="namae" value="<? echo $_POST['namae']; ?>">
<input type="submit" value="完了ページへ">
</form>
ていう完了ページに飛ぶ用のフォームと
<form action="kinyu.php">
<input type="hidden" name="namae" value="<? echo $_POST['namae']; ?>">
<input type="submit" value="戻って修正">
</form>
という修正ページに飛ぶ用のフォーム2つを用意するんでしょうか?
フォームは一個で、クリックされたサブミットボタンに応じてactionの値を切り替えるの?
いい加減しつこいとは思うので、本当に暇な人、答えてくれれば結構です。sageます
61:nobodyさん
07/12/20 21:39:52
いくらなんでもスレ違い過ぎ…
62:nobodyさん
07/12/21 00:43:35
>>60
<input type="submit" name="action" value="確認">
<input type="submit" name="action" value="修正">
っていう風にすれば、$_POST["action"]を取得することでどの画面をだせば
いいかは分かるんで、確認画面にフォーム二つもいらない。
書き込みも確認も書き込み完了も、どの画面も全部同じひとつのPHPで扱うけどね。
わざわざ三つとかに分けたりしない。
フォーム入力値の受け渡しはセッションでやった方が楽だけど、既出の
通りブラウザ複製などの場合値が書き換わっちゃうのでやらない。
携帯ならこの問題がないけど、セッション使えないのもあるのでやっぱ
hidden使うかなあ。
セッション使うって言ってる人はこの問題にどう対応してるのか不思議。
63:nobodyさん
07/12/21 00:59:28 9upg4HjC
セッションというのは諸刃の刃だよ。
セッションを使うことによってセキュリティーは向上するけど、
多用しすぎることで、パフォーマンスが劣化し、結果的にセキュリティーが劣化するというジレンマ。
例えて言えば、医学が進歩して寿命が延びることで、不労人口が増えて、
結果的に人類が滅びるというジレンマだよ。
つまり、目先の良さにばかりいくと、長期的には全く逆の結果になるということ。
64:nobodyさん
07/12/21 01:03:49
セッション多用でセキュリティが低下ってのはわからんなー
セッション多用してメモリがいっぱいいっぱいになる可能性があるってーなら解るが
65:nobodyさん
07/12/21 01:04:23
>>63
意味不明
医学が発展することが人類が滅びることとどう結びつくんだよw
66:nobodyさん
07/12/21 01:12:13 9upg4HjC
>>65
想像力働かせろよ。
プログラマー脳の典型だよ、まぁ設計には一生なれないな、お前は。
200歳まで生きられる医術・薬品が開発される
↓
生殖機能を持たない、エネルギーだけを消費する不労生体が増える
↓
1人の若者が100人の老体を面倒見る。仕事している暇がない。
↓
国家財政破綻、国力ゼロ、防衛能力ゼロ
↓
発展途上国の台頭、テロリストの台頭
↓
国際経済破綻、無政府状態
67:nobodyさん
07/12/21 01:15:58
>パフォーマンスが劣化し、結果的にセキュリティーが劣化する
何故に?
68:nobodyさん
07/12/21 01:17:05
>>66
君は朝鮮人並の誇大妄想脳だねww
69:nobodyさん
07/12/21 01:17:13
>>66 は無視して良い話だろうけど、メモリを消費しすぎて落ちやすくなれば ISMSで言うところの
可用性が低下するので、広義のセキュリティが低下したと言えなくも無い。
70:nobodyさん
07/12/21 01:19:51
>>66
65では無いがお前の方が想像力なく見えるぞ
71:nobodyさん
07/12/21 01:26:24 9upg4HjC
お前らw
人を批判する前に、原因と結果の繋がりを細かく検証しろよ。
セッション多用
↓
メモリー消費、オーバーフロー
↓
HDDへのスワップが多発
↓
システムが不安定
↓
HDDの中身が画面に表示される
↓
セキュリティー劣化
72:nobodyさん
07/12/21 01:28:42 1HbS1x3e
PHPって配列を関数に渡すと、内容がコピーされるけど、このコストって意識すべき?
参照渡しすると、値が書き換えられて帰ってくることを期待してるようなソースに見えるのが嫌。
例えば、実は値を変更するまではマジックコピー的に処理してるとかだと気がラクになるんだけど。
73:nobodyさん
07/12/21 01:30:19
それはどちらかというとメモリの使用量とかをしてないのが問題なんだろ
多用してるのが解ってるならだいたいピーク時にどれぐらい消費してるとか
そういうのをチェックしてない時点でダメなんだろ
74:nobodyさん
07/12/21 01:31:37
>>72
基本的に参照渡しもそのまま渡すのも
関数内で変更しない限り内部的に一緒
75:nobodyさん
07/12/21 01:35:41 1HbS1x3e
>>74
ありがとう。気がラクになった。
面倒でなければ、情報ソースかヒントだけでも教えてくれるとありがたい。
76:nobodyさん
07/12/21 01:51:45
>>75
記事自体は凄く古いが
URLリンク(www.sound-uz.jp)
ここだったと思う
まぁphpのサイトにもパフォーマンスのためだけに使うなって書いてるし
URLリンク(www.php.net)
それでも気になるならmemory_get_usageとか使って
メモリの消費量をチェックしてみるといいかもね
77:45
07/12/21 02:41:08
>>62
本当にありがとうございます、感動しました
頑張ります
78:nobodyさん
07/12/21 04:34:35
>>62
>既出の通りブラウザ複製などの場合値が書き換わっちゃうのでやらない。
これなんか問題あんの?
79:nobodyさん
07/12/21 05:02:52 k3WWlkOg
質問です。
指定した数の乱数順列を生成する関数とかってありますか?
例えば10を指定した場合、
4,3,2,9,8,7,10,1,6,5
3,6,4,2,1,9,7,10,8,5
のような並びで配列とかに格納してくれるような感じで。
もし知っている方いましたら教えてください。
お願いします。
80:nobodyさん
07/12/21 06:01:09
>>79
shuffle()
81:nobodyさん
07/12/21 06:18:03
>>80
ありがとうございました。
82:nobodyさん
07/12/21 10:14:56 O7QmdYOi
質問です。
ローカルテストのためWindowsXPにApache/2.0.61(Win32) PHP/5.25をインストーラーでインストールしたのですが、
パスを指定してアクセスすると.phpのファイルだけHTTP500内部サーバーエラーが出て表示してくれません。
.htmlは表示されますし、.pqpとか適当な拡張子をつけたファイルも表示はしてくれました。
Apache MonitorではPHPのバージョン表記もされていて、
インストールは完了しているようなのですが、何か原因が分かればお願いします。
83:nobodyさん
07/12/21 11:07:39
>>76
なるほど。PHPよく出来てるな。
どうもありがとう。
84:nobodyさん
07/12/21 11:18:19
phpの開発に携わるには、どうしたらいいのかな?
こんな中で開発に携わっている人いる?
いや、一つのメソッドでもいいので実装したら、
それだけで経歴書に「phpの開発メンバー」とかって書けるかなぁ、って。
出来たら、自分が作ったメソッドに自分の名前の一部で使えたら最高なんだけど。
85:nobodyさん
07/12/21 11:19:19
>>82
自分は詳しくないけど、まずはApacheのエラーログ見たら?
86:nobodyさん
07/12/21 11:54:40
phpで500エラーってcgiとして動かそうとしてるのか?
87:nobodyさん
07/12/21 11:55:36
って、5.2.4以降はエラーをブラウザに返さないで500出すようになったのか
88:nobodyさん
07/12/21 11:59:36
マッピングされてないだけだったりして
89:nobodyさん
07/12/21 12:04:23
>>84
単にPHP自体の開発が出来るということを示したいだけなら、
野良モジュールをpeclにでも登録すれば?
あるいはメインストリームなモジュールのバグ一覧を見て、
未解決のバグのパッチを辛抱強く投げつづけるか。
そうでなければ、本家MLに参加して議論とパッチの応酬を繰り返すとか。
しかし経験からいわせてもらうと、PHPの開発がホイホイ出来る奴は
PHP言語を使う仕事にはなかなかつかせてもらえない罠
90:nobodyさん
07/12/21 12:10:20
ちと質問なんですが、
『排他ロック中には他のプロセスが割り込めないので
ロックは1つかければ十分』…と聞いたんですが
例えば…
$lock_fp = fopen("lock.txt","w");
flock($lock_fp,LOCK_EX);
$fl = fopen("data.dat","w");
if($fl){
fwrite($fl,$write_data);
fclose($fl);
}
fclose($lock_fp);
こうしておけば、data.datの方もlock.textがロック解除されるまでは
書き込んだりできないんでしょうか?
91:nobodyさん
07/12/21 12:29:26
>>89
なるほど、参考になるわ。ありがとう。もしかして、開発メンバー?
>しかし経験からいわせてもらうと、PHPの開発がホイホイ出来る奴は
>PHP言語を使う仕事にはなかなかつかせてもらえない罠
これは、どうして?
PHPを開発した人は守秘義務とかに縛られて、
PHPを使った開発はできないとか?
>>90
これ、ちょうど俺が実装したかったロジックだ。なんというタイミング。
俺が実装したいメソッドは、一つのメソッドで面倒なロックをやってくれるもの。
boolean write_data_with_safety_lock($file_name, $data)
ファイル名と書き込みデータを引数で渡せば、
ロック機構を実装したこのメソッドが安全に書き込めるというメソッド。
このメソッド作ったら、絶対php6.0とかに採用されると思っているんけど。ニーズも絶対あるし。
92:nobodyさん
07/12/21 12:47:28
phpはオープンソースです
93:nobodyさん
07/12/21 13:02:05 S3fUHMf0
pearだったかのコーディング規約で、PHPだけのファイルの場合、
<?php だけで、最後の ?> は付けないってのがあったと思うんだけど
これって個人的にはすごく気持ち悪いんですが、こんなもんなんでしょうか?
94:93
07/12/21 13:03:54
>>93
ああ、ZendFrameworkのコーディング規約でした。
95:nobodyさん
07/12/21 13:10:57
最後に?>を付ける事によって?>以降に書かれた文字列が表示される
表示される事による見つけにくーいバグを回避する事ができる
と俺は勝手に解釈
まぁ画像をphpで出力されてたりとか
携帯向けにHTML出力する時にこういうので苦労した事あったから
俺はつけないけど
96:nobodyさん
07/12/21 13:13:40
>>91
>>PHP言語を使う仕事にはなかなかつかせてもらえない罠
>これは、どうして?
単なる元野良モジュール作者だけど、
単純にCでマルチプラットフォームな開発が出来る奴ぁそれを仕事にした方がぶっちゃけ収入が良いのです。
97:93
07/12/21 13:52:16
>>95
ああ、なるほど。
改行コードとか目に見えにくい文字列もありますね。
ありがとでした、納得しました。
98:nobodyさん
07/12/21 14:35:20 J4pqu08c
童貞先輩が新人女子OLにアタックしてるwww何とかしてくれwww
99:nobodyさん
07/12/21 15:20:15
くだらねえwww
100:nobodyさん
07/12/21 15:46:33
おい上原ぁ!!お前が何とかしろ!
101:nobodyさん
07/12/21 15:53:53
""を含むhtmlタグ入り文章をechoやprintで表示、
変数に格納するにはどうしたらいいんでしょうか。
初心者質問スマソ。
102:nobodyさん
07/12/21 16:01:46
> ◆質問する時の注意
> ・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
> ・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
> ・ 己の行った操作、変更などを詳しく明記すること。
> ・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
> ・ 質問者として、態度をわきまえること。
> ・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
103:nobodyさん
07/12/21 16:03:59
>>101
URLリンク(www.php.net)
104:101
07/12/21 16:04:34
自己解決しました
<a href="index.html">2ちゃんねる</a>だったら
↓
echo "<a href=\"index.html\">2ちゃんねる</a>";とするか
echo '<a href="index.html">2ちゃんねる</a>';とすることで解決しました。
君たちみたいなバカに聞いたのが間違いでした、ニートどもは黙って職安いきなさいクズ
105:nobodyさん
07/12/21 16:11:34 Bll92Vnt
Ethnaでのトランザクション処理について、
DB更新を処理ごとに複数の関数で作成する場合は
エラー時にロールバックするためにそれぞれの関数の頭に
$db = $this->backend->getDB();
$db->db->autocommit(false);
$db->begin();
これを書く必要がありますか?
それとも
$db = $this->backend->getDB();
だけでOKですか?
106:nobodyさん
07/12/21 16:13:00
最近>>1読まないやつ多いな
>・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
107:nobodyさん
07/12/21 16:23:19
$db = $this->backend->getDB();
$db->begin();
のみでOK
108:101
07/12/21 16:40:25
>>103-104
ありがとう。専ブラなんでsageチェック外すの忘れてました。
>>104さん、他人を騙ってる割にはいい人ですね感謝。
109:90
07/12/21 16:57:32 mXpbsFrG
あれま、レスが無いと思いきや、同じくsageてました。失敬。
あらかじめロックファイルの方で排他ロックを制御できれば
処理が簡単でいいなぁ、と思ったんですが、>>90のやり方で
data.datに対しての同時書き込みは防げますでしょうか?
110:nobodyさん
07/12/21 17:00:05 mCAqxYSI
音楽(asxファイル)の再生数をカウントするスクリプトを作りたいのですが
PHPをどこにはさんでよいのかがわかりません。
一覧ページで再生する曲をチェックし、フォームで取得しています。
form actionで指定したページに
<OBJECT ID='Player' width='300' height='48'
CLASSID='CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6'>
<PARAM name='autoStart' value='true'>
<PARAM name='URL' value='file_name.asx'>
<embed src='file_name.asx' autostart='true' width=300 height=48></embed>
</OBJECT>
を記述しています。
PHP5.2.4 APACHE2
よろしくお願いいたします。
111:nobodyさん
07/12/21 17:00:17 bUxsI4En
ログイン画面から入る会員領域のトップページを作ってるんですが、
入力されたID・パスが違うときはエラー画面に飛ばす処理が上手くいきません
session_start();
/* ログイン情報問い合わせ-----------------------------------------*/
require_once 'config.inc.php';//DB接続関連の設定ファイルの読み込み
require_once 'adodb/adodb.inc.php';//ADOdbモジュール読み込み
$DB = NewADOConnection(_DB_TYPE);//接続の設定
$DB -> pconnect(_DB_HOST, _DB_USER, _DB_PASS, _DB_NAME);
if(!$DB){//接続エラー時
header("Location: /system/index.html?ec=1");?//エラーページへ
exit;
}
php部分は上記の記述だけですが、表示すらされません。リダイレクトもされません
//if文の中のheader;とexit;をコメントアウトすれば、省略されてる
<html>タグ以下のページデザイン部分が表示されます
headerはすべての出力よりも先に書くというルールは知ってるんですが
何も出力してないはずでわけがわかりません
低レベルですみません、教えてください
112:nobodyさん
07/12/21 17:01:30 bUxsI4En
すみません、間違えました
×入力されたID・パスが違うとき
○接続エラーのとき
113:nobodyさん
07/12/21 17:01:36
>>106
テンプレのスレなんてねーぞコラ
114:nobodyさん
07/12/21 17:02:43
自分で立てろカス
115:nobodyさん
07/12/21 17:15:35
>>113
あるだろボケ
スレリンク(php板)
116:105
07/12/21 17:35:04 Bll92Vnt
>>107
ありがとうございます。助かりました。
>>106
すいませんでした。Ethna固有の機能ではなかったので「Ethnaの環境でやってます」という意識でした。
117:nobodyさん
07/12/21 18:01:23
>>110
音楽ファイルを読み込む前か後ろにカウント処理
118:nobodyさん
07/12/21 18:02:09
>>111
headerの使い方をもう一度確認
119:110
07/12/21 18:42:10 mCAqxYSI
>>117
やってみたのですが、やっぱりページカウンターになってしまいました。
if(isset($_POST['maker'])) {
$db = new mysqli("*","*","*","*");
$stt = $db->prepare("select * from music_lank where url=?");
$stt->bind_param("s",$_POST['maker']);
$stt->execute();
if($stt->fetch()!==TRUE) {
$sql="insert into music_lank(url,count) values(?,1)";
}
else {
$sql="update music_lank set count=count+1 where url=?";
}
$stt->close();
$stt2 = $db->prepare($sql);
$stt2->bind_param("s",$_POST['maker']);
$stt2->execute();
$db->close();
print("
<OBJECT ID='Player' width='300' height='48'
CLASSID='CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6'>
<PARAM name='autoStart' value='true'>
<PARAM name='URL' value='ASX/{$_POST['maker']}.asx'>
<embed src='ASX/{$_POST['maker']}.asx' autostart='true' width=300 height=48></embed>
</OBJECT>
<br>
");
}
冒頭の「isset」が原因なのはわかるんですが
埋め込みのメディアプレーヤーの再生ボタンを
押した瞬間にPHPを発動できれば解決なんですが・・・。
120:nobodyさん
07/12/21 19:39:49
そりゃそんなところに仕込めばページカウンターになるw
121:110
07/12/21 19:49:36 mCAqxYSI
どこに仕込めばよいのかがわからないです・・。
122:nobodyさん
07/12/21 19:55:42
>>119
>埋め込みのメディアプレーヤーの再生ボタンを
>押した瞬間にPHPを発動できれば解決なんですが・・・。
むり。どうしてもやりたいならAjaxとかFlashつかえ
123:nobodyさん
07/12/21 19:57:20
1.再生ボタンを素材で用意して、そこを押すと再生ページに移動
2.FlashでActionScriptで組み込む
124:110
07/12/21 20:00:51 mCAqxYSI
>>122
無理でしたか。それが分かっただけで一歩進めました。
ありがとうございました。
>>123
ありがとうございます。
125:nobodyさん
07/12/22 00:11:25
windows, xammp な環境で
URLリンク(localhost)(UTF8なファイル名).html
のようにアクセスすると、ローカル上の
UTF8なファイル名.html
ではなく
SJISなファイル名.html
にアクセスしにいくんですが、これってどういう理屈かご存知の方いませんか?
firefox, ie7 共になります。
これって windows じゃなくて linux サーバ上だと
EUCなファイル名.html
を見にいったりすることになるんですかね?厄介。
126:nobodyさん
07/12/22 00:13:29
>>1
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
127:nobodyさん
07/12/22 00:15:38 YFLFW+ip
echo <<<EOF
~~
EOF
ってのがよくあるけど、この~~の部分で関数を実行できないの?
echo <<<EOF
<td>$hoge->gethoge(1);</td>
EOF
って感じ。関数でなく、変数を書いてその値を表示ならできたんだけど。。
128:nobodyさん
07/12/22 00:26:48
>>127
>>1
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
129:nobodyさん
07/12/22 00:45:03 VmEGw74T
教えて下さい。
よく、以下の表示を見るのですが、これはどのように制御しているのでしょうか?
セッション数を取得して閾値を越えたら、この表示を出すといった処理なのでしょうか?
私も作りたいとは考えているのですが、何を基準にしていいいのか分かりません。宜しくお願いします。
現在アクセスが集中しています。
現在アクセスが集中しており表示しにくい状態となっております。
申し訳ございませんが、しばらく時間を置いてからアクセスするようお願いいたします。
130:nobodyさん
07/12/22 00:49:58
>>129
httpのステータスコード見て判別すれ
131:nobodyさん
07/12/22 01:39:24
>>127
できるよ。ある関数を使うけどね
132:nobodyさん
07/12/22 01:40:47
>>129
考えられる方法
1.apacheの設定
セッション使うのはもったいないからapacheの設定だな
133:133
07/12/22 03:51:34 PQDDH9MU
レン鯖やヤフーメイルで仮登録
→メールが送られてきて、リンクをクリックすると本登録
→サーバスペースやメールboxが作られる
この一連の動作を自分のサイトで実現しようと思ったら何を勉強すればいいだろうか。
phpとDB系を組み合わせればできる?
134:nobodyさん
07/12/22 04:03:34
>>129
DB関連でエラー出たらそれ出してるんだと思ってた。。
セッションやApacheへの接続数より、DBがボトルネックになることが
多い気がするし、「現在アクセスが集中しています。」の表示が出るまで
ちょっと時間かかるサイトが多いし。
ただしDB接続エラーでこれ出すだけでもDBに負荷かかるんで、132の言う
通りApacheでやるのが一番いいかなあ。
Apacheの設定、PHPでセッション数、DBの接続エラー全部でそういう処理
入れといて、DBの接続エラー出る前にApacheの接続数の上限に達する
ようにうまく調整するのが一番よさそう。
135:nobodyさん
07/12/22 04:21:23
>>133
メールサーバとサーバOSもかな。Webサーバもね。
・仮登録メールを受信してPHPを実行する仕組みが必要。これはメールサーバ。
本登録用のメールはPHPがメーラーの役割を果たして、メールサーバ利用して
返信する。
・サーバスペースは物理的にHDDにフォルダ作ることになるから、PHPからシェル
コマンド叩くとかの処理がいる。手動であらかじめ作っといて、空きがないなら
登録拒否とかでもいいかもだけど。。
・メールボックス作成はやったことないんでよくわからん。
コマンドラインでそういう処理ができるメールサーバはありそうだから、やっぱり
PHPから実行することになるかな。これも手動であらかじめ、ってできるかもだけど。
・Webサーバの知識はWebアプリ作る以上当たり前。
その機能を実装するだけなら通り一遍の知識でも動くと思うけど、
サーバスペース貸与サービスってレンタルサーバでできるのかな?
できないなら自分でサーバたてて運用することになるんで結構大変。
特にメールサーバは下手に立てるとWebサーバ以上に迷惑をかけることになるので。
知り合いがそういうサービス個人でやってたけど、自宅にサーバ
置いてたしなあ。
136:127
07/12/22 05:00:56
自己解決しました
一旦外で実行してから読み込めばいいんですね どうもお騒がせしました
137:nobodyさん
07/12/22 05:57:17
>>133
分かりにくい質問だけどメールサーバ関係ないんだろ?
セッションやmd5でユニークな値を持つチケットを発行すれば済む話
138:133
07/12/22 06:35:51
>>135 レスありがとうございます。
実は趣味で自宅鯖立てて、最近スペース貸出を考えているのですよ。
それでそんなプログラムできればいいかな、と。
PHPって結構いろんなことできるんですね。PHPを習得するとともに、まずメル鯖立てるために固定IPゲットせねばw
135さんのレスをもとに勉強の方針立てて頑張りたいと思います。
ところでこんな時間にレス、て何者?w
139:nobodyさん
07/12/22 09:36:10
今日は休日だからな。
自鯖立てるのは結構だが、質問内容からするとかなり不安なので、
最初は審査はさんで手動登録にするとして、鯖管としての勉強をするのが第一。
踏み台になって周りに迷惑かけないようにね。
140:133
07/12/22 11:10:17
>>139
余計なお世話です。
141:nobodyさん
07/12/22 11:21:56 JyLvDbSd
classが存在するか調べる方法はありませんか?
PEARでDB.phpが読み込まれているかチェックするために
クラスチェック("DB")のようにしたいのです
142:nobodyさん
07/12/22 11:24:26 JyLvDbSd
class_existsで解決しました
143:nobodyさん
07/12/22 13:21:02 iV97cpSO
$str = "1+2+3"; というようになっているstring があったとして、
これを数式だと解釈して 1+2+3 (= 6) を返すような関数て
ありましたかね?
144:nobodyさん
07/12/22 13:21:36
>>143
eval
145:nobodyさん
07/12/22 13:36:39 iV97cpSO
>>144 ありがとう。
$str = "1+2";
echo $str. "\n";
eval("\$str2 = $str ;");
echo $str2. "\n";
解決した。
146:138
07/12/22 13:46:19
>>133
まあ鯖管やるといろいろと勉強になるし、がんばってくれ。
ただ139と同意見でもあるので、いっぺんにいろいろやろうとせずに
PHPならPHPだけって感じでやっていったほうがいいと思う。
メールサーバは半日放置すればすぐ踏み台にされるし、他のメール
サーバの管理者から文句が来たり、ISPその他から警告来ることがあるよ。
147:nobodyさん
07/12/22 15:17:14 JyLvDbSd
PEARのmimeDecodeで
$structure = Mail_mimeDecode::decode($params);
をしたときに、メールの件名・本文の文字コードを取得したいのですが、
本文はcontent-typeにありますけど、件名がありません。
どこで取得すればよいのでしょうか?
148:nobodyさん
07/12/22 15:29:17 XDbomIjm
本でもWebでもいいんですが、PHPの長い良質なソースコードないですか?
勉強したいので。。独学ですが、普通の本のソースじゃものたりなくなりました。。
よろしくお願いします。
149:nobodyさん
07/12/22 15:35:26
>>148
pear
zend framework
あたりかな
150:148
07/12/22 15:40:37 XDbomIjm
>>149
どうもありがとうございます。その2つをとりあえず見てみます。あと、思いついたんですが
洋書でいいのないですかね?あっちの方が本格的な気がして。。洋書でいいのを知っている方
教えてください。よろしくお願いします。
151:nobodyさん
07/12/22 15:49:04
シェル形式(perl形式)のコメント#って廃止予定とかあったりする?
あまり使われてないようだけど、#がスクリプトに混ざってたりしたら気持ちわるかったりするのかな
#昔書いたスクリプトで、いたるところにコメントで/* */を使ってあるのをメンテしてて、
#/* */使って問題箇所を切り分けようとしたら酷い目にあった
152:nobodyさん
07/12/22 15:50:38
>>150
「気がする」程度なら必要ない
それよりまず日本語ドキュメントを完全マスターすべし
153:nobodyさん
07/12/22 15:54:32
>>148
PHP5でクラス使ってるのが所望なら、mediaWIKIおすすめ
俺はめまいがして静かにエディタを閉じたけどw
154:nobodyさん
07/12/22 15:54:49
ユーザーが入力した式を
evalで実行してます。
(計算機のようなものです)
でもこうすると、ユーザーがたとえばファイル読み書きなんかの
命令を入れたら実行されてしまいます。
なんかいい方法はありますか?
ちなみに単純な計算機ではなく、関数など複雑な
式を入力することが出来きることが条件です。
155:nobodyさん
07/12/22 15:55:21
pearなんてあんま良質とは思えないのも多々ある訳だが
動物本でも読んだら?
156:nobodyさん
07/12/22 16:00:36
pearといえばNET_IP_V4←うろおぼえ
で、どんなIPアドレスでもネットワーク内ある(trueになる)という、
物凄いバグありバージョンがあったな
設置だけして使ってはいなかったけど
157:nobodyさん
07/12/22 16:13:35
>>154
なんのためにそんなの作ってんの?
158:nobodyさん
07/12/22 16:23:32
>>154
自分も式を扱うプログラム書いてるけど、色々処理が必要なので真面目にパースしてる。
簡単に済ませるなら、正規表現で計算式以外の要素が無い事を確認するのが良いんじゃないかと思う。
正規表現では対応しにくいようなら、Tokenizer使って分解してチェックじゃないかな。
URLリンク(jp2.php.net)
159:nobodyさん
07/12/22 17:20:10
>>157
複雑な検索条件入力 ですが?
160:nobodyさん
07/12/22 18:52:20
>>154
>>1
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
161:148
07/12/22 19:01:21
>>152 日本語ドキュメントもしっかり読んでみます。ありがとうございました。
しかし、ソースを打ちたい。。
>>153 MediaWikiをググって見てみました。今のところどういうものかわかりませんが
時間ができたらよく調べてみようとおもいます。どうも有用な情報ありがとうございました。
お二方、お礼が遅くなりすみませんでした。ありがとうございました。
162:nobodyさん
07/12/22 20:40:17
>>150
Advanced PHP Programming
がいいよ(洋書)。
163:nobodyさん
07/12/22 23:19:52
>>162
すごい、きになる。
やっぱ洋書がいいのかなあ
164:nobodyさん
07/12/23 01:20:47
別に変わらんと思うが
165:nobodyさん
07/12/23 01:28:41
そりゃまぁ、書いてある事は同じだろ。
というか違う事が書いてあったら困る。
166:nobodyさん
07/12/23 02:11:39
>>163
もう少しで新しいバージョンのが出るらしい。
今気付いたけど、Amazon見ても目次もないから買おうか迷ってる人が判断できないな。
もったいない。
この本には、中括弧の置き方くらいの事に関しても、BSD style, GNU style,
K&R style のそれぞれの説明とかがある。
あと、Extensionの説明だけでなく、「Writing SAPIs and Extending the Zend Engine」
なんて章があって、SAPIで使ってる構造体から説明してる。
データベースマッピングの複数のデザインパターンの説明もあって、
The Active Record Pattern とかいろいろ書いてある。
もちろんその他には、エラーハンドリング、テンプレートシステム、テスト、
キャッシング、セッション、認証、RPC、プロファイリングとかの説明もある。
なんて言うか、本格的。
なんで日本語訳されてないんだろう。
167:nobodyさん
07/12/23 03:32:32 KIQSv7/M
[a.php]
<?
$hoge = 'a';
~インクルードここまで
$hoge = 'b';
?>
[include.php]
<?
include 'a.php';
echo $hoge;
?>
$hoge = a にしたい場合、ifで制御する方法はありませんか?
include_break();みたいな
168:167
07/12/23 03:33:34 KIQSv7/M
ifで制御 → if以外で制御
169:nobodyさん
07/12/23 04:06:10
ファイル分ければ?
170:nobodyさん
07/12/23 04:16:30
>>167
わざわざ難しく考えないで、今できる知識で組めよ。
コードを今の10倍の量を書いたとき、新しい技法を覚えるってことよ
171:nobodyさん
07/12/23 04:57:03
phpに関する初歩的な質問です。書いたコードは下に示します。
htmlquickformでメールフォームを作りたいのですが、その過程でprocess関数を使うところでつまづいてしまいました。
process('test',false)としてfunction test($values)と受け取るのですが、
具体的にvaluesが何の値を受け取っているのかがよく分からないのです。
下のコードでいうと
function mail($values)
{
mb_send_mail(??????????????);
}
のところで、「valuesって一体何?」と思うわけです。
直感的にmb_send_mail(:::@:::,$subject,$body);としてもダメなようですし、、、混乱してます。(C→phpとやってきたからかな、、、
172:nobodyさん
07/12/23 04:57:57
ryaku
$form->addElement('header',NULL,'お問い合わせ');
$form->addElement('text','name','名前');
$form->addElement('text','mail','メールアドレス');
$form->addElement('text','subject','件名');
$form->addElement('text','body','本文');
$form->addElement('submit','sbm','送信');
$form->addRule('name','名前を入力してください。','required','client');
$form->addRule('mail','メールアドレスを入力してください。','required','client');
$form->addRule('mail','メールアドレスを正しく入力してください。','email','client');
$form->addRule('body','本文を入力してください。','required','client');
$form->setRequiredNote('<font color="Red">*</font> 必須項目です。');
$form->setJsWarnings('入力ミスによりエラーが発生しました。','エラーをご確認の上、再度[送信]ボタンをクリックしてください。');
if($form->validate())
{
$form->process('mail',FALSE);
}
else
{
$form->display();
}
function mail($values)
{
mb_send_mail(??????????????);
}
?>
173:nobodyさん
07/12/23 05:00:50
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
174:nobodyさん
07/12/23 06:07:25
SimpleXMLElementで、
<data>
aaa
<p>bbb</p>
ddd
</data>
てなXMLの"aaa"とか"ddd"のようなTextノードにはどうやって
アクセスしたらいいでしょう??
asXML()すると復元できるんだよなぁ
175: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カテゴリ)の各スレで