WinFuture-Forum.de: Login Mit Session Und Datenbank - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Login Mit Session Und Datenbank Wo klemmt es...?


#1 Mitglied ist offline   Taxidriver05 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.658
  • Beigetreten: 14. Mai 09
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Schkopau - OT Ermlitz
  • Interessen:- Ausgehen,
    - Sport (am liebsten an der frischen Luft),
    - Musik (machen und hören),
    - Grafik- und Webdesign,
    - gut Essen,
    - an PCs basteln (für den schnellen Euro ;-)),
    uvm.

geschrieben 19. Juli 2010 - 01:01

Hallo liebe Programmierer,

Ich habe ein kleines Problem...

Ich möchte ein entsprechendes Login-System in meine bestehende Webseite implementieren.
Klick!

Dieses soll mit Sessions und einer Datenbank arbeiten.

Vorbemerkung:

Die Session wird bereits beim Aufruf der Startseite angelegt.
Die Verbindung zur Datenbank wird bereits mit aufruf der Startseite (start.php) hergestellt und darüber über ein externes Skript auf der Startseite includiert.

Entsprechende Skripte existieren bereits.
Nur weiß ich gerade nicht wirklich, wie ich die zusammen bekomme...

Folgende Skripte sind vorhanden:

login.php
			<?php 
			if(isset($_SESSION['user_name'])) 
			{
				echo "Du bist eingelogged als ".$_SESSION['user_name'];
				echo " | <a href=\"start.php?section=logout&logout=".session_id()."\" class=\"site_nav\">Logout</a>";
			}
			else
			{
				echo "<a href=\"start.php?section=login\" class=\"site_nav\">Login</a> | <a href=\"start.php?section=register\" class=\"site_nav\">Anmelden</a>";
			}
			
			?>


hier läuft es per Session...

login.php
<?php
error_reporting(0);
if (isset($_POST['validate'])) {
 $form_valid = 1;
if (empty($_POST['user_name'])) {
 $form_valid = 0;
 $error_message[username] = "Bitte geben Sie Ihren Benutzernamen ein!";
 }
if (empty($_POST['user_pass'])) {
 $form_valid = 0;
 $error_message[user_pw] = "Bitte geben Sie Ihre Passwort ein!";
 }
 }
  if($form_valid) {
  checkUser($_POST['user_name'], $_POST['user_pass']);
		}
  else {
?>
<form action="start.php?section=login&sid=<?php echo session_id(); ?>" method="post">
  <table>
	<tr>
<td>Benutzername:</td>
<td><input name="user_name" type="text" value="<?php if(isset($_POST['user_name'])) { echo htmlspecialchars($_POST['user_name']); }; ?>">
		<?php echo $error_message[username]; ?></td>
</tr>
<tr>
<td>Passwort:</td>
<td><input name="user_pass" type="password" value="<?php if(isset($_POST['user_pass'])) { echo htmlspecialchars($_POST['user_pass']); }; ?>">
		<?php echo $error_message[pw]; echo $error_message[user_pw];?></td>
</tr>
<tr>
<td><input type="checkbox" name="next_visit"></td>	  
<td>Dauerhaft anmelden?</td>
</tr>
<tr>
<td><input type="hidden" name="validate" value="1"><input type="hidden" name="user_check" value="1"></td>
<td align="left"><input name="login" type="submit" value="einloggen"></td>
</tr>
</table>
</form>
<?php 
}
?>


Hier geht es per Datenbank...

Darüber hinaus existieren folgende weitere Skripte:

activate.php
<?php
echo $_REQUEST['id'];
?>


Dient zur Aktivierung...

logout.php
<?php
logoutUser($_GET['logout']);
?>


Hier wird aus einer angelegten functions.php eine Funktion abgerufen.
Hinsichtlich des Login-Systems sind hier folgende Informationen in der functions.php hinterlegt:


functions.php
<?php

...

//-----------LOGIN und REGISTRATION------------
function checkUser($user_name, $user_pass)
{
$sql = "SELECT street_user_id, street_user_name, street_user_last_sessionid, street_user_activate FROM street_user WHERE street_user_name = '".$user_name."' AND street_user_pw = '".md5($user_pass)."' LIMIT 1";
$result = mysql_query($sql);
$num_rows = mysql_num_rows($result);
	if($num_rows > 0) 
	{
		$user = mysql_fetch_assoc($result);
		$userID = $user['street_user_id'];
		$userName = $user['street_user_name'];
		$activate = $user['street_user_activate'];
			if ($activate == '0') 
			{	$id = md5($user_name).md5($user_pass);
				echo "Hallo ".$userName.",br><br>
				Du hast deinen Benutzeraccount noch nicht bestätigt.<br>
				Bitte schau in dein Emailpostfach und klicke dort auf den dir zugesandten Link<br>
				um deinen Benutzeraccount zu bestätigen.<br><br>
				Wenn du keine Bestätigungsmail bekommen haben solltest, dann klicke bitte <a href=\"start.php?section=activate&id=".$id."\" class=\"link\">hier</a><br>
				um dir eine erneute Bestätigungsmail zu senden.";
			} 
			else 
			{	
				if($activate == '1')
				{					
					loginUser($userID);
				} 
			}
	} else
	{
		echo "Du bist noch nicht bei uns registriert.";
	}
}
function loginUser($userID)
{
$sql = "SELECT street_user_id, street_user_name, street_user_pw, street_user_last_sessionid FROM street_user WHERE street_user_id = '".$userID."' LIMIT 1";
$result = mysql_query($sql);
$user = mysql_fetch_assoc($result);
$user_session = $user['street_user_last_sessionid'];
$userid = $user['street_user_id'];
$username = $user['street_user_name'];
$userpass = $user['street_user_pw'];
	if ($user_session == session_id()) 
	{
		echo "Du bist bereits eingeloggt.";
	}
	else
	{	set_cookie($userid, $username, $userpass);
		mysql_query("UPDATE street_user SET street_user_last_sessionid = '".session_id()."', street_user_last_logintime = '".time()."', street_user_logged_in = '1' WHERE street_user_id = '".$userID."' LIMIT 1");
		echo "Du hast dich erfolgreich eingeloggt.";
	}
}
function logoutUser($sessid)
{
mysql_query("UPDATE street_user SET street_user_last_sessionid = NULL, street_user_logged_in = '0' WHERE street_user_last_sessionid = '".$sessid."' LIMIT 1");
echo "Du hast dich erfolgreich ausgelogged";
}
function check_userregistration_name($username)
{
$sql = "SELECT * FROM street_user WHERE street_user_name ='".$username."' LIMIT 1";
$result = mysql_query($sql);
$row = mysql_num_rows($result);
if($row == "1") { 
echo "<font class=\"error\">Der gewählte Benutzername ist schon vergeben!</font>"; 
}
}
function check_userregistration_email($useremail)
{
$sql = "SELECT * FROM street_user WHERE street_user_email ='".$useremail."' LIMIT 1";
$result = mysql_query($sql);
$row = mysql_num_rows($result);
if($row == "1") { 
echo "<font class=\"error\">Die eingegebene Email-Adresse ist schon vorhanden!</font>"; 
}
}

...
?>


Weiterhin existiert:

