如何根据用户名和密码更改我的PHP登录脚本?

时间:2011-07-24 18:09:36

标签: php login-script

我有一个基本的php登录脚本。我有三个字段:“username”,“password”和“url”。我想根据用户名和密码组合将每个用户重定向到自己的网址。我不知道如何将“url”合并到我的剧本中。

这是我的check_login.php

<?php
$host="localhost"; // Host name
$username="myusername"; // Mysql username
$password="mypassword"; // Mysql password
$db_name="naturan8_login"; // Database name
$tbl_name="users"; // Table name

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or
die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// username and password sent from form
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];

// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and 
password='$mypassword'";
$result=mysql_query($sql);

$count=mysql_num_rows($result);

if($count==1){
session_register("myusername");
session_register("mypassword");
header("location:login_success.php");
}
else {
header("location:error.htm");
}
?>

5 个答案:

答案 0 :(得分:1)

一些事情:

  1. session_register已弃用。请改用$_SESSION['username'] = $username
  2. 你可能不应该在会话中存储密码,你有用户名或用户ID,这应该就够了。
  3. 使用会话数据,您可以为每个用户自定义login_success页面,而无需创建单独的页面。您需要做的就是查看$_SESSION['username'] var以查看它是谁。 (确保您可以session_start()在您打算读/写会话数据的所有页面上。

答案 1 :(得分:1)

切换以下代码:

$count=mysql_num_rows($result);

if($count==1){
    session_register("myusername");
    session_register("mypassword");
    header("location:login_success.php");
}

...为:

$user_info = mysql_fetch_assoc($result);

if( isset($user_info['url']) ) {

    session_register("myusername");
    session_register("mypassword");
    header('Location: ' . $user_info['url']); //Redirects to the supplied url from the DB
}

希望这就是你要找的东西!

答案 2 :(得分:0)

使用mysql_result()从查询中提取url字段:

http://php.net/manual/en/function.mysql-result.php

$url = mysql_result($result, $x); // $x is the column number of the url field. 

header("location: {$url}");

答案 3 :(得分:0)

header("location:login_success.php");替换为

$user =  mysql_fetch_assoc($result);
header("location:{$user['url']}");

答案 4 :(得分:0)

查询:

$sql="SELECT url FROM $tbl_name WHERE username='$myusername' and password='$mypassword' LIMIT 1";

然后在重定向的位置,将其替换为:

header("Location: " . mysql_result($sql, 0));

相关问题