2014-06-07 59 views
-1

嗨即時嘗試學習PHP,並希望進行登錄和註銷會話,但它不工作。 這是我的PHP代碼PHP代碼連接數據庫和登錄表格

<?php 

session_start(); 

$username = ''; 
$password = ''; 
$database = ''; 
$server = ''; 

mysql_connect($server, $username, $password); 
mysql_select_db($database); 

$userName=mysql_real_escape_string($_POST['username']); 
$passWord=md5(mysql_real_escape_string($_POST['password'])); 
$query = "SELECT id FROM member WHERE userName='$userName' and passWord='$passWord'"; 
$res = mysql_query($query); 
$rows = mysql_num_rows($res); 
if ($rows==1) 
{ 
    $_SESSION['userName'] = $_POST['username']; 
    header("Location: page.php"); 
} 
else 
{ 
    echo "user name and password not found"; 
} 
?> 

,這裏是我的形式

<Form name ="form1" Method ="POST" Action ="Login.php"> 
<INPUT TYPE = "TEXT" VALUE ="username" Name ="username"> 
    <INPUT TYPE = "TEXT" VALUE ="password" Name ="password"> 
<INPUT TYPE = "Submit" Name = "Submit1" VALUE = "Login"> 
</FORM> 

如果可能,我可以使用一些幫助

+0

你會得到什麼錯誤?什麼工作不正常?代碼是否執行到某個點然後崩潰? – Fluffeh

+0

你需要在$ username,$ password,$ database&$ server –

+0

中指定值我的錯誤是打印出用戶名和密碼未找到,當我輸入正確的用戶名和密碼時,我也指定了我剛剛沒有的值發佈詳情 – user3717206

回答

0

session_start();應該在第一線。不需要空格或換行符。

+0

那會去哪?在形式? – JakeGould

+0

nah,在php頁面 <?php session_start(); $ username =''; $ password =''; $ database =''; $ server =''; mysql_connect($ server,$ username,$ password); mysql_select_db($ database); –

+1

這與現在放置的方式沒有什麼不同。 – JakeGould

-1

您需要在頂部有空字符串的地方提供數據庫設置。我不想假設你有。

$username = ''; 
$password = ''; 
$database = ''; 
$server = ''; 

而且,由於你已經逃出後的變量,你可以使用

$_SESSION['userName'] = $userName; 

而不是

$_SESSION['userName'] = $_POST['username']; 
1

試試這個

$query = "SELECT id FROM member WHERE userName='$userName' and passWord='$passWord'"; 
    $res = mysql_query($query); 
    if(mysql_num_rows ($res) == 1) 
    { 
    $row = mysql_fetch_assoc($res); 
    $_SESSION['userName'] = $row['id']; 
    if (isset($_SESSION['login_return_url'])) 
    { 
    header('Location: ' . $_SESSION['login_return_url']); 
    exit; 
    } 
    else 
    { 
    header("Location: page.php"); 
    } 
    } 
    else 
    { 
     echo "user name and password not found"; 
    } 
+0

它打印用戶名和密碼找不到 – user3717206

+0

請確保您的用戶名密碼正確或沒有任何重複 – najmal

+0

或嘗試 如果(mysql_num_rows($ res)!= 0) – najmal

0

我想你正在提供正確的$username = ''; $password = ''; $database = ''; $server = '';

例如我的數據庫有:

$username = 'root'; $password = 'root'; $database = 'mydatabase'; $server = 'localhost';

另外我想建議不要使用md5 or sha1簡單。使用Salt hashing algorithms進行加密。