0

我不太清楚如何格式化字符串“”,以免导致错误。

<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>"; 
4

2 回答 2

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">';

因为你试图回显的字符串有双引号。

于 2013-06-07T01:58:33.967 回答
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">";

于 2013-06-07T01:58:27.197 回答