register.php
CODE
<?php
error_reporting(0);
if (isset($_POST['registrierung'])) {
$form_valid = 1;

$user_check_email = "SELECT * FROM street_user WHERE street_user_email ='".$_POST['user_email']."'";
$result_user_check_email = mysql_query($user_check_email);
$row_user_check_name = mysql_num_rows($result_user_check_name);
$row_user_check_email = mysql_fetch_assoc($result_user_check_email);
if (empty($_POST['user_name'])) {
$form_valid = 0;
$error[user_name] = "<br><font class=\"error\">Benutzername fehlt!</font>";
}
if (empty($_POST['user_email'])) {
$form_valid = 0;
$error[user_email] = "<font class=\"error\">Email-Adresse fehlt!</font>";
}
if (strlen($_POST['user_pass']) < 3) {
$form_valid = 0;
$error[user_pass] = "<font class=\"error\">Passwort fehlt!</font>";
}
if ($_POST['user_pass'] <> $_POST['user_pass2']) {
$form_valid = 0;
$error[user_pass2] = "<font class=\"error\">Die Passwörter stimmen nicht über ein!</font>";
}
if (empty($_POST['user_vorname'])) {
$form_valid = 0;
$error[user_vorname] = "<font class=\"error\">Vorname fehlt!</font>";
}
if (empty($_POST['user_nachname'])) {
$form_valid = 0;
$error[user_nachname] = "<font class=\"error\">Nachname fehlt!</font>";
}
if (empty($_POST['user_strasse'])) {
$form_valid = 0;
$error[user_strasse] = "<font class=\"error\">Straße fehlt!</font>";
}
if (empty($_POST['user_plz'])) {
$form_valid = 0;
$error[user_plz] = "<font class=\"error\">Postleitzahl fehlt!</font>";
}
if (empty($_POST['user_ort'])) {
$form_valid = 0;
$error[user_ort] = "<font class=\"error\">Wohnort fehlt!</font>";
}
}

