我想在html和php中打印出用户名,密码,电子邮件,名字和姓氏。但是,它不起作用,并且只运行代码,而不是运行代码。
这是SignUp.html
的代码:
<!DOCTYPE html>
<html>
<body>
<script src="index.js"></script>
<h1 class="hg">Get Started</h1>
<form action="SignUpPhpTest.php" method="get" class="signup-form" >
FirstName: <input type="firstname" name="firstname">
Lastname: <input type="lastname" name="lastname">
Email: <input type="text" name="mail" id="mail">
Username: <input type="text" name="Username" id="Username">
<label>
Password: <input type="password" name="password" id="password" type="password" onkeyup='check();'>
</label>
<label>
Confirm Password: <input type="password" name="confirm_password" id="confirm_password" onkeyup='check();'>
<span id='message'></span>
</label>
<input type="submit" action="SignUp.php" value="submit">
</form>
<h2 class="GenderHeading">Gender</h2>
<form class="Gender">
<input type="radio" name="gender" value="male">Male
<input type="radio" name="gender" value="Female">Female
<input type="submit" value="submit">
</form>
</body>
<link href="index.css" rel="stylesheet" type="text/css" />
</html>
请注意,该文件另存为.html
文件。这是SignUpTest.php
文件的代码:
<!DOCTYPE html>
<html>
<head>
<p>Info Gathered</p>
</head>
<body>
<table>
<tr>
<td>
<?php
$firstname = $_POST['fistname'];
$lastname = $_POST['lastname'];
$email = $_POST['mail'];
$username = $_POST['username'];
$password = $_POST['password'];
echo $firstname;
?>
</td>
<td>
<?php echo $lastname; ?>
</td>
<td>
<?php echo $email; ?>
</td>
<td>
<?php echo $username; ?>
</td>
<td>
<?php echo $password; ?>
</td>
</tr>
</table>
</body>
</html>
请不要将此文件另存为.php
文件。所有这些都在记事本中。我有Windows10。
感谢您的帮助。谢谢!!!
答案 0 :(得分:1)
您的表单方法必须为method="POST"
而不是method="get"
,请删除此<form class="Gender">
您不能在同一页面上使用2种表单,因此请更改放到<div class="Gender">
中,然后将您的结帐</form>
移到底部。
<form action="SignUpPhpTest.php" method="get" class="signup-form" >
到
<form action="SignUpPhpTest.php" method="POST" class="signup-form" >
在$_POST['datas']
上使用SignUpTest.php
时
注意*::请确保您的 Apache 正在运行,以确保启用了 PHP 。
答案 1 :(得分:1)
关于代码已打印出来,您应该验证其是否正在运行apache并且PHP已正确配置。如果您使用的是Windows,则可以尝试xampp来轻松快速地进行测试。
在您共享的示例中,存在很多错误,其中包括一些名称:2种形式,表单以测试脚本的形式发送,您期望发布的数据,某些输入名称拼写错误,等等。
请尝试以下简化示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<form action="test.php" method="POST" class="signup-form" >
<p>
FirstName: <input name="firstname">
</p>
<p>
Lastname: <input name="lastname">
</p>
<p>
Email: <input name="mail">
</p>
<p>
Username: <input name="username">
</p>
<p>
Password: <input type="password" name="password">
</p>
<p>
Confirm Password: <input type="password" name="confirm_password">
</p>
<input type="submit" value="Submit">
</form>
</body>
</html>
test.php文件
<?php
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$email = $_POST['mail'];
$username = $_POST['username'];
$password = $_POST['password'];
?>
<!DOCTYPE html>
<html>
<head>
<p>Info Gathered</p>
</head>
<body>
<table>
<tbody>
<tr>
<td>First name</td>
<td><?= $firstname ?></td>
</tr>
<tr>
<td>Lastname</td>
<td><?= $lastname; ?></td>
</tr>
<tr>
<td>Email</td>
<td><?= $email; ?></td>
</tr>
<tr>
<td>Username</td>
<td><?= $username; ?></td>
</tr>
<tr>
<td>You should not do this in real apps</td>
<td><?= $password; ?></td>
</tr>
</tbody>
</table>
</body>
</html>
答案 2 :(得分:0)
这是因为您要放置<?php
?>
之后的一切。只需将<?php放在所有php的开头,然后将?>放在底部。
答案 3 :(得分:0)
也许未启用PHP
,请检查Apache目录中的mods-enabled文件夹(默认值:/ etc / apache2 /),然后查看是否可以看到名为php
的文件。扩展名应为.so
。
在var/log/apache2/error.log
中,您可以看到所有错误。
答案 4 :(得分:0)
如果未正确配置Apache来加载PHP,则会发生这种情况。如果尚未安装用于操作系统和程序包管理器的PHP Apache 2处理程序,则应该能够找到说明。完成后,httpd.conf的重要部分将包含用于加载模块本身的行。例如。
LoadModule php7_module modules/mod_php71.so
..以及告诉apache使用此部分来处理扩展名为.php
的文件(通常是单独的包含文件)的部分,例如。
<IfModule mod_php7.c>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfModule>
一旦配置正确,请重新启动apache,然后代码将执行。