[PHP-users 12295] Re: ファイル名?hennsuu のようなものの代入の仕方

谷中 php-users@php.gr.jp
Mon, 23 Dec 2002 02:36:26 +0900


yanakaです。

似たような処理を書くことが多いので、参考になれば、と思います。

どうしても、URLにくっつけて引数を渡さなければならないのでしょうか?
もし、そうでなければ、POSTを使って同じようなことをしています。

下のような感じです。
前のページから、$pageと$modeという引数をPOSTで渡してきます。
これらがなければ、処理を拒否するか、前ページに戻るように指示をするかしま
す。
後は、変数の組み合わせで判断しています。
これなら、もっと多くの変数を組み合わせても、状況に応じて振り分けができま
す。(振り分け方は、switchを使っても、if〜elseif〜を組み合わせてもいいと
思います。)


<?php

if (! isset($_POST["page"]) || ! isset($_POST["mode"])) {
	echo "ページが見つかりません。";
}

$page=$_POST["page"];
$mode=$_POST["mode"];

if ($page=="dvd" && $mode=="customer"){
	//dvdの販売画面
}

if ($page=="dvd" && $mode=="admin"){
	//dvdの管理画面
}

if ($page=="cd" && $mode=="customer"){
	//cdの販売画面
}

if ($page=="cd" && $mode=="admin"){
	//cdの管理画面
}

?>

見当違いなら申し訳ないです。



On Sun, 22 Dec 2002 23:47:46 +0900
poq <poq@jcom.home.ne.jp> wrote:

> しょうなりさん、キタムラさん、河瀬さんとてもありがとうございます。
> 使っているphpのバージョンは4.3.0で、safe_modeはoff、register_globalsはOnです。
> 河瀬さんのような、hogehoge.php?abcのようなタイプでも、case0、case2という
> ように書けば分岐出来そうですが、どう書けばいいのかわからないです。
> http://php.benscom.com/manual/ja/control-structures.switch.php
> 複数の引数を使う事ができないとなると、
> キタムラさんが教えて下さった「hogehoge.php?xx=xx」といったものを
> 使うざるを得ないのでしょうか?できるなら=は使わずにいきたいのですが、
> まずはキタムラさんのソースを参考に実践します。
> ----------hogehoge.php------------
> <?php
> if (! isset($_GET["page"])) { echo "ページが見つかりません。";}
> else { $mode = $_GET["page"];}
> if ($page == "dvd") {
>  print("dvdです");
> }  
> if ($page == "unix") {
>  print("unixです");
> }
> if ($page == "") {
>  print("ページが見つかりません。");
> }
>  else {}
> ?>
> ----------------------------------
> こうすると
> http://www.hoge.jp/hoge.php?page=dvd
> だと「dvdです」と出力され、
> http://www.hoge.jp/hoge.php?page=unix
> だと「unixです」と出力され、?以降、何も入れないと「ページが見つかりません。」
> となるようになりました。しかし、=のところまでで止めてしまうと
> ブラウザで表示時間がとてもかかるので、そのエラーの為にifの四つ目の処理を
> 加えました。が、そうすると?までしか入力しなかった場合、
> ページが見つかりません。がダブルで表示されてしまいます。
> この場合はどのようにすれば重複せずエラー画面を表示する事ができるでしょうか?
> かなり試行錯誤しましたがうまく前に進みません...
> 
> 
> _______________________________________________
> PHP-users mailing list
> PHP-users@php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users