在html中嵌入php,在用户提交值后将文本保存在文本框中 键入您的姓名:
@Dallas 你在正确的轨道上;下面是一个(非常粗糙和肮脏的)示例表单,它在其原始文本框中显示提交的帖子字段的值在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'];?>">
<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') ?>">