【问题标题】:PHP not working; printing out the code insteadPHP 不工作;而是打印出代码
【发布时间】:2018-09-09 04:12:15
【问题描述】:

我想在 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。

感谢任何帮助。谢谢!!!

【问题讨论】:

  • 您使用的是哪种网络服务器?浏览器无法解释 PHP。

标签: php


【解决方案1】:

您的表单方法必须是 method="POST" 而不是 method="get",请删除此 &lt;form class="Gender"&gt; 您不能在同一页面上使用 2 个表单,因此可以将其更改为 &lt;div class="Gender"&gt;并将关闭的&lt;/form&gt; 移动到底部。

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

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

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

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

【讨论】:

    【解决方案2】:

    关于打印出的代码,您应该确认它正在运行 apache 并且 PHP 配置正确。如果您使用的是 Windows,您可以尝试 xampp 进行简单快速的测试。

    在您分享的示例中,有很多错误,对于一些名称:2 个表单,表单在测试脚本中作为 get 发送,您希望在帖子中发送数据,一些输入名称拼写错误,等等。

    请试试这个简化的例子

    <!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>
    

    【讨论】:

      【解决方案3】:

      那是因为你把

      ?>

      一切都结束了。只需将 放在底部。

      【讨论】:

        【解决方案4】:

        可能PHP没有启用,检查Apache目录下的mods-enabled文件夹(默认:/etc/apache2/),看看你是否能看到一个名为php的文件。扩展名应该是.so

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

        【讨论】:

        • 我没有 Apache。需要吗? (对不起,我只是个初学者,我才 12 岁。)
        • @Arihan Sharma - Ray Lawson PS 不,不需要。你可以通过运行来执行 PHP:$ /path/to/php myfile.php // unix wayC:\php\php.exe myfile.php // windows way
        • 我应该把这个放在哪里?
        • @Arihan Sharma - Ray Lawson PS 在您的命令行中,我还建议您阅读初学者指南。
        【解决方案5】:

        如果 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 然后你的代码应该会执行。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-12-18
          相关资源
          最近更新 更多