Hey,
ich hab ein problem mit meiner login function.
Das ganze ist im grunde nur eine login function und ne winzige html seite die bei login eine gelbe table cell ausgeben soll
allerding bleibt das ganze bei login.php und macht kein redirect. ich hab bisher noch garkeine erfolge erziehlt mit header (location:...); genauso wenig mit ner einfachen ausgabe von echo '<meta http-equiv="refresh" content="5; URL=test.php">';
hab die sachen die ich ausprobiert habe mal als comment drinne gelassen bis auf ob_start(); und ob_end_flush(); die auch nichts gebacht haben.
kurz gefragt wie bekomm ich es hin das es endlich weiter geht nach der function und
ob es überhaupt ne gute idee ist die login authentication über ne session variable zu machen ... (kann man die per URL füllen... index.php?session=username(mir fällt gerade auf das das so ja nicht gehen kann .. oder ?))
beim asuführen der ganze geschichte ende ich auf login.php mit keiner fehlermeldung (error_reporting(E_ALL);)
test.php (enthält login form und soll nach erfolgreichem login nur eine gelbe cell ausgeben)
Zitat:
PHP-Code:
<?php
session_start();
?>
HTML-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/
xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>
<body>
<form method="post" action="login.php">
<table>
<tr>
<td>Enter your username:</td>
<td><input type="text" size="10" name="loginUsername"></td>
</tr>
<tr>
<td>Enter your password:</td>
<td><input type="password" size="10" name="loginPassword"></td>
</tr>
</table>
<input type="submit" value="login">
</form>
<table width="100" height="100">
PHP-Code:
<?php
if (isset($_SESSION['username']))
{
echo '<tr> <td width="50" height="50" bgcolor="#FFFF00"></td></tr>';
}
else
{
echo '<tr> <td> <a>nix login</a></td></tr>';
}
?>
HTML-Code:
</td>
</tr>
<tr>
<td>
<a href="test.php?logout=1">Logout </a>
</td>
</tr>
</table>
</body>
</html>
|
login.php (enthält login function)
PHP-Code:
<?php
function login ($loginUsername, $loginPassword)
{
error_reporting(E_ALL);
require 'functions.php';
session_start();
$username = $_POST['loginUsername'];
$password = $_POST['loginPassword'];
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
$password_digest = md5(trim($password));
if (!isset($username) || !isset($password))
{
header('refresh: 5; url=test1.php');
//echo '<meta http-equiv="refresh" content="5; URL=loginfailed.php">';
//return false;
}
else
{
if (! $connection = mysql_connect("localhost", "XXX", "XXX")) showerror();
if (! mysql_select_db("XXX", $connection)) showerror();
$query = " SELECT ID,password,admin FROM users
WHERE username = '{$username}'
AND password = '{$password_digest}'";
if (!$result = mysql_query ($query, $connection))
showerror();
if (mysql_num_rows($result) !=1)
{
header('refresh: 5; url=test2.php');
//echo '<meta http-equiv="refresh" content="5; URL=loginfailed.php">';
//return false;
}
else
{
$row = mysql_fetch_array($result, mysql_assoc);
session_register("username");
$_SESSION['ID'] = $row['ID'];
if ($row['admin']== 1)
{
$_SESSION['admin'] = '1';
}
header('refresh: 5; url=test.php');
//echo '<meta http-equiv="refresh" content="5; URL=test.php">';
//return true;
}
}
}
?>
und zu vollständigkeit
functions.php
PHP-Code:
<?php
function showerror()
{
die ("Error ". mysql_errno() . " : " . mysql_error());
}
?>
Für alle tipps hinweise verbesserungen und und und bin ich offen und sehr dankbar :)
MFG
oh no