繁体   English   中英

PHP无法正常工作; 打印出代码

[英]PHP not working; printing out the code instead

我想在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文件。 所有这些都在记事本中。 我有Windows 10。

任何帮助表示赞赏。 谢谢!!!

您的表单方法必须是method="POST"而不是method="get" ,请删除此<form class="Gender"> 您不能在同一页面上使用2个表单,因此请将其更改为<div class="Gender">改为使用<div class="Gender">然后在底部移动</form>

<form action="SignUpPhpTest.php" method="get" class="signup-form" >

<form action="SignUpPhpTest.php" method="POST" class="signup-form" >

因为您在SignUpTest.php上使用$_POST['datas'] SignUpTest.php $_POST['datas']

注意*:请确保您的Apache正在运行以确保已启用PHP

关于代码已打印出来,您应该验证它是否正在运行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>

这是因为您将<?php

?>

之后的一切。 只需将<?php放在所有PHP的开头,然后将?>放在底部。

也许未启用PHP ,请检查Apache目录中的mods-enabled文件夹(默认值:/ etc / apache2 /),然后查看是否可以看到名为php的文件。 扩展名应为.so

var/log/apache2/error.log您可以看到所有错误。

如果未正确配置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,然后应执行代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM