我是PHP新手,我只想要一个非常简单的不安全(用于测试)登录表单。
我写了这段代码:但是我没有得到我想要的东西,你能纠正我做错了什么或者我应该添加什么,纠正......
<html> <body> <form> Username: <input type="text" name="name" value="<?php $name ?>" ><br> Password: <input type"password" name="pass" value="<?php $pass ?>" ><br> <input type="submit"> </form> <?php
if ($name == "root" && $pass == "laptop") {
header("Location: /index.html");
exit;
}
?>
答案 0 :(得分:0)
制作两个文件 - 一个用html,另一个用php函数。 在html中添加表单操作和方法
<html>
<body>
<form action="php_file_name.php" method="post">
Username: <input type="text" name="name" value="" ><br>
Password: <input type"password" name="pass" value="" ><br>
<input type="submit">
</form>
并在php_file_name.php中输入您编写的这段PHP代码,知道您正在使用POST方法,即:
<?php
if ($_POST[name] == "root" && $_POST[pass] == "laptop") {
header("Location: /index.html");
exit;
}
它应该工作。当然你可以选择php_file_name.php的其他名称,但相应地改变它
答案 1 :(得分:0)
您的PHP会写入HTML,然后将其发送到浏览器进行渲染 - 一旦完成发送到浏览器就会退出。因此,您的第一个错误似乎是您没有理解服务器上发生的事情以及客户端发生的事情的分离。
您的下一个错误是您的PHP操作的变量恰好与表单元素具有相同的名称 - 但是表单值不会自动转换为PHP变量。
您的第三个错误是,即使您已修复了之前的两个问题,您的脚本也无法正常工作:在写入html正文之前必须先发出任何HTTP标头 - 因此您的重定向不起作用。请考虑一下:
<?php
if ('root' == $_POST['name'] && 'laptop' == $pass) {
header("Location: /index.html");
exit;
}
?>
<html>
<body>
<form method='POST'>
<?php print $_POST['name'] ? "Try again...." : "login..."; ?>
<br />
Username: <input type="text" name="name"
value="<?php print $_POST['name']; ?>" ><br />
Password: <input type"password" name="pass"
value="<?php print $_POST['pass'] ?>" ><br />
<input type="submit">
</form>
</body>
</html>
答案 2 :(得分:0)
您插入到表单中的php代码没有任何功能,它什么都不做。我编辑了您的表单,以便将数据发送到同一页面。然后你可以这样做:
$name = $_POST['name'];
$pass = $_POST['pass'];
你的旧代码就在那之后。
答案 3 :(得分:0)
您可以将它放在同一个文件index.php
中<?php
if (isset($_POST['submit']))
{
echo 'you submitted name='.$_POST['name'].' And password='.$_POST['pass'].'<br /><br />';
}
echo '<form method="post">
Name <input name="name" type="text" /><br />
Pass <input name="pass" type="password" /><br />
<input name"submit" type="submit" />
</form>';
?>