2015-01-04 23 views
2

我跟着教程來創建一個簡單的登錄系統使用PHP。我已經安裝了wampserver並從phpmyadmin面板創建了數據庫。這不工作,我相信這是服務器的問題。當我創建數據庫時,出現在那裏的服務器是mysql wampserver,教程中是localhost。我將config.inc.php中的服務器名稱更改爲localhost,但仍然無法正常工作。當我點擊登錄按鈕時,它會返回到wampserver的索引頁面。我會分享我的代碼,也許有人可以找到錯誤,因爲我無法弄清楚我做錯了什麼。登錄系統使用PHP myadmin不工作

dbConnect.php

<?php 
$dbCon = mysqli_connect("localhost", "root", "", "tests"); 
?> 

user.php的

<?php 
session_start(); 

if (isset($_SESSION['id'])) { 
    // Put stored session variables into local PHP variable 
    $uid = $_SESSION['id']; 
    $usname = $_SESSION['username']; 
    $result = "Test variables: <br /> Username: ".$usname. "<br /> Id: ".$uid; 
} else { 
    $result = "You are not logged in yet"; 
} 
?> 
<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title><?php echo $usname ;?> - Test Site</title> 
</head> 

<body> 
<?php 
echo $result; 
?> 
</body> 
</html> 

first.php

<?php 
session_start(); 

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

     // Include the databas connection script 
    include_once("dbConnect.php"); 

    $usname = strip_tags($_POST['username']); 
    $paswd = strip_tags($_POST['password']); 

    //$usname = mysqli_real_escape_string($dbCon, $usname); 
    //$paswd = mysqli_real_escape_string($dbCon, $paswd); 



    $sql = "SELECT id, username, password FROM members WHERE username = '$usname' AND activated = '1' LIMIT 1"; 
    $query = mysqli_query($dbCon, $sql); 
    $row = mysqli_fetch_row($query); 
    $uid = $row[0]; 
    $dbUsname = $row[1]; 
    $dbPassword = $row[2]; 

    // Check if the username and the password they entered was correct 
    if ($usname == $dbUsname && $paswd == $dbPassword) { 
     // Set session 
     $_SESSION['username'] = $usname; 
     $_SESSION['id'] = $uid; 
     // Now direct to users feed 
     header("Location: user.php"); 
    } else { 
     echo "<h2>Oops that username or password combination was incorrect. 
     <br /> Please try again.</h2>"; 
    } 

} 
?> 

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Basic login system</title> 
</head> 

<body> 
<div id="wrapper"> 
<h1>Simple PHP Login</h1> 
<form id="form" action="index.php" method="post" enctype="multipart/form-data"> 
Username: <input type="text" name="username" /> <br /> 
Password: <input type="password" name="password" /> <br /> 
<input type="submit" value="Login" name="Submit" /> 
</form> 
</body> 
</html> 
+1

你的問題沒有明確形成。我從你所說的內容中唯一可以看到的是,當你的表單動作可能是'first.php'時,它是'index.php'? – RhapX

+0

'index.php'是wampserver的起始頁面。 – dres

+0

嘗試刪除表單操作。 – Noman

回答

0

什麼RhapX試圖說明的是,你的表格操作告訴表格在哪裏發佈數據。目前,你有

<form id="form" action="index.php" method="post" enctype="multipart/form-data">

這意味着一旦用戶點擊提交其將它們發送到index.php文件,並會與他們發送$ _ POST數據。但是你說first.php是實際完成所有工作的文件,所以你需要將用戶和$ _POST數據發送到first.php。將其更改爲:

<form id="form" action="first.php" method="post">

(更改爲first.php動作和剛剛擺脫了ENCTYPE的 - 這可能是正確的,但它是完全不必要的,我已經看到了它導致一些問題。 )

+0

這是上述問題中唯一的錯誤? –

+0

這是最明顯的。如果改變不能解決問題,我會花更多時間看看它。 – Mooseknuckles

+0

它的工作原理!謝謝..這是一個愚蠢的錯誤... – dres