Tutorials

Userlogin Script by ntmb [Teil 1] Tutorial

Einloggen
Benutzername:
Passwort:

Passwort vergessen?
Kostenlos
Anmelden
anzeigen
Userlogin Script by ntmb [Teil 1]
Ein eigener Userlogin für deine Homepage.

6942 - ntmb - 08.02.2006 15:28 Uhr - Version: 5 - - verlinken als BB-Code


In diesem Tutorial werde ich euch ein Userlogin Script vorführen, wo man sich anmelden, einloggen und ausloggen kann.

Ihr müsst an dieser Stelle natürlich bedenken, dass es nur ein kleines Script ist, es soll erstmals dazu dienen, dass ihr eine Vorstellung erhaltet, wie ein Community Script funktioniert.

Hier nun auch Teil 2 des Tutorials
Tutorial: Userlogin Script by ntmb [Teil 2]

Diesen Code verwendet ihr bei phpmyadmin um die DB zu erstellen
1
2
3
4
5
6
7
8
9
CREATE TABLE `user` (
`id` INT( 3 ) NOT NULL AUTO_INCREMENT ,
`user` VARCHAR( 10 ) NOT NULL ,
`pw` VARCHAR( 255 ) NOT NULL ,
`time` INT( 11 ) NOT NULL ,
`test1` VARCHAR( 20 ) NOT NULL ,
`test2` VARCHAR( 20 ) NOT NULL ,
PRIMARY KEY ( `id` )
) TYPE = MYISAM ;


config.php

Muss auf jeder Unterseite eingebunden werden, damit ein Zugriff auf die Session und Datenbank besteht.
1
2
3
4
5
6
7
<?
session_start
();

mysql_connect('localhost''user''pw');
mysql_select_db('mysqldatenbank');
$datum=time();
?>


user_add.php

Anmelderscript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?
include 'config.php';
if(
$_SESSION['id']==''){
    if(
$_POST['user']!=''){
        
$eintrag=mysql_fetch_array(mysql_query('SELECT count(id) as anzahl FROM user WHERE user=\''.mysql_real_escape_string($_POST['user']).'\' limit 1'));
        if(
$_POST['pw']=='')
            
$info='Du hast kein Passwort angeben';
        elseif(
$eintrag['anzahl']>0)
            
$info='Der Nick ist schon vergeben';
        else {
            
mysql_query('INSERT INTO user(user,pw,time) VALUES (\''.addslashes($_POST['user']).'\',\''.addslashes($_POST['pw']).'\','.$datum.');');
            
$ok=1;
        }
    }

    if(
$ok!=1){
        echo 
'Hier kannst du dir ein neuen Account erstellen<br>
        <form method="post" action="" style="margin:0;">
        Username <input type="text" name="user" value="'
.$_POST[user].'"><br>
        Passwort <input type="password" name="pw"><br>
        <input type="submit" value="Account anlegen">'
;
        if(
$info!='')
            echo 
'<br><br><b>'.$info.'!</b>';
        echo 
'</form>';
    }
    else{
        echo 
'Dein Account wurde erstellt, du kann dich nun
        <a href="user_login.php">hier</a> einloggen.'
;
    }
}
else{ 
    echo 
'Error, du kannst dich nicht anmelden, da du schon angemeldet bist!';
}
?>


user_login.php

Anmeldedialog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?
include 'config.php';
if(
$_SESSION['id']==''){
    if(
$_POST['user']!=''){
        
$abfrage=mysql_query("SELECT id,pw FROM user WHERE user=\''.mysql_real_escape_string($_POST['user']).'\' limit 1");
        
$eintrag=mysql_num_rows($abfrage);
        
$eintrag1=mysql_fetch_array($abfrage);
        if(
$_POST['pw']=='')
            
$info='Du hast kein Passwort angeben';
        elseif(
$eintrag=0)
            
$info='Der User ist nicht vorhanden'
        elseif(
$eintrag1['pw']!=$_POST['pw'])
            
$info='Du hast ein falsches Passwort angeben';
        else {
            
$_SESSION['id']=$eintrag1['id'];
            
$ok=1;
        }
    }

    if(
$ok!=1){
        echo 
'Hier kannst du dich einloggen<br>
        <form method="post" action="" style="margin:0;">
        Username <input type="text" name="user" value="'
.$_POST['user'].'"><br>
        Passwort <input type="password" name="pw"><br>
        <input type="submit" value="einloggen">'
;
        if(
$info!='')
            echo 
'<br><br><b>'.$info.'!</b>';
        echo 
'</form>';
    }
    else{
        echo 
'Du bist nun eingeloggt! <a href="user_index.php">weiter</a>';
    }
}
else{ 
    echo 
'Error, du kannst dich nicht einloggen, da du es schon bist!';
}
?>


