试图做自我处理表格,得到错误

时间:2013-06-07 01:54:25

标签: php

我无法弄清楚如何格式化字符串“”以便它不会导致错误。

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

2 个答案:

答案 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">";