DevTrain Startseite Visual Studio 1 Magazin  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren



 

Forum: MySQL | Thema: Re: Benutzer Login erzeugen | Von: G. Guest ( 08.10.2004 11:48)

Zunächst das php-Script "Passwort.php", auf das in der eigene Seite gelinkt werden muß:

<html>
<head>
</head>

<body>
<body text="#000000" bgcolor="#C0C0C0" link="#FF0000" vlink="#0000FF" alink="#FF0000">
<basefont face="Arial" size="3">

<div align="center">
<b>
<font size="+2">
Passwortverwaltung
</font></b></div>
<hr noshade size="3" color=#000000>

<form name="Formular" action="/passwort1.php" method="post">

<table border=0 bordercolor=#000000 cellspacing=2>
<colgroup>
<col width='300'>
<col width='200'>
<col width=' 50'>
<col width='150'>
<col width='150'>
</colgroup>

<?
echo "<td align = 'right'>";
echo "<font size='+2'>";
echo "Ihr Benutzername:</td>";
echo "<td align = 'left'>";
echo "<input type='text' name='uname' size=20 maxlength=20 value=$REMOTE_USER readonly>";
echo "</font></td>";
echo"</tr>";
?>

<td align = "right"><font size="+2">Altes Passwort:</td>
<td align = "left"><input type='text' name='passein' size=8 maxlength=8></font></td>
</tr>

<td align = "right"><font size="+2">Neues Passwort:</td>
<td align = "left"><input type='text' name='newpass' size=8 maxlength=8></font></td>

<td><input type=submit value="Enter"></td>
<td><input type=reset value="Eingaben löschen"></td>
<td><input type="button" name="Zurück" value="Zurück zur Startseite"
onClick="self.location.href='start.htm'"></td>
</tr></table>

<script type="text/javascript">
document.Formular.pnr.focus();
</script>

</form>
<br><br>
</body>
</html>

Und jetzt das Sript "Passwort1.php", daß die zuvor Daten übernimmt und auswertet:

<html>
<head>
</head>

<body>
<body text="#000000" bgcolor="#C0C0C0" link="#FF0000" vlink="#0000FF" alink="#FF0000">
<basefont face="Arial" size="3">

<div align="center">
<b>
<font size="+2">
Passwortverwaltung
</font></b></div>
<hr noshade size="3" color=#000000>

<?
$falt= fopen("d:/server/users.txt","r");
$fneu= fopen("d:/server/users1.txt","w");

while (!feof ($falt))
{
$buffer = fgets($falt, 4096);
$array = split(":",$buffer,3);
list($user1,$passjetzt,$chrt) = $array;
// Suchen der Zeile mit dem eingegebenen User. Durch den readonly-Zusatz in
// passwort.php kann nicht das Passwort für einen anderen User geändert werden.
if($user1 == $uname)
{
// Kontrollabfrage, ob das alte Passwort dem hinterlegten Passwort entspricht
if ($passein == $passjetzt)
{
// Altes Passwort durch neues ersetzen
$eintragneu="".$uname.":".$newpass.":".$chrt."";
$status = "Das Passwort wurde aktualisiert! Sie werden jetzt aufgefordert, ihr neues Passwort einzugeben.";
}
else
{
// Eingabe und "altes" Passwort stimmen demnach nicht überein
$eintragneu="".$uname.":".$passjetzt.":".$chrt."";
$status = "Ihr eingegebenes altes Passwort ist nicht richtig!";
}
fputs($fneu,$eintragneu);
}
else
{
// Wenn Username nicht identisch, nichts ändern
$eintragneu="".$user1.":".$passjetzt.":".$chrt."";
fputs($fneu,$eintragneu);
}
}
fclose($falt);
fclose($fneu);
$dateialt = "d:/server/users.txt";
$dateineu = "d:/server/users1.txt";
copy ($dateineu,$dateialt);
echo "$status<br>";
echo"<br><a href='start.htm'>Zurück</a>";
?>


Hinweise:
Im zu gschützendem Verzeichnis legt man eine .htaccess-Datei an, die auf die users.txt verweist. Z.B.:

AuthType Basic
AuthName "Zugangsschutz"
AuthUserFile d:/server/users.txt
require valid-user
DirectoryIndex start.htm umfang.htm
Options -Indexes


Der Pfad zur users.txt kann entsprechend geändert werden. In dieser besagten users.txt sind die authorisierten Benutzer hinterlegt, z.B.

frank:start
kleibor:start
neugebauer:start

Meldet sich z.B. frank an, muß er das Passwort start eingeben. Er kann dann die in eurem Programm eingebundene Dateien passwort.php aufrufen und sein altes Passwort "start" und ein neues Passwort eingeben.

Beim Absenden des Formulars wird dann im Script erstmal überprüft, ob das alte passwort "start" richtig eingegeben wurde, wenn nein, zurück.

Wenn ja, dann legt das Programm eine neue Datei users1.txt mit allen bisherigen Einträgen und dem neuen Passwort von frank an.

Anschließend wird die Datei users.txt durch die neu erzeugte Datei users1.txt ersetzt. Dadurch findet die .htaccess-Datei wieder die users-Datei und Frank muß sich jetzt mit seinem geändertem Passwort anmelden. Fertig.

Wie gesagt, ggf. noch md5 hinzufügen und flock, damit bei gleichzeitiger Ausführung durch zwei user nichts schief geht. Man kann es auch noch so erweitern, dass bei erstmaligen Zugang mit dem Passwort 'start' dies Passwort vom Anwender geändert werden muß(!) (siehe z.B. SAP/R3). Habe ich jetzt aber keine Lust mehr zu.




Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!

 Betreff:
 Nachricht: Den Beitrag finden Sie nun unter: http://beta.devtrain.de/foren Die Benutzerdaten und Foreninhalte von beta.devtrain.de und www.devtrain.de sind die selben.
Sie können sich dort sogar per RSS über neue Inhalte informieren lassen.
Bei Problemen bitte direkt Mail an asp [AT] ppedv.de.

 Signatur:

  



Login
Username:


Passwort:






Passwort vergessen?

Advanced Developers Conference vom 14.-15. Februar 2011

© Copyright 2003 ppedv AG