1

ユーザーが数字を入力してボタンをクリックすると、ユーザーが入力した数字に基づいて PHP を使用して別の Web ページにリダイレクトされるテキストボックスを作成しようとしています。なぜこれが機能しないのかわかりません。以下のコードを PHP ファイルに保存できます。何かアイデアがありましたら、お知らせください。JavaScript、jQuery、または別の言語を使用してリダイレクトする別の方法がある場合は、お知らせください。どうもありがとう。良い1日を。V.

<?php
$textboxdata = $_POST['textboxdata'];

if (isset($_POST['$textboxdata'])) {
    switch ($textboxdata)
    {
    case 1:
      header("Location: one.php");
      break;
    case 2:
      header("Location: two.php");
      break;
    case 5:
      header("Location: five.php");
      break;
    default:
      echo "Enter a number please.";
    }
}
?>

</head>
<body>

<FORM NAME ="form" METHOD ="post" ACTION = "">
<INPUT TYPE = "TEXT" VALUE ="username" METHOD ="post" name="textboxdata" >
<INPUT TYPE = "Submit" Name = "submit" VALUE = "Login">

</FORM>
</body>
</html>
4

4 に答える 4

5

これにはドル記号が含まれており、true と評価されません。

if (isset($_POST['$textboxdata'])) {

そのはず:

if (isset($_POST['textboxdata'])) {

おそらくデータの整数値も必要な$_POSTので、これを変更します。

$textboxdata = $_POST['textboxdata'];

これに:

$textboxdata = intval( $_POST['textboxdata']);

覚えておいてください、ユーザーは数字だけでなく、そのボックスに何でも入力できます。今後は、より多くの入力サニテーションを調べたいと思うでしょう。

最後に、exit()これらすべてのheader()呼び出しの後に必要です (Location値は相対 URL ではなく完全な URL にする必要があります)。必要な理由exit()は、スクリプトの処理をそこで停止したいからです。

header("Location: one.php");
exit();
于 2012-08-16T14:47:30.963 に答える
2

これが問題だと思います:

if (isset($_POST['$textboxdata'])) {

次のようにする必要があります。

if (isset($_POST['textboxdata'])) {
于 2012-08-16T14:47:32.117 に答える
2

あなたがに割り当てているのを見て、$_POST['textboxdata'];$textboxdataはそれを作るでしょう

$textboxdata = $_POST['textboxdata']; 

if (isset($textboxdata)) { 
    switch ($textboxdata) 

初期割り当てで設定されていない場合$textboxdata 、switch ステートメントにヒットしません。

于 2012-08-16T14:52:17.660 に答える
1

JavaScript、jQuery、または別の言語を使用してリダイレクトする別の方法がある場合は、お知らせください。

jQuery ソリューション:

<input type="text" value="username" id="inpt" />
<input type="button" value="login" id="btn" />

<script type="text/javascript">
    $(function() {
        $("#btn").on('click', function() {
            var value = $("#inpt").val();
            if (value.length) {
                switch (parseInt(value, 10)) {
                    case 1:
                      document.location.href = "one.php";
                      break;
                    case 2:
                      document.location.href = "two.php";
                      break;
                    case 5:
                      document.location.href = "five.php";
                      break;
                    default:
                      alert("Enter a number please.");
                }
            }
        });
    });
</script>
于 2012-08-16T14:59:39.340 に答える