Frage: Login + PW abfrage mit Sessions

AFFranky

Grünschnabel
Hallo da draußen! :)

Also ich habe folgendes Problem, ich möchte ein Login-Script schreiben, das meinen News-Admin vor fremden Blicken schützt :D
Sprich jeder User der einen Account hat (eigener name und eigenes Passwort stehen in der datenbank) soll sich einloggen können, andere bleiben draußen...

Es soll praktisch so aussehen, dass man in 2 Textfelder, einmal den Namen und einmal das PW eintippt. Dann wird erstmal überprüft ob die eingaben korrekt sind! Danach wird eine Session gestartet und liest sowohl eine Variable ein, die nur gesetzt wird wenn der Login ok war und den Name wird auch daran gespeichert um den User zu erkennen!

Erklären kann ich das ja mal ganz gut (finde ich :)), nur mitm proggen hat es nicht geklappt :(
wäre suuuuper nett wenn mir da jemand helfen könnte! Momentan sichere ich meinen Admin mit einem umständlichen Variablen-abfrage-chaos :D

greatz
Franky
 
-

Entweder du benutzt mal die Suchfunktion oder du postest dein Script, damit wir dir helfen können. Alles hinzuschreiben, ist doch öde.
 
naja, mein Script is ja soweit feddich! Es geht ja nur um den Login. Da habe ich bisher:
PHP:
<?
require('config.php');

if (!isset($login)) { 
@session_start();
session_register("name","passwort"); ?>
<html>
<head>
	<title><? print $title ?></title>

<body bgcolor="#3578CB" text="#FFFFFF" link="#000000" vlink="#000000" alink="#000000">

<form action="<? print $PHP_SELF ?>" method="post">
<table width="300" cellspacing="1" cellpadding="4" border="0" align="center">
<tr>
<td bgcolor="#19457B" colspan="2" align="center">
<font face="verdana, arial, helvetica" size="2" color="#ffffff"><b>Admin Login</b></font></td>
</tr>
<tr>
        <td bgcolor="#19457B" width="25%"> <font face="verdana, arial, helvetica" color="#ffffff" size="1"><b>Nickname:</b></font> 
        </td>
   	    <td bgcolor="#19457B" width="75%">
			<input name="name" style="width:100%">
</td>
</tr>
	<tr>
    	    <td bgcolor="#19457B">
     	    <font face="verdana, arial, helvetica" color="#ffffff" size="1"><b>Passwort:</b></font>
     	    </td>
    	    <td bgcolor="#19457B">
    	    <input type="password" name="passwort" size="15" maxlength="10" style="width:100%">
     	    </td>
	</tr>
	<tr>
     	    <td bgcolor="#19457B" colspan="2" align="center">
     	    <input type="hidden" name="login" value="1">
     	    <input type="submit" name="login_button" value="Enter Admin!">
            </td>
	</tr>
	</table>
</form>
</body>
</html>

<? }else{
@session_start();

if(empty($name)) {
	print "<font face=\"verdana, arial, helvetica\" size=\"1\">Der Nickname wurde <b>nicht</b> eingetippt!</font>\n";
	print "<meta http-equiv=\"refresh\" content=\"3; url=$PHP_SELF\">\n";
exit;
}
elseif(empty($passwort)) {
	print "<font face=\"verdana, arial, helvetica\" size=\"1\">Das Passwort wurde <b>nicht</b> eingetippt!</font>\n";
	print "<meta http-equiv=\"refresh\" content=\"3; url=$PHP_SELF\">\n";
exit;
}

$passwort_query=mysql_query("SELECT * FROM benutzer WHERE name='$name'",$connect);
$result= mysql_fetch_array($passwort_query);

if($passwort != $result["passwort"]) {
		print "<font face=\"verdana, arial, helvetica\" size=\"1\">\n";
		print "Das eingebende Passwort ist <b>falsch</b>.\n";
		print "</font>\n";
		print "<meta http-equiv=\"refresh\" content=\"3; url=$PHP_SELF\">\n";
exit;

}else{

$end_query = mysql_query("SELECT * FROM benutzer WHERE name='$name'", $connect);
$end = mysql_fetch_array($end_query);
$nick == $end["name"];
print "<meta http-equiv=\"refresh\" content=\"2; url=index.php?action=start\">\n";
exit;
}
}
?>

Aber vorallem im unteren Bereich sind:
a. Fehler drin
b. habe ich die Sache mit den Sessions mehr oder minder erraten! habe bisher kein gutes Tutorial gelesen und habe deshalb fast null Ahnung von Sessions...

Und es ist momentan ja auch sau umständlich, deshalb wäre es ja nicht schlecht wenn mir einer ne Lösung zeigen könnte wie es nicht so umständlich geht und wie ich sessions richtig einsetze...

greatz
Franky
 
hm... vielleicht hab ich nun ne Lösung gefunden.
Wenn der User erstellt wird wird per:
$create_user_id= uniqid(user);

eine user_id für in festgelegt. Mit deren Hilfe ich den user beim Login identifizieren kann!
Mit dieser Methode gehe ich zwar weg von den "richtig" PHP Sessions, aber das erscheint mir gerade irgendwie leichter...

wäre aber trotzdem cool, wenn jemand ne lösung hätte mit "richtigen" PHP Sessions!

greatz
Franky
 
Zurück