Login-Script

Dieses Thema Login-Script im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von noah1, 5. Feb. 2006.

Thema: Login-Script Hallo, ich habe ein Login-Script in PHP geschrieben, was auch gut funktioniert(e). Allerdings nur solange...

  1. Hallo, ich habe ein Login-Script in PHP geschrieben, was auch gut funktioniert(e).
    Allerdings nur solange register_globals auf on steht, wenn es off ist klappt es nicht mehr.
    Der Code für das Script sieht so aus;
    Code:
    <form method=post>
    	<input class=input type=text maxlength=12px name=username><br>
    	<input class=input type=password maxlength=12px name=password><br>
    	<center><input class=submit type=submit value=login></center>
    </form>
    ...
    <?php
    	if (isset($_POST['username'])){
    	$username = $_REQUEST['username'];
    	$password = $_REQUEST['password'];
    	require(save/dbconnect.inc.php);
    		$query = @mysql_query(SELECT vorname, nachname, username, password, usergroup FROM autoren WHERE username =->$username') or die('Select ist fehlgeschlagen!');
    		$result = @mysql_fetch_array($query); 
    			if($password == $result['password']){	
    				 $_SESSION[sess_usergroup] = $result['usergroup'];
    				 $_SESSION['sess_username'] = $result['username'];
    				 $_SESSION['sess_berechtigung'] =->eingeloggt';
    				 $_SESSION['sess_vorname'] = $result['vorname'];
    				 $_SESSION['sess_nachname'] = $result['nachname'];
    				$datenrichtig = true;
     				$user_eingeloggt = true; 			
    				$respawn == basename($_SERVER['REQUEST_URI']);
    				unset($username, $password);				
    			?>
     
      <!--<meta http-equiv=Refresh content=0; url=index.php?<?#=session_name()?>=<?#=session_id()?>>-->
      <meta http-equiv=Refresh content=0; url=<?php echo$respawn ?>>
      
    <?php
    		} else {
    			 	$datenrichtig = false;
    				$user_eingeloggt = false; 	
    				unset($username, $password);
    				}
    			}
    		session_register (user_eingeloggt); 		
    	?>
    
    Damit sollen die Daten des Users, der sich einloggt aus der DB in eine Session geschrieben werden um jederzeit daraus ausgelesen werden zu können.

    Wie muß ich es schreiben daß es auch bei register_globals=off klappt ?
     
  2. weil wenn du auf off stellst das untere script die variablen nimmer bekommt .. versuchs mal so :

    Code:
    <form method=post>
    <input class=input type=text maxlength=12px name=username><br>
    <input class=input type=password maxlength=12px name=password><br>
    <center><input class=submit type=submit value=login></center>
    </form>
    ...
    <?php
    if (isset($_POST['username'])){
    $username = $_REQUEST['username'];
    $password = $_REQUEST['password'];
    require(save/dbconnect.inc.php);
    $query = @mysql_query(SELECT vorname, nachname, username, password, usergroup FROM autoren WHERE username =->$username') or die('Select ist fehlgeschlagen!');
    $result = @mysql_fetch_array($query);
    if($password == $result['password']){
    $_SESSION[sess_usergroup] = $result['usergroup'];
    $_SESSION['sess_username'] = $result['username'];
    $_SESSION['sess_berechtigung'] =->eingeloggt';
    $_SESSION['sess_vorname'] = $result['vorname'];
    $_SESSION['sess_nachname'] = $result['nachname'];
    $datenrichtig = true;
      $user_eingeloggt = true;
    $respawn == basename($_SERVER['REQUEST_URI']);
    unset($username, $password);
    
    
    echo'  <!--<meta http-equiv=Refresh content=0; url=index.php?<?#=session_name()?>=<?#=session_id()?>>-->
      <meta http-equiv=Refresh content=0; url=$respawn>';
      
    } else {
      $datenrichtig = false;
    $user_eingeloggt = false;
    unset($username, $password);
    }
    }
    session_register (user_eingeloggt);
    ?> 
    habs net getestet .. mach ne sicherung .. hoff es funzt so

    x47
     
  3. Aber ich...

    Nö...

    Sebstverständlich.
     
  4. Code:
    <?php
    session_start();
    require(save/dbconnect.inc.php);
    
    if($_SESSION[sess_berechtigung]) {
    	echo User ist eingeloggt!;
    	echo <hr>;
    	print_r($_SESSION);
    }
    else {
    	if($_POST[login]) {
    		$username = $_POST['username'];
    		$password = $_POST['password'];
    		$query = @mysql_query(SELECT vorname, nachname, username, password, usergroup FROM autoren WHERE username =->$username') or die('Select ist fehlgeschlagen!');
    		$result = @mysql_fetch_array($query);
    		if($password == $result['password']){
    			$_SESSION[sess_usergroup] = $result['usergroup'];
    			$_SESSION['sess_username'] = $result['username'];
    			$_SESSION['sess_berechtigung'] = 1;
    			$_SESSION['sess_vorname'] = $result['vorname'];
    			$_SESSION['sess_nachname'] = $result['nachname'];
    			header('Location:index.php'.SID);
    		}
    		else {
    			echo $error = Fehler beim Login!;
    		}
    	}
    	if(!$_POST[login] || $error) {
    	?>
    	<form method=post>
    	<input class=input type=text maxlength=12px name=username><br>
    	<input class=input type=password maxlength=12px name=password><br>
    	<center><input class=submit type=submit name=login value=login></center>
    	</form>
    	<?php
    	}
    }
    ?>
    
     
  5. Werd ich morgen mal testen.
     
  6. So wie von Conny geschrieben konnte ich mich dann zwar einloggen, aber mit jedem Link im Menü, den ich geklickt habe wurde ich wieder rausgeschmissen... :p
    Aber ich habe es jetzt etwas umgebaut und jetzt funzt es. :D
    index.php
    Code:
    <?php
    if($_SESSION[sess_berechtigung]) 
    	{
    		include(admin/adminmenue.inc.php);
    		echo $menu;
    	}
    else 
    	{
    		if($_POST[login]) 
    	    	{
    				include(admin/chkuser.inc.php);
    			}
    		if(!$_POST[login] || $error) 
    			{
    				include(admin/loginform.inc.htm);
    }
    }
    ?>
    
    chkuser.inc.php:
    Code:
    <?php
    	$username = $_POST['username'];
    	$password = $_POST['password'];
    		require(save/dbconnect.inc.php);
    		$query = @mysql_query(SELECT vorname, nachname, username, password, usergroup FROM autoren WHERE username =->$username') or die('Select ist fehlgeschlagen!');
    			$result = @mysql_fetch_array($query);
    			if(md5($password) == $result['password'])
    				{
    					$_SESSION[sess_usergroup] = $result['usergroup'];
    					$_SESSION['sess_username'] = $result['username'];
    					$_SESSION['sess_berechtigung'] = 1;
    					$_SESSION['sess_vorname'] = $result['vorname'];
    					$_SESSION['sess_nachname'] = $result['nachname'];
    					$respawn == basename($_SERVER['REQUEST_URI']);
    						unset($username, $password);	
    	 					echo<meta http-equiv='Refresh' content='0; url=$respawn'>;
    				}
    			else 
    				{
    					unset($username, $password);	
    					unset($_POST['login']);
    					#echo<meta http-equiv='Refresh' content='0; url=$respawn'>;
    				}
    		?>
    loginform.inc.htm:
    Code:
    <div class=admlogin>
    	<table border=0>
     		<tr>
      		 <td class=admlogintitle>Admin-Login</td>
     		</tr>
    		<tr>
    			 <td class=admloginfelder>
    				<form method=post>
    					<input class=input type=text maxlength=12px name=username><br>
    					<input class=input type=password maxlength=12px name=password><br>
    					<center>
    					<input class=submit type=submit name=login value=login>
    					</center>
    				</form>
    			 </td>
    		</tr>
    	</table>
    </div>
    
    Soviel ich mitbekommen habe ist der Unterschied zwischen register_globals=on und register_globals=off der, daß Variablen nicht mehr so ohne weiteres über die Adreßleiste eingegeben werden können bzw sie nicht mehr von Script erkannt werden sofern man sie nicht extra mit $_GET[''] etc. holt.
    Was gibt es da denn noch für Unterschiede die man beachten muß ?
     
  7. Keine :)
    Ist halt nur, dass Variable (aus Formularen, Parametern, Cookies, ..) so nicht zur verfügung stehen sondern per $_POST, $_GET und $_COOKIE

    siehe http://de3.php.net/de/register_globals
     
Die Seite wird geladen...

Login-Script - Ähnliche Themen

Forum Datum
Netzlaufwerk wird per Login-Script nicht verbunden Windows 7 Forum 22. Feb. 2011
Windows Oberfläche während Login-Script verbergen Windows XP Forum 6. Nov. 2005
Win 2000 Netzwerk mit Login-Scripts Netzwerk 12. Dez. 2003