if($form_valid) {
$insert = "INSERT INTO street_user (street_user_name, street_user_ip, street_user_pw, street_user_email, street_user_vorname, street_user_nachname, street_user_strasse, street_user_plz, street_user_ort, street_user_tel, street_user_hp, street_user_registerdate, street_user_registertime) VALUES ('".$_POST['user_name']."', '$session_ip', '".md5($_POST['user_pass'])."', '".$_POST['user_email']."', '".$_POST['user_vorname']."', '".$_POST['user_nachname']."', '".$_POST['user_strasse']."', '".$_POST['user_plz']."', '".$_POST['user_ort']."', '".$_POST['user_tel']."', '".$_POST['user_hp']."', NOW(), '$time')";
$insert_into = mysql_query($insert);

echo "Danke für Ihre Registrierung bei www.streetcrosses.de";
}
else {
?>
<form method="post" action="start.php?section=register&sid=<?php echo session_id(); ?>" name="register" id="register">

<table width="100%">
<!--DWLayoutTable-->
<tr valign="top">
<td height="50" colspan="4" align="left" class="register_head"><hr size="1">
Bitte geben Sie hier Ihre Daten für die Benutzeranmeldung ein. </td>
</tr>
<tr>
<td width="22%">Benutzername:</td>
<td width="10">&nbsp;</td>
<td><input size="30" type="text" name="user_name" value="<?php if(isset($_POST['user_name'])) { echo htmlspecialchars($_POST['user_name']); }; ?>"></td>
<td width="100%"><?php echo $error['user_name']; check_userregistration_name($_POST['user_name']);?></td>
</tr>
<tr>
<tr>
<td>Email-Adresse:</td>
<td width="10">&nbsp;</td>
<td><input size="30" type="text" name="user_email" value="<?php if(isset($_POST['user_email'])) { echo htmlspecialchars($_POST['user_email']); }; ?>"></td>
<td><?php echo $error['user_email']; check_userregistration_email($_POST['user_email']);?></td>
</tr>
<td>Passwort:</td>
<td width="10">&nbsp;</td>
<td><input type="password" size="30" name="user_pass" value="<?php if(isset($_POST['user_pass'])) { echo htmlspecialchars($_POST['user_pass']); }; ?>"></td>
<td><?php echo $error['user_pass']; ?></td>
</tr>
<tr>
<td>Passwort best&auml;tigen:</td>
<td width="10">&nbsp;</td>
<td><input type="password" size="30" name="user_pass2" value="<?php if(isset($_POST['user_pass2'])) { echo htmlspecialchars($_POST['user_pass2']); }; ?>"></td>
<td><?php echo $error['user_pass2']; ?></td>
</tr>
<tr>
<td>Geschlecht:</td>
<td width="10">&nbsp;</td>
<td> <select name="user_sex" size="1" style="width: 120px;">
<option value="<?php if(isset($_POST['user_sex_none'])) { echo htmlspecialchars($_POST['user_sex_none']); }; ?>">
<option value="<?php if(isset($_POST['user_sex'])) { echo htmlspecialchars($_POST['user_sex']); }; ?>">männlich
<option value="<?php if(isset($_POST['user_sex'])) { echo htmlspecialchars($_POST['user_sex']); }; ?>">weiblich
</select> </td>
<td><font class="error">&nbsp; </font></td>
</tr>
<tr>
<td>Geburtsdatum:</td>
<td width="10">&nbsp;</td>
<td> <select name="user_bd_day" size="1" style="width: 40px;">
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">01
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">02
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">03
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">04
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">05
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">06
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">07
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">08
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">09
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">10
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">11
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">12
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">13
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">14
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">15
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">16
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">17
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">18
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">19
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">20
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">21
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">22
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">23
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">24
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">25
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">26
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">27
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">28
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">29
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">30
<option value="<?php if(isset($_POST['user_bd_day'])) { echo htmlspecialchars($_POST['user_bd_day']); }; ?>">31
</select> <select name="user_bd_month" size="1" style="width: 120px;">
<option value="<?php if(isset($_POST['user_bd_month'])) { echo htmlspecialchars($_POST['user_bd_month']); }; ?>">
<option value="<?php if(isset($_POST['user_bd_month'])) { echo htmlspecialchars($_POST['user_bd_month']); }; ?>">Januar
<option value="<?php if(isset($_POST['user_bd_month'])) { echo htmlspecialchars($_POST['user_bd_month']); }; ?>">Februar
<option value="<?php if(isset($_POST['user_bd_month'])) { echo htmlspecialchars($_POST['user_bd_month']); }; ?>">M&auml;rz
<option value="<?php if(isset($_POST['user_bd_month'])) { echo htmlspecialchars($_POST['user_bd_month']); }; ?>">April
<option value="<?php if(isset($_POST['user_bd_month'])) { echo htmlspecialchars($_POST['user_bd_month']); }; ?>">Mai
<option value="<?php if(isset($_POST['user_bd_month'])) { echo htmlspecialchars($_POST['user_bd_month']); }; ?>">Juni
<option value="<?php if(isset($_POST['user_bd_month'])) { echo htmlspecialchars($_POST['user_bd_month']); }; ?>">Juli
<option value="<?php if(isset($_POST['user_bd_month'])) { echo htmlspecialchars($_POST['user_bd_month']); }; ?>">August
<option value="<?php if(isset($_POST['user_bd_month'])) { echo htmlspecialchars($_POST['user_bd_month']); }; ?>">September
<option value="<?php if(isset($_POST['user_bd_month'])) { echo htmlspecialchars($_POST['user_bd_month']); }; ?>">Oktober
<option value="<?php if(isset($_POST['user_bd_month'])) { echo htmlspecialchars($_POST['user_bd_month']); }; ?>">November
<option value="<?php if(isset($_POST['user_bd_month'])) { echo htmlspecialchars($_POST['user_bd_month']); }; ?>">Dezember
</select> <select name="user_bd_year" size="1" style="width: 80px;">
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1950
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1951
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1952
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1953
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1954
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1955
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1956
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1957
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1958
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1959
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1960
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1961
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1962
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1963
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1964
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1965
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1966
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1967
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1968
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1969
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1970
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1971
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1972
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1973
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1974
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1975
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1976
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1977
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1978
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1979
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1980
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1981
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1982
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1983
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1984
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1985
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1986
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1987
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1988
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1989
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1990
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1991
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1992
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1993
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1994
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1995
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1996
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1997
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1998
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">1999
<option value="<?php if(isset($_POST['user_bd_year'])) { echo htmlspecialchars($_POST['user_bd_year']); }; ?>">2000
</select> </td>
<td><font class="error">&nbsp; </font></td>
</tr>
<tr valign="top">
<td height="50" colspan="4" align="left" class="register_head"><hr size="1">
Bitte geben Sie hier Ihre Adresse ein.</td>
</tr>
<tr>
<td>Vorname:</td>
<td width="10">&nbsp;</td>
<td><input size="30" type="text" name="user_vorname" value="<?php if(isset($_POST['user_vorname'])) { echo htmlspecialchars($_POST['user_vorname']); }; ?>"></td>
<td><?php echo $error['user_vorname']; ?></td>
</tr>
<tr>
<td>Nachname:</td>
<td width="10">&nbsp;</td>
<td><input size="30" type="text" name="user_nachname" value="<?php if(isset($_POST['user_nachname'])) { echo htmlspecialchars($_POST['user_nachname']); }; ?>"></td>
<td><?php echo $error['user_nachname']; ?></td>
</tr>
<tr>
<td>Land:</td>
<td width="10">&nbsp;</td>
<td><select name="user_country" size="1" style="width: 180px;">
<option value="<?php if(isset($_POST['user_country'])) { echo htmlspecialchars($_POST['user_country']); }; ?>">
<option value="<?php if(isset($_POST['user_country'])) { echo htmlspecialchars($_POST['user_country']); }; ?>">Deutschland
<option value="<?php if(isset($_POST['user_country'])) { echo htmlspecialchars($_POST['user_country']); }; ?>">Lichtenstein
<option value="<?php if(isset($_POST['user_country'])) { echo htmlspecialchars($_POST['user_country']); }; ?>">Österreich
<option value="<?php if(isset($_POST['user_country'])) { echo htmlspecialchars($_POST['user_country']); }; ?>">Schweiz
<option value="<?php if(isset($_POST['user_country'])) { echo htmlspecialchars($_POST['user_country']); }; ?>">anderes
</select> </td>
<td><font class="error">&nbsp; </font></td>
</tr>
<tr>
<td>Straße:</td>
<td width="10">&nbsp;</td>
<td><input size="30" type="text" name="user_strasse" value="<?php if(isset($_POST['user_strasse'])) { echo htmlspecialchars($_POST['user_strasse']); }; ?>"></td>
<td><?php echo $error['user_strasse']; ?></td>
</tr>
<tr>
<td>Postleitzahl:</td>
<td width="10">&nbsp;</td>
<td><input size="10" type="text" name="user_plz" value="<?php if(isset($_POST['user_plz'])) { echo htmlspecialchars($_POST['user_plz']); }; ?>"></td>
<td><?php echo $error['user_plz']; ?></td>
</tr>
<tr>
<td>Ort:</td>
<td width="10">&nbsp;</td>
<td><input size="30" type="text" name="user_ort" value="<?php if(isset($_POST['user_ort'])) { echo htmlspecialchars($_POST['user_ort']); }; ?>"></td>
<td><?php echo $error['user_ort']; ?></td>
</tr>
<tr>
<td>Telefonnummer:</td>
<td width="10">(+49)</td>
<td><input size="30" type="text" name="user_tel" value="<?php if(isset($_POST['user_tel'])) { echo htmlspecialchars($_POST['user_tel']); }; ?>"></td>
<td><!--DWLayoutEmptyCell-->&nbsp;</td>
</tr>
<tr valign="top">
<td height="50" colspan="4" align="left" class="register_head"><hr size="1">
Wenn Sie keine Homepage besitzen, lassen Sie dieses Feld bitte frei. </td>
</tr>
<tr>
<td>Homepage:</td>
<td width="10">http://</td>
<td><input size="48%" type="text" name="user_hp"></td>
</tr>
<tr valign="top">
<td height="50" colspan="4" align="left" class="register_head"><hr size="1">
Hier k&ouml;nnen Sie ihre pers&ouml;nliche Signatur eintragen.</td>
</tr>
<td valign="top">Signatur:</td>
<td width="10">&nbsp;</td>
<td><textarea name="user_signum" cols="50%" rows="5"><?php if(isset($_POST['user_signum'])) { echo htmlspecialchars($_POST['user_signum']); }; ?></textarea></td>
<td></td>
</tr>
<tr>
<td colspan="4" valign="bottom" height="50"> <input type="hidden" name="registrierung" value="1">
<input type="submit" name="register" value="Registrieren"> &nbsp; <input type="reset" value="Eingaben l&ouml;schen"></td>
</tr>
</table>
</form>
<?php
}
?>


