Php 表单值变量和提交问题

Php 表单值变量和提交问题,php,webforms,form-submit,Php,Webforms,Form Submit,有人能帮我修复这个代码吗?我想解决的是: 如果一个人没有输入用户名或密码,我只希望错误文本显示在红色消息的一侧,而不在顶部显示“对不起,无法访问”消息 另外,如果有人获得访问权限或没有,我希望文本字段和提交按钮消失 这不是一个真正的表单,所以请不要担心我如何使用用户名和密码……如果可能的话,你认为我的大部分代码可以保持不变吗 谢谢 <?php echo '<style type="text/css"> .error {

有人能帮我修复这个代码吗?我想解决的是:

如果一个人没有输入用户名或密码,我只希望错误文本显示在红色消息的一侧,而不在顶部显示“对不起,无法访问”消息

另外,如果有人获得访问权限或没有,我希望文本字段和提交按钮消失

这不是一个真正的表单,所以请不要担心我如何使用用户名和密码……如果可能的话,你认为我的大部分代码可以保持不变吗

谢谢

    <?php
    echo '<style type="text/css">
        .error
        {
            color: red;
        }
    </style>';

    $error = false;

    if (isset($_POST['submitted']))
    {

    if (empty($_POST['username']) || empty($_POST['password']))
    {
    $error = TRUE;
    }

    if (!$error && $_POST['username']=='test' && $_POST['password']=='abc123') {

    echo '<p>Correct. Thank you for entering.<p/>';
    }

    else
    {
    echo '<p>Sorry, no access.</p>
    ';
     }

     }
     ?>
     <form action="" method="post">
     Username: <input type="text" name="username" size="20" value="<?php
    if (isset($_POST['submitted']) && !empty($_POST['username']))
    {
        echo $_POST['username'];
    } ?>" />
    <?php
    if (isset($_POST['submitted']) && empty($_POST['username']))
    {
        echo '<span class="error">Please enter a username.</span>';
    }
    ?>
    <br />Password: <input type="password" name="password" size="20" value="<?php
    if (isset($_POST['submitted']) && !empty($_POST['password']))
    {
        echo $_POST['password'];
    } ?>" />
    <?php
    if (isset($_POST['submitted']) && empty($_POST['password']))
    {
        echo '<span class="error">Please enter a password.</span>';
    }
    ?>
   <br /><input type="submit" value="Log in" />
   <br /><input type="hidden" name="submitted" value="true" />
   </form>
试试这个:

<style type="text/css">
.error {
color: red;
}
</style>
<?php

$submitted  = isset($_POST['submitted']);
$userName   = isset($_POST['username']) ? $_POST['username'] : null;
$password   = isset($_POST['password']) ? $_POST['password'] : null;

if($submitted) {
    if (!$userName || !$password) {
        echo '<p class="error">Please go back and fill the inputs.</p>';
    } elseif($userName == 'test' && $password == 'abc123') {
        echo '<p>Correct. Thank you for entering.<p/>';
    } else {
        echo '<p class="error">Sorry, no access.</p>';
    }
} else {
?>
<form action="" method="post">
Username: <input type="text" name="username" size="20" value="<?php echo $userName; ?>" />
<br />
Password: <input type="password" name="password" size="20" value="" />
<br /><input type="submit" value="Log in" />
<br /><input type="hidden" name="submitted" value="true" />
</form>
<?php } ?>

考虑在表单上使用onSubmit事件

您需要在这里结合使用php和javascript,以防止其提交。生成一个由onSubmit调用的Jscript函数。如果未填写值,则返回false。它将关闭提交按钮并直接在屏幕上打印出来

就拿这个来说吧:

$submitted  = isset($_POST['submitted']);
$userName   = isset($_POST['username']) ? $_POST['username'] : null;
$password   = isset($_POST['password']) ? $_POST['password'] : null;

if($submitted)
{
     if (!$userName || !$password) {
        echo '<p class="error">Please go back and fill the inputs.</p>';
    }
}
然后在你的表格上:


然后找出如何使用javascript检查表单。你可以把剩下的部分拼凑起来。

虽然这样做很有效,顺便问一下,是否有必要将我收到的个别错误消息显示在输入字段旁边?这是我最终想要的,当然也是我最难做到的!LOL@Reki对不起,那是你的工作。这是问答网站,不是编程农场。我以为我的问题是问答的问题!我不是要求有人从头开始为我写东西……我已经尽可能地解决了我的问题,老实说,我只是希望被推向正确的方向。。。