Hallo Leute,
Ich habe ein Administrationsbereich bei dem man Administratoren verwalten kann. Das ganze basiert auf einer Text-Datenbanken. Nun ist es so, dass beim hinzufügen eines neuen Admins alles problemlos funktioniert. Aber wenn ich einen vorhandenen Administartor bearbeite und den Namen mit einem Namen mit Bindestrich "-" ersetze, wird seltsamerweise in der Text-DB der letzte Datensatz an/ bzw. abgeschnitten. Woran könnte das liegen?
Hier mein Code:
Alles anzeigen
Danke schon mal!
KMD
Ich habe ein Administrationsbereich bei dem man Administratoren verwalten kann. Das ganze basiert auf einer Text-Datenbanken. Nun ist es so, dass beim hinzufügen eines neuen Admins alles problemlos funktioniert. Aber wenn ich einen vorhandenen Administartor bearbeite und den Namen mit einem Namen mit Bindestrich "-" ersetze, wird seltsamerweise in der Text-DB der letzte Datensatz an/ bzw. abgeschnitten. Woran könnte das liegen?
Hier mein Code:
Quellcode
- <?php
- //User eintragen
- if($action == 1)
- {
- $user = str_replace(";;", ";", $user);
- if($user == "")
- {
- $meldung = "Fehler: Sie müssen einen User-Namen eingeben !";
- }
- else
- {
- if($password == "")
- {
- $meldung = "Fehler: Sie müssen ein Passwort eingeben !";
- }
- else
- {
- if($password2 == "")
- {
- $meldung = "Fehler: Sie müssen das Passwort bestätigen !";
- }
- else
- {
- if($password != $password2)
- {
- $meldung = "Fehler: Die eingegebenen Passwörter stimmen nicht überein !";
- }
- else
- {
- if($level == "")
- {
- $meldung = "Fehler: Sie müssen ein Berechtigungs-Level eingeben !";
- }
- else
- {
- $eintrag = "true";
- }
- }
- }
- }
- }
- //Überprüft ob der User-Name bereits eingetragen wurden
- $db_admins = file ($userfile);
- while (list ($line_num, $line) = each ($db_admins))
- {
- $datensatz_admins = explode(";;",$line);
- if($datensatz_admins[1] == $user)
- {
- $meldung = "Fehler: Dieser User-Name ist in der Datenbank bereits vorhanden und wird nicht erneut eingetragen !";
- $eintrag = "false";
- }
- }
- if ($eintrag == "true")
- {
- //Datensätze eintragen
- $id = uniqid ("");
- $datum = date("d.m.Y H:i:s");
- $password = md5($password);
- $datei = fopen($userfile, "a+");
- flock($datei,2);
- fputs($datei, "".$id.";;".$user.";;".$password.";;".$level.";;".$datum.";;\n");
- flock($datei,3);
- fclose($datei);
- //Erfolgsmeldung ausgeben
- $meldung = "Der User \"$user\" wurde erfolgreich eingetragen.";
- // Variablen als leer definieren damit nach dem Registrieren keine daten im Formular stehen
- $user="";
- $password="";
- $password2="";
- $level="";
- }
- }
- //user bearbeiten
- if($action == 2)
- {
- $user = str_replace(";;", ";", $user);
- if($user == "")
- {
- $meldung = "Fehler: Sie müssen einen User-Namen eingeben !";
- $action = "bearbeiten";
- }
- else
- {
- if($password == "")
- {
- $meldung = "Fehler: Sie müssen ein Passwort eingeben !";
- $action = "bearbeiten";
- }
- else
- {
- if($password2 == "")
- {
- $meldung = "Fehler: Sie müssen das Passwort bestätigen !";
- $password=""; // Wenn Passwörter falsch sind werden sie zurückgesetzt
- $action = "bearbeiten";
- }
- else
- {
- if($password != $password2)
- {
- $meldung = "Fehler: Die eingegebenen Passwörter stimmen nicht überein !";
- $password=""; // Wenn Passwörter falsch sind werden sie zurückgesetzt
- $action = "bearbeiten";
- }
- else
- {
- if($level == "")
- {
- $meldung = "Fehler: Sie müssen ein Berechtigungs-Level eingeben !";
- $action = "bearbeiten";
- }
- else
- {
- $eintrag = "true";
- }
- }
- }
- }
- }
- if ($eintrag == "true")
- {
- $db_admins = file ($userfile);
- while (list ($line_num, $line) = each ($db_admins))
- {
- $datensatz_admins = explode(";;",$line);
- $dbpassword = $datensatz_admins[2];
- if($datensatz_admins[0] == $user_id)
- {
- $datei = fopen("$userfile", "r" );
- $inhalt = fread( $datei, filesize($userfile));
- fclose($datei);
- $line=quotemeta($line);
- //wenn altes passwort nicht gleich neues passwort, dann neu verschlüsseln
- if ($dbpassword != $password)
- {
- $password = md5($password);
- }
- $string = "".$user_id.";;".$user.";;".$password.";;".$level.";;".$datum.";;\n";
- $replace = ereg_replace($line, $string, $inhalt);
- $datei = fopen($userfile, "w+");
- flock($datei,2);
- fputs($datei, $replace, filesize($userfile));
- flock($datei,3);
- fclose($datei);
- //Erfolgsmeldung ausgeben
- $meldung = "Die Änderungen für den User \"$user\" wurde erfolgreich gespeichert !";
- $erfolg = "1";
- // Variablen als leer definieren damit nach dem Registrieren keine daten mehr im Formular stehen
- $user="";
- $password="";
- $password2="";
- $level="";
- break;
- }
- }
- if($erfolg != "1")
- {
- $meldung = "Fehler: Der User-Name \"$user\" kann in der Datenbank nicht gefunden werden !";
- $action = "bearbeiten";
- }
- }
- }
- //user löschen
- if($action == 3)
- {
- $db_admins = file ($userfile);
- while (list ($line_num, $line) = each ($db_admins))
- {
- $datensatz_admins = explode(";;",$line);
- if($datensatz_admins[0] == $user_id)
- {
- $datei = fopen("$userfile", "r" );
- $inhalt = fread( $datei, filesize($userfile));
- fclose($datei);
- $line=quotemeta($line);
- $string = "";
- $replace = ereg_replace($line, $string, $inhalt);
- $datei = fopen($userfile, "w+");
- flock($datei,2);
- fputs($datei, $replace, filesize($userfile));
- flock($datei,3);
- fclose($datei);
- //Erfolgsmeldung ausgeben
- $meldung = "Der User \"$username\" wurde erfolgreich entfernt.";
- $erfolg = "1";
- break;
- }
- }
- if($erfolg != "1")
- {
- $meldung = "Fehler: Der User-Name \"$username\" kann in der Datenbank nicht gefunden werden !";
- }
- }
- ?>
-
- <?PHP echo $meldung; ?>
-
- <?php if($action != "bearbeiten")
- {
- ?>
- <table width="100%" border="0" cellpadding="2" cellspacing="2">
- <tr>
- <td bgcolor="#E9E9E9" class="border"> <strong>Neuer Administrations-User eintragen</strong></td>
- </tr>
- </table>
- <table width="100%" border="0" cellspacing="2" cellpadding="2">
- <tr>
- <td valign="top" class="border">
- <form action="newsletter_admin_benutzerrechte.php" method="post">
-
- <table border="0" align="center" cellpadding="2" cellspacing="2">
- <tr>
- <td align="right">User-Name:</td>
- <td><input name="user" type="text" class="textfelder" id="user" style="width:210px;" value="<?PHP echo"$user"; ?>"></td>
- </tr>
- <tr>
- <td align="right">Passwort:</td>
- <td><input name="password" type="password" class="textfelder" style="width:210px;" value="<?PHP echo"$password"; ?>"></td>
- </tr>
- <tr>
- <td align="right">Passwort bestätigen:</td>
- <td><input name="password2" type="password" class="textfelder" style="width:210px;" value="<?PHP echo"$password2"; ?>"></td>
- </tr>
- <tr>
- <td align="right">Level:</td>
- <td><select class="textfelder" name="level" id="level">
- <option value=""></option>
- <?php
- $db_admin_level = file($userlevelsfile);
- while (list ($line_num, $line) = each ($db_admin_level))
- {
- $datensatz_admin_level = explode(";;",$line);
- ?>
- <option value="<?php echo $datensatz_admin_level[0]; ?>" <?php if ($level == $datensatz_admin_level[0]) { echo "selected";} ?>><?php echo $datensatz_admin_level[0]; ?></option>
- <?php
- }
- ?>
- </select></td>
- </tr>
- <tr>
- <td> </td>
- <td><input name="Abschicken" type="submit" class="sendbutton" value="Eintragen">
- <input type="reset" name="Submit" class="sendbutton" value="Zurücksetzen">
- <input type="hidden" name="action" value="1"></td>
- </tr>
- </table>
-
- </form>
- </td>
- </tr>
- </table>
- <?php
- }
- if($action == "bearbeiten")
- {
- ?>
- <table width="100%" border="0" cellpadding="2" cellspacing="2">
- <tr>
- <td bgcolor="#E9E9E9" class="border"> <strong>Administrations-User Bearbeiten</strong></td>
- </tr>
- </table>
- <table width="100%" border="0" cellspacing="2" cellpadding="2">
- <tr>
- <td valign="top" class="border">
-
- <?php
- //show user
- $db_admins = file($userfile);
- while (list ($line_num, $line) = each ($db_admins))
- {
- $datensatz_admins = explode(";;",$line);
- if($datensatz_admins[0] == $user_id)
- {
- $user_id = $datensatz_admins[0];
- $user = $datensatz_admins[1];
- $password = $datensatz_admins[2];
- $level = $datensatz_admins[3];
- $datum = $datensatz_admins[4];
- }
- }
- ?>
- <table border="0" align="center" cellpadding="2" cellspacing="2">
- <form action="newsletter_admin_benutzerrechte.php" method="post">
- <tr>
- <td align="right">User-ID:</td>
- <td><?php
- {
- echo $user_id;
- }
- ?>
- </td>
- </tr>
- <tr>
- <td align="right">User-Name:</td>
- <td><?php
- if ($user == "admin")
- {
- echo "admin";
- echo "<input type=\"hidden\" name=\"user\" value=\"admin\">";
- }
- else
- {
- ?>
- <input name="user" type="text" class="textfelder" id="user" style="width:210px;" value="<?PHP echo"$user"; ?>">
- <?php
- }
- ?></td>
- </tr>
- <tr>
- <td align="right">Passwort:</td>
- <td><input name="password" type="password" class="textfelder" style="width:210px;" value="<?PHP echo"$password"; ?>"></td>
- </tr>
- <tr>
- <td align="right">Passwort bestätigen:</td>
- <td><input name="password2" type="password" class="textfelder" style="width:210px;" value="<?PHP echo"$password"; ?>"></td>
- </tr>
- <tr>
- <td align="right">Level:</td>
- <td>
- <?php if ($user == "admin")
- {
- echo $level;
- echo "<input type=\"hidden\" name=\"level\" value=\"$level\">";
- }
- else
- {
- ?>
- <select class="textfelder" name="level" id="level">
- <option value=""></option>
- <?php
- $db_admin_level = file($userlevelsfile);
- while (list ($line_num, $line) = each ($db_admin_level))
- {
- $datensatz_admin_level = explode(";;",$line);
- ?>
- <option value="<?php echo $datensatz_admin_level[0]; ?>" <?php if ($level == $datensatz_admin_level[0]) { echo "selected";} ?>><?php echo $datensatz_admin_level[0]; ?></option>
- <?php
- }
- ?>
- </select>
- <?php
- }
- ?></td>
- </tr>
- <tr>
- <td align="right">Registrierungsdatum:</td>
- <td><?php
- {
- echo $datum;
- }
- ?>
- </td>
- </tr>
- <tr>
- <td> </td>
- <td><input name="Abschicken" type="submit" class="sendbutton" value="Speichern" style="width:100px;"> <input type="reset" name="Submit" class="sendbutton" value="Zurücksetzen" style="width:100px;">
- <input type="hidden" name="user_id" value="<?PHP echo"$user_id"; ?>">
- <input type="hidden" name="datum" value="<?PHP echo"$datum"; ?>">
- <input type="hidden" name="action" value="2"></td>
- </tr>
- </form>
- <form action="newsletter_admin_benutzerrechte.php" method="post">
- <tr>
- <td> </td>
- <td><input type="submit" name="Submit" class="sendbutton" value="Abbrechen" style="width:100px;"></td>
- </tr>
- </form>
- </table>
-
- </td>
- </tr>
- </table>
- <?php
- }
- ?>
-
- <table width="100%" border="0" cellspacing="2" cellpadding="2">
- <tr>
- <td bgcolor="#E9E9E9" class="border"> <strong>Administrations-User Administrieren</strong></td>
- </tr>
- </table>
- <table width="100%" border="0" cellspacing="2" cellpadding="2">
- <tr>
- <td valign="top" class="border">Die Passwörter wurden verschlüsselt (Hash5-Verschlüsselung) und können daher nicht angezeigt werden !<br><br>
- <table width="100%" border="0" cellpadding="2" cellspacing="2">
- <tr>
- <td bgcolor="#CCCCCC"> <strong>User-ID</strong></td>
- <td bgcolor="#CCCCCC"> <strong>Name</strong></td>
- <td bgcolor="#CCCCCC"> <strong>Password (Hash5-Verschlüsselung)</strong></td>
- <td bgcolor="#CCCCCC"> <strong>Level</strong></td>
- <td bgcolor="#CCCCCC"> <strong>Registrierungsdatum</strong></td>
- <td bgcolor="#CCCCCC"> <strong>Bearbeiten</strong></td>
- <td bgcolor="#CCCCCC"> <strong>Löschen</strong></td>
- </tr>
- <?php
- //show user
- $db_admins = file($userfile);
- asort($db_admins);
- while (list ($line_num, $line) = each ($db_admins))
- {
- $datensatz_admins = explode(";;",$line);
- ?>
- <tr onMouseOver="this.style.backgroundColor='#E9E9E9';" onMouseOut="this.style.backgroundColor='';">
- <td> <?php echo $datensatz_admins[0]; ?></td>
- <td> <?php echo $datensatz_admins[1]; ?></td>
- <td> <?php echo $datensatz_admins[2]; ?></td>
- <td> <?php echo $datensatz_admins[3]; ?></td>
- <td> <?php echo $datensatz_admins[4]; ?></td>
- <td><form method="post" action="newsletter_admin_benutzerrechte.php">
- <input type="submit" class="sendbutton" value="Bearbeiten">
- <input type="hidden" name="username" value="<?php echo $datensatz_admins[1]; ?>">
- <input type="hidden" name="user_id" value="<?php echo $datensatz_admins[0]; ?>">
- <input type="hidden" name="datum" value="<?php echo $datensatz_admins[4]; ?>">
- <input type="hidden" name="action" value="bearbeiten">
- </form></td>
- <td><form method="post" action="newsletter_admin_benutzerrechte.php" onSubmit="return UserLoeschen()">
- <input type="submit" class="sendbutton" value="Löschen" <?php if ($datensatz_admins[1] == "admin") { echo "disabled=\"1\""; } ?>>
- <input type="hidden" name="username" value="<?php echo $datensatz_admins[1]; ?>">
- <input type="hidden" name="user_id" value="<?php echo $datensatz_admins[0]; ?>">
- <input type="hidden" name="datum" value="<?php echo $datensatz_admins[4]; ?>">
- <input type="hidden" name="action" value="3">
- </form></td>
- </tr>
- <?php
- }
- ?>
- </table>
- </td>
- </tr>
- </table>
Danke schon mal!
KMD