2012-05-12 44 views
0

我想修改下面的脚本以在用户重定向时从数据库中提取附加信息。从PHP和MySQL登录的用户中获取额外数据

我想通过拉额外的信息是在同一个表作为用户名密码并标FNAME。我对PHP非常陌生,所以任何帮助将我指向正确的方向将非常感激。

我知道我可以用用户名(如果我在重定向网页上的脚本替换FNAME用户名,它的工作),但是这是一个电子邮件,让不好看的问候一个登录用户

下面是用户登录和重定向脚本工作正常:

<?php 

session_start(); 
$host="localhost"; // Host name 
$username="";  // Mysql username 
$password="";  // Mysql password 
$db_name="trydata"; // Database name 
$tbl_name="users"; // Table name 

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['username']; 
$mypassword=$_POST['password']; 

// 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); 

// Mysql_num_row is counting table row 
$count = mysql_num_rows($result); 

// If result matched $myusername and $mypassword, 
// table row must be 1 row 
if($count == 1){ 
    // Register $myusername, $mypassword 
    // and redirect to file"login_success.php" 
    $_SESSION['username'] = $myusername; 
    $_SESSION['password'] = $mypassword; 

    // get the result set from the query 
    $result = mysql_fetch_array($result); 

    // get the redirect column's value 
    $redirect = trim($result['redirect']); 

    if ($redirect == '') { 
    echo "No redirect value was set!"; 
    } else { 
    header('Location: ' . $redirect); 
    exit; 
    } 
} else { 
    echo "Wrong Username or Password"; 
} 

?> 

这里是未通过FNAME从数据库中提取重定向页面的脚本:

<?php 

// start up your PHP session! 
session_start(); 

if ($_SESSION["username"]) { 
    echo "You are logged in as ".$_SESSION['fname']; 
    echo "<p>"; 
    echo "<a href='aapage.php'>here is the aapage</a>"; 
    echo "<a href='logout.php'> Click here to logout<a/>"; 
} else { 
    header ("Location: form.php"); 
} 

?> 

回答

0

首先,你需要指定FNAME一个变量。例如,行之后:

$result = mysql_fetch_array($result); 

您可以添加类似:

$_SESSION['fname'] = $result['fname']; 

然后,您可以使用在其他页面这个会话变量。

+0

现在得到它的工作与您的帮助,非常感谢您花时间来帮助我。非常感激你的帮助。再次感谢你,阿拉。 –

0

你永远不会设置你的会话变量'框架'。您需要在您的登录脚本中进行设置。

// If result matched $myusername and $mypassword, table row must be 1 row 
if($count == 1){ 
    // Register $myusername, $mypassword and redirect to file"login_success.php" 
    $_SESSION['username'] = $myusername; 
    $_SESSION['password'] = $mypassword; 
    $_SESSION['frame'] = mysql_result($result,0,"whateverfnamesrowisinyourdatabase"); 
} 
+0

感谢您的帮助,现在请在下面的人的帮助和帮助下工作,再次感谢您的帮助,非常感谢。 –

+0

如果他们有帮助,随时投票给我们的答案。 – Jeremy1026

相关问题