我无法弄清楚如何格式化字符串“”以便它不会导致错误。
<html>
<head>
</head>
<body>
Please register:
<?php if (!isset($_POST['username']) && !isset($_POST['password'])) {
echo "<form action="<?php $_SERVER['PHP_SELF'] ?>" method="POST">";
echo "Username: <input type="text" name="username">";
echo "Email: <input type="text" name="email">";
echo "Password: <input type="password" name="password"></br>";
echo "<input type="submit" value="Register">";
echo "</form>";
答案 0 :(得分:1)
有一些问题:
echo "<form action="<?php $_SERVER['PHP_SELF'] ?>" method="POST">";
应该是
echo "<form method="POST">";
因为未指定操作时,表单将提交到当前页面。如果您仍想指定操作,它将是这样的:
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="POST">';
另外
echo "Username: <input type="text" name="username">";
应该是
echo 'Username: <input type="text" name="username">';
因为你试图回应的字符串有双引号。
答案 1 :(得分:0)
要么转义那些引号(\"
),要么使用单引号('
),或者可能是最好的方法,重写代码,例如:
<?php if (!isset($_POST['username']) && !isset($_POST['password'])) : ?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
Username: <input type="text" name="username">
Email: <input type="text" name="email">
Password: <input type="password" name="password"></br>
<input type="submit" value="Register">
</form>
...
<?php endif; ?>
无论你做什么 - 这行都是错误的,因为你在PHP块中有一个PHP标记:
echo "<form action="<?php $_SERVER['PHP_SELF'] ?>" method="POST">";