[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 05/09 11:26 / Filesize : 125 KB / Number-of Response : 462
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれPHP(超初心者用)2



1 名前:nobodyさん mailto:sage [2006/11/27(月) 17:46:42 ID:???]
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。

PHP Home Page
www.php.net/

248 名前:nobodyさん [2007/03/05(月) 22:57:54 ID:peb4Wfoi]
すいません、すごいくだらない質問なんですがphp5で

postfixに送られたメールをメールエイリアスでphpに送り、PEARで解析して
内容をファイルに出力しようと思ったんですが、ブラウザで実行しないと
ファイル操作はできないんでしょうか?





249 名前:nobodyさん mailto:sage [2007/03/05(月) 23:01:10 ID:???]
>>248
PHP CLI で調べて味噌

250 名前:nobodyさん [2007/03/05(月) 23:20:54 ID:peb4Wfoi]
>>249
返信ありがとうございます。
ちょっと説明不足だったようです。
申し訳ない。

Cli 4.4.4を使用しておりまして、

postfix => php PEARで解析 => 送信者に自動返信を出す

までは出来ているのですが、

postfix => php PEARで解析 => 外部ファイルもしくはMySQLに送信者アドレスを記録 => 送信者に自動返信を出す

としたいのです。

見当違いな返事してましたら申し訳ありません。
宜しくお願い致します。


251 名前:nobodyさん mailto:sage [2007/03/05(月) 23:25:22 ID:???]
>>250
ん?何故出来ないのか不思議だが・・

php PEARで解析 してるPHPの後ろに、mysqlにinsertする構文を書き足せばいいんじゃないの?


252 名前:nobodyさん [2007/03/05(月) 23:30:54 ID:peb4Wfoi]
>>251
mysqlに接続、もしくは外部ファイルオープンするとそこで処理止まってしまうようなのです。

同じphpでPEARでの解析失敗の場合die;の所だけコメントアウトしてブラウザで実行すると
ちゃんと書き込めるんですが・・




253 名前:nobodyさん mailto:sage [2007/03/05(月) 23:32:20 ID:???]
>>252
OSとか環境をもっとしっかり書くと何かレスがあるかもしれない

254 名前:nobodyさん [2007/03/05(月) 23:43:07 ID:peb4Wfoi]
>>252
失礼しました

phpinfo()のコピーですが

OS MacOSX 10.4.8
Apache/1.3.33 (Darwin) PHP/5.1.6
MySQL Client API version 5.0.24a

でターミナルでphp -v を実行すると
PHP4.4.4(Cli)

と出ます。

他何か必要な環境ありますでしょうか?
宜しくお願い致します。


255 名前:nobodyさん mailto:sage [2007/03/05(月) 23:47:29 ID:???]
>>252
外部ファイルをオープンすると駄目って時点でなんかバグっぽい気もするなぁ・・

256 名前:nobodyさん mailto:sage [2007/03/05(月) 23:48:04 ID:???]
あと
【PHP】下らねぇ質問はここに書き込みやがれ 40
pc11.2ch.net/test/read.cgi/php/1172151461/

こっちのほうが人いるからいいかもしれない。



257 名前:nobodyさん [2007/03/05(月) 23:52:41 ID:peb4Wfoi]
>>256
ありがとうございます。

マルチになってしまうと思ったのですが、書き込んでみます。
ありがとうございました。

258 名前:nobodyさん mailto:sage [2007/03/06(火) 00:08:11 ID:???]
こっちでは終了します、とか言っておいたほうがいいと思う。

259 名前:nobodyさん [2007/03/06(火) 02:21:14 ID:Crrd1LQs]
>>258
ありがとうございます。

こちらでは終了させて頂きます、ありがとうございました。

260 名前:nobodyさん mailto:sage [2007/03/13(火) 17:04:07 ID:???]
$tcount = date(d);
$tcount ++;
$tcount --;

のように足したり引いたりする意味って何なのでしょうか?

261 名前:nobodyさん mailto:sage [2007/03/13(火) 17:42:21 ID:???]
>>260
「うぃぇ」とか?

262 名前:260 mailto:sage [2007/03/13(火) 18:37:33 ID:???]
すいません。「うぃえ」とは一体なんでしょうか?
足したり引いたりせずに、そのままでも同じな気がするんですが。

263 名前:nobodyさん mailto:sage [2007/03/13(火) 19:25:19 ID:???]
PHPのページで他のPHPを呼び出すためのタグを教えてください。
猫手をindex.phpに使用していたのですが、間違えて消してしまい、
どういうタグを描いていたかも忘れてしまい・・・

264 名前:nobodyさん mailto:sage [2007/03/13(火) 20:06:56 ID:???]
>>263
マルチはやめてね

265 名前:nobodyさん mailto:sage [2007/03/14(水) 06:00:53 ID:???]
マカってクズだな。

266 名前:nobodyさん mailto:sage [2007/03/14(水) 17:56:54 ID:???]
>>260
行間に毎回

print $tcount;
でもしてみればいいじゃん。



267 名前:nobodyさん mailto:sage [2007/03/15(木) 17:11:23 ID:???]
>>262
qwertyキーボードだろ?
違ったらスマソ

268 名前:GC ◆v7P9gkbRs6 mailto:sage [2007/03/15(木) 17:44:55 ID:???]
>>262
まちがいた。かなりの分析力がないとqewrtyからは出せないとおもたので。
サービス・ヒント
つ「うぃぇ」ローマ字に直せ?

$tcount = date(d);
while($tcount<1000){
print "$tcount";
$tcount++;//←これだろ!?
}

 △
または
 ▽

$tcount = date(d)+1000;
while($tcount<1000){
print "$tcount";
$tcount--;//←これだろ!?
}

 △
または
 ▽

for($tcount=date(d);$count<1000;$tcount++;){
print "$tcount";
}
   △
   ▲
   △
出力してみればわかると思うが…orz

269 名前:nobodyさん [2007/03/15(木) 17:52:22 ID:SLFW7rVS]
▲▲▼▼???? B A

270 名前:nobodyさん mailto:sage [2007/03/15(木) 19:25:51 ID:???]
現在ソースをUTF8で書き自動変換してSJISのページを出力してるのですが、フォームで機種依存文字(T、U)を送ると(?)に化けてしまいます。
このような場合はどのようにすればいいのでしょうか?

271 名前:nobodyさん mailto:sage [2007/03/15(木) 20:18:30 ID:???]
>>268
>まちがいた

これはいったい何語だ?

272 名前:nobodyさん mailto:sage [2007/03/16(金) 13:25:13 ID:???]
すいません質問です
ネットでPHPの掲示板をフリーでDLさせていただき、それをatwikiに設置したいと考えております
FFFTPというソフトウェアを使うところまでわかったのですが、それ以降はどのようにして設置してよいのかわかりません
どなたかわかる方居られないでしょうか?
よろしくお願いします

273 名前:nobodyさん mailto:sage [2007/03/16(金) 18:46:11 ID:???]
サーバにアップロード

274 名前:nobodyさん mailto:sage [2007/03/16(金) 19:05:32 ID:???]
>>273
それはわかるのですが、wikiにアップロードしてPHPのファイルを開くと文字化けというかなんかすごいことになってるんですよ
で、掲示板なので文字書いて送信するとこのページは存在しないとかなんとかでてきて・・・
どうするばいいんですかね?

275 名前:nobodyさん mailto:sage [2007/03/16(金) 19:13:09 ID:???]
WebサーバとPHPの基礎から勉強したほうがいいと思うよ

276 名前:GC ◆v7P9gkbRs6 mailto:sage [2007/03/16(金) 19:45:46 ID:???]
>>274
俺もそーおもうょ



277 名前:nobodyさん mailto:sage [2007/03/16(金) 19:56:21 ID:???]
>>275-276
超初心者スレなのにその投げやりな態度なないだろw
>>274
その文字化けとやらがよくわからないから、画像をよこしてくれないか?

278 名前:nobodyさん mailto:sage [2007/03/16(金) 20:19:52 ID:???]
>>274
>FFFTPというソフトウェアを使うところまでわかったのですが、
原因これじゃねぇの?

279 名前:nobodyさん mailto:sage [2007/03/17(土) 01:33:30 ID:???]
>>278
では、どのようにして設置するのですか?
atwikiのサーバーを弄るわけには行かないし・・・
誰かお願いします

280 名前:nobodyさん mailto:sage [2007/03/17(土) 04:58:01 ID:???]
>>279
お前は世の中の基本から勉強しなおす必要があるな。

・自己解決する能力や技術がある人・・・オープンソースやフリーサービスを使う。

・そういう能力や技術がない人・・・お金を支払って技術がある人にやってもらうか、有料サービスを使う。

281 名前:nobodyさん mailto:sage [2007/03/17(土) 05:17:05 ID:???]
>>280
おいおい朝っぱらからそれかよ
「質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。」って>>1にあるのにその態度ははないってw
>>277でも言ったけど初心者邪険にしてどうするよ?

>>279
だから>>277でも言ったけど画像を用意してくれないと(ry

282 名前:nobodyさん mailto:sage [2007/03/17(土) 16:28:37 ID:???]
>>274
ファイルのエンコードはど?
 (「UTF」とか「EUC」とか「Shift_JIS」の「LF」とか「CR」とか?)
ファイル内のエンコードの宣言とかはど?
 (見手任せになってないか?)
PHPの確認作業とかはどうゆう環境でやってるの?
PHPをやろうと思う人間がそんな初歩的な瑕疵をすると思えないが念のため…
一応、そのくらい晒してもらえれば、答えられるかもしれないぉ(`・ω・´)

283 名前:nobodyさん mailto:sage [2007/03/17(土) 19:33:36 ID:???]
>>279
なんかお前さんのカキコから察するに全くのド素人みたいだからここじゃなくて他のところ行ったほうがいいんじゃない?
ここは超初心者とか謳ってる割には意外にレベル高かったりするしさ
だからさ
【Perl】勉強したい人協力したい人ドゾー【PHP】
pc11.2ch.net/test/read.cgi/php/1160569533/l50
とか
【PHP】下らねぇ質問はここに書き込みやがれ 41
pc11.2ch.net/test/read.cgi/php/1173163186/l50
で、聞いたほうがいいんじゃないかね?


284 名前:nobodyさん mailto:sage [2007/03/17(土) 19:38:52 ID:???]
>>272
というかphpの質問じゃないだろ。
FTPの使い方はスレ違いでしょ

285 名前:nobodyさん mailto:sage [2007/03/19(月) 18:46:48 ID:???]
変数の値をfile関数で読み込む方法を教えて下さい。
$body = file("$url");
$body = @file("$url");
などを試してみたりしたのですが、読み込めません。

($urlには正しいURLが入っております。)

286 名前:nobodyさん mailto:sage [2007/03/19(月) 18:59:59 ID:???]
>>285
エラーは出てないの?

file関数でurlは使える? phpinfoで必要なら確認。
ttp://www.php.net/manual/ja/ref.filesystem.php#ini.allow-url-fopen

ソースを晒したほうが早いと思う。



287 名前:nobodyさん mailto:sage [2007/03/19(月) 19:41:47 ID:???]
>>286
ありがとうございます。エラーは出ていません。
phpinfoにて調べてみましたが、どうも何処を見ていいかわかりません。
答えて頂いたのに申し訳ないです。

$latestfile = file("(ログファイル名一覧)");
list($url, , ) = explode(",", $latestfile[0]);

print "$url";

$body = @file("$url");
list($body, , ) = explode(",", $body[0]);

print "$body";

ログファイル名一覧からURLを取得しています。
($urlを表示して確認していますが、ここまで正常です。)
次に$bodyに$urlのファイルをぶち込んでいるつもりなのですが、
print "$body";では何も表示されないんです。

288 名前:nobodyさん mailto:sage [2007/03/19(月) 20:25:34 ID:???]
>>287
リンク先読んだのか?
何で情報を無視するのな・・。

ひとまず
www.php.net/manual/ja/function.file.php
のソースをそのまま実行してみろ。

@file の@を取ったらなんかエラー出ない?

急がなくていいから情報をじっくり読んで、検索したり、実際に試したりしましょう。



289 名前:nobodyさん mailto:sage [2007/03/19(月) 20:55:15 ID:???]
>>287
まずエラー制御演算子は使用するべきではありません。
そして確認などではprintではなくvar_dumpなどでゴミが入っていないかもチェックしましょう。

…というか無駄に変数をクォートしすぎでは。

290 名前:nobodyさん mailto:sage [2007/03/19(月) 21:16:37 ID:???]
>>288->>289
ありがとうございます。

>>288
すみません。リンク先については読んでみたのですが分かりませんでした。
見たものは書いた方が良かったですよね。無視してしまってすみません。

上記リンク先のソースをそのまま実行してみました。
Warning: file(www.example.com/): failed to open stream: Connection refused in /(アドレス) on line 100

Warning: file(www.example.com/): failed to open stream: Connection refused in /(アドレス) on line 108

Warning: implode(): Bad arguments. in /(アドレス) on line 108

先程のソースから@を取るとエラーが出ました。
Warning: file(): HTTP request failed! HTTP/1.1 404 Not Found in /(ページのURL) on line 107

Warning: file(ファイル名): failed to open stream: Success in /(ページのURL) on line 107

>>289
他のスクリプトからパクってつかってみたんですが、エラーを潰すだけなんですね。消しておきました。
var_dump確認してみました。ゴミが入っているとはどういう事でしょうか?
ひとまず、普通に実行されました。

変数については…恥ずかしい限りです。

291 名前:nobodyさん mailto:sage [2007/03/19(月) 21:40:54 ID:???]
>>290
ゴミっていうのは改行コードとかBOMとか制御文字。
そのコードではexplodeしてるからないと思うけど。

とりあえず設定系のエラーは出てないからURLは許可されてるようだけど、
正しいURLってことはブラウザとかでは当然アクセス出来るんだよね?
しかしながらエラーはファイルが見つからない旨を示しているので、
変数がちゃんとURLだけになってないんじゃないかなぁ。

292 名前:nobodyさん mailto:sage [2007/03/19(月) 21:43:50 ID:???]
>>290
phpinfo の allow_url_fopen 値はどうなってる?

あとリンク先のソースは100行も無いと思うが・・。
www.php.net/manual/ja/function.file.php
の灰色の部分のソースだけだよ?
もしや
www.example.com
のまま実行してるわけじゃないよね?

293 名前:nobodyさん mailto:sage [2007/03/19(月) 22:39:46 ID:???]
ありがとうございます。解決しました。

>>291
なるほど。それでミスがないかどうかを確認するんですね。
ブラウザでアクセスしてみたところ….htaccessによってアクセスが弾かれていました。
サーバ側のデフォルト設定を上書き(?)し、解決しました。
実際にアクセスして確かめなかった自分が情けないです。すみません。

>>292
すみません。
サイトのファイルにそのままソースを貼り付けてしまったので、
100行に達してしまいました。

解決した上に、色々と勉強になりました。有難う御座いました。
御迷惑をお掛けしてしまい、すみませんでした。

294 名前:nobodyさん mailto:sage [2007/03/19(月) 23:04:46 ID:???]
多分本とかちゃんと読んで基礎からやってないからデバッグ方法が身について無いんだと思う。
初めてのプログラム体験なら時間かけても基礎からやったほうがいい。

295 名前:nobodyさん mailto:sage [2007/03/20(火) 22:33:49 ID:???]
>>294
最後までアドバイスありがとうございます。
焦らずにじっくりと覚えていくことにします。

296 名前:nobodyさん [2007/04/13(金) 01:09:58 ID:uf6sE38L]
リンクで、$PHP_SELF?mode=rank1としたのですが、
この、rank1を受け取るにはどうしたら良いでしょうか?

処理として、
swich( mode ){
case "rank1";
echo"1";
break;

case "rank2";
echo"2";
break;
の様にしたいのです。



297 名前:nobodyさん mailto:sage [2007/04/13(金) 03:12:58 ID:???]
そう記述するとパラメータ渡せるってどこで知ったの

298 名前:nobodyさん mailto:sage [2007/04/13(金) 09:05:44 ID:???]
>>297
いじわるしないでそれくらい教えてやれよ。

>>296
$mode = $_GET['mode']
switch($mode) {
でいける。

けど$_GET['mode']に入ってる値が正しいかきちんとチェックするように。

299 名前:nobodyさん mailto:sage [2007/04/13(金) 19:38:38 ID:???]
>>298
できました有難うございます!!

300 名前:nobodyさん mailto:sage [2007/04/13(金) 20:27:01 ID:???]
>>299
そう記述するとパラメータ渡せるってどこで知ったの 

301 名前:nobodyさん mailto:sage [2007/04/13(金) 21:08:41 ID:???]
そんなのなんとなくわかるじゃん。

302 名前:nobodyさん mailto:sage [2007/04/13(金) 21:12:02 ID:???]
情報入手元は明らかにしないのがこの業界の掟。

303 名前:nobodyさん mailto:sage [2007/04/13(金) 21:13:06 ID:???]
まるでマジシャンですね。

304 名前:nobodyさん mailto:sage [2007/04/13(金) 21:25:47 ID:???]
>>301
いや、マジでわかんね

305 名前:nobodyさん mailto:sage [2007/04/13(金) 23:01:39 ID:???]
>>304
うんわかんねorz

$mode = $_GET['mode']
switch($mode) {
  ↑
普通、こんなのが前提にあると思うじゃん
それが抜けてるって気づいた>>298はエスパー
スゲッ!

306 名前:nobodyさん mailto:sage [2007/04/13(金) 23:08:59 ID:???]
ゲッソーなのか?



307 名前:nobodyさん mailto:sage [2007/04/14(土) 05:18:00 ID:???]
>>305の言ってることが全然わかんね

308 名前:nobodyさん mailto:age [2007/04/14(土) 07:37:42 ID:???]
Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files\xampp\htdocs\test\function.php:68) in C:\Program Files\xampp\htdocs\test\function.php on line 21

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\Program Files\xampp\htdocs\test\function.php:68) in C:\Program Files\xampp\htdocs\test\function.php on line 23

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\Program Files\xampp\htdocs\test\function.php:68) in C:\Program Files\xampp\htdocs\test\function.php on line 23

と出るのですが、これはセッションのどういったエラーなのでしょうか。
xamppをxpで動かしています。

309 名前:nobodyさん [2007/04/14(土) 08:17:24 ID:NyirOBTJ]
ヘッダーとセッションスタートの前に何か出力してたら無理

310 名前:nobodyさん [2007/04/14(土) 11:36:23 ID:SRafuLrT]
本に書いてある通りやってんのにapacheでphpうごかねえぞゴルア!
php5apache2.dllの記述を外すとapache動き出すぞゴルア!
でもこれじゃPHP使えないでまいかよ。どうすればいいじゃゴルア!
もう今日は天気いいから遊びに行ってくる。


311 名前:nobodyさん mailto:sage [2007/04/14(土) 11:53:24 ID:???]
「php5apache2.dllの記述を外すとapache動き出す」
てことはどういうことか考えてみるべし。
いい勉強になるぞ。

312 名前:nobodyさん mailto:sage [2007/04/14(土) 12:06:22 ID:???]
apacheではphp5が使えないってことかゴルア!

313 名前:310 [2007/04/14(土) 12:13:37 ID:SRafuLrT]
ヤター動きますたあ!教えてgoo見てたら同じような質問があったんで解決しますたあ。
今度から真面目なサイトで質問することにしまつ。どうもありがとうございました。
ちと気分転換に外へ散歩してきまつ。



314 名前:nobodyさん mailto:sage [2007/04/14(土) 16:45:07 ID:???]
xampp使えばいいのに

315 名前:nobodyさん mailto:sage [2007/04/14(土) 18:12:40 ID:???]
ファイルを読み込んで"hoge"が出てくる行の行番号を返すようなことはできますか?

316 名前:nobodyさん mailto:sage [2007/04/14(土) 18:21:59 ID:???]
__LINE__



317 名前:nobodyさん mailto:sage [2007/04/14(土) 19:51:54 ID:???]
loginページを作り
member.txtにadminと他のユーザーを格納して
loginのフォームで認証をしたいのですが、

adminは認証後専用のページでuserを追加できるので
ヘッダに

if ($_POST[userid] && $_POST[password])
{
// if the user has just tried to log in
if (($_POST[userid]=="admin") && ($_POST[password]=="1234") )
{
// if they are in the database register the user id
$_SESSION['valid_user']=$_POST[userid];

と一人ずつ確認していくという方法が取れないのですが
何かヒントを頂けないですか?
lv1をadmin、それ以外のuserはlv2とすると書いてあるのでそこらへんが
臭いのかと思ってるんですけどサッパリなんです

318 名前:nobodyさん mailto:sage [2007/04/14(土) 20:15:55 ID:???]
何言ってるかわからないのでもう一度推敲してからお願いします。

319 名前:nobodyさん mailto:sage [2007/04/14(土) 20:41:37 ID:???]
PHPでCSVからデータを抽出してるのですが、価格などCSVデータにカンマ「,」があると上手く表示できません。
カンマをとると表示はできるようになりますが、10,000円などのカンマでの区切りがでてこないので困ってます。

CSVデータにカンマがあってもうまく表示できるような関数とかなにかあるのでしょうか?
お教えください。


320 名前:nobodyさん mailto:sage [2007/04/14(土) 20:46:30 ID:???]
10,000円を保存する時に、10,000円のカンマをやっつけるとか。

321 名前:nobodyさん mailto:sage [2007/04/14(土) 20:52:04 ID:???]
>>320
やっつけるとはどうやるのでしょうか?



322 名前:nobodyさん mailto:sage [2007/04/14(土) 20:59:29 ID:???]
10,000円を保存するときに、カンマを別の記号(たとえば @)に変換して保存する。
読み込んだデータに、@が含まれている場合は、カンマに直(ry

323 名前:nobodyさん mailto:sage [2007/04/14(土) 21:02:14 ID:???]
>>322
なるほどそういう裏技もあったんですね。一つ試してみます。
また、他の方法もあればお教えください^^


324 名前:317 mailto:sage [2007/04/14(土) 21:31:45 ID:???]
簡潔にかきなおしてみたんですけど

ユーザーのアカウントやパスワードをテキストファイルに保存をしておき
それを使って認証をさせたいのですけど

最初if構文でアカウントとパスワードをチェックすればいいかなと思ったんですが
管理者はユーザーの登録削除ができるので不特定多数にもなるということで
どうしたらいいのかなと

わかりにくくてすいません

325 名前:nobodyさん mailto:sage [2007/04/14(土) 22:08:29 ID:???]
>if構文でアカウントとパスワードをチェック
これは分かる
>管理者はユーザーの登録削除ができる
うんうんこれもまぁ普通だね
>不特定多数にもなるのでどうしたらいいのかなと
ハァ?

326 名前:nobodyさん mailto:sage [2007/04/14(土) 22:12:49 ID:???]
>>324
>パスワードをテキストファイルに保存

頼むから氏んでくれないだろうか。



327 名前:317 mailto:sage [2007/04/14(土) 22:38:40 ID:???]
管理者が新しくユーザーを登録することにより、
テキストファイルにユーザー情報が追加されるので
if構文で管理者の認証はできても他のユーザーの数が決まってないから
それは無理なんじゃないかと思ったんですけど
サンプルを見たらユーザー一人と管理者のみでif構文で認証
っていうのしかなかったので
もうちょっと他のを探してみます

一応練習なんでtxtにpassを保存するのは自分でもどうかと思いますけど
かなりstuckして十分死にたいので勘弁してください

お騒がせすいませんでした

328 名前:nobodyさん mailto:sage [2007/04/14(土) 22:58:01 ID:???]
>他のユーザーの数が決まってないから 
ループして比較すれば?
あと属性の区別が付かないなら管理者と一般ユーザを区別する情報も一緒に保存すれば?
いまだに何がしたいのかよくわからない

329 名前:nobodyさん mailto:sage [2007/04/15(日) 02:50:04 ID:???]
>>325
言い方悪いが俺も同意
何が問題なのか分からない、説明が足りないのかもしれない。

>>管理者はユーザーの登録削除ができるので不特定多数にもなるということで
の意味が分からない、管理者は他のユーザのパスワードも知っているからって事?
ユーザIDとパスワード使って入ってきたら、普通にそのユーザと判定するべきだと思うが。

見当違いだったらごめんな。

330 名前:nobodyさん mailto:sage [2007/04/15(日) 03:03:50 ID:???]
んで結局聞き逃げかよ。
報告もなし。例もなし。最悪だな。

331 名前:nobodyさん mailto:sage [2007/04/15(日) 04:14:58 ID:???]
くだ質とかでも最近はお礼なんて稀だよ・・
世知辛い世の中だ

「ありがとう」と「ごちそうさま」が言えないなんてろくな大人にならねぇ

332 名前:nobodyさん [2007/04/15(日) 08:15:02 ID:y1bDpLfE]
初めまして。
私はWebサイトでフレームを使うのが嫌なので、includeでmenu.phpの外部読み込みをしています。
include命令を書いているファイルはa/index.phpです。

a/menu.phpの内容
<A HREF="a.php"></A><BR>
<A HREF="b.php"></A><BR>

しかし、階層が違うとファイルのパスを変えなくてはなりません。
例えば1つ下の階層だと、
a/b/index.phpに読み込むa/b/menu.phpの内容
<A HREF="../a.php"></A><BR>
<A HREF="../b.php"></A><BR>
にしなければなりません。

どの階層でもa/menu.phpファイルを呼び出すだけなら、
$_SERVER['DOCUMENT_ROOT'] を使う方法で大丈夫だと思うのですが、
(参考:ttp://minic.press.ne.jp/blogs/web/000046.html)
a/b/index.phpから上記の方法でa/menu.phpファイルを読み込むと、リンク先は
a/b/a.phpとa/b/b.phpになってしまいますよね。
どの階層から読み込んでも、ちゃんとa/a.phpやa/b.phpにリンクさせる方法なんてあるのでしょうか。


333 名前:nobodyさん mailto:sage [2007/04/15(日) 08:26:42 ID:???]
日本語で書こうぜ。
include パスの指定の仕方を聞きたいのか <a href 要素・属性の相対パスの
指定の仕方を聞きたいのかどっちなんだ。


334 名前:nobodyさん mailto:sage [2007/04/15(日) 10:35:06 ID:???]
>>332
<a href="a.php">a</a>
のようにhttpから書く

335 名前:nobodyさん mailto:sage [2007/04/15(日) 11:48:07 ID:???]
>>332
絶対パスで指定すればいいじゃん
現在の位置を読み込んで相対パスもできるけどさ

336 名前:317 mailto:sage [2007/04/15(日) 12:34:45 ID:???]
報告が遅くなってすいません
そのまま逃げてたんではなくて
SessionとAuthenticationの理解が足りないと思って
もう一度やりなおししてたんで
サンプルにはあくまでも出力後のHTMLしか出ないので
仕組みをまともに予想できてないから
意味不明な質問になるんじゃないかと思って

>>328
adminとuserの2人しかアカウントが無い場合、
if($PHP_AUTH_USER=="admin")&&($PHP_AUTH_PW=="pass"))
{header("Location:admin_menu.php");}....
if($PHP_AUTH_USER=="user")&&($PHP_AUTH_PW=="word"))
{header("Location:user_menu.php");}
これでいけると思ったんですが、adminがユーザーを増やした場合、
このままだと新規のユーザーは認証ができないと思うんです
属性というか、adminはlv1、userはlv2という風にされてるので
ループできるか試してみます

>>329
管理者はユーザーの数を任意に設定できるので
ユーザーが1人のときもあれば5人のときもあって10人のときもあるので
上記のコードじゃ限界があるなと思ったんです
説明がわかりにくくてすみません

>>330
聞き逃げしたつもりはなかったんですが
とりあえず自分で最初からやり直して
最低限何をしたかったのかを説明できるように
しようと思ってたら結果的に逃げた形になりました
申し訳ないです



337 名前:nobodyさん mailto:sage [2007/04/15(日) 12:42:41 ID:???]
相対パスで書きたいんだろうな多分。>>332
とすれば、とりあえず、つねにincludeしたいmenu.phpに
(menu.phpがa.phpなりなんなりより同一階層ないしはそれより上の階層にあるのが前提みたいだから)

function relative_url(){
if ($relative = substr_count($_SERVER['SCRIPT_FILENAME'],'/') - substr_count(__FILE__,'/')){
return str_repeat ('../',$relative);
}
}

と書いておいて、a.phpなりなんなりは、それぞれ
echo '<a href="'.relative_url().'a.php">aaaaaaa</a>';
とか、しておけばよろしかろう。
勉強が進んだら、これも馬鹿くさい場当たりの手段で危険を伴うってこともわかってくる
ので一歩ずつがんばってください。
なお、レスで参照してるサイトの情報は初心者が見るものとしては、セキュリティ的に
不正確なので本当に参考程度にとどめておくこと。

338 名前:nobodyさん mailto:sage [2007/04/15(日) 12:52:30 ID:???]
>>336
if($PHP_AUTH_USER=="user")&&($PHP_AUTH_PW=="word"))
ひとまず user と word を変数にして、いくら増やしても問題無いロジックを考えなさい。

配列とforeachでなんとかなるはず。
っていうか基礎の勉強が必要じゃね、このレベルだと・・。
何か気に入った入門用書籍を一からやってみる事をオススメする。

339 名前:nobodyさん mailto:sage [2007/04/15(日) 12:55:44 ID:???]
>>336
if文で書いてるのでユーザが増えたら認証できなくなるってことですか。
なるほどわかりました。
でも気になるんだけどmember.txtはどこに使ってるの?

340 名前:317 mailto:sage [2007/04/15(日) 13:44:02 ID:???]
とりあえず自分なりに作ってみたんですが
$listf = fopen ("member.txt", "r");
list($duserid,$dpassword) = fgetcsv($listf, 1024, "|");
$duserid=trim($duserid);
$dpassword=trim($dpassword);
while (!feof ($listf))
{
if (($_POST[userid]==$duserid)&&($_POST[password]==$dpassword) )
{
$_SESSION[‘valid_user’]=$_POST[userid];
break;
}
list($duserid,$dpassword) = fgetcsv($listf, 1024, ":");
$duserid=trim($duserid);
$dpassword=trim($dpassword);
}
fclose($listf);

>>338
まだPHPはじめて1ヵ月半で、基礎が足りないのは身にしみてます
あまり頭がよくないのはもう十分わかってらっしゃると思うので
こういう演習で体に覚えさせないとなかなか身につかないので
本はちょっと手に入れるのが難しい環境だもんで、サイトのチュートリアル等を
コツコツやってみます。ありがとうございました

>>339
上記のコードだとさっきよりかは自分のしたいことがわかってもらえるかなと
書いてみたんですが、文章よりもわかりやすいことを祈ります

341 名前:nobodyさん mailto:sage [2007/04/15(日) 13:56:18 ID:???]
>>340
間違ってるのでこれじゃ動かんでしょ。一応、そのまま使うとすれば、

$listf = fopen ("member.txt", "r");

while (($IDPWD = fgetcsv($listf, 1024, "|")) !== FALSE)
{
list($duserid,$dpassword) = fgetcsv($listf, 1024, "|");


}

list($duserid,$dpassword) = fgetcsv($listf, 1024, "|");
$duserid=trim($duserid);
$dpassword=trim($dpassword);
while (!feof ($listf))
{
if (($_POST[userid]==$duserid)&&($_POST[password]==$dpassword) )
{
$_SESSION[‘valid_user’]=$_POST[userid];
break;
}
list($duserid,$dpassword) = fgetcsv($listf, 1024, ":");
$duserid=trim($duserid);
$dpassword=trim($dpassword);
}
fclose($listf);

342 名前:nobodyさん mailto:sage [2007/04/15(日) 13:57:03 ID:???]
>>341
あらら、途中で間違って送信しちゃった。
書き直すからまってねw



343 名前:341,342 mailto:sage [2007/04/15(日) 14:00:30 ID:???]
色々危険なところとか、書き方おかしいところがあるけどそれはここでは問わないことにして動くかどうか
ってだけで書き直すと次のようになる。

$listf = fopen ("member.txt", "r");

while (($IDPWD = fgetcsv($listf, 1024, "|")) !== FALSE)
{
list($duserid,$dpassword) = $IDPWD;
$duserid = trim($duserid);
$dpassword = trim($dpassword);

if (($_POST['userid']==$duserid) && ($_POST['password']==$dpassword) )
{
$_SESSION[‘valid_user’]=$_POST['userid'];
break;
}

}

fclose($listf);



344 名前:317 mailto:sage [2007/04/15(日) 14:03:31 ID:???]
>>343
確かに簡単にユーザーIDとパスワードだけのテキストをおいて
やってみたんですけど動かなかったです
パスワードをテキストファイルにおいてる段階でかなりありえないし
とりあえず動かして見て、自分でどの部分が間違ってどうするべきか
ってのをちょっと考えてみます
本当にありがとうございます

345 名前:nobodyさん mailto:sage [2007/04/15(日) 14:08:33 ID:???]
>>344
とりあえず句読点を付けてください。
それから関係ない情報は省いてください。
回答者にとって読みやすい、理解しやすい文章を書くという意識が抜けていると思います。
思ったことをそのまま書いていたら質問として最低の文章になります。
何がしたくて、何が問題で、何を聞きたいのか、を明確にしてください。
もしかして女性だったりしますか?

346 名前:341,342 mailto:sage [2007/04/15(日) 14:18:45 ID:???]
>>344
ひとつ言っておくと、パスワードがファイル格納だから、
危険だなんて思うのがもっとも危険ですよ。
そんなこと言ったらUNIXの認証システムは全部危険になる。

PHPを生半可にかじって、次はDBとの連携だ、なんて考えるのは穴を増やす
のと同じ。ちゃんとしたパスワードファイルとハッシュを扱えて、またネットワーク経由
でのデータ漏れがないようにプログラムをちゃんと書くことがまず大切。
ユーザが大したことないなら、私はパスワード認証周りにDBを使いません。

上で書いた「危険」というのも、パスワードファイル云々ではなくて、
$_POST[userid]みたいな書き方を$_POST['userid']とちゃんと書くとか、
isset($_POST['userid'])を確かめたり$_POST['userid']がFALSEじゃないかとか
チェックするなど。
そういう部分を書き直す必要があるけど、それは端折れば、って意味です。






347 名前:317 mailto:sage [2007/04/15(日) 14:18:47 ID:???]
>>345
すいません。ちゃんと付けるようにします。
質問する前に何が問題点で、何を知りたいのか、
というのをもっと考えるようにします。
今回、自分でもあやふやだったとわかりますし。
一応女です。

348 名前:nobodyさん mailto:sage [2007/04/15(日) 14:38:57 ID:???]
男か女かなんてどうでもいいやん






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<125KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef