У меня есть форма на одной странице PHP, которая принимает имя, а затем передает его на вторую страницу, чтобы отобразить его.
Входная страница
<?php
echo <<< _END
<html>
<head>
<title>Full PHP Enclosed Form</title>
</head>
<body>
<form name="form1" method="post" action="fullPHPShowName.php" >
<strong>Name:</strong> <input type="text" name="name"><br>
<input type="submit" value="Submit"></form>
</body>
</html>
_END
?>
Эта часть работает нормально. На второй странице «fullPHPShowName.php» полное имя с пробелом между именем и фамилией в строке очень хорошо отображается, когда я использую $name
переменная вне формы. Проблема возникает, когда я использую переменную в атрибуте value элемента формы.
fullPHPShowName.PHP code:
<?php
$name = htmlspecialchars($_POST[name]);
echo <<< _END
<html>
<head>
<title>My Name</title>
</head>
<body>
$name <!--this line works just fine -->
<form name="form1 method="post" action="">
<strong>Name: </strong><input type="text" name="showname" value = $name>
</form>
</body>
</html>
_END
?>
Вам не хватает кавычек. Также заключите переменную в фигурные скобки Попробуйте:
<?php
$name = htmlspecialchars($_POST[name]);
echo <<< _END
<html>
<head>
<title>My Name</title>
</head>
<body>
$name <!--this line works just fine -->
<form name="form1" method="post" action="">
<strong>Name: </strong><input type="text" name="showname" value = "{$name}">
</form>
</body>
</html>
_END
?>
Попробуйте сделать что-то вроде этого:
<input type="text" name="showname" value ="<?php echo $name;?>" >
или же
<input type="text" name="showname" value="{$name}" >