(Registrierungsformular)

Und schließlich noch:

login_form.inc.php
<form action="start.php?section=login&sid=<?php echo session_id(); ?>" method="post">
  Benutzername: 
  <input name="user_name" type="text" value="<?php if(isset($_POST['user_name'])) { echo htmlspecialchars($_POST['user_name']); }; ?>">
Passwort:
<input name="user_pass" type="password" value="<?php if(isset($_POST['user_pass'])) { echo htmlspecialchars($_POST['user_pass']); }; ?>">
<input name="login" type="submit" value="einloggen">
</form>


Für eventuell unsauberen Code möchte ich mich entschuldigen.

Leider habe ich die Seite übernommen und diese Schnipsel sind ein Relikt, die mir mein Vorgänger hinterlassen hat.
In der Datenbank existieren bereits entsprechende Tabellen, sowie einzelne Datensätze, die abgerufen werden können...

Daher meine Frage....

Lässt sich hieraus noch ein funktionierendes Login-System bauen, oder sollte man nochmal komplett neu ansetzen?

Ein fertiges Login-System möchte ich nicht nutzen, da die komplette Seite eine Eigenentwicklung ist und auch kein CMS verwendet.

Liebe Grüße und vielen Dank schon mal im Voraus,



Euer
Taxidriver05
BORN STUPID? TRY AGAIN!

