Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 5146 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
Windows Server
gelöst Domänen Account mit SMB Zugang für einfache Geräte (ohne Login-Möglichkeit) (2)

Frage von kpieper zum Thema Windows Server ...

Datenbanken
Wie ICD-10 Datenbank aufbauen (9)

Frage von Herbrich19 zum Thema Datenbanken ...

CMS
gelöst PhpMyAdmin Login-Seite wird nicht dargestellt (3)

Frage von Static zum Thema CMS ...

Neue Wissensbeiträge
Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(6)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(40)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Heiß diskutierte Inhalte
Windows 10
gelöst Windows 10 Home "Netzlaufwerk nicht bereit" (19)

Frage von Oggy01 zum Thema Windows 10 ...

DNS
gelöst Komplette TLD Überschreiben bzw eigene Definieren (10)

Frage von Herbrich19 zum Thema DNS ...

Exchange Server
gelöst RU 17 Exchange 2010 . Erfahrungen? (10)

Frage von keine-ahnung zum Thema Exchange Server ...

Datenbanken
gelöst MySQL Zeiterfassungs-Problematik (wer ist eingecheckt) (9)

Frage von NativeMode zum Thema Datenbanken ...