2014-06-07 58 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进行加密。