"Himmlische Ruhe und tödliche Stille haben dieselbe Phonzahl."
My Music
0

Anzeige



#2 Mitglied ist offline   zwutz 

  • Gruppe: aktive Mitglieder
  • Beiträge: 659
  • Beigetreten: 17. Juli 07
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 19. Juli 2010 - 07:17

Funktioniert das System denn? Wenn ja, passt es soweit und kann übernommen werden.

Ein paar Sachen aber:
- Schick jede Benutzereingabe nicht ungefiltert an die Datenbank. Ich kenn deine Seite und dein Loginsystem. Ich könnte, wenn ich wollte, jetzt deine Datenbank löschen oder dein Admin-Kennwort auslesen!
Entweder über mysql_real_escape_string(); oder du lässt nur bestimmte Zeichen anhand von regulären Ausdrücken zu.
- Schonmal was davon gehört, dass PHP auch Schleifen kennt? So kannst du auch dafür sorgen, dass sich auch ältere Menschen als 60 und jüngere als 10 bei dir anmelden können, ohne dass deine register.php aus allen Nähten platzt
- Beim Logout musst du die vorherige Session unbedingt zerstören, sonst besteht die Gefahr, dass jemand die Session unbefugt übernimmt. Dafür gibts session_destroy() und session_regenerate_id()
- keine font-tags verwenden
- SELECT * hat in Produktiv-Code nichts zu suchen. Immer die Spalten angeben, die du haben willst, selbst wenn es alle sind

Das wären jetzt mal die offensichtlichsten Dinge. Evtl könntest du dich auch mal über das <label>-Tag informieren, aber das sind Kleinigkeiten
Raise your glass if you are wrong
0

#3 Mitglied ist offline   Taxidriver05 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.658
  • Beigetreten: 14. Mai 09
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Schkopau - OT Ermlitz
  • Interessen:- Ausgehen,
    - Sport (am liebsten an der frischen Luft),
    - Musik (machen und hören),
    - Grafik- und Webdesign,
    - gut Essen,
    - an PCs basteln (für den schnellen Euro ;-)),
    uvm.

geschrieben 19. Juli 2010 - 09:30

Wie gesagt...

Ich habe diesen Code als "Relikt" übernommen...

So wirklich ganz durchgestiegen bin ich da noch nicht wirklich...

Zitat

Funktioniert das System denn? Wenn ja, passt es soweit und kann übernommen werden.


