Hallo Zusammen
Ich habe eine kleine Login Site erstellt, die den User, bei erfolgreichem Log-In auf eine Hauptsite leitet. Ich möchte nun, aber auf meiner Hauptsite anzeigen, wer der Nutzer ist: Also Hallo "user". Ich habe dazu mehrere Anleitungen gefunden, allerdings funktioniert das nicht sauber! Es gibt drei Möglichkeiten, was als Fehler auftritt:
1. Es wird einfach der erste Benutzer aus der Datenbank angezeigt, anstatt dem eingeloggtn.
2. Es wird gar nichts angezeigt
3. Es werden alle Benutzer angezeigt.
Hier ist der Quellcode, auf der Site (ist nur ein Frame meiner Hauptsite), wo ich das Problem habe:
Also das Problem liegt ganz klar beim SELECT, so viel weiss ich, aber wie mach ich nun, dass ich da als Resultat nicht den ersten Eintrag, sondern den richtigen zurückkriege?
Dazu hier noch meine Login Site:
und hier noch mein Background Script (die SQL-Login hab ich hier rausgelöscht). Also die sessionhelpers.inc.php :
Ich bedanke mich schon im Voraus für jegliche Hilfe!
Ich habe eine kleine Login Site erstellt, die den User, bei erfolgreichem Log-In auf eine Hauptsite leitet. Ich möchte nun, aber auf meiner Hauptsite anzeigen, wer der Nutzer ist: Also Hallo "user". Ich habe dazu mehrere Anleitungen gefunden, allerdings funktioniert das nicht sauber! Es gibt drei Möglichkeiten, was als Fehler auftritt:
1. Es wird einfach der erste Benutzer aus der Datenbank angezeigt, anstatt dem eingeloggtn.
2. Es wird gar nichts angezeigt
3. Es werden alle Benutzer angezeigt.
Hier ist der Quellcode, auf der Site (ist nur ein Frame meiner Hauptsite), wo ich das Problem habe:
PHP-Code:
<?
session_start();
include 'sessionhelpers.inc.php';
echo 'You are ';
if (!logged_in())
echo 'not ';
echo 'logged-in.<p />';
echo 'Hallo';
echo " <a href=\"user.php".SID."\" target=\"Site".SID."\"
>\n";
$sql = "SELECT UserName, UserID
FROM users ";
$result = mysql_query($sql)
or die(mysql_error());
$row = mysql_fetch_assoc($result);
echo " " .$row['UserName'] ;
echo " </a>\n";
echo ' (<font size="-1"><a href="logout.php"
target="_parent">Log out</a></font>)';
?>
Dazu hier noch meine Login Site:
PHP-Code:
<?
session_start();
include 'sessionhelpers.inc.php';
if (isset($_POST['login']))
{
$userid=check_user($_POST['username'], $_POST['userpass']);
if ($userid!=false)
login($userid);
else
echo 'Your input was incorrect!';
}
if (!logged_in())
echo '
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Log-In auf meinen Server</title>
</head>
<form method="post" action="login.php">
<table>
<tr>
<td colspan="2">
<h2>Welcome to my Server!</h2>
</td>
</tr>
<tr>
<td colspan="2"> </td>
<tr>
<td>
<label>Benutzername:
</td>
<td>
</label><input name="username" type="text">
</td>
</tr>
<tr>
<td>
<label>Passwort:
</td>
<td>
</label><input name="userpass" type="password" id="userpass">
</td>
</tr>
<tr>
<td>
 
</td>
<td>
<input name="login" type="submit" id="login" value="Log-in">
</td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td>
Terms of use:
</td>
<td>
<a href="terms.html">Read here!</a>
</td>
</tr>
</table>
</form>
</body>
</html>
';
else
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Log in successful</title>
<meta http-equiv="refresh" content="0;URL=index.php">
</head>
<body>
<center>
You should be logged in now. You should get automaticly to the member site.
<p>
If your browser does not automatically redirect you,
click <a href="index.php">here</a> to go to the site.
</center>
</body>
</html>
';
?>
PHP-Code:
<?
function connect()
{
$con= mysql_connect('localhost','','') or die(mysql_error());
mysql_select_db('login',$con) or die(mysql_error());
}
function check_user($name, $pass)
{
$sql="SELECT UserID
FROM users
WHERE UserName='".$name."' AND UserPass=MD5('".$pass."')
LIMIT 1";
$result= mysql_query($sql) or die(mysql_error());
if ( mysql_num_rows($result)==1)
{
$user=mysql_fetch_assoc($result);
return $user['UserID'];
}
else
return false;
}
function login($userid)
{
$sql="UPDATE users
SET UserSession='".session_id()."'
WHERE UserID=".$userid;
mysql_query($sql);
}
function logged_in()
{
$sql="SELECT UserID
FROM users
WHERE UserSession='".session_id()."'
LIMIT 1";
$result= mysql_query($sql);
return ( mysql_num_rows($result)==1);
}
function logout()
{
$sql="UPDATE users
SET UserSession=NULL
WHERE UserSession='".session_id()."'";
mysql_query($sql);
}
connect();
?>
Kommentar