kostenloser Webspace werbefrei: lima-city


Login System Problem

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    x****a

    Hallo,
    Ich bekomme es irgend wie nich hin ein sauberes Login zu erstellen, wenn ich es ?ffne und einen fahlschen user eingaben hab ich eine Ausgabe mache ich jedoch eine Richtige und ein fahlsches Passwort als Eingabe bin ich Eingeloggt, als zweites hab ich nen Problem bei !$_SESSION['login']=='true' so weit passiert auch was nur wenn es true ist geht er nich weiter und sagt mir ggf eingeloggt.

    so z.b.

    if(!$_SESSION['login']=='true'){
    echo"<form><input></form>";
    }else{
    echo"eingeloggt";
    }

    p.s. Ich hoffe ihr k?nnt mir helfen, pls.
    MFG XXALFA

    include("./my_style/mysql.inc.php");
    // Functionen in mysql.inc
    // Bsp: error("Farbe","Nachricht" ,"Urlname","Url");
    // Bsp: $db->sql_qry("SQL Code");
    // Bsp: $db->sql_num("Tablenname","*","Where");
    
    // LOGIN /////////////
    function login(){
    // beginn
    
    global $db;
    
    	if(!$_SESSION['login']=='true'){
    
    	echo"
    	<form action='?m=1' method='post'>
    	<table cellpadding='0' cellspacing='0'>
    	 <tr>
    	  <td colspan='2'>Login</td>
    	 </tr>
    	 <tr>
    	  <td>Name:</td>
    	  <td><input type='text' name='username'></td>
    	 </tr>
    	 <tr>
    	  <td>Pass:</td>
    	  <td><input type='password' name='userpass'></td>
    	 </tr>
    	 <tr>
    	  <td>?</td>
    	  <td><input type='submit' name='login_check' value='Login'></td>
    	 </tr>
    	</table>
    	</form>";
    
    	}
    
    	if($_SESSION['login']=='true'){
    
    	echo"eingeloggt";
    
    	}
    
    	if($_COOKIE['login']){
    
    	$cookie= split("##", $_COOKIE['login']);
    
    	$_SESSION['name'] = $cookie[1];
    	$_SESSION['pass'] = $cookie[2];
    
    	$_SESSION['login'] = $cookie[3];
    
    	}
    
    	if($_POST['login_check']){
    
    		if($_POST['username'] == ''){
    
    			echo"Error Name Leer";
    
    		}elseif($_POST['userpass'] == ''){
    
    			echo"Error Pass Leer";
    
    		}else{
    
    			$result = $db->sql_qry("SELECT * FROM user WHERE name LIKE '".$_POST['username']."'");
    
    			$userdaten = mysql_fetch_array($result);
    
    
    			if( !$userdaten['pass'] != $_POST['userpass'] ){ // md5()
    
    				echo"Error Pass nicht gleich";
    
    			}else{
    
    				$_SESSION['name'] = $userdaten['name'];
    				$_SESSION['pass'] = $userdaten['pass'];
    
    				$_SESSION['login'] = 'true';
    
    				$incookie="##".$userdaten['name']."##".$userdaten['pass']."##true";
    
    				setcookie("login", $incookie, time()+60*60*24*365);
    
    				echo"erfolgreich eingeloggt <a href='?m=2'>weiter</a>";
    
    			}
    		}
    	}
    
    // end
    }
    
    login();


    Beitrag geändert: 13.8.2007 22:06:54 von xxalfa
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hi,

    Ich hatte keine Lust die Fehler zu suchen, also habe ich es ganz abge?ndert.
    Probier es mal aus, es sollte so funktionieren.
    Wenn nicht, dann kannst du mir ja bescheid sagen und ich schau was falsch ist.
    Ich glaube jedch, dass du einfach session_start() vergessen hast.

    Der Code:
    include("./my_style/mysql.inc.php");
    
    session_start();
    
    function check_login($username,$password) {
      global $db;
      $result = $db->sql_qry("SELECT * FROM user WHERE name LIKE '$username'");
      $userdaten = mysql_fetch_array($result);
      if ($userdaten['pass'] == md5($_POST['password'])) return true;
      return false;
    }
    
    if (isset($_COOKIE['login']) && isset($_SESSION['username']) && isset($_SESSION['password'])) {
      $data = unserialize($_COOKIE['login']);
      if (check_login($data['username'],$data['password']) && check_login($_SESSION['username'],$_SESSION['password'])) {
       header("Location: "  . basename($_SERVER['PHP_SELF']) . "?m=2");
       exit();
      }
    }
    
    if (isset($_POST['action']) && $_POST['action'] == "login") {
      if (in_array("",array($_POST['username'],$_POST['password'])) {
       echo "<b>Error:</b><br />\nEs wurden nicht alle Felder aufgef&uuml;llt.";
      }
      else {
        if (check_login($_SESSION['username'],$_SESSION['password'])) {
         $_SESSION['username'] = $_POST['username'];
         $_SESSION['password'] = $_POST['password'];
         $cookie_data = array(
           'username' => $_POST['username'],
           'password' => $_POST['password']
         );
    
         setcookie("login",serialize($cookie_data),time()+60*60*24*365);
    
         echo "erfolgreich eingeloggt <a href='" . $_SERVER['PHP_SELF'] . "?m=2'>weiter</a>";
        }
        else {
         echo "<b>Error:</b><br />\nPassword ung&uuml;lltig.";
        }
      }
    }
    else {
    ?>
    <form action="<?php echo $_SERVER['PHP_SELF'] ?>?m=1" method="post">
    <input type="hidden" name="action" value="login" />
    <table cellpadding="0" cellspacing="0">
    <tr><td colspan="2">Login</td></tr>
    <tr>
      <td>Name:</td>
      <td><input type="text" name="username"></td>
    </tr><tr>
      <td>Pass:</td>
      <td><input type="password" name="password"></td>
    </tr><tr>
      <td> </td>
      <td><input type="submit" value="Login"></td>
    </tr>
    </table>
    </form>
    <?php
    }


    mfg,
    hr
  4. benutzernaemelchen

    Kostenloser Webspace von benutzernaemelchen

    benutzernaemelchen hat kostenlosen Webspace.

    darf ich anmerken, dass man anstatt
    <?php echo $_SERVER['PHP_SELF'] ?>

    auch, k?rzer
    <?=$_SERVER['PHP_SELF'] ?>

    schreiben kann?
  5. Autor dieses Themas

    x****a

    kein problem, aber cool ich werds mir mal anschau und danke mit dem echo hab ich noch gar nich gewusst^^
    MFG XXALFA
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!