2012-04-06 82 views
1

我試圖從指定的查詢結果會話的值,但它不工作..PHP/SQL分配SQL結果會話

會話的用戶名下方 ,我註冊了會議的用戶名這是用戶的電子郵件

$_SESSION['myusername'] = $myusername; 

檢查登錄 在這裏,我想從同一個表中獲取客戶姓名進行存儲,並將其保存在「名稱」會話郵件

$_SESSION['name'] = $row['name']; 

已記錄成功 在這裏,我試圖獲取用戶名

echo "Welcome ". $_SESSION['name']; 

檢查登錄頁面*

<?php 
ob_start(); 
$host="localhost"; // Host name 
$username="xx"; // Mysql username 
$password="xx"; // Mysql password 
$db_name="xx"; // Database name 
$tbl_name="customer"; // Table name 
$db_usercol="email"; // Field containing username 
$db_passcol="password"; // Field containing password 

// Connect to server and select databse. 
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 $db_usercol='$myusername' and $db_passcol='$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 "profile.php" 
session_register("myusername"); 
session_register("mypassword"); 
$_SESSION['myusername'] = $myusername; 
$_SESSION['name'] = $row['name']; 
header("location:profile.php"); 
} 
else { 
echo "Wrong Username or Password"; 
} 
ob_end_flush(); 
?> 

在成功登錄*

<? 
// Check if session is not registered , redirect back to main page. 
// Put this code in first line of web page. 
session_start(); 
if(isset($_SESSION[$myusername])){ 
header("location:members.php"); 
} 
else 
include("header.php"); 
?> 

<body id="profile"> 
<div id="wholewrap"> 
<div id="bodywrap"> 

<div id="content"> 
<h1>Your Profile</h1> 

<?php 

echo "Welcome ". $_SESSION['myusername']; 
echo "Welcome ". $_SESSION['name']; 
?> 

</div> <!-- content #end --> 

<div id="sidebar"> 

Lorem Ipsum 

</div> <!-- sidebar #end --> 

</div> <!-- bodywrap #end --> 
</div> <!-- wholewrap #end --> 

<?php include("footer.php"); ?> 

結果是

我只得到了用戶名,但該用戶,這是在同一個表中的字段命名

result

+1

你有'在session_start()'兩個頁面上? – 2012-04-06 21:49:13

回答

1

首先你的不是名稱必須有一個查詢,這樣的事情

$query = mysql_query("SELECT `name` FROM `users` WHERE `email`='".$_POST['email']."'") or die(mysql_error()); // of course you want to clear the strings and validate them 

那你就

if(mysql_num_rows($query) > 0) 
{ 
    $row = mysql_fetch_assoc($query); 

    $_SESSION['name'] = $row['name']; 
} 
+0

虐待發布整個代碼, – 2012-04-06 21:51:09

+0

謝謝我錯過了'$行= mysql_fetch_assoc($結果);' – 2012-04-06 22:25:32

+0

mysql fetch assoc做什麼? – 2012-04-06 22:26:57