php
  • login
  • system
  • 2012-03-23 241 views 0 likes 
    0

    我发现这个使用PhP和MySQL创建登录/注册系统的好教程。 论坛大约5岁(去年编辑),但它仍然可以是有用的。PhP登录/注册系统

    Beginner Simple Register-Login system

    似乎能够同时与登录的问题和注册页面。

    <?php 
    
    function register_form(){ 
    
    $date = date('D, M, Y'); 
    echo "<form action='?act=register' method='post'>" 
    ."Username: <input type='text' name='username' size='30'><br>" 
    ."Password: <input type='password' name='password' size='30'><br>" 
    ."Confirm your password: <input type='password' name='password_conf' size='30'><br>" 
    ."Email: <input type='text' name='email' size='30'><br>" 
    ."<input type='hidden' name='date' value='$date'>" 
    ."<input type='submit' value='Register'>" 
    ."</form>"; 
    
    } 
    
    function register(){ 
    
    $connect = mysql_connect("host", "username", "password"); 
    if(!$connect){ 
    die(mysql_error()); 
    } 
    
    $select_db = mysql_select_db("database", $connect); 
    if(!$select_db){ 
    die(mysql_error()); 
    } 
    
    $username = $_REQUEST['username']; 
    $password = $_REQUEST['password']; 
    $pass_conf = $_REQUEST['password_conf']; 
    $email = $_REQUEST['email']; 
    $date = $_REQUEST['date']; 
    
    
    if(empty($username)){ 
    die("Please enter your username!<br>"); 
    } 
    
    if(empty($password)){ 
    die("Please enter your password!<br>"); 
    } 
    
    if(empty($pass_conf)){ 
    die("Please confirm your password!<br>"); 
    } 
    
    if(empty($email)){ 
    die("Please enter your email!"); 
    } 
    
    
    $user_check = mysql_query("SELECT username FROM users WHERE username='$username'"); 
    $do_user_check = mysql_num_rows($user_check); 
    
    
    $email_check = mysql_query("SELECT email FROM users WHERE email='$email'"); 
    $do_email_check = mysql_num_rows($email_check); 
    
    
    if($do_user_check > 0){ 
    die("Username is already in use!<br>"); 
    } 
    
    if($do_email_check > 0){ 
    die("Email is already in use!"); 
    } 
    
    
    if($password != $pass_conf){ 
    die("Passwords don't match!"); 
    } 
    
    
    $insert = mysql_query("INSERT INTO users (username, password, email) VALUES  ('$username', '$password', '$email')"); 
    if(!$insert){ 
    die("There's little problem: ".mysql_error()); 
    } 
    
    echo $username.", you are now registered. Thank you!<br><a href=login.php>Login</a> |  <a href=index.php>Index</a>"; 
    
    } 
    
    switch($act){ 
    
    default; 
    register_form(); 
    break; 
    
    case "register"; 
    register(); 
    break; 
    
    } 
    
    ?> 
    

    一旦按下注册按钮的页面不执行任何操作,字段被删除,并没有数据被授予数据库或错误在里面加了。 我因子评分那个,所以我删除它的问题可能是switch($act){部分,并使用改变了页面require

    require('connect.php'); 
    

    其中connect.php是

    <?php 
    mysql_connect("localhost","host","password"); 
    mysql_select_db("database"); 
    ?> 
    

    删除了function register_form(){echo部分把它变成一个HTML代码:

    <form action='register' method='post'> 
    Username: <input type='text' name='username' size='30'><br> 
    Password: <input type='password' name='password' size='30'><br> 
    Confirm your password: <input type='password' name='password_conf' size='30'><br> 
    Email: <input type='text' name='email' size='30'><br> 
    <input type='hidden' name='date' value='$date'> 
    <input type='submit' name="register" value='Register'> 
    </form> 
    

    而不是有一个function register(){我用if($register){

    替换它所以当按下注册按钮时,它运行的是PHP代码,但这个编辑似乎也不工作。那么问题是什么?如果需要,我可以在我的域上重新添加此代码。

    登录页面具有相同的问题,当清空字段时按下按钮时没有任何反应。

    +0

    不应该表单动作是register.php而不是只是注册?

    2012-03-23 14:05:15

    +0

    注意任何寻找登录系统的人:发布的代码有很多问题;不要打扰它。 – outis 2014-04-01 13:21:57

    回答

    0

    没关系的家伙我发现了一个不同的视频演示教程。奇迹般有效。 My Page 添加了登录/注册系统。

    Tutorial如果有人需要它。感谢您回复我感谢它,并会为他们+1。

    +1

    请注意,本教程使用不推荐使用的mysql扩展。现在,应该使用mysqli或PDO。两者都比旧的扩展有优势,而不是其中的准备语句。 – outis 2014-04-01 13:39:53

    1

    您是否回应$ _REQUEST数据并检查它们是否被正确抓取?

    +0

    似乎并不是因为它们被抓住了...只是试过 – Marian 2012-03-23 14:46:49

    +0

    然后连接到注册php文件是错误的..首先..make它register.php,然后检查它的URL – 2012-03-24 10:16:09

    1
    <?php 
        if (!isset($_POST)) 
         register_form(); 
        else 
         register(); 
    

    用上面的代码更换开关部件。

    +0

    不工作,同样的事情发生。我试图改变为'action =“register.php”'或将语句置于'{}'之外。 – Marian 2012-03-23 14:42:39

    +0

    声明*对不起 – Marian 2012-03-23 14:43:25

    相关问题