user_index.php

kleine Testseite
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
include 'config.php';
if(
$_SESSION['id']!=''){
    echo 
'Hallo schön das du vorbei schaust :-)<br><br>
    Wenn du willst kannst du dich ja <a href="user_logout.php">hier</a> wieder ausloggen ;-)'
;
}
else {
    echo 
'Sorry du bist aber leider nicht eingeloggt, 
    dies kannst du <a href="user_login.php">hier</a> tun.
    <br><br>
    Du kannst dich ja auch anmelden und zwar <a href="user_add.php">hier</a>. :-)'
;
}
?>


user_logout.php

Session löschen
1
2
3
4
5
6
<?
include 'config.php';
$_SESSION[ids]="";
session_destroy();
header("Location: user_index.php");
?>


So ich hab mir bei diesem Script viel Mühe geben und würde mich sehr freuen, wenn ihr mal euer Kommentar dazu abgeben könntet.

Wenn Fehler enthalten sind, bitte melden, damit das Tutorials bearbeitet werden kann, damit es besser wird und der Community mehr zu Gute kommt.

Mitglieder-Kommentare


#22 von SunnyBoy
Bei mir funktionirt es nicht widjes HLM Smily NR:1
#21 von ntmb
Ich habe das Tutorials überarbeitet. Das Handling des Scriptes müsste nun etwas besser sein und es sind nun auch weniger Sicherheitslücken drin. :-P
Der freundliche Admin aus der Nachbarschaft
Lachecke.de - Dein täglicher Lacher im Internet
Listrank.de - Die ultimative Topliste nach Themen
#20 von Pac
bei mir funz nicht
#19 von ntmb
Du musst bei Date ...\u\m.... schreiben, anstadt ...um.., zumindest müsstest du \um schreiben.
Der freundliche Admin aus der Nachbarschaft
Lachecke.de - Dein täglicher Lacher im Internet
Listrank.de - Die ultimative Topliste nach Themen
#18 von lucas
sagt mal bei mir steht immer als Anmeldedatum seit 09.03.2010 000000m 21:57
kann man da was machen ??
#17 von zerfleischer
Steht ja schon etwas im Forum zu von Eugen.

Am besten ist es du suchst dir einen anderen Hoster. Am besten gleich einen kostenpflichtigen da du die Probleme dort nicht hast Smily NR:8

Die Gymnasiasten sind so blöd.... die rechnen mit Buchstaben
#16 von KröteGAMES
Ich habe ein sehr komisches Problem:
So funktioniert alles super.
Wenn man zB unter
http://kroetegames.bplaced.net/mitglieder/mitglieder_news.php
geht wird der Inhalt ganz normal angezeigt.
Setze ich aber ein www. (also: http://www.kroetegames.bplaced.net/mitglieder/mitglieder_news.php) davor, kommt die Meldung das ich nicht eingeloggt sei!
Man kann es zwar ungehen indem mal halt kein www. angibt aber das ist trotzdem doof!
#15 von chrisboy
aber achtung irgendwie gehen die einstellungen vom Profil noch nicht Smily NR:3
#14 von cplaygames
Es geht, denn ich hab Confixx und da muss ich nach Mysql namen suchen, danke
#13 von cplaygames
Bei mir gehts nich, ich muss doch nur config.php ändern, oder?
Ich habe da nur mysql_connect("localhost","user","pw" geändert Smily NR:5

« 1 2 3 »

Nur registrierte Mitglieder könnten einen Kommentar schreiben.

Melde dich doch ganz einfach an, es ist kostenlos. :-)