TP Underground Lounge 07/08
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 10.11.2003, 16:19   #1
TP-Moderator
 
Benutzerbild von -Andreas-
 
Registriert seit: Mar 2002
Ort: Landau, Palatinate, Germany
-Andreas- bringt sich richtig ein-Andreas- bringt sich richtig ein

Session funktioniert nicht!


Wenn ich mich einloggen will, kommt wieder die login.php!

login.php:
PHP-Code:
<?
session_start
();
include 
sqlconnect.php;
$abrufen mysql_query("SELECT * FROM am_kunden WHERE name=".$_POST['name']);
while(
$spalte mysql_fetch_array($abrufen)) {
    
$name=$spalte[name];
    
$pwd=$spalte[pwd];
}
if(
$_POST['name']==$name and $_POST['pwd']==$pwd) {
    
$_SESSION['name']=$name;
    
header("location: [url]http://kunden.akramedia.de/system/index.php[/url]");
}
?>
<html>
<head>
<style type="text/css">
<!--
td.login {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    font-style: normal;
    line-height: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    color: #000000;
    text-decoration: none;
    border: none;
}
table.login {
    background-image: url('loginbg.jpg');
    background-repeat: no-repeat;
    border: 1px solid #000000;
    background-color: #cccccc;
}
-->
</style>
<style type="text/css">
<!--
.titel {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 36px;
    font-style: normal;
    line-height: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    text-decoration: none;
}
.copyright {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 10px;
    font-style: italic;
    line-height: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    color: #000000;
    text-decoration: none;
    text-align: center;
}
-->
</style>
</head>
<body bgcolor="#FFFFFF">
<p><img src="logo.jpg" width="293" height="66" align="absmiddle"><span class="titel">//System</span></p>
<form action="login.php" method="post">
  <table class="login" align="center">
    <tr>
        <td class="login"><b>Login</b></td>
        <td class="login">&nbsp;</td>
    </tr>
    <tr>
        <td class="login">Name:</td>
        <td class="login"><input type="text" name="name"></td>
    </tr>
    <tr>
        <td class="login">Passwort:</td>
        <td class="login"><input type="password" name="pwd"></td>
    </tr>
    <tr>
        <td class="login">&nbsp;</td>
        <td class="login" align="right"><input type="submit" value="Einloggen"></td>
    </tr>
</table>
</form>
<p class="copyright">&copy; 2003 by akramedia Webart</p>
</body>
</html>
index.php:
PHP-Code:
<?
session_start
();
if(!
$_SESSION['name']) {
    
header("location: [url]http://kunden.akramedia.de/system/login.php[/url]");
    exit;
}
?>
<html>
<head>
<style type="text/css">
<!--
td.login {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    font-style: normal;
    line-height: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    color: #000000;
    text-decoration: none;
    border: none;
}
table.login {
    background-image: url('loginbg.jpg');
    background-repeat: no-repeat;
    border: 1px solid #000000;
    background-color: #cccccc;
}
-->
</style>
<style type="text/css">
<!--
.titel {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 36px;
    font-style: normal;
    line-height: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    text-decoration: none;
}
.copyright {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 10px;
    font-style: italic;
    line-height: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    color: #000000;
    text-decoration: none;
    text-align: center;
}
-->
</style>
</head>
<body bgcolor="#FFFFFF">
<p><img src="logo.jpg" width="293" height="66" align="absmiddle"><span class="titel">//System</span></p>
<form action="login.php" method="post">
  <table class="login" align="center">
    <tr>
      <td class="login"><b>Hauptseite</b></td>
    </tr>
    <tr>
      <td class="login">Sie sind als <? echo $_SESSION['name']; ?> eingelogged!</td>
    </tr>
</table>
</form>
<p class="copyright">&copy; 2003 by akramedia//Webart</p>
</body>
</html>
sqlconnect.php:
PHP-Code:
<?
mysql_connect
("mysql.terions.de","**************","************") or die("Connect nicht möglich: ".mysql_error());
mysql_select_db("********************");
?>
__________________
-Andreas- ist offline   Mit Zitat antworten


Alt 10.11.2003, 16:34   #2
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
Ist doch kein Wunder:

