- ベストアンサー
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初心者のため、ご教授いただければと思います。 よろしくお願いいたします!
- みんなの回答 (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; ?>
その他の回答 (1)
- honoka-cha
- ベストアンサー率54% (40/73)
> (2)テーブル(user)の項目idに{xxxx}があるかどうか確認 これはまずクエリを考える必要があります。 参考になるようにマニュアルを示しておきますね。
お礼
助かりました。 ありがとうございます。
お礼
助かりました。 ありがとうございます。
補足
$url=isset($row["id"])?"index.htm":"error.htm"; header("Location:".$url); 早速ありがとうございます! すごく助かりました! テストしながら試していきたいと思います。 また、上記の部分でリダイレクトしていると思いますが、こちらをリダイレクトではなく、htmlを吐き出すということはできますでしょうか。 この場合、printやヒアドキュメント等を使う形になるのでしょうか。