8

我的问题是:

我想获取 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;
?>
4

4 回答 4

11

在 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
}
于 2013-06-09T15:20:24.230 回答
4

我认为您应该需要检查 isset 而不是空值,例如在没有输入数据的情况下提交了表单,因此 isset 将为 true 这将防止您出现任何错误或通知。

if((isset($_POST['name'])) && !empty($_POST['name']))
{
    $name = $_POST['name']; //note i used $_POST since you have a post form **method='post'**
    echo $name;
}
于 2013-06-09T15:12:18.877 回答
1

您正在发布数据,所以它应该是 $_POST。但是“名称”并不是最好的名称。

name = "name"

只会引起混淆IMO。

于 2013-06-09T15:11:58.050 回答
0

在里面testing2.php你应该打印$_POST包含帖子中所有数据的数组。此外,$_POST['name']应该可用。有关更多信息,请查看php.net上的$_POST

于 2013-06-09T15:17:13.083 回答