 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
10.11.2003, 16:19
|
#1
|
|
TP-Moderator
Registriert seit: Mar 2002
Ort: Landau, Palatinate, Germany
|
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"> </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"> </td>
<td class="login" align="right"><input type="submit" value="Einloggen"></td>
</tr>
</table>
</form>
<p class="copyright">© 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">© 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("********************");
?>
|
|
|
10.11.2003, 16:34
|
#2
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
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
|
|
|
10.11.2003, 16:39
|
#3
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
@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
|
|
|
10.11.2003, 16:54
|
#4
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
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
|
|
|
10.11.2003, 16:55
|
#5
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
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...
|
|
|
10.11.2003, 16:59
|
#6
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
__________________
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
|
|
|
10.11.2003, 17:19
|
#7
|
|
TP-Moderator
Registriert seit: Mar 2002
Ort: Landau, Palatinate, Germany
|
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"> </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"> </td>
<td class="login" align="right"><input type="submit" value="Einloggen"></td>
</tr>
</table>
</form>
<p class="copyright">© 2003 by akramedia Webart</p>
</body>
</html>
|
|
|
10.11.2003, 17:23
|
#8
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
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
|
|
|
10.11.2003, 17:27
|
#9
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
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 "> <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
|
|
|
10.11.2003, 17:28
|
#10
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
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
|
|
|
10.11.2003, 18:01
|
#11
|
|
TP-Moderator
Registriert seit: Mar 2002
Ort: Landau, Palatinate, Germany
|
Das Problem besteht darin, dass wenn ich mich mit den Daten aus der SQL Tabelle einloggen will, Fehler! erscheint!
|
|
|
10.11.2003, 18:22
|
#12
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
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
|
|
|
10.11.2003, 18:44
|
#13
|
|
TP-Moderator
Registriert seit: Mar 2002
Ort: Landau, Palatinate, Germany
|
Na, das Wort Fehler! erscheint! Schau mal in den Code meiner login.php! Da wird die #SQL abgerufen und die Fehlermeldung definiert! 
|
|
|
10.11.2003, 18:51
|
#14
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
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
|
|
|
10.11.2003, 18:54
|
#15
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
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
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
| | |