Login System?

10/25/2012 10:30 Haze!#1
Wie kann ich so ein simples Login system schreiben...? Für meine HTML Seite

Was braucht ich alles dafür?
10/25/2012 12:57 eromer#2
Hey,

es kommt drauf an wie komplex du dein System haben willst. Ein einfaches System ohne Datenbank geht einfach und schnell

PHP Code:
session_start();
$userinfo = array(
                
'user1'=>'password1',
                
'user2'=>'password2'
                
);

if(isset(
$_GET['logout'])) {
    
session_destroy();
    
header('Location:  ' $_SERVER['PHP_SELF']);
}

if(isset(
$_POST['username'])) {
    if(
$userinfo[$_POST['username']] == $_POST['password']) {
        
$_SESSION['username'] = $_POST['username'];
    }else {
        
// Login Daten sind fehlerhaft
    
}

HTML Code:
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Login</title>
    </head>
    <body>
        <?php if($_SESSION['username']): ?>
            <p>You are logged in as <?=$_SESSION['username']?></p>
            <p><a href="?logout=1">Logout</a></p>
        <?php endif; ?>
        <form name="login" action="" method="post">
            Username:  <input type="text" name="username" value="" /><br />
            Password:  <input type="password" name="password" value="" /><br />
            <input type="submit" name="submit" value="Submit" />
        </form>
    </body>
</html>

Das ist ein Total Simples Login Script ohne wirklichen Sicherheiten da die Login Daten in der PHP-Datei stehen. Sinnvoll wäre es ein Login Script mit einer Datenbank zu verknüpfen! Wobei dann auch noch die SQL-Injection beachtet werden muss

Hier ein Tutorial für Anfänger: [Only registered and activated users can see links. Click Here To Register...]
10/25/2012 15:12 NotEnoughForYou#3
10/26/2012 07:19 Haze!#4
Quote:
Originally Posted by eromer View Post
Hey,

es kommt drauf an wie komplex du dein System haben willst. Ein einfaches System ohne Datenbank geht einfach und schnell

PHP Code:
session_start();
$userinfo = array(
                
'user1'=>'password1',
                
'user2'=>'password2'
                
);

if(isset(
$_GET['logout'])) {
    
session_destroy();
    
header('Location:  ' $_SERVER['PHP_SELF']);
}

if(isset(
$_POST['username'])) {
    if(
$userinfo[$_POST['username']] == $_POST['password']) {
        
$_SESSION['username'] = $_POST['username'];
    }else {
        
// Login Daten sind fehlerhaft
    
}

HTML Code:
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Login</title>
    </head>
    <body>
        <?php if($_SESSION['username']): ?>
            <p>You are logged in as <?=$_SESSION['username']?></p>
            <p><a href="?logout=1">Logout</a></p>
        <?php endif; ?>
        <form name="login" action="" method="post">
            Username:  <input type="text" name="username" value="" /><br />
            Password:  <input type="password" name="password" value="" /><br />
            <input type="submit" name="submit" value="Submit" />
        </form>
    </body>
</html>

Das ist ein Total Simples Login Script ohne wirklichen Sicherheiten da die Login Daten in der PHP-Datei stehen. Sinnvoll wäre es ein Login Script mit einer Datenbank zu verknüpfen! Wobei dann auch noch die SQL-Injection beachtet werden muss

Hier ein Tutorial für Anfänger: [Only registered and activated users can see links. Click Here To Register...]
Woher weiß das Script ob der Account existiert?
10/26/2012 08:26 KoKsPfLaNzE#5
weil die accounts in einem array stehen.
10/26/2012 08:32 Zettabytes*#6
Mach es lieber mit Datenbank. Xampp hat PHPMYADMIN Und jeder Kostenlose Webserver auch. :)
10/26/2012 09:57 eromer#7
Quote:
Originally Posted by Haze! View Post
Woher weiß das Script ob der Account existiert?
Die Login Informationen stehen in dem Array
PHP Code:
$userinfo = array( 
                
'user1'=>'password1'
                
'user2'=>'password2' 
                
); 
Dort kann man beliebig viele User eintragen, einfach das muster weiter führen. Die Daten werden etwas weiter unten überprüft.
Aber wie ich schon geschrieben habe(und die anderen auch), ist es besser ein Loginscript mit einer Datenbank zu verknüpfen. Wenn du keine Datenbank hast könntest du auch die .htaccess nutzen. Hier mal ein Link: [Only registered and activated users can see links. Click Here To Register...]
Damit kannst du Dateien, Ordner und ganze Datei-Typen sperren, sodass man nur mit den Login Daten sie erreicht
10/26/2012 10:13 Haze!#8
Ja ich arbeite mit XAMPP

Wie sieht das script dann aus?

Hab probiert mich einzuloggen aber da passiert nix
10/26/2012 11:28 Hiris#9
Was soll da auch passieren? Du musst dann halt mit den Sessions arbeiten
10/26/2012 12:55 eromer#10
Quote:
Originally Posted by Haze! View Post
Ja ich arbeite mit XAMPP

Wie sieht das script dann aus?

Hab probiert mich einzuloggen aber da passiert nix
Gab es eine Fehlermeldung? Wenn ja wäre es hilfreich diese zu Posten.

Man kann dir nicht alles vor programmieren, du musst dich schon selber etwas engagieren.

Eine Datenbank Verbindung baust du so auf
PHP Code:
// Wir verbinden uns mit der Mysql Service
$con mysql_connect('localhost','username','password');
if (!
$con) {
    die(
'Konnte keine Verbindung aufbauen: ' mysql_error());
}
// Wenn es keine Fehler bei dem Verbindungsaufbau gab, 
// wählen wir die Datenbank aus
mysql_select_db('datenbank'$con); 
Nachdem du das gemachst hast musst du nurnoch überprüfen ob die Übergeben Daten von dem Formular Korrekt sind (Achtung SQL Injection)

PHP Code:
// mit mysql_real_escape_string verhindern wir sql injection
$user=mysql_real_escape_string($username);
$pass=mysql_real_escape_string($password);

// Wir machen eine abfrage, gibt es in der Datenbank einen User der den
// usernamen und das password gibt
$query=mysql_query('SELECT * FROM login where 
    username="'
.$user.'" AND 
    password="'
.$pass.'"'
); 
// Wir holen uns die Anzahl der Treffer.. wenn der 0 ist geben wir aus das er 
// die Falschen login daten hat, ansonsten leiten wir ihn weiter
$count=mysql_num_rows($query); 
Ich empfehle das Password in der Datenban per md5 und einen salt zu verschlüssel z.b. so.

PHP Code:
$pass md5('ein_sicherer_token'.$pass); 
Das was ich hier geschrieben habe muss nur noch in Form gebracht werden. Wenn du selber PHP nicht so gut beherrscht, solltest du dir jmd suchen der es dir Kostenlos oder kosten günstig Programmiert.

P.S.: Es gibt im Internet mit Sicherheit auch ein Fertiges Login Script was deinen Wünschen entspricht
10/26/2012 13:55 Haze!#11
Ok danke euch :)

Kann ich auch irgend wie im Internet so ne Datenbank erstellen? Damit ich zb von jeden Computer einloggen kann oder bzw was aus der datenbank auslesen kann?
10/26/2012 14:08 Project Rivalry#12
klar... kommt immer auf den hoster an ;= geht dann bei jedem etwas anderst
10/26/2012 14:09 Haze!#13
Gibts auch solche kostenfreie Datenbanken?
10/26/2012 14:38 マルコ#14
Da wo du deine Website draufklatscht, da gibts meistens auch eine Datenbank mit dabei.
z.B. co.de ist kostenloser Webhoster (halt mit Werbung, aber was willst du mehr^^)
10/26/2012 14:59 Haze!#15
Quote:
Originally Posted by マルコ View Post
Da wo du deine Website draufklatscht, da gibts meistens auch eine Datenbank mit dabei.
z.B. co.de ist kostenloser Webhoster (halt mit Werbung, aber was willst du mehr^^)
Danke probiere dann mal co.de aus