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, 5087 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();

Mit freundlichen Grüßen, 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.

Mit freundlichen Grüßen
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 ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows 10
Nonstop Login im Sperrbildschirm (4)

Frage von TiCar zum Thema Windows 10 ...

Exchange Server
Exchange 2007 Datenbank restore ohne Exchange zu verändern - SBS2008

Frage von pitamerica zum Thema Exchange Server ...

Datenbanken
Datenbank API Automation

Link von Frank zum Thema Datenbanken ...

Server
gelöst Amazon-IP, Googlebot und wp-login (12)

Frage von NoWoPr zum Thema Server ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Erkennung und -Abwehr
Spam mit eigener Domain (12)

Frage von NoobOne zum Thema Erkennung und -Abwehr ...