Hallo Leute,
ich habe mit PHP eine Login-Datei (Login.php) erstellt, mit der man auf ein Formular (Formula.php) zugreifen können soll. Das Formular soll zu guterletzt Datensätze an eine MySQL-Datenbank (Tabelle: Berichte) senden. Wird das Formular geöffnet, soll mit einem if-Konstruktor geprüft werden, ob der User sich vorher eingeloggt hat. Dies soll mit der Funktion logged_in() unter Hilfe einer session_id geschehn, die wiederum in einer MySQL-Datenbank (Tabelle: user) zu finden ist.
Das Problem:
Hat sich der User eingeloggt und will nun zu dem Formular, prüft das Formular zwar ob der user sich eingeloggt hat, zeigt allerdings nicht das Formular. Sondern verweist darauf, dass sich der User nicht eingeloggt hat, trotz das die Anmeldedaten korrekt waren.
Hier die Codes:
function.php
login.php
formular.php
liegt hier ein Denkfehler/Logikfehler vor?
Danke schonmal im Voraus.
MfG Apon
ich habe mit PHP eine Login-Datei (Login.php) erstellt, mit der man auf ein Formular (Formula.php) zugreifen können soll. Das Formular soll zu guterletzt Datensätze an eine MySQL-Datenbank (Tabelle: Berichte) senden. Wird das Formular geöffnet, soll mit einem if-Konstruktor geprüft werden, ob der User sich vorher eingeloggt hat. Dies soll mit der Funktion logged_in() unter Hilfe einer session_id geschehn, die wiederum in einer MySQL-Datenbank (Tabelle: user) zu finden ist.
Das Problem:
Hat sich der User eingeloggt und will nun zu dem Formular, prüft das Formular zwar ob der user sich eingeloggt hat, zeigt allerdings nicht das Formular. Sondern verweist darauf, dass sich der User nicht eingeloggt hat, trotz das die Anmeldedaten korrekt waren.
Hier die Codes:
function.php
PHP:
<?
function connect()
{
$host =' ';
$user =' ';
$pwd =' ';
$db =' ';
$con= mysql_connect($host, $user, $pwd) or die(mysql_error());
mysql_select_db($db, $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);
}
...
connect();
?>
login.php
PHP:
<?
session_start();
include 'function.php';
if (isset($_POST['login']))
{
$userid=check_user($_POST['username'], $_POST['userpass']);
if ($userid!=false)
{
login($userid);
echo 'Status: verbunden';
echo '<form action="formular.php" method="post"> <input name="weiter" type="submit" value="weiter" Style="width:60px"> </form>';
}
else
echo 'Status: nicht verbunden - Ihre Anmeldedaten waren nicht korrekt!';
}
if (!logged_in())
{
... // Eingabe wiederholen
}
?>
formular.php
PHP:
<?
session_start();
include 'function.php';
echo 'Status: ';
if (!logged_in())
{
echo 'nicht eingeloggt';
echo '<form action="login.php" method="post"><input name="login" type="submit value="Login"></form>';
}
else
{
... // hier folgt dann das Formular
}
?>
liegt hier ein Denkfehler/Logikfehler vor?
Danke schonmal im Voraus.
MfG Apon