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
GELÖST

PHP Login Script Formular soll sich bei falschem Kennwort die Anmeldedaten merken

Frage Entwicklung PHP

Mitglied: gechger

gechger (Level 1) - Jetzt verbinden

29.06.2009, aktualisiert 18:24 Uhr, 4833 Aufrufe, 6 Kommentare

Ein vorhandenes Login Script möchte ich etwas verfeinern, weiss aber nicht wie

Hallo Forum,

zur Zeit arbeite ich an einer kleinen Anwendung. Ein Administrator soll für diese Anwendung Benutzer anlegen dürfen. Ich verwende dieses Script:

[EDIT: Script gelöscht, war das falsche Script. Unten steht das Richtige]

Wenn beim Anlegen des Benutzers die Passwörter nicht übereinstimmen, verschwinden im Formular die eingegebenen Daten Name, Vorname und Nickname. Ich möchte aber gerne, daß diese eingegebenen Daten erhalten bleiben, so daß der Administrator diese nicht noch einmal einpflegen muß. Nur die Kennwörter sollen neu eingegeben werden.

Wie kann ich dasmöglichst einfach realisieren?

Jede Idee hilft weiter.

Schöne Grüße
Christof
Mitglied: Cubic83
29.06.2009 um 18:04 Uhr
Hallo,

warum geht denn ein

01.
 
02.
<input type="username" value="<?=$_SESSION['user'];?>">  
03.
 
in deinem Formular nicht. wäre vielleicht interessant die Datei mit dem Formular zu sehen.
Bitte warten ..
Mitglied: gechger
29.06.2009 um 18:23 Uhr
Hallo Cubic,

viel schlimmer, ich habe die falsche Datei gepostet. Die oben beschriebene Datei checkt ja nur die Anmeldedaten gegen die Datenbank ab. Um neue User hinzu zu fügen verwende ich dieses Script:

01.
<?session_start();?> 
02.
 
03.
<!ENTITY % HTML.Version "-//W3C//DTD HTML 4.01 Frameset//EN" 
04.
  -- Typical usage: 
05.
 
06.
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" 
07.
            "http://www.w3.org/TR/html4/frameset.dtd"
08.
 
09.
<html> 
10.
<head> 
11.
<title>MobilZeit WebTool - User anlegen</title> 
12.
<style type="text/css"
13.
.block {margin-left:8cm; margin-right:8cm} 
14.
 
15.
</style> 
16.
 
17.
</head> 
18.
<body  bgcolor="#E9E9E9"
19.
<font face="Verdana, Arial, Tahoma, Sans Serif" font size="+1" font color = "#595959"
20.
 
21.
<table height="50"  width="996"
22.
<tr > 
23.
<td align="center" width="13.5%"
24.
</td> 
25.
<td align="left" width="86.5%"
26.
<img src="grafik/webtool.jpg" alt="" border="0" width="840" height="110"
27.
</td> 
28.
</tr> 
29.
</table> 
30.
 
31.
<table width="996"
32.
<tr width="996"
33.
<td width="135"></td> 
34.
 
35.
<td><a href="index.php"
36.
<img src="buttons/start.jpg" alt="" border="1" style="border-collapse: collapse;" style="empty-cells: collapse;" style="border-style: outset;"  width="120" height="40" ></a></td> 
37.
<td><a href="erfassen.php"
38.
<img src="buttons/daten erfassen.jpg" alt="" border="1" style="border-collapse: collapse;" style="empty-cells: collapse;" style="border-style: outset;"  width="120" height="40"></a></td> 
39.
<td><a href="aendern.php"
40.
<img src="buttons/daten aendern.jpg" alt="" border="1" style="border-collapse: collapse;" style="empty-cells: collapse;" style="border-style: outset;"  width="120" height="40"></a></td> 
41.
<td><a href="anlegen.php"
42.
<img src="buttons/daten anlegen.jpg" alt="" border="1" style="border-collapse: collapse;" style="empty-cells: collapse;" style="border-style: outset;"  width="120" height="40"></a></td> 
43.
<td><a href="holen.php"
44.
<img src="buttons/daten holen.jpg" alt="" border="1" style="border-collapse: collapse;" style="empty-cells: collapse;" style="border-style: outset;"  width="120" height="40"></a></td> 
45.
<td><a href="drucken.php"
46.
<img src="buttons/daten drucken.jpg" alt="" border="1" style="border-collapse: collapse;" style="empty-cells: collapse;" style="border-style: outset;"  width="120" height="40"></a></td> 
47.
 