header("location: <a href="http://kunden.akramedia.de/system/index.php" target="_blank">http://kunden.akramedia.de/system/index.php</a>");

Lies Dir mal am besten nochmals durch, wie header() funktioniert ... mit header erzeugt man eine Weiterleitung, und Du packst da einen HTML-Link rein ... (???)

header("Location: http://www.test.de");

SO und nicht anders ...
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist offline   Mit Zitat antworten
Alt 10.11.2003, 16:39   #3
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
@Adagio: Das war/ist das Forum...

Der Fehler liegt darin, dass der Vergleich in der Where-Klausel nicht korrekt ist und das ganze Script sehr schön offen für SQL-Injections ist
Code:
// Volgender Postwert
$_POST["name"] = 1;

// erzeugt folgenden Query:
SELECT * FROM am_kunden WHERE name=1
Das währe immer wahr und würde einem den Login auf alle Fälle geähren

Übergibt man nun einen username = "jan", würde dort stehen:
Code:
SELECT * FROM am_kunden WHERE name=jan
Aber normalerweise müsste er hier auch mit einem error aussteigen, da es keine Spalte "jan" gibt... Setzt das mal in singlequotes, dann sehen wir weiter.

Gruss
Jan
Stuck Mojo ist offline   Mit Zitat antworten
Alt 10.11.2003, 16:54   #4
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
Wenn es das Forum war, wieso sieht mein header() dann richtig aus? *grübel*
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist offline   Mit Zitat antworten
Alt 10.11.2003, 16:55   #5
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
Zitat:
Original geschrieben von Adagio
Wenn es das Forum war, wieso sieht mein header() dann richtig aus? *grübel*
weil du es nicht zwischen [php] und [/php] geschrieben hast...
Stuck Mojo ist offline   Mit Zitat antworten
Alt 10.11.2003, 16:59   #6
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist offline   Mit Zitat antworten
Alt 10.11.2003, 17:19   #7
TP-Moderator
 
Benutzerbild von -Andreas-
 
Registriert seit: Mar 2002
Ort: Landau, Palatinate, Germany
-Andreas- bringt sich richtig ein-Andreas- bringt sich richtig ein
Jetzt leitet es nur zur index.php weiter, wenn $_POST=="" ist!
PHP-Code:
<?
session_start
();
include 
sqlconnect.php;
$abrufen mysql_query("SELECT * FROM am_kunden WHERE name='".$_POST['name']."'");
while(
$spalte mysql_fetch_array($abrufen)) {
    
$name=$spalte[name];
    
$pwd=$spalte[pwd];
}
if(
$_POST['name']==$name and $_POST['pwd']==$pwd) {
    
$_SESSION['name']=$name;
    echo 
"index.php";
} else {
    echo 
"Fehler!";
}
?>
<html>
<head>
<style type="text/css">
<!--
td.login {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    font-style: normal;
    line-height: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    color: #000000;
    text-decoration: none;
    border: none;
}
table.login {
    background-image: url('loginbg.jpg');
    background-repeat: no-repeat;
    border: 1px solid #000000;
    background-color: #cccccc;
}
-->
</style>
<style type="text/css">
<!--
.titel {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 36px;
    font-style: normal;
    line-height: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    text-decoration: none;
}
.copyright {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 10px;
    font-style: italic;
    line-height: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    color: #000000;
    text-decoration: none;
    text-align: center;
}
-->
</style>
</head>
<body bgcolor="#FFFFFF">
<p><img src="logo.jpg" width="293" height="66" align="absmiddle"><span class="titel">//System</span></p>
<form action="login.php" method="post">
  <table class="login" align="center">
    <tr>
        <td class="login"><b>Login</b></td>
        <td class="login">&nbsp;</td>
    </tr>
    <tr>
        <td class="login">Name:</td>
        <td class="login"><input type="text" name="name"></td>
    </tr>
    <tr>
        <td class="login">Passwort:</td>
        <td class="login"><input type="password" name="pwd"></td>
    </tr>
    <tr>
        <td class="login">&nbsp;</td>
        <td class="login" align="right"><input type="submit" value="Einloggen"></td>
    </tr>
</table>
</form>
<p class="copyright">&copy; 2003 by akramedia Webart</p>
</body>
</html>
__________________
-Andreas- ist offline   Mit Zitat antworten
Alt 10.11.2003, 17:23   #8
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
Dann bau einen kleinen Check ein, der überprüft, ob das Feld auch ausgefüllt wurde
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist offline   Mit Zitat antworten
Alt 10.11.2003, 17:27   #9
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
Hier mal meine Art, einen Login zu machen - vielleicht kannst Du ja was gebrauchen:

Code:
if ($_POST["submit"])
{
	if ($_POST["username"] && $_POST["passwort"])
	{
		$username=$_POST["username"];
		$passwort=md5($_POST["passwort"]); 
		
		$check = mysql_fetch_array(mysql_query("SELECT 
																							id,login_name,login_pass,userlevel
																						FROM
																							bb_user
																						WHERE
																							login_name='$username'
																						AND
																							login_pass='$passwort'"));
		if($check['login_pass']==$passwort) // So geht man sicher, dass als Pass keine SQL-Befehle eingegeben wurden
		{
			define('LOGGED_IN', true);
			$_SESSION["REMOTE_ADDR"]	= $_SERVER["REMOTE_ADDR"]; // Benutzer-IP speichern
			$_SESSION['LOGGED_IN']		= LOGGED_IN; // Ist eingeloggt
			$_SESSION['userid']				= $check['id'];

			if ($check['userlevel']==2)
			{
				savelog("login");
				mysql_close($dbase);
				header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/adminmain/");
				exit;
			}
			else
			{
				savelog("loginbad");
				mysql_close($dbase);
				echo "<br><br><strong>Unerwarteter Loginfehler - fehlender Userlevel!</strong><br><br>";
				echo "Bitte schicken Sie dem Admin eine Email an: <a href=\"mailto:bb@format-webdesign.de\">bb@format-webdesign.de</a> mit einem entsprechenden<br>";
				echo "Hinweis auf diese Fehlermeldung.<br><br>";
				echo "&gt; <a href=\"logout.php\">Zurück zum Login</a>";
				exit; 
			}
		}
  		else
  		{
				savelog("loginbad");
    		$error="Der Loginname oder das Passwort waren falsch.<br>Bitte versuchen Sie es noch einmal.";
  		}
	}
	else
	{
		savelog("loginbad");
		$error="Bitte geben Sie den Benutzernamen und das Passwort ein.";
	}
}
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist offline   Mit Zitat antworten
Alt 10.11.2003, 17:28   #10
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
macht er die connection,
macht er die query richtig,
was zeigen die $_POST Vars an
was zeigt $name und $pwd an

such den Fehler in der Reihenfolge.
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 10.11.2003, 18:01   #11
TP-Moderator
 
Benutzerbild von -Andreas-
 
Registriert seit: Mar 2002
Ort: Landau, Palatinate, Germany
-Andreas- bringt sich richtig ein-Andreas- bringt sich richtig ein
Das Problem besteht darin, dass wenn ich mich mit den Daten aus der SQL Tabelle einloggen will, Fehler! erscheint!
__________________
-Andreas- ist offline   Mit Zitat antworten
Alt 10.11.2003, 18:22   #12
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
sorry, aber mit dem satz kann ich nix anfangen

welcher fehler erscheint wo und was für eine sql-tabelle?
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 10.11.2003, 18:44   #13
TP-Moderator
 
Benutzerbild von -Andreas-
 
Registriert seit: Mar 2002
Ort: Landau, Palatinate, Germany
-Andreas- bringt sich richtig ein-Andreas- bringt sich richtig ein
Na, das Wort Fehler! erscheint! Schau mal in den Code meiner login.php! Da wird die #SQL abgerufen und die Fehlermeldung definiert!
__________________
-Andreas- ist offline   Mit Zitat antworten
Alt 10.11.2003, 18:51   #14
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
ja. und?
das ist die letzte konseqenz, wenn von den oben beschriebenen Fehlerquellen eine zutrifft.

bitte check diese mal ab.
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 10.11.2003, 18:54   #15
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
Benutze doch auch mal mysql_fetch_array() in Deiner Query - bei Deiner Variante bekommst Du unter Umständen auch mehrere User ausgespuckt.

Versuchs doch mal mit meinem Loginskript, das funktioniert und ist dazu auch noch sehr "sicher"
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Session funktioniert nicht! Session funktioniert nicht!
« Wie Aktivier ich php auf dem webspace ? | Install Probleme »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten: