限制用户注册的代码 - 隐藏/显示表单 php [关闭]

Posted

技术标签:

【中文标题】限制用户注册的代码 - 隐藏/显示表单 php [关闭]【英文标题】:Code to limit user registration - hide/show form php [closed] 【发布时间】:2014-03-26 07:38:27 【问题描述】:

我刚刚开始学习 php - 不是很好。我创建了一个表格(见下文),我希望人们注册,但我想将其限制为一定数量的成员。例如,4 个用户可以注册,当达到该数量时,它将隐藏表单并显示一条消息“对不起,您已达到用户帐户限制”。

<form action="users.php?new=1" method="post">
    <input type="hidden" name="action" value="newUser"/>
    <input type="hidden" name="id" value="0"/>
<fieldset>
    <legend>Add new user</legend>

    <?php if(isset($msg))  echo $msg;?>

    <p>
        <label>Full name: </label>
        <input name="name"  value="<?php if(isset($name))  echo $name;?>" style="width:400px;"/>
    </p>

     <p>
        <label>Email: </label>
        <input name="email"  value="<?php if(isset($email))  echo $email;?>" style="width:400px;"/>
    </p>

     <p>
        <label>Password: </label>
        <input name="password" type="password"  value="" style="width:400px;"/>
    </p>
     <p>
        <label>Phone number: </label>
        <input name="phone"  value="<?php if(isset($phone))  echo $phone;?>" style="width:400px;"/>
    </p>

                    <p>

<label>User level:</label>
        <select name="access" class="dropdown">
            <option value="no" <?php if(isset($access))  if ($access =='no') echo ' selected="selected" ';?>>User</option>
            <option value="yes" <?php if(isset($access))  if ($access =='yes') echo ' selected="selected" ';?>>Admin</option>
         </select>

注意:管理员用户将拥有所有区域的完全访问权限。

请有人帮助我!代码会很可爱!

谢谢, 查理

【问题讨论】:

每个 IP 地址 4 个用户?总共4个注册然后关闭? 我看到的只是 PHP,没有 SQL。你有什么问题? “代码会很可爱! - 它会,不是吗?学习。它不会杀死你。 共有 4 个用户 @FilipeYaBaPolido 我有一个连接到数据库的包含...@Fred-ii- 好吧,查理,只要做一个计数(*),如果等于 4,则禁用表单。人们已经在下面回答了。 【参考方案1】:
<?php        
    $connection=mysqli_connect("host", "username", "password", "database");
    $sql="SELECT COUNT(*) from database_users";
    $stmt = $connection->prepare($sql);
    $stmt->execute();
    $res = $stmt->get_result();
    $users = $res->fetch_array(MYSQLI_ASSOC);

    if ($users['COUNT(*)'] < 4) 
?>

    // html goes here, outside of the php tags

<?php
     else 

        echo "Sorry, you have reached the user account limit.";

    ;
?>

【讨论】:

myslqi_connect 好的。 OP 会突然觉醒。 $users = $res->fetch_array(MYSQLI_ASSOC)) - 不喜欢这行代码? @CharlieW95 第二个右括号可能是罪魁祸首!摆脱那个“)”我已经通过删除额外的括号并添加分号来更新代码 @danielsmile 谢谢!它解决了这个问题,当我将表单插入 // 插入表单代码时,它认为表单的第一部分是 PHP 并且出现错误? @CharlieW95 我将更新代码,使其对 html 更友好。您需要通过关闭 PHP 标记来分隔 PHP 和 HTML 代码。别担心,这不会停止 PHP 代码的运行:)【参考方案2】:

无论您使用何种数据库方法,您都应该查看数据库并查看返回了多少结果。如果有4个或更多,则不显示表格,如果没有,则显示。

由于您是 PHP 新手,您的数据库语言的可能性是 mysql_*,这不是很好,但不幸的是它在互联网上很普遍。

如果您还没有,请查看PDOmysqli_*

如果您使用的是 mysqli:

<?php
    $con=mysqli_connect("host", "username", "password", "database");

    if (mysqli_connect_errno($con))
    
        echo "Failed to connect: " . mysqli_connect_error();
    

    $sql= "SELECT * FROM table";
    if ($result=mysqli_query($con,$sql)
        $rowcount = mysqli_num_rows($result);
    

然后你可以在if中使用$rowcount来查看是否大于4。

例如。

if ($rowcount > 4)
    echo "Sorry, no more users can sign up";
else
    //form here

【讨论】:

if ($result=mysqli_querty($con,$sql) 有人从另一个myslqi_connect复制/粘贴@ 我实际上打错了。刚刚更正了谢谢。 那么,另一个人从你那里复制了 ;-) 我有一些拼写错误,因为我试图打字太快,所以他也可能遭受同样的命运哈哈@Fred-ii-

以上是关于限制用户注册的代码 - 隐藏/显示表单 php [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

php如何跳转一个链接,并隐藏这个链接?

如何在php laravel中用户选择无线电输入的字段中隐藏或显示?

PHP - 如何在提交后隐藏表单

使用 jquery 发布 php 表单

php文件上传客户端限制和服务器端限制

PHP.TP框架下商品项目的优化4-优化商品添加表单js