ギークなお姉さんは好きですか

恋焦がれる理想の男性・ギークに近づくため、プログラミングがわかるお姉さんを目指すブログ

URLが涼しくなったよヽ( ・∀・)ノ

もうすぐ夏ですね!ちょっと涼んでみませんか♪


更新情報

ひがやすをさんを追加しました!
毎回思うんだけど、アルファギークって知れば知るほど魅力的。
ありがとうございましたっ!
geek DataBase - ギークデータベース



CoolなURLはじめました♪


宿題:CoolなURLを作るには

目指すはプロフィールページのURLを

http://geekdb.jp/geek.php?id=数字
 ↓
http://geekdb.jp/geek/ギークの名前
  にすること!

またしてもだいぶ迷走したけど、上記エントリの最後に貼ったリンクなどを参考にmod_rewriteで書いた。
どこでどう迷っていたかというと、最初は

TOPの geek.php?id=1 というリンクをクリック
 ↓
geek.php?id=1 から geek/yusukebe にリダイレクト


っていうのをやろうとしていたが、その方法だと処理が遅くなる、ってどっかのサイトに書いてあってさ。
それに何より、その方法だとギークを追加するたびに.htaccessに追記しなくちゃならない。
それが嫌。
URLをCoolにするために.htaccessが暑苦しくなるなんてスマートじゃないよね、gk!(ギーク的に考えて)

なので、DBに name_id というカラムを追加して、indexのリンク先を修正する方法を採用。
一応、リダイレクト処理の参考リンク貼っておくね!
.htaccessでリダイレクト機能を利用する方法


indexで直したのは以下の2行だけ。

echo "<a href="http://geekdb.jp/geek/";
echo $item['name_id'];


直す前のコード&解説は、下記エントリの14,15行目を見てね!
変更前:GETメソッドでデータを送る

っていうかあれ?前回URLの前で (エスケープ)してなくネ?なぜ動いたんだろう・・・コピペミスだろか。


今回の主役となるmod_rewriteは以下。

RewriteEngine on
RewriteRule ^geek/([0-9A-Za-z]+)$ geek.php?name_id=$1 [L]


ぶっちゃけ正規表現は全く理解していない。
ググって出てきた大量のサンプルコードから、私の場合はどうなるかを推測して書いただけなんだ><
なんとなく分かったのは

RewriteEngine on は絶対必要
・2行目に RewriteBase / を入れるのが正式? でも入れなくてもおkぽい
RewriteRule ^ 書き換え後のURL $ 書き換え前のURL [L](←終了の合図。
セミコロンみたいなもの?)
([0-9A-Za-z]+) で数字と大文字・小文字のアルファベットをカバーできるようだ
mod_rewrite はスイス製のアーミーナイフ

このくらいか!ホントに何も分かってないな!ハハハ!!
これを「.htaccess」という名前でアップロードして、パーミッションを604に変更。
.htaccessのアップロード方法

置いたフォルダ以下にあるファイルに対して有効らしいので、私は同じ階層に置いたにょ。





最後はgeek.php
変えたのは1行だけ。

$sql="select * from geekDB where name_id = "$name_id"";


変える前のコード&解説は、下記エントリの7行目参照。
変更前:GETメソッドでデータを受け取る


おっと、もうひとつ変更点が。
//id=数字以外はエラーメッセージを表示 の部分のソースコードを削除した。
GETで渡してるデータはもう、$id じゃないからな・・・。
参考:ギークはベストなコードを目指すべし!


で!
これで問題ないはずなんだが・・・。



さんざんコードをごにょごにょいじってたけど、突如ハッとひらめいたことがあってさ!



あの、ごめん。
最初に言っておくけど、すごい凡ミスだから!全く新しくないから!!
「K2Editor」っていうテキストエディタを使ってるんだけど、保存する時の文字コード
UTF-8N っていうのと UTF-8(BOM付き) っていうのがあってね。



UTF-8Nを選んでいたんだけど、「もしや!?」と思ってindex.phpの方を確認したら、そっちはUTF-8(BOM付き) だったわけさ。

ってことはだよ(^ω^)
BOMを付ければいいんじゃないかな(・ω・)


過去の経験を踏まえて、文字化けしたときに確認すべきことは

・同一ファイル内の文字コードは統一されているか?
参考:GETメソッドでデータを送る
テキストエディタで保存する際の文字コードは間違っていないか?

以上の2点だね!
失敗すればするほど次の開発がスムーズになると思えば!未来の作業時間を前借りしているだけさ!



ということで、長くなりましたが無事CoolなURLを作れました♪
ゆーすけべー先生、アドバイスありがとうございました!!