2

私はPHPが初めてで、フォームにデータを投稿するw3学校の例を試してみました..

それは私にとっては決してうまくいきません... Webページにデータが表示されません。いくつかのフォーラムを試してみましたが、役に立たなかったSOも..私はまだそれを空にし続けています!

例 #1: HTML コードからの簡単な連絡先

<form action="action.php" method="post">
 <p>Your name: <input type="text" name="name" /></p>
 <p>Your age: <input type="text" name="age" /></p>
 <p><input type="submit" /></p>
</form>

例 #2: フォームからのデータの印刷

Hi <?php echo htmlspecialchars($_POST['name']); ?>.
You are <?php echo (int)$_POST['age']; ?> years old.

このスクリプトの期待される出力は次のようになります。

Hi Joe. You are 22 years old.

実際の出力:

Hi . You are years old

Post パラメータにデータが表示されていません。

4

5 に答える 5

1

W3Schools (PHP フォーム処理)が言及していないのは、(2) コード本体全体が単一のファイル内にあるか、または期待どおりに動作するためには 2 つの別個のファイル内にある必要があるということです。

ただし、W3Schools のコードと OP は同一ではなく、 と を使用して変更されていますhtmlspecialchars(int)

を使用する場合は、ファイルhtmlspecialcharsで次の操作を行います。welcome.php

<?php
$fname = htmlspecialchars($fname);
?>

Welcome <?php echo $_POST["fname"]; ?>!<br>
You are <?php echo (int)$_POST['age']; ?> years old.

使用したフォーム:

<html>
<body>

<form action="welcome.php" method="post">
Name: <input type="text" name="fname">
Age: <input type="text" name="age">
<input type="submit">
</form>

</body>
</html> 

W3Schools の Web サイトで、htmlspecialcharsまたは(int)

Hi <?php echo htmlspecialchars($_POST['name']); ?>.
You are <?php echo (int)$_POST['age']; ?> years old.

htmlspecialcharsを使用する場合は、次の構文を使用する必要があり
$fname = htmlspecialchars( $fname ); ます。<?php?>

<?php
$fname = htmlspecialchars( $fname );
?>

: 私は自分のコンピューターから Web サーバーを実行することについてほとんど何も知りませんが、ここで見つけた情報から 、PHP ファイルにアクセスするにhttp://localhostは、Web ブラウザーのアドレス バーと、ファイルが入っています。


この回答にアクセスしてください

StackOverflow では、何らかの理由でそのページにコードを挿入できませんでした。

于 2013-08-14T18:07:18.967 に答える
0

フォームで、空の値を送信していないかどうかを確認してください。

STEP 1 次のコードをコピーしてテキスト エディターに貼り付け、実行します。ページをリダイレクトせずに、フォームから値をテストできます。

次のコードは index.php にある必要があります

<form action="action.php" method="POST" onsubmit="return validate()">
    <p>Your name: <input type="text" name="name" id="name"/></p>
    <p>Your age: <input type="text" name="age" id="age"/></p>
    <p><input type="submit" /></p>
</form>

<script type="text/javascript">
    function validate(){
        var name=document.getElementById("name").value;
        var age=document.getElementById("age").value;
        alert ("Name="+name+" age="+age);
        return false;
    }
</script>

このコードは、ページを action.php にリダイレクトせずに、値が正しく入力されているかどうかをチェックします。

ステップ 2 前のコードから目的の出力が得られた場合は、validate 関数を次のコードに置き換えることができます。(スクリプトタグ間のすべてを置き換えます)

    function validate(){
        var name=document.getElementById("name").value;
        var age=document.getElementById("age").value;
        if (name==null || name==""){
            return false;
        }
        if (age==null || age==""){
            return false;
        }
        return true;
    }

名前と年齢の両方がフォームに入力されている場合、送信は action.php にリダイレクトされます。

ステップ 3 action.php で次のコードを使用します。

<?
//These code goes in action.php
extract ($_POST);
echo "Hi $name. You are $age years old";
?>

OPの要求に関する指示で編集

于 2013-08-14T17:51:32.053 に答える
0

フォームの場所自体 (file:///C:xampp..) ではなく、サーバー ( http://localhost ..)からフォームが実行されていることを確認するだけです。ハッピーコーディング

于 2016-10-09T04:39:34.440 に答える