Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

php - einfaches login script mit sessions

Mitglied: 29457

29457 (Level 2)

16.09.2006, aktualisiert 23.04.2008, 96389 Aufrufe, 11 Kommentare

Hallo,

Ich weiss, es ist nichts besonderes für die die es können. Aber dadurch das mich Freunde und auch Foren Mitglieder schonmal danach gefragt haben, hab ich hier mal ein einfaches Login scirpt gemacht (d.h. es ist ausbaufähig).

DIe Beschreibung dazu findet im script mittels kommentaren statt.

index.php
PHP-Code:

01.
<? 
02.
//login script 
03.
//session beginnen, immer ganze oben vor html Ausgabe! 
04.
session_start(); 
05.
 
06.
//Passwort und Benutzername wird hier Manuell eingestellt 
07.
//diese Daten musst du anpassen 
08.
$user_name = "test"
09.
$user_pass = "123456"
10.
 
11.
//html ausgabe der head daten einer seite 
12.
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"
13.
<html> 
14.
<head> 
15.
<title>Login script</title> 
16.
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"
17.
</head> 
18.
<body><h1>Login Script</h1>'; 
19.
 
20.
 
21.
//login Funktionen 
22.
//post variablen einfach speichern 
23.
$user = $_POST['user']; 
24.
$pw = $_POST['pw']; 
25.
 
26.
//nun kommen die if abfragen die das ganze relativ sicher machen 
27.
if (isset($user, $pw)) 
28.
29.
    if ($user == "" OR $pw == ""
30.
31.
        echo "<b>Bittefülle beide Felder aus!</b>"
32.
33.
        elseif ($user == $user_name AND $pw == $user_pass
34.
35.
            $_SESSION['user'] = $user
36.
            $_SESSION['pw'] = $pw
37.
            echo "<b>Wunderbar! Dein Login war erfolgreich, du kannst nun <a href=\"index2.php?".sid."\">hier</a> in den Geschützen Bereich</b>"
38.
39.
40.
 
41.
//dann kommt das Formular 
42.
if (!isset($user, $pw)) 
43.
44.
    echo '<form name="login" method="post" action="'.$_SERVER['PHP_SELF'].'"
45.
      User Name: <input type="text" name="user"> User Passwort:  <input type="password" name="pw"
46.
      <input type="submit" name="Submit" value="einloggen"
47.
    </form>'; 
48.
49.
     
50.
 
51.
 
52.
echo '</body> 
53.
</html>'; 
54.
 
index2.php

PHP-Code:
01.
 
02.
//der Geschütze Bereich des Login scripts 
03.
//session beginnen, immer ganze oben vor html Ausgabe! 
04.
session_start(); 
05.
 
06.
//html ausgabe der head daten einer seite 
07.
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"
08.
<html> 
09.
<head> 
10.
<title>Login script</title> 
11.
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"
12.
</head> 
13.
<body><h1>Login Script</h1>'; 
14.
 
15.
//die if abfragen ob der user eingeloggt oder ausgeloggt ist 
16.
if (!isset($_SESSION['user'], $_SESSION['pw'])) 
17.
18.
    echo '<b>Du musst dich erst <a href="index.php">hier</a> einloggen um in den Geschützen Bereich zu kommen!</b>'; 
19.
20.
     
21.
if (isset($_SESSION['user'], $_SESSION['pw'])) 
22.
23.
    echo "<h1>Geschützer Bereich!</h1>"
24.
25.
     
26.
echo '</body> 
27.
</html>'; 
28.
?>
Die session id wird in einem Cookie gespeichert. Fuer die die aber keine erlauben ist es wichtig bei jedem link das sid dran zu hängen

viel spaß damit. Wink
Mitglied: d-skyman
22.10.2006 um 23:37 Uhr
//dann kommt das Formular
if (!isset($user, $pw))
{
echo '<form name="login"
method="post"
action="'.$_SERVER['PHP_SELF'].'">
User Name: <input
type="text"
name="user"> User Passwort:
<input type="password"
name="pw">
<input type="submit"
name="Submit"
value="einloggen">
</form>';
}

Hallöchen,

cooles Script, macht es bestimmt einigen Anfängern leicht, einen login zu verwirklichen!

Kleiner Schönheitsfehler/Verbesserungsvorschlag:

Ich würde die if Abfrage bei dem Formular so gestalten, dass auch wenn der benutzer eine oder beide Angaben vergessen hat, das Formular trotzdem angezeigt wird.

Einfach die Zeile
01.
if (!isset($user, $pw))
durch

01.
if ($user == "" OR $pw == "")
ersetzen.

Falls dann der Benutzer etwas vergisst, steht dort:

Bitte fülle beide Felder aus. - und dann direkt darunter kommt das formular.

Schöne Grüße
David
Bitte warten ..
Mitglied: localx
05.01.2007 um 03:54 Uhr
Und wie sieht ein Logout aus für dieses Login?

mfg marko
Bitte warten ..
Mitglied: d-skyman
07.01.2007 um 22:18 Uhr
Und wie sieht ein Logout aus für dieses
Login?

Für ein Logout könntest Du ein kleines Script basteln, dass im Grunde genommen nur diese beiden Aufgaben übernimmt:
01.
unset($_SESSION["user"]); 
02.
unset($_SESSION["pw"]);
Vorsicht: Niemals unset($_SESSION) ausführen! Dadurch wird die Variable $_SESSION gelöscht und kann nicht verwendet werden, bis Sie durch $_SESSION=array(); wieder initialisiert wurde!

mfg d-skyman
Bitte warten ..
Mitglied: suetterli19
14.04.2007 um 18:19 Uhr
Ich verwende das programm routercontrol aber da mein Router (U.S Robotics MAXg 9108A) nicht in der liste ist möcht ich denn hinzufügen..., aber ich weiss nicht welche HTML-Codes ich dafür verwende für die einzelnen punkte der einstellungen (Router änderung)! könnte mir vielleicht jemand alle benötigten HTML-Codes dafür geben?

mfg suetterli19
Bitte warten ..
Mitglied: Linus2007
12.07.2007 um 13:14 Uhr
Hallo,

Wie kann man denn verhindern das wenn man die index2.php Datei öffnet und darin Text steht das der nicht ohne anmeldung gelesen werden kann ?

mfg Linus

Antworten könnt ihr am besten per ICQ schreiben: 325-639-919
Bitte warten ..
Mitglied: 50921
16.07.2007 um 21:49 Uhr
01.
if (isset($_SESSION['user'], $_SESSION['pw'])) 
02.
03.
    Inhalt index2.php 
04.
 } else die();
Sprich, am Anfang jeder neuen PHP Datei überprüfen ob user und pw gesetzt sind.

Das beste Loginscript ist es nicht, aber naja.
Bitte warten ..
Mitglied: Linus2007
18.07.2007 um 12:23 Uhr
ah ok danke.

Du sagst es ist nicht das beste ! Hast du denn ein besseres was du mir vlt. eventuell geben kannst ?

mfg Linus

ICQ: 325639919
Bitte warten ..
Mitglied: 29457
03.04.2008 um 18:45 Uhr
ah ok danke.

Du sagst es ist nicht das beste ! Hast du
denn ein besseres was du mir vlt. eventuell
geben kannst ?

mfg Linus

ICQ: 325639919

also ich hab zwar kein besseres aber google doch mal danach...
<http://www.php-free.de/Detailed/988.html" hier waere vllt etwas...habs mir aber noch nich richtig angesehen...

Rabbit
Bitte warten ..
Mitglied: d-skyman
03.04.2008 um 19:03 Uhr
Kollege schau mal auf das Datum

Liebe Grüße, David
Bitte warten ..
Mitglied: 29457
04.04.2008 um 13:53 Uhr
Kollege schau mal auf das Datum

Liebe Grüße, David

xD...naja, habs au spaeter ers jesehn...script hat man jezz trozzdem^^

Rabbit
Bitte warten ..
Mitglied: HeikoD
23.04.2008 um 21:05 Uhr
Hey ho,

traue nie den Eingaben des Nutzers

siehe $user = $_POST["user"];

da kann ja alles mögliche drin stehen ?? und das kann dann mal ganz schnell in die Hose gehen siehe SQL - INjektion und so was.

und dann immer auf Vorhandensein prüfen -> also
if (isset($_POST["user]) && !empty($_POST["user"]))
{
$User = escape, und prüfen ;

}






im Ausgangsscript ist IMMER $user set ->also das Script landet immer beim Vergleich mit user_name und password. Weil $User = $_POST["user"]= null oder leer;


Besser: Alle Eingaben dur eine Klasse "Registry Pattern" prüfen lassen. Würde dann so aussehen.
if($PostRegistry->get("user"))
{
$user = $PostRegistry->get("user");
$user ist jetzt escaped und von Sonderzeichen gereinigt und von eventuellen XSS und SQL Injektion entfernt



}

mfg Heiko
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Windows 10 Heimnetzgruppe abgeschaft. Ein Script für einfache Netzwerk - Freigabe im Heimnetzwerk

Anleitung von treeheBatch & Shell3 Kommentare

Anleitung für eine einfache Netzwerkfreigabe unter Windows 10 Wie weiter hab mal ein kleines CMD - Script gebastelt. Womit ...

Hyper-V

Einfaches Powershell Script zum Backup aller HyperV virtuellen Maschinen auf NAS Freigabe

Anleitung von rzlbrnftHyper-V

Die NAS die wir benutzen kann keine Computerkonten in die Schreibberechtigung für eine Freigabe aufnehmen. Da Export-VM immer mit ...

TK-Netze & Geräte

Fritzbox als Session Boarder Controller

Tipp von Spirit-of-EliTK-Netze & Geräte15 Kommentare

Moin zusammen, Es wird zwar auch häufig drauf hingewisen das man auch TK Anlagen an den S0 einer Fritzbox ...

Windows Tools

In Remote Assistance Session Administratorabfrage umgehen.

Tipp von MasterBaiterWindows Tools8 Kommentare

Szenario: Man nutzt Remote Assistance (MS Lync\SCCM Client Center Tool\TeamViewer) und möchte nun z.B. CMD als Administrator beim User ...

Neue Wissensbeiträge
SAN, NAS, DAS
QNAP NAS Datenschutz-Loop nach Firmware-Update
Tipp von vanTast vor 5 StundenSAN, NAS, DAS

Moin, im allgemeinen Trend seine geänderten Datenschutzbedingungen den Kunden zukommen zu lassen kam die Firma QNAP auf die glorreiche ...

Datenschutz
DSGVO Datenschutzgesetz
Anleitung von 1Werner1 vor 6 StundenDatenschutz4 Kommentare

Moin, ja was ist das, da ist die DSGVO Datenschutzverordnung. Wie das Gesetz gibt es schon 2 Jahre? Nun ...

CPU, RAM, Mainboards
Neverending story
Tipp von keine-ahnung vor 1 TagCPU, RAM, Mainboards1 Kommentar

Da kommt man mit dem fixen gar nicht mehr hinterher und die CPU erreichen wieder Rechenleistungen im Bereich des ...

Multimedia & Zubehör
AVM Fritz USB WLAN Sticks schneller einschalten
Tipp von NetzwerkDude vor 3 TagenMultimedia & Zubehör4 Kommentare

Die AVM Fritz WLAN Sticks haben in der Firmware 2 Modis: Einmal als Massenspeicher und einmal als WLAN Netzwerkkarte ...

Heiß diskutierte Inhalte
PHP
Nach Umzug zu 1und1 bekomme ich beim Eintrag in die DB Tabelle folgenden Fehler
gelöst Frage von jensgebkenPHP35 Kommentare

INSERT command denied to user 'dbo45342345342231244'@'112.127.102.073' for table 'orders'

LAN, WAN, Wireless
Powerline über zwei Stockwerke optimieren
Frage von DultusLAN, WAN, Wireless31 Kommentare

Guten Morgen liebes Forum, ich hätte einmal eine Frage bezüglich Powerline Adapter: Mein Problem ist seit gestern präsent, da ...

Windows Userverwaltung
Problem mit Benutzerprofil
Frage von lieferscheinWindows Userverwaltung24 Kommentare

Guten Tag liebe Community, folgendes Problem habe ich: User meldet sich auf Client A an - sein Homelaufwerk verbindet. ...

Rechtliche Fragen
DSGVO - Impressum und Datenschutz auf Anmeldeseiten notwendig?
Frage von StefanKittelRechtliche Fragen20 Kommentare

Hallo, was mit gerade eingefallen ist. Muss man auf Anmeldeseiten auch ein Impressum und Datenschutzhinweis haben? Auch hier wird ...