• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Loginscript

Status
Für weitere Antworten geschlossen.

ò.Ó

Neues Mitglied
Hallo,
Ich habe jetzt mal probiert ein ganz einfaches Loginscript zu basteln.
Dabei ist dann folgendes rausgekommen:

PHP:
</body>
</html>
Benutzername:
<input type="text" size="17" name="benutzername">
<input type="submit" value="einloggen">
<?php
$Logins = array('Admin')
?>
<?php
if(in_array('$benutzername',$Logins))
  {
  fopen('Datei');
  }
?>

wenn ich dann Admin eintippe und auf einloggen klicke, passiert nichts.
Woran liegt das?

mfg und thx
 
Zuletzt bearbeitet von einem Moderator:
Als aller erstes solltest du mal die Regeln lesen, dann PHP lernen, das ist wohl das einfachste Script was es gibt.
 
also ich muss sagen, bis ich n funktionierendes loginscript gebaut hatte, dauerte recht lange,aber wie deins laufen soll weiß ich ehrlich gesagt noch nichmal. das hier is meine lösung: in ner datenbank prüfwerte nehmen, dann immer wenn es an was geht was "passwortgeschützt" sein soll mit mysql_query die prüfwerte abfragen und mit den (hoffentlich äquivalenten) werten in coockies vergleichen und dann gibts zugriff, das is insofern schön, als das man länger eingeloggt bleiben kann, weil wenn ich das grade richtig verstanden habe deinen code, dann ist das doch nur was für einen zugriff auf eine datei?

Code:
<?php


session_start(); //Session starten
session_register( "user" ); //Variabele "user" deklarieren um später den User ansprechen zu können
session_id (); //SID zuweisen

$user = strip_tags($_POST['name']); //session-var. "user" den wert "name" geben, der aus dem Loginformular kommt

$id = session_id();

$ip = $REMOTE_ADDR; //IP abfragen und in Arbeitsvariabele speichern

$pwc = strip_tags(base64_encode($_POST['password'])); // Passwort in Var "crypt" verschlüsseln um es unleserlich zu machen
$tablle = "user";
include ('mysqlcon.php'); //MySQL-Verbindungsdaten holen
$abfrage = "SELECT * FROM user WHERE name = '$user'"; //Datensatz des Users auslesen
$result = mysql_query($abfrage);

$row = mysql_fetch_assoc($result); //assoz. Array "row" mit Daten aus DB füllen
if (isset($row)) //wenn datensatz existiert
{
if ($user = "$row[name]") //und user aus formular in der db existiert
{
 if ($row[logout] != '1') // wenn logout nicht eins ist (also 0)
  {
   if($pwc != "$row[password]") //und das passwort nicht mit dem der DB übereinstimmt
    {
    print "Ungültiges Passwort!";
      if ($erg[logout] != '1' AND $_COOKIE[PHPSESSID] != $erg[session])
      {

       mysql_query("UPDATE user SET logout = '0' WHERE name = '$user'");
       print '<a href="../index.php">Zum Anfang!</a>';
       die;
      }

    }
   else //wenns pw stimmt
     mysql_query("UPDATE user SET logout = '1' , session = '$_COOKIE[PHPSESSID]' , last_login = NOW() WHERE name = '$user'");
     $result1 = mysql_query("SELECT * FROM user WHERE name = '$user'");
     $erg = mysql_fetch_assoc($result1); //assoz Array mit Ergebniss der Abfrage füllen
     print "<h3>Sie sind eingeloggt!</h3><br />";
   }
   else
    {
     mysql_query("UPDATE user SET logout = '0' , last_login = NOW() WHERE name = '$user'");
     print "Sie haben vergessen, sich auszuloggen!";
    }
}
else
 {
 print "Der angegebene Benutzername existiert nicht!";
 } }
print '&nbsp;&nbsp;<a href="../index.php?section=admin">Zum Login!</a>';  //Link zurück zur ausgangsseite
?>
 
[phpnet]session_register[/phpnet] ist obsolete / mit register_globals zu vergleichen !!!
Benutzt bitte das Array $_SESSION !
 
hi,
ne ich wollte er erstmal sowieso praxisuntauglich machen.
ich wollte die benutzer dann in eine txt datei eintragen, also praktisch per register.
es ging mir nur darum, dass nix passiert wenn ich auf einloggen gehe^^
aber thx
 
Wenn du dir das als Übung für dich selber nutzen willst, befürworte ich die Nutzung einer Textdatei.
Alleine schon um in dem Bereich ebenfalls Wissen zu erwerben.
Dann kannst du dir auch Gedanken machen, wo du die Datei speicherst, damit diese sicherer ist, und nicht über das Web betrachtet werden kann.

Sicherheitstechnisch würde ich auch zu einer Datenbank raten, da diese normalerweise nicht von aussen zu erreichen ist.
 
hi,
so war es auch gedacht.
aber da mysql wegen einem problem mit der firewall und proxy sowieso nicht läuft, dachte ich mir, ich mach es übungsweise erstmal in eine txt.
das problem ist ja nur, dass sich der eingegebene benutzername, nämlich Admin, in dem Array befindet.
und wenn sich der eingegebene benutzername in dem array befindet, soll ja index2.htm geöffnet werden.
ich wundere mich jetzt ja nur, warum nichts passiert wenn ich auf einloggen gehe.
danke schonmal und auch danke für das fertige script.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben