php
  • login
  • system
  • 2012-03-23 342 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

    相關問題