Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在html中嵌入php,在用户提交值后将文本保存在文本框中 键入您的姓名:_Php_Html_Post - Fatal编程技术网

在html中嵌入php,在用户提交值后将文本保存在文本框中 键入您的姓名:

在html中嵌入php,在用户提交值后将文本保存在文本框中 键入您的姓名:,php,html,post,Php,Html,Post,@Dallas 你在正确的轨道上;下面是一个(非常粗糙和肮脏的)示例表单,它在其原始文本框中显示提交的帖子字段的值 <html> <body> <form action="http://localhost/index1.php" method="post">  Type your name: <input type="text" name="name" value="<?php echo $_POST['name'];?>">

@Dallas

你在正确的轨道上;下面是一个(非常粗糙和肮脏的)示例表单,它在其原始文本框中显示提交的帖子字段的值

<html>
<body>

<form action="http://localhost/index1.php" method="post">
    Type your name: <input type="text" name="name" value="<?php echo $_POST['name'];?>">
                    <input type="submit" value="Submit">
</form>

</body>
</html>


因为表单操作属性指向index1.php,所以我假设给定的HTML代码是在相同的index1.php中给出的,在这种情况下,您必须这样做

<form action="thispage.php" method="post">
    <input type="text" name="mytext" value="<?php echo isset($_POST['mytext'])?$_POST['mytext']:''?>" />
    <input type="submit" value="submit"/>
</form>

键入您的名称:输入Type=“text”name=“name”值=”
输入type=“submit”value=“submit”>
是使值属性有条件的另一种方法

尝试一下(假设这是
index1.php
,并且您正在对内容类型使用
UTF-8



根据@Phil的回答,考虑到使用“isset”不是解决方案(编辑:我在这一点上错了,请参阅注释),正确的功能是将$\u POST测试为您试图访问的“名称”条目:

<?php
//check whether the variable $_POST['name'] exists
//this condition will be false for the loading
if(isset($_POST['name']){
  $name = $_POST['name'];
}
else{
  //if the $_POST['name'] is not set
  $name = '';
}


?>

<html>
<body>

<form action="http://localhost/index1.php" method="post">
    Type your name: <input type="text" name="name" value="<?php echo $name;?>">
                    <input type="submit" value="Submit">
</form>

</body>
</html>


是的,刚刚注意到我忘记了帖子中的isset。FixedI假设否决票是因为你的建议暴露了一个非常简单和幼稚的注入攻击。重新创建此表单,然后用内容
alert('pwned')发布它
并让我们知道发生了什么。嘿,我确实说过这很粗糙和肮脏;当然,你是对的。我不确定在一个看起来像PHP Hello World的东西中考虑每个XSS攻击机会是否真的是一个很好的观点。请大家阅读本文-isset不是正确的方法,你必须检查$U POS中是否有“name”键T数组。@AsTeR也许您不知道
isset()
的作用。我建议您
<?php
$name = isset($_POST['name']) ? $_POST['name'] : null;
?>

<!-- your HTML, form, etc -->

<input type="text" name="name"
    value="<?php echo htmlspecialchars($name, ENT_QUOTES, 'UTF-8') ?>">
<?php
//check whether the variable $_POST['name'] exists
//this condition will be false for the loading
if(isset($_POST['name']){
  $name = $_POST['name'];
}
else{
  //if the $_POST['name'] is not set
  $name = '';
}


?>

<html>
<body>

<form action="http://localhost/index1.php" method="post">
    Type your name: <input type="text" name="name" value="<?php echo $name;?>">
                    <input type="submit" value="Submit">
</form>

</body>
</html>
<?php
$name = null;
if (array_key_exists('name', $_POST)) {
    $name = $_POST['name'];
}
//more condensed : $name = array_key_exists('name', $_POST) ? $_POST['name'] : null;
?>

<!-- your HTML, form, etc -->

<input type="text" name="name"
    value="<?php echo htmlspecialchars($name, ENT_QUOTES, 'UTF-8') ?>">