Nun...
Der Login per Session scheint wohl zu funktionieren...
Allerdings läuft das auch noch nicht so rund...
Denn ich habe gestern mal "spaßeshalber" einen neuen User registriert...
Jedoch habe ich keine Aktivierungsmail bekommen...
Der Account war dennoch aktiv...

Zitat

Schick jede Benutzereingabe nicht ungefiltert an die Datenbank. Ich kenn deine Seite und dein Loginsystem. Ich könnte, wenn ich wollte, jetzt deine Datenbank löschen oder dein Admin-Kennwort auslesen! Entweder über mysql_real_escape_string(); oder du lässt nur bestimmte Zeichen anhand von regulären Ausdrücken zu.


wie darf ich das genau verstehen...?

Zitat

Schonmal was davon gehört, dass PHP auch Schleifen kennt? So kannst du auch dafür sorgen, dass sich auch ältere Menschen als 60 und jüngere als 10 bei dir anmelden können, ohne dass deine register.php aus allen Nähten platzt


Yepp!

Das weiß ich...
Die register.php werde ich wohl auch nochmal umschreiben...

Zitat

Beim Logout musst du die vorherige Session unbedingt zerstören, sonst besteht die Gefahr, dass jemand die Session unbefugt übernimmt. Dafür gibts session_destroy() und session_regenerate_id()


Ist mir so noch gar nicht aufgefallen...

Zitat

- keine font-tags verwenden


Ist mir bekannt...
Mein Vorgänger mochte wohl diesen "font"-Tag...
Werde das wohl eher per CSS läsen...

Zitat

SELECT * hat in Produktiv-Code nichts zu suchen. Immer die Spalten angeben, die du haben willst, selbst wenn es alle sind


Wie könnte ich das denn noch realisieren?

Verzeih mir, dass ich da vielleicht Anfänger-Fehler mache...
Nur sind solche Login-Systeme absolutes Neuland für mich...
Daher bin ich in diesem Bereich gern lernbereit...
BORN STUPID? TRY AGAIN!

"Himmlische Ruhe und tödliche Stille haben dieselbe Phonzahl."
My Music
0

#4 Mitglied ist offline   zwutz 

  • Gruppe: aktive Mitglieder
  • Beiträge: 659
  • Beigetreten: 17. Juli 07
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 19. Juli 2010 - 10:08

Beitrag anzeigenZitat (Taxidriver05: 19.07.2010, 10:30)

wie darf ich das genau verstehen...?


nennt sich SQL-Injection

Mal angenommen, du hast folgenden SQL-Query bei dir im Code
$query = "SELECT id FROM tbl_user WHERE username = '{$_POST['username']}'"


Die Funktion ist klar. Es wird die Id des angegebenen Benutzers ermittelt.

Aber was ist, wenn jemand folgendes als Benutzername eingibt:
'; DELETE FROM tbl_user; --


dann sieht der auszuführende SQL-Query so aus:
SELECT id FROM tbl_user WHERE username = ''; DELETE FROM tbl_user; --'


und schon ist deine Tabelle leer

Daher entweder den String escapen, was alle Zeichen, die für SQL eine besondere Bedeutung haben, maskiert (beispielsweise das Hochkomma) und somit entschärft.
Mit regulären Ausdrücken schaffst du dir die sicherste Variante, wenn du nur bestimmte Zeichen zulässt und alles andere per se abgewiesen wird.

Beitrag anzeigenZitat (Taxidriver05: 19.07.2010, 10:30)

Wie könnte ich das denn noch realisieren?


Wie gesagt: immer alle Spalten explizit angeben, die du brauchst. Das ist aber nicht auf ein login-system beschränkt oder auf mysql, sondern ein genereller Grundsatz beim Umgang mit relationalen Datenbanken


Die E-Mail-Registrierung scheint auch ein Relikt zu sein. Ich hab keinen Codeteil gefunden, der die E-Mail versendet, geschweige denn, die Aktivierung vornehmen würde. Du müsstest mal nachsehen, was bei neuen Nutzern in der Spalte street_user_activate steht. Überprüf auch den default-Wert der Spalte
Raise your glass if you are wrong
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0