スレッド表示 | フラット表示〕 全トピック 920 件中 183 番目 次≫ ≪前

このスクリプト見ていただけませんか?(TAT)

created: 2006-10-08 22:48 | modified: 2006-10-10 22:14 | reply: 3

[3395] このスクリプト見ていただけませんか?(TAT)

user: biginner ホームページ | created: 2006-10-08 22:48
簡単な掲示板スクリプトなんですけど、記事の削除処理で困ってます(TAT)

http://learning.no.land.to/php/s/ver0/s/check_ver002.phps

一応、入力したパス、記事番号が一致したら
「一致しました。」
と出力する処理が成功している辺り、
やはり問題なのは記事の削除に使っている
array_splice()関数なようなんです><;;


どこが悪いのか教えていただけたらうれしいです。

初心者丸出しの質問ですがお願いしますm(_ _)m
reply: 3396 3397 返信 編集 削除

[3396] 一応削除を行った時の確認文を・・・

user: biginner ホームページ | created: 2006-10-08 22:53
長文すみません・・・。。
[0]・・・記事番号
[1]・・・お名前
[2]・・・本文
[3]・・・パスワード
[4]・・・IPアドレス

です。。。
CHECK
入力した番号:25
入力したパス:test

チェック用
Array ( [0] => 26 [1] => tester [2] => yrdy [3] => test [4] => ***.0.0.1 )
記事番号:26
パス:test


チェック用
Array ( [0] => 25 [1] => tester [2] => test [3] => test [4] => ***.0.0.1 )
記事番号:25
パス:test
一致しました。

チェック用
Array ( [0] => 23 [1] => tester [2] => test [3] => test [4] => ***.0.0.1 )
記事番号:23
パス:test


チェック用
Array ( [0] => 22 [1] => 名無しさん [2] => [3] => kasa [4] => ***.0.01 )
記事番号:22
パス:kasa


チェック用
Array ( [0] => 21 [1] => 名無しさん [2] => [3] => kasa [4] => ***.0.0.1 )
記事番号:21
パス:kasa

Notice: Undefined offset: 5 in C:\Program Files\xampp\htdocs\test\test\bbs.php on line 68


チェック用
Array ( [0] => )
記事番号:

Notice: Undefined offset: 3 in C:\Program Files\xampp\htdocs\test\test\bbs.php on line 74
Parent: 3395  返信 編集 削除

[3397] unsetじゃだめ?

user: ach | created: 2006-10-09 10:21
パスワードが一致したらその行をunsetしてbreak
その後implodeして書き込み
$lines = file(LOG_FILE);
for($i = count($lines) - 1; $i != -1; $i--)
{
$elements = explode("\t", $lines[$i]);
if ($erement[0] != $_POST['d_num']) next;
if ($erement[3] == $_POST['d_pass']) unset($lines[$i]);
break;
}
$lines = implode('', $lines);
$fp = fopen(fopen(LOG_FILE,'w') or error("ファイルオープンエラー");
fwrite($fp, $lines);
fclose($fp);

後、パスワードを生で保存するのはよろしくないです。
生で保存していると、ログを抜かれた際、なりすましや、ユーザーの乗っ取りの原因にもなり得ますし、
なにより(プロバイダーやメールなどの)重要なパスワードが漏れる可能性まであります。
(たまに同じパスワードを使い回す方がいるらしいです)

対策として、多くの場合md5かsha1を使ってると思います
//保存時
$localPass = md5($pass);

//検証時
md5($pass) == $localPass;

もう一つ、これはスタイルの問題ですので、こういう書き方もあるという感じで
HTML出力にかささん(ですよね?)はヒアドキュメントを使用していますが、
わたしはPHPタグをとじて、HTMLをそのまま書いています
//PHPコードをとじる
?>
<html><head><title><?=$title;?></title>……
<?php
//PHPコード再会

P.S.
実はかささんのHPも見に行ってまして、その問題のことも知っていました
向こうでコメントしてもよろしかったのでしょうか?
Parent: 3395  reply: 3403 返信 編集 削除

[3403] ありがとうございます’’;

user: biginner ホームページ | created: 2006-10-10 22:14
一応、削除問題に関しては解決しました^^

パスの暗号化はスクリプトがぐっちゃっぐちゃになるのを防ぐために、と言うより必要な部分だけでいいかも。と思ったからです。
実際には暗号化したパスで比較しています。。
Parent: 3397  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 183 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