48.
<td></td> 
49.
</tr> 
50.
</table> 
51.
<p class="block"
52.
 
53.
Geben Sie die Daten Ihrer Mitarbeiter ein. Benötigt werden der Vorname und Nachname, ein Benutzer-Anmeldename, der nicht identisch mit Vor- oder Nachnamen sein sollte, und ein Kennwort, mit dem sich Ihr Mitarbeiter anmelden kann. 
54.
<br> 
55.
<br> 
56.
 
57.
 
58.
<table> 
59.
<form action="anlegen.php" method="post"
60.
    <tr> 
61.
         <td width="150">Name </td> 
62.
         <td width="175" ><input name="name" size = "20"  ></td> 
63.
    </tr> 
64.
    <tr> 
65.
         <td width="150">Vorname </td> 
66.
         <td width="175" ><input name="vorname" size = "20" ></td> 
67.
    </tr> 
68.
    <tr> 
69.
         <td width="150">Benutzername </td> 
70.
         <td width="175" ><input name="benutzer" size = "20"  ></td> 
71.
    </tr> 
72.
    <tr> 
73.
         <td width="150">Kennwort</td> 
74.
         <td width="175"><input  type ="password" name="pwd" size="8" ></td> 
75.
    </tr> 
76.
    <tr> 
77.
         <td width="150">Kennwort wiederholen</td> 
78.
         <td width="175"><input  type ="password" name="pwd2" size="8" ></td> 
79.
    </tr> 
80.
    <tr> 
81.
         <td width="150" ><input type="submit" value="Benutzer anlegen"></td> 
82.
         <td width="175"><input type="reset" value="Abbrechen"></td> 
83.
    </tr> 
84.
</table> 
85.
<? 
86.
 
87.
$name=$_POST["name"]; 
88.
$vorname=$_POST["vorname"]; 
89.
$nick=$_POST["benutzer"]; 
90.
$pwd=$_POST["pwd"]; 
91.
$pwd2=$_POST["pwd2"]; 
92.
 
93.
$sepwd=md5($pwd);//md5 Hash aus Passwort 
94.
$senick=md5($nick);//md5 Hash aus Kennwort 
95.
$secontrol=md5("123456");//Saltwert für das Kennwort 
96.
$sesum=$sepwd.$secontrol.$senick; //Kombination der Hashwerte 
97.
 
98.
if ( !empty($pwd) && ($pwd == $pwd2)) { 
99.
 
100.
         //Zugang zur Datenbank herstellen 
101.
         $cldb = mysql_connect($_SESSION['host'], $_SESSION['dbuser'], $_SESSION['passwort']); // or die(mysql_error()); 
102.
         mysql_select_db($_SESSION['db']); 
103.
         $sql2 = ("SELECT * FROM ".$_SESSION['tab']." where nick = '$nick' "); 
104.
         $query=mysql_Query ($sql2); 
105.
         @$check= mysql_fetch_array($query); 
106.
 
107.
         $key=$check[3]; 
108.
         $nick2=$check[4]; 
109.
 
110.
if (!empty($check)){ 
111.
	echo "Benutzername existiert bereits!"
112.
113.
else
114.
         $sql="INSERT INTO ".$_SESSION['tab']." (name, vorname, pwd, nick) VALUES ('$name', '$vorname', '$sesum', '$nick')"
115.
         mysql_query($sql); 
116.
         echo "Hallo der Mitarbeiter '$vorname' '$name' wurde erfolgreich mit Anmeldename '$nick' angelegt "
117.
 
118.
119.
120.
if (!empty($pwd) && ($pwd != $pwd2)){ 
121.
 
122.
echo "Die Passwörter stimmen nicht überein!"
123.
124.
echo mysql_error(); 
125.
@mysql_close(); 
126.
unset($key); 
127.
?> 
128.
</p> 
129.
</font> 
130.
</body> 
131.
</style> 
132.
</html> 
133.
<!ENTITY % HTML.Frameset "INCLUDE"
134.
<!ENTITY % HTML4.dtd PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
135.
 
Wenn die Benutzerdaten angelegt werden, habe ich in einer $_Session Variablen nur die Daten des Administrators, der den neuen User anlegen will. Im Formular werden die Daten dann angelegt und bei Fehlern im Kennwort die eingegebenen Werte gelöscht. In meinem Beispiel hatte ich auch schon mit value Werten experimentiert.

Wenn dies zutrifft:
}
if (!empty($pwd) && ($pwd != $pwd2)){

echo "Die Passwörter stimmen nicht überein!";
}

sollen die eingegebenen Daten im Formular erhalten bleiben.
Schöne Grüße
Christof
Bitte warten ..
Mitglied: Cubic83
29.06.2009 um 18:48 Uhr
Also mir fallen da 2 Sachen ein.

1) Wie bereits angedeutet:

01.
 
02.
<input name="benutzer" size = "20"  value="<?=$_POST['benutzer'];?>"> 
03.
 
2) Überprüfung mittels Javascript beim Abschicken überprüfen.

01.
 
02.
<form onsubmit='mySubmit();' (.....) > 
03.
 
04.
 
05.
</form> 
06.
 
07.
<script language="javascript"> 
08.
 
09.
function mySubmit() { 
10.
   return (Document.Forms[0].pwd.text == Document.Forms[0].pwd2.text) 
11.
12.
 
13.
</script> 
14.
 
Achtung: Ich bin schon etwas aus der Materie raus, deswegen keine Syntaxgarantie! Ich denke das Prinzip dürfte aber klar sein. Wenn die Funktion mySubmit true zurückgibt wird das Formular abgeschickt; bei false nicht.



BTW: Du hast kein </form> Tag.

Mit freundlichen Grüßen
Bitte warten ..
Mitglied: gechger
30.06.2009 um 21:01 Uhr
Hi Cubic,

Java kommt nicht in Frage, da das Webtool auch funktionieren muß, wenn Java deaktiviert ist. Das Value funktioniert auch nicht, weil ich dann die Anmeldedaten des Administrators hätte, und nicht die Daten, die angelegt werden sollen.

Ich überlege nun, ob ich bei fehlerhafter Eingabe des Passwortes mittels header: eine neue Seite aufrufe und die $_POST Werte des Formulars dahin übergebe. Aber header: funktioniert ja nur, wenn vorher keine echo Ausgaben erfolgt sind.

Stimmt, habe das form tag vergessen
Das kann aber doch nicht das Problem sein, oder??????

Danke für Deine Ideen
Schöne Grüße
Christof
Bitte warten ..
Mitglied: Cubic83
30.06.2009 um 21:07 Uhr
dann eben ohne Javascript

Wieso soll beim $_POST die Angaben des Admins drin stehen. Das usernamefeld selbst heisst ja "benutzer". $_POST['benutzer'] entspricht also dem Inhalt des Feldes beim Reload. Vorrausgesetzt die gleiche Datei wird beim absenden aufgerufen.
Bitte warten ..
Mitglied: gechger
02.07.2009 um 15:10 Uhr
stimmt, Du hast Recht.

<input name="name" size = "20" value= "<?=$_POST["name"]?>" > So behält das Script die Daten. Ich hatte einen Fehler drin, weil ich $_SESSION["name"] verwendet hatte. Dann bekomme ich natürlich die Administrator Daten angezeigt.

Vielen Dank

Schöne GRüße
Christof
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Windows Server
Windows 10 und Windows SSB 2008 - Login Script greift nicht (21)

Frage von heisenberg4 zum Thema Windows Server ...

PHP
PHP MySQL Login (7)

Frage von Yanmai zum Thema PHP ...

Windows Server
gelöst Login Kennwort für eine ganze Gruppe ändern (14)

Frage von Hendrik2586 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...