• ベストアンサー

PHPで以下のようなものを実現したいのですが

以下を前提とする。  データベース:mysql 5.0.45  テーブル名:user  項目名:id、名前  phpバージョン:PHP 5.2.4   (1)http://サーバ.index.php?id=xxxxにアクセス (2)テーブル(user)の項目idに{xxxx}があるかどうか確認 (3)あれば、http://サーバ/index.htmlへ、  なければ、http://サーバ/error.htmlへリダイレクト 以上のようなふるまいを実現したいのですが、 PHP初心者のため、ご教授いただければと思います。 よろしくお願いいたします!

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

ざっくりとこんな感じでどうでしょう? (一応最低限のバリデートはいれてあります。) <?PHP $host='localhost'; $user='root'; $passwd='hogehoge'; $db='fugafuga'; $link=mysql_connect($host,$user,$passwd) or die(mysql_error()); mysql_select_db($db,$link); $id=isset($_REQUEST["id"])?$_REQUEST["id"]:null; if(! preg_match("/^[0-9]{1,10}$/",$id)) $id=null; //10ケタ以内の数字が有効 $sql="select id from user where 1 "; $sql.=" AND id='".mysql_real_escape_string($id)."'"; $res=mysql_query($sql,$link) or die($sql."<br>".mysql_error()); $row = mysql_fetch_array($res,MYSQL_ASSOC); $url=isset($row["id"])?"index.htm":"error.htm"; header("Location:".$url); exit; ?>

Reptilez
質問者

お礼

助かりました。 ありがとうございます。

Reptilez
質問者

補足

$url=isset($row["id"])?"index.htm":"error.htm"; header("Location:".$url); 早速ありがとうございます! すごく助かりました! テストしながら試していきたいと思います。 また、上記の部分でリダイレクトしていると思いますが、こちらをリダイレクトではなく、htmlを吐き出すということはできますでしょうか。 この場合、printやヒアドキュメント等を使う形になるのでしょうか。

その他の回答 (1)

回答No.1

> (2)テーブル(user)の項目idに{xxxx}があるかどうか確認 これはまずクエリを考える必要があります。 参考になるようにマニュアルを示しておきますね。

参考URL:
http://dev.mysql.com/doc/refman/5.1/ja/select.html
Reptilez
質問者

お礼

助かりました。 ありがとうございます。

関連するQ&A

専門家に質問してみよう