Probleme wie ich das Lösen kann?

wingman

Erfahrenes Mitglied
Hallo

Ich habe ein Login Script entworfen, und am Anfang funktioniert es noch nicht.

Das ist das Script zum Einlogen und überprüfen der Daten.

PHP:
<?php
include ('inc/function.inc.php');
session_start();


if (isset ($_REQUEST["fehler"]))
switch ($_REQUEST['fehler']) {
case '2';
echo "Die Zugangsdaten waren ungültig.";
break;
case '3';
echo "Sie sind nicht eingelogt!";
break;
}


if (logged_in())
{
$result ="OK";

} else {

echo <<<HTMLCODE
<html>
<form method="post" action="$PHP_SELF">
  <label>Benutzername:</label><input name="username" type="text">
  <br>
  <label>Passwort: </label><input name="userpass" type="password" id="userpass">
  <br>
  <input name="login" type="submit" id="login" value="Einloggen"> 
</form>
</html>
HTMLCODE;

if (isset($_POST['login']))
{
    $userid=check_user($_POST['username'], $_POST['userpass']);
    if ($userid!=false)
        login($userid);
	$result ="OK";
}
}

if("OK" == $result) {
include ('intern.php');
}

?>


Ich sage mal in kurzem was das Script genau macht.


if (logged_in()) überprüft ob er schon eingelogt ist, wenn ja, include ich intern.php, wenn nicht, kommt es zum zweiten schritt nämlich zum Einlog Formular wenn ich das ausgefüllt habe und abgeschicke dan soll es $result=OK ausgeben und somit auch intern.php includen.

Jetzt zu meinen Problem:

Wenn es über das Formular geht, dann kann ich einlogen aber das Formular wird oben eingeblendet, wie kann ich das anderes lösen?

Oder kann man das ganz vereinfachen?

Hier noch check_user funktion

PHP:
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("Datenbank Fehler");
		if ( mysql_num_rows($result)==1)
  	{
        	$user=mysql_fetch_assoc($result);
        	return $user['UserId'];

}
        else
        return false;

Und hier noch logged_in() funktion

PHP:
function logged_in()
{
$sql="SELECT UserId
      FROM users
      WHERE UserSession='".session_id()."'
      LIMIT 1";
      $result= mysql_query($sql);
      return ( mysql_num_rows($result)==1);
}

Vielen besten Dank

Gruss Dave
 
Zurück