2012-04-06 7 views
1

Ich versuche, einen Wert aus einem Abfrageergebnis zu einer Sitzung zuweisen, aber es funktioniert nicht ..PHP/SQL assign SQL-Ergebnis Sitzung

Session Benutzername unten, ich bin die Registrierung der Sitzung Benutzername was ist der Benutzer eine E-Mail

$_SESSION['myusername'] = $myusername; 

Check Login Hier bin ich versucht, den Kundennamen aus der gleichen Tabelle erhalten wurden die E-Mail gespeichert und im „Namen“ Session speichern

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

Gespeichert Erfolg hier i des Benutzers versuche Name

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

Check Login-Seite *

<?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(); 
?> 

auf der erfolgreichen Anmeldung *

zu holen
<? 
// 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"); ?> 

Das Ergebnis ist

ich nur die Benutzername bekommen, aber nicht an den Namen des Benutzers, der ein Feld in derselben Tabelle mit dem Namen ist Name

result

+1

Haben Sie 'session_start()' auf beiden Seiten? –

Antwort

1

Zuerst muss eine Abfrage haben, so etwas

$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 

dann tun Sie

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

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

ill poste den ganzen code, –

+0

Danke ich war miss'g der '$ row = mysql_fetch_assoc ($ ergebnis);' –

+0

was macht die mysql fetch assoc? –