Login-Script

  • #1
N

noah1

Bekanntes Mitglied
Themenersteller
Dabei seit
16.08.2002
Beiträge
1.415
Reaktionspunkte
0
Ort
Hamburg
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
 
  • #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
noah1 schrieb:
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ß ?

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
 
Thema:

Login-Script

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.961
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben