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

Sessionbasiertes Login Kennwörter aus Datenbank

Frage Entwicklung PHP

Mitglied: chb1982

chb1982 (Level 2) - Jetzt verbinden

15.02.2006, aktualisiert 06.04.2006, 5174 Aufrufe, 6 Kommentare

Hi,

im Augenblick nutze ich ein Loginsystem, dass ich bei SelfHTML gefunden habe. Funktioniert auch ganz gut.
Aber ich möchte, dass Benutzername und Kennwort aus einer MySQL Datenbank kommen.
Hat jemand eine Idee, wie man das einfach lösen kann? Im Augenblick stehe ich irgendwie auf dem Schlauch.

Hier das Script von SelfHTML
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
session_start();

$username = $_POST['username'];
$passwort = $_POST['passwort'];

$hostname = $_SERVER['HTTP_HOST'];
$path = dirname($_SERVER['PHP_SELF']);

Benutzername und Passwort werden überprüft
if ($username == 'benjamin' && $passwort == 'geheim') {
$_SESSION['angemeldet'] = true;

Weiterleitung zur geschützten Startseite
if ($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1') {
if (php_sapi_name() == 'cgi') {
header('Status: 303 See Other');
}
else {
header('HTTP/1.1 303 See Other');
}
}

header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/index.php');
exit;
}
}
?>
<!DOCTYPE html PUBLIC " -W3CDTD XHTML 1.0 Stric tEN" "http:www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<title>Geschützter Bereich</title>
</head>
<body>
<form action="login.php" method="post">
Username: <input type="text" name="username" /><br />
Passwort: <input type="password" name="passwort" /><br />
<input type="submit" value="Anmelden" />
</form>
</body>
</html>
Mitglied: badrulecracker
15.02.2006 um 16:50 Uhr
Moin,

als ich würde so tun (Einzusetzen bei "//Benutzername und Passwort werden überprüft"):

define('MYSQL_HOST', 'localhost');
define('MYSQL_USER', 'Testbenutzer');
define('MYSQL_PASS', 'Testpasswort');
define('MYSQL_DATABASE', 'datenbank');


@mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR
die("Keine Verbindung zur Datenbank. Fehlermeldung:".mysql_error());
mysql_select_db(MYSQL_DATABASE) OR
die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());

$sql="SELECT benutzername, passwort FROM benutzer WHERE benutzername='".$username."' AND passwort='".$passwort."';";
$result = mysql_query($sql) OR die(mysql_error());
if(mysql_num_rows($result) > 0) $_SESSION['angemeldet'] = true;


mal schauen, so von der logik her sollte das eigentlich funktionieren. Solltest allerdings deine Passwörter nicht im Klartext in der DB speichern. Da hilft md5();

mfg, brc
Bitte warten ..
Mitglied: chb1982
15.02.2006 um 17:18 Uhr
Habe das jetzt so gemacht. Aber so logt er grundsätzlich erfolgreich ein, egal was für ein PW ich eingebe
$username = $_POST['username'];
$passwort = $_POST['passwort'];

$hostname = $_SERVER['HTTP_HOST'];
$path = dirname($_SERVER['PHP_SELF']);

// Benutzername und Passwort werden überprüft
$query = "select count(*) as abc from zugang where benutzername = '".$username."' and kennwort = '".$passwort."'";
$db = mysql_connect('localhost','root','europa');
$res = mysql_db_query ("ae", $query);
$num=mysql_num_rows($res);


if(mysql_num_rows($res) > 0) {
$_SESSION['angemeldet'] = true;
Bitte warten ..
Mitglied: badrulecracker
15.02.2006 um 18:23 Uhr
Moin,

also ich weiss zwar nicht warum du 2x die Anzahl der Datensätze raussuchst, aber wenn du mit count(*) arbeitest, müsste es auch so gehen:

$query = "select count(*) as abc from zugang where benutzername = '".$username."' and kennwort = '".$passwort."'";
$db = mysql_connect('localhost','root','europa');
$res = mysql_db_query ("ae", $query);
$row = mysql_fetch_assoc($res);

if($row['abc'] > 0) $_SESSION['angemeldet'] = true;

cu
Bitte warten ..
Mitglied: Masterofdisaster2
15.02.2006 um 18:49 Uhr
<?php

define('MYSQL_HOST', 'l---.------');
define('MYSQL_USER', '-----------');
define('MYSQL_PASS', '----------');
define('MYSQL_DATABASE', '-------');

if(!@mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS)) {
die("Es konnte keine Verbindung aufgebaut werden");
}

if(!mysql_select_db(MYSQL_DATABASE)) {
die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());
} ?><?



if($_REQUEST['Send'])
{
$Password=md5($_POST['Passwort']); <---Passwort verschlüßelt
$result=mysql_query("SELECT * from users where UserName='$_POST[User]'");
while($row = mysql_fetch_array($result))
{
$username=$row["UserName"];
$userpass=$row["UserPass"];
if($Password==$userpass)
{
define(login,1); <---//sowas wie session damit du keine seite einfach so aufrufen kannst, musste aber dann auf den seiten prüfen.
echo $Passwort;
include("die seite die du haben willst");

}
else
{
echo"Der User und/oder das Passwort wurden nicht gefunden!";
echo?>
<p><a href="dein Link">Zurück zum Login?</a></p>

<?
}
}
}
else
{
?>
</p>
<p>&nbsp; </p>
<form action="link zu dieser seite" method="post">
User <input maxlength="50" name="User" type="text">
Passwort <input maxlength="50" name="Passwort" size="10" type="password">
<input name="Send" type="submit" value="Login">
</form>
<a href="link zur registrier seite">noch nicht Registriert?</a>
<?php
}

?>
Bitte warten ..
Mitglied: NaCkHaYeD
16.02.2006 um 09:11 Uhr
Ich würde es anders aufziehen.

In einer Datenbank ist der Name hinterlegt, dass Passwort mit der md5() Summe.

Auf der ersten Scriptzeile steht session_start(); dadurch bekommst du eine eindeutige Nummer. Ist nun beim einloggen Name und Passwort richtig hinterlegst du in der Spalte "session" diese eindeutige nummer mit session_id(); ebenso die Zeit des einloggens in einer Spalte "Zeit".

in jedem geschützten script prüfst du nun anfangs, ob in irgendeiner Zeile die Session_id hinterlegt ist. Wenn genau ein Datensatz zurück kommt, und die max. Log Zeit nicht überschritten ist, dann refresh du die Zeit und gehst weiter im Script.

Beim ausloggen machst du die Session Nummer in der Datenbank bei dem User platt.

mfg
Thomas

P.S. Bei Interesse lasse ich dir gerne das Script zukommen.
Bitte warten ..
Mitglied: larsson
06.04.2006 um 21:52 Uhr
Hallo thomas.

Mich würde Dein Script sehr interessieren, weil ich im Moment genau mit den gleichen Problemen zu tun habe.
Könntest Du es mir zukommen lassen?

Viele Grüße,
larsson.
Bitte warten ..
Ähnliche Inhalte
Datenbanken
Login Probleme in mysql Datenbank
gelöst Frage von bigbootykillaDatenbanken2 Kommentare

Hi, ich habe hier eine Datenbank auf einer Ubuntu Kiste. Wenn ich mich versuche mit Code: einzuloggen bekomme ich ...

Windows Server
Login Kennwort für eine ganze Gruppe ändern
gelöst Frage von Hendrik2586Windows Server14 Kommentare

Guten Tag an alle. :) Ich will die Kennwörter bestimmter Gruppen (der darin enthaltenen User) im AD zurücksetzen. Leider ...

Datenbanken
Datenbanken
Frage von MahsaaDatenbanken1 Kommentar

Hallo , ich habe folgende Abfrage und möchte ich jetzt die Summe aller Summenfelder abbilden. wie kann ich machen? ...

Vmware
Login an vCenter
gelöst Frage von racer1601Vmware7 Kommentare

Hallo ich habe folgendes Problem: Wir können und nicht mehr über den VSpherClient mit unseren VCenter verbinden. Es kommt ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 19 StundenBatch & Shell8 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 21 StundenHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 1 TagSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...

Windows Server
Sichere Remote Desktop Verbindung wie?
gelöst Frage von nuss33Windows Server11 Kommentare

Hallo zusammen, eins vorweg: Ich besitze einen privaten Windows Server 2008 R2 zu Hause im Netzwerk er wird nicht ...