web-dev-qa-db-ja.com

PHP:TEXTBOXの値を取得してから、変数に渡します

私の問題は:

Textbox1の値を取得してから、textbox1の値がtextbox2に表示される別のページに転送します。

PHPのコードは次のとおりです。

<html>
<body>

<form name='form' method='post' action="testing2.php">

Name: <input type="text" name="name" id="name" ><br/>

<input type="submit" name="submit" value="Submit">  

</form>
</body>
</html>

以下のコードも追加しましたが、エラーは「注意:未定義のインデックス:名前」です

<?php 
$name = $_GET['name'];
echo $name;
?>

または

<?php 
$name = $_POST['name'];
echo $name;
?>

Testing2.phpで、次のコードを使用して名前を取得します。

if ( ! empty($_POST['name'])){
    $name = $_POST['name']);
}

次のページを作成するときに、$nameの値を使用してフォームフィールドに事前入力します。

Name: <input type="text" name="name" id="name" value="<?php echo $name; ?>"><br/>

ただし、その前に、正規表現を使用して、$ nameに次のような有効な文字のみが含まれていることを確認してください。

$pattern =  '/^[0-9A-Za-zÁ-Úá-úàÀÜü]+$/';//integers & letters
if (preg_match($pattern, $name) == 1){
    //continue
} else {
    //reload form with error message
}
11
User4407

入力データなしでフォームが送信されたため、issetがtrueになるように、空の値ではなくissetを確認する必要があると思います。これにより、エラーや通知を防ぐことができます。

if((isset($_POST['name'])) && !empty($_POST['name']))
{
    $name = $_POST['name']; //note i used $_POST since you have a post form **method='post'**
    echo $name;
}
4
Fabio

データを投稿しているため、$ _ POSTになります。しかし、「名前」は使用するのに最適な名前ではありません。

name = "name"

混乱IMOを引き起こすだけです。

1
Andy G

内部testing2.phpを印刷する必要があります$_POST投稿からのすべてのデータを含む配列。また、$_POST['name']が利用可能である必要があります。詳しくは $ _ POST on php.net を確認してください。

0
Sorin S.