もうすぐ夏ですね!ちょっと涼んでみませんか♪
更新情報
ひがやすをさんを追加しました!
毎回思うんだけど、アルファギークって知れば知るほど魅力的。
ありがとうございましたっ!
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を作れました♪
ゆーすけべー先生、アドバイスありがとうございました!!