人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPについて質問です。

学習し始めてまだ間がない初心者ですが、
自分でスクリプト(極シンプルなリンク作成プログラム)を作成してみました。
http://hatena88.web.fc2.com/hatena/newpage1.html

このスクリプトについてどんなささいなことでも良いのでご意見ください。
本当にどんな細かいことでも今後の参考になります。
私ならこうするといった代替案は特に嬉しいです。

なお、質問者は本当に初心者なので、回答には理論だけでなく、
実際にスクリプトをお示しいただけると理解の助けとなります。

質問が不足していたり、不明瞭だった場合はコメント欄にその旨お知らせください。
よろしくお願いします。

●質問者: taroemon
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:PHP コメント欄 シンプル スクリプト プログラム
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● tezcello
●35ポイント

脳内デバッグなので、外している所があるかもしれませんが。

◎質問者からの返答

いつもありがとうございます。


>$url, $title をわざわざ外に出さなくてもいいのでは?

>同上:$titel の後は</a>では?

間違えてました。そのとおりです。


>データの追加やソート、抽出などの作業をしないのでしょうか。

>そうであれば、関数を2つに分けたり、showAllMySQLData() に

>引数にクエリ後のリソースを指定できるようにしておく必要性が無いでしょう。

今回は追加やソートは必要無しとしています。

うまく作れる人は関数を作って最後にメインとしてるので、

それにあこがれて、自分なりにまねしてみたのですが、

こんなに簡単な物だと分ける必要がないのですね。

そこらへんの必要、不必要の見極めは今後の課題にします。


>MySQL に接続する時はエラーを抑制していますが、ノーチェックで大丈夫ですか?

>set_error_handler() で用意している処理は、デフォルトの状態と殆ど同じようなので不要では?

>mysql系の関数内で起こるエラーは、そのエラー内容まで文章で error_handler に渡してくれるのでしょうか?

テスト段階ではエラーをexitで確認していたのですが、

それだとエラーが表示されるのでまずいだろうと他の方に回答していただいたことがあるので、

こちらに質問するに当たって急遽、set_error_handlerに挑戦してみました。

全部exitでテストした後に変更したので、自分ではチェックしてませんが、

これではうまく機能していないませんか?

まだ使い方を把握していないので、これについてはもう少し勉強してみます。


とても参考になりました。


2 ● kaijikaiji
●23ポイント

1.mysql_escape_string()はSQL文をエスケープするために使うものです。例えば以下のように、$hogeにシングルコーテーションが入るような場合。

$hoge = "aaa'bbb";

$sql = "SELECT * FROM T1 WHERE F1 = '" . mysql_escape_string($hoge) . "'";

2.DBの値をHTML出力するときは、htmlspecialchars()を使うのがよいでしょう。

echo htmlspecialchars($title);

◎質問者からの返答

まだ全然理解できてないので、

セキュリティについてのご指摘は特に切実です。

ご指摘ありがとうございました。


3 ● y-kawaz
●22ポイント

・MySQLからSELECTしたデータに対して mysql_escape_string をする必要はありません(してはいけません)

mysql_escape_string はSQLクエリに変数の値を埋め込む時に使うもので取りだしたデータに対して適用するものではないです。

・$url は urlencode してください。XSS脆弱性の元です。→例えば $url 中に "><script>?</script> が含まれるケースを考えてください。

・$title は htmlspecialchars してください。XSS脆弱性の元です。→例えば $title 中に <script>?</script> という文字列が含まれるケースを考えてください。

◎質問者からの返答

ご回答ありがとうございます。

やっぱり私はセキュリティのことがまだよくわかってないようですね。

特に自信の無い分野だったのでご指摘いただいて助かりました。

こちらに質問して本当によかったです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