2015-05-10 204 views
1

我知道我和我的問題聽起來很愚蠢,因爲有許多在線答案。我創建了一個用於登錄和註冊的html頁面。我被要求使用xampp來託管我的網頁。我創建了一個數據庫和表格,並在xampp的sql中插入了數據。 但是,當我給予登錄和註冊詳細信息並提交時,頁面會引發各種異常。 我在這裏發佈的主要原因是,這是我的最終項目在3天的截止日期,如果我甚至不做這個簡單的工作,我將不會被評分。我嘗試了很多,但不斷收到錯誤。所以我需要一些快速的幫助。我需要一個使用連接到數據庫的php登錄頁面。從你那裏得到一點幫助可以讓我免於得到一個F,我真的很感激它。如何使用php和xampp創建登錄和註冊頁面

+1

你正在做一件作業,需要幫助。沒有什麼不對的..這個問題有什麼問題,對我來說,它尖叫**給我代碼**。我們不這樣做。您在代碼中提到了各種例外情況。那些錯誤是什麼?去大學/大學/學校是沒有意義的。或者任何形式的發展教育都要求半專業和專業開發人員的社區。誰會幫助你解決你的編碼錯誤。提供我們看到的代碼。什麼是投擲錯誤,你試過了什麼。你的輸出和預期輸出 –

+0

你沒有告訴我們任何事情。你有什麼錯誤?代碼是什麼?你需要給我們更多的細節,所以我們可以幫助你... –

+0

我真的很高興,沒有一個低估了這個問題,'善良贏了'vs'規則'在這裏..... – fresher

回答

3

數據庫結構

CREATE TABLE IF NOT EXISTS `users` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `username` varchar(255) NOT NULL, 
    `password` varchar(255) NOT NULL, 
    `first_name` varchar(255) NOT NULL, 
    `last_name` varchar(255) NOT NULL, 
    `email` varchar(255) NOT NULL, 
    PRIMARY KEY (`id`), 
    UNIQUE KEY `username` (`username`), 
    UNIQUE KEY `email` (`email`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 

如果你正在使用MySQL使用phpMyAdmin來創建這些領域將是您更容易

現在我已經定義了需要連接到數據庫的常量 創建一個文件dbConstants.php或者任意命名它

現在登錄頁面的代碼創建一個名爲register.php的文件

<html> 
<head> 
    <title>Login Form</title> 
</head> 
<body> 

<?php 

if (!isset($_POST['submit'])){ 
?> 
<!-- The HTML login form --> 
    <form action="<?=$_SERVER['PHP_SELF']?>" method="post"> 
     Username: <input type="text" name="username" /><br /> 
     Password: <input type="password" name="password" /><br /> 

     <input type="submit" name="submit" value="Login" /> 
    </form> 

<?php 
} else { 
    require_once("db_const.php"); 
    $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME); 
    # check connection 
    if ($mysqli->connect_errno) { 
     echo "<p>MySQL error no {$mysqli->connect_errno} : {$mysqli->connect_error}</p>"; 
     exit(); 
    } 

    $username = $_POST['username']; 
    $password = $_POST['password']; 

    $sql = "SELECT * from users WHERE username LIKE '{$username}' AND password LIKE '{$password}' LIMIT 1"; 
    $result = $mysqli->query($sql); 
    if (!$result->num_rows == 1) { 
     echo "<p>Invalid username/password combination</p>"; 
    } else { 
     echo "<p>Logged in successfully</p>"; 
     // do stuffs 
    } 
} 
?>  
</body> 
</html> 

最後註冊的代碼創建一個名爲register.php文件

<html> 
<head> 
    <title>Registration</title> 
</head> 
<body> 
<?php 
require_once("db_const.php"); 
if (!isset($_POST['submit'])) { 
?> <!-- The HTML registration form --> 
    <form action="<?=$_SERVER['PHP_SELF']?>" method="post"> 
     Username: <input type="text" name="username" /><br /> 
     Password: <input type="password" name="password" /><br /> 
     First name: <input type="text" name="first_name" /><br /> 
     Last name: <input type="text" name="last_name" /><br /> 
     Email: <input type="type" name="email" /><br /> 

     <input type="submit" name="submit" value="Register" /> 
    </form> 
<?php 
} else { 
## connect mysql server 
    $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME); 
    # check connection 
    if ($mysqli->connect_errno) { 
     echo "<p>MySQL error no {$mysqli->connect_errno} : {$mysqli->connect_error}</p>"; 
     exit(); 
    } 
## query database 
    # prepare data for insertion 
    $username = $_POST['username']; 
    $password = $_POST['password']; 
    $first_name = $_POST['first_name']; 
    $last_name = $_POST['last_name']; 
    $email  = $_POST['email']; 

    # check if username and email exist else insert 
    $exists = 0; 
    $result = $mysqli->query("SELECT username from users WHERE username = '{$username}' LIMIT 1"); 
    if ($result->num_rows == 1) { 
     $exists = 1; 
     $result = $mysqli->query("SELECT email from users WHERE email = '{$email}' LIMIT 1"); 
     if ($result->num_rows == 1) $exists = 2;  
    } else { 
     $result = $mysqli->query("SELECT email from users WHERE email = '{$email}' LIMIT 1"); 
     if ($result->num_rows == 1) $exists = 3; 
    } 

    if ($exists == 1) echo "<p>Username already exists!</p>"; 
    else if ($exists == 2) echo "<p>Username and Email already exists!</p>"; 
    else if ($exists == 3) echo "<p>Email already exists!</p>"; 
    else { 
     # insert data into mysql database 
     $sql = "INSERT INTO `users` (`id`, `username`, `password`, `first_name`, `last_name`, `email`) 
       VALUES (NULL, '{$username}', '{$password}', '{$first_name}', '{$last_name}', '{$email}')"; 

     if ($mysqli->query($sql)) { 
      //echo "New Record has id ".$mysqli->insert_id; 
      echo "<p>Registred successfully!</p>"; 
     } else { 
      echo "<p>MySQL error no {$mysqli->errno} : {$mysqli->error}</p>"; 
      exit(); 
     } 
    } 
} 
?>  
</body> 
</html> 

這是一個簡單的登錄和註冊過程中,我希望它可以幫助你,儘管事情我已經在這裏給出的可能不是最好的實踐至少會幫助你像使用mysqli更好地使用pdo。