Probleme mit Text-Datenbank

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Probleme mit Text-Datenbank

    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:

    Quellcode

    1. <?php
    2. //User eintragen
    3. if($action == 1)
    4. {
    5. $user = str_replace(";;", ";", $user);
    6. if($user == "")
    7. {
    8. $meldung = "Fehler: Sie müssen einen User-Namen eingeben !";
    9. }
    10. else
    11. {
    12. if($password == "")
    13. {
    14. $meldung = "Fehler: Sie müssen ein Passwort eingeben !";
    15. }
    16. else
    17. {
    18. if($password2 == "")
    19. {
    20. $meldung = "Fehler: Sie müssen das Passwort bestätigen !";
    21. }
    22. else
    23. {
    24. if($password != $password2)
    25. {
    26. $meldung = "Fehler: Die eingegebenen Passwörter stimmen nicht überein !";
    27. }
    28. else
    29. {
    30. if($level == "")
    31. {
    32. $meldung = "Fehler: Sie müssen ein Berechtigungs-Level eingeben !";
    33. }
    34. else
    35. {
    36. $eintrag = "true";
    37. }
    38. }
    39. }
    40. }
    41. }
    42. //Überprüft ob der User-Name bereits eingetragen wurden
    43. $db_admins = file ($userfile);
    44. while (list ($line_num, $line) = each ($db_admins))
    45. {
    46. $datensatz_admins = explode(";;",$line);
    47. if($datensatz_admins[1] == $user)
    48. {
    49. $meldung = "Fehler: Dieser User-Name ist in der Datenbank bereits vorhanden und wird nicht erneut eingetragen !";
    50. $eintrag = "false";
    51. }
    52. }
    53. if ($eintrag == "true")
    54. {
    55. //Datensätze eintragen
    56. $id = uniqid ("");
    57. $datum = date("d.m.Y H:i:s");
    58. $password = md5($password);
    59. $datei = fopen($userfile, "a+");
    60. flock($datei,2);
    61. fputs($datei, "".$id.";;".$user.";;".$password.";;".$level.";;".$datum.";;\n");
    62. flock($datei,3);
    63. fclose($datei);
    64. //Erfolgsmeldung ausgeben
    65. $meldung = "Der User \"$user\" wurde erfolgreich eingetragen.";
    66. // Variablen als leer definieren damit nach dem Registrieren keine daten im Formular stehen
    67. $user="";
    68. $password="";
    69. $password2="";
    70. $level="";
    71. }
    72. }
    73. //user bearbeiten
    74. if($action == 2)
    75. {
    76. $user = str_replace(";;", ";", $user);
    77. if($user == "")
    78. {
    79. $meldung = "Fehler: Sie müssen einen User-Namen eingeben !";
    80. $action = "bearbeiten";
    81. }
    82. else
    83. {
    84. if($password == "")
    85. {
    86. $meldung = "Fehler: Sie müssen ein Passwort eingeben !";
    87. $action = "bearbeiten";
    88. }
    89. else
    90. {
    91. if($password2 == "")
    92. {
    93. $meldung = "Fehler: Sie müssen das Passwort bestätigen !";
    94. $password=""; // Wenn Passwörter falsch sind werden sie zurückgesetzt
    95. $action = "bearbeiten";
    96. }
    97. else
    98. {
    99. if($password != $password2)
    100. {
    101. $meldung = "Fehler: Die eingegebenen Passwörter stimmen nicht überein !";
    102. $password=""; // Wenn Passwörter falsch sind werden sie zurückgesetzt
    103. $action = "bearbeiten";
    104. }
    105. else
    106. {
    107. if($level == "")
    108. {
    109. $meldung = "Fehler: Sie müssen ein Berechtigungs-Level eingeben !";
    110. $action = "bearbeiten";
    111. }
    112. else
    113. {
    114. $eintrag = "true";
    115. }
    116. }
    117. }
    118. }
    119. }
    120. if ($eintrag == "true")
    121. {
    122. $db_admins = file ($userfile);
    123. while (list ($line_num, $line) = each ($db_admins))
    124. {
    125. $datensatz_admins = explode(";;",$line);
    126. $dbpassword = $datensatz_admins[2];
    127. if($datensatz_admins[0] == $user_id)
    128. {
    129. $datei = fopen("$userfile", "r" );
    130. $inhalt = fread( $datei, filesize($userfile));
    131. fclose($datei);
    132. $line=quotemeta($line);
    133. //wenn altes passwort nicht gleich neues passwort, dann neu verschlüsseln
    134. if ($dbpassword != $password)
    135. {
    136. $password = md5($password);
    137. }
    138. $string = "".$user_id.";;".$user.";;".$password.";;".$level.";;".$datum.";;\n";
    139. $replace = ereg_replace($line, $string, $inhalt);
    140. $datei = fopen($userfile, "w+");
    141. flock($datei,2);
    142. fputs($datei, $replace, filesize($userfile));
    143. flock($datei,3);
    144. fclose($datei);
    145. //Erfolgsmeldung ausgeben
    146. $meldung = "Die Änderungen für den User \"$user\" wurde erfolgreich gespeichert !";
    147. $erfolg = "1";
    148. // Variablen als leer definieren damit nach dem Registrieren keine daten mehr im Formular stehen
    149. $user="";
    150. $password="";
    151. $password2="";
    152. $level="";
    153. break;
    154. }
    155. }
    156. if($erfolg != "1")
    157. {
    158. $meldung = "Fehler: Der User-Name \"$user\" kann in der Datenbank nicht gefunden werden !";
    159. $action = "bearbeiten";
    160. }
    161. }
    162. }
    163. //user löschen
    164. if($action == 3)
    165. {
    166. $db_admins = file ($userfile);
    167. while (list ($line_num, $line) = each ($db_admins))
    168. {
    169. $datensatz_admins = explode(";;",$line);
    170. if($datensatz_admins[0] == $user_id)
    171. {
    172. $datei = fopen("$userfile", "r" );
    173. $inhalt = fread( $datei, filesize($userfile));
    174. fclose($datei);
    175. $line=quotemeta($line);
    176. $string = "";
    177. $replace = ereg_replace($line, $string, $inhalt);
    178. $datei = fopen($userfile, "w+");
    179. flock($datei,2);
    180. fputs($datei, $replace, filesize($userfile));
    181. flock($datei,3);
    182. fclose($datei);
    183. //Erfolgsmeldung ausgeben
    184. $meldung = "Der User \"$username\" wurde erfolgreich entfernt.";
    185. $erfolg = "1";
    186. break;
    187. }
    188. }
    189. if($erfolg != "1")
    190. {
    191. $meldung = "Fehler: Der User-Name \"$username\" kann in der Datenbank nicht gefunden werden !";
    192. }
    193. }
    194. ?>
    195. &nbsp;
    196. <?PHP echo $meldung; ?>
    197. &nbsp;
    198. <?php if($action != "bearbeiten")
    199. {
    200. ?>
    201. <table width="100%" border="0" cellpadding="2" cellspacing="2">
    202. <tr>
    203. <td bgcolor="#E9E9E9" class="border">&nbsp;<strong>Neuer Administrations-User eintragen</strong></td>
    204. </tr>
    205. </table>
    206. <table width="100%" border="0" cellspacing="2" cellpadding="2">
    207. <tr>
    208. <td valign="top" class="border">
    209. <form action="newsletter_admin_benutzerrechte.php" method="post">
    210. &nbsp;
    211. <table border="0" align="center" cellpadding="2" cellspacing="2">
    212. <tr>
    213. <td align="right">User-Name:</td>
    214. <td><input name="user" type="text" class="textfelder" id="user" style="width:210px;" value="<?PHP echo"$user"; ?>"></td>
    215. </tr>
    216. <tr>
    217. <td align="right">Passwort:</td>
    218. <td><input name="password" type="password" class="textfelder" style="width:210px;" value="<?PHP echo"$password"; ?>"></td>
    219. </tr>
    220. <tr>
    221. <td align="right">Passwort&nbsp;bestätigen:</td>
    222. <td><input name="password2" type="password" class="textfelder" style="width:210px;" value="<?PHP echo"$password2"; ?>"></td>
    223. </tr>
    224. <tr>
    225. <td align="right">Level:</td>
    226. <td><select class="textfelder" name="level" id="level">
    227. <option value=""></option>
    228. <?php
    229. $db_admin_level = file($userlevelsfile);
    230. while (list ($line_num, $line) = each ($db_admin_level))
    231. {
    232. $datensatz_admin_level = explode(";;",$line);
    233. ?>
    234. <option value="<?php echo $datensatz_admin_level[0]; ?>" <?php if ($level == $datensatz_admin_level[0]) { echo "selected";} ?>><?php echo $datensatz_admin_level[0]; ?></option>
    235. <?php
    236. }
    237. ?>
    238. </select></td>
    239. </tr>
    240. <tr>
    241. <td>&nbsp;</td>
    242. <td><input name="Abschicken" type="submit" class="sendbutton" value="Eintragen">
    243. <input type="reset" name="Submit" class="sendbutton" value="Zur&uuml;cksetzen">
    244. <input type="hidden" name="action" value="1"></td>
    245. </tr>
    246. </table>
    247. &nbsp;
    248. </form>
    249. </td>
    250. </tr>
    251. </table>
    252. <?php
    253. }
    254. if($action == "bearbeiten")
    255. {
    256. ?>
    257. <table width="100%" border="0" cellpadding="2" cellspacing="2">
    258. <tr>
    259. <td bgcolor="#E9E9E9" class="border">&nbsp;<strong>Administrations-User Bearbeiten</strong></td>
    260. </tr>
    261. </table>
    262. <table width="100%" border="0" cellspacing="2" cellpadding="2">
    263. <tr>
    264. <td valign="top" class="border">
    265. &nbsp;
    266. <?php
    267. //show user
    268. $db_admins = file($userfile);
    269. while (list ($line_num, $line) = each ($db_admins))
    270. {
    271. $datensatz_admins = explode(";;",$line);
    272. if($datensatz_admins[0] == $user_id)
    273. {
    274. $user_id = $datensatz_admins[0];
    275. $user = $datensatz_admins[1];
    276. $password = $datensatz_admins[2];
    277. $level = $datensatz_admins[3];
    278. $datum = $datensatz_admins[4];
    279. }
    280. }
    281. ?>
    282. <table border="0" align="center" cellpadding="2" cellspacing="2">
    283. <form action="newsletter_admin_benutzerrechte.php" method="post">
    284. <tr>
    285. <td align="right">User-ID:</td>
    286. <td><?php
    287. {
    288. echo $user_id;
    289. }
    290. ?>
    291. </td>
    292. </tr>
    293. <tr>
    294. <td align="right">User-Name:</td>
    295. <td><?php
    296. if ($user == "admin")
    297. {
    298. echo "admin";
    299. echo "<input type=\"hidden\" name=\"user\" value=\"admin\">";
    300. }
    301. else
    302. {
    303. ?>
    304. <input name="user" type="text" class="textfelder" id="user" style="width:210px;" value="<?PHP echo"$user"; ?>">
    305. <?php
    306. }
    307. ?></td>
    308. </tr>
    309. <tr>
    310. <td align="right">Passwort:</td>
    311. <td><input name="password" type="password" class="textfelder" style="width:210px;" value="<?PHP echo"$password"; ?>"></td>
    312. </tr>
    313. <tr>
    314. <td align="right">Passwort&nbsp;bestätigen:</td>
    315. <td><input name="password2" type="password" class="textfelder" style="width:210px;" value="<?PHP echo"$password"; ?>"></td>
    316. </tr>
    317. <tr>
    318. <td align="right">Level:</td>
    319. <td>
    320. <?php if ($user == "admin")
    321. {
    322. echo $level;
    323. echo "<input type=\"hidden\" name=\"level\" value=\"$level\">";
    324. }
    325. else
    326. {
    327. ?>
    328. <select class="textfelder" name="level" id="level">
    329. <option value=""></option>
    330. <?php
    331. $db_admin_level = file($userlevelsfile);
    332. while (list ($line_num, $line) = each ($db_admin_level))
    333. {
    334. $datensatz_admin_level = explode(";;",$line);
    335. ?>
    336. <option value="<?php echo $datensatz_admin_level[0]; ?>" <?php if ($level == $datensatz_admin_level[0]) { echo "selected";} ?>><?php echo $datensatz_admin_level[0]; ?></option>
    337. <?php
    338. }
    339. ?>
    340. </select>
    341. <?php
    342. }
    343. ?></td>
    344. </tr>
    345. <tr>
    346. <td align="right">Registrierungsdatum:</td>
    347. <td><?php
    348. {
    349. echo $datum;
    350. }
    351. ?>
    352. </td>
    353. </tr>
    354. <tr>
    355. <td>&nbsp;</td>
    356. <td><input name="Abschicken" type="submit" class="sendbutton" value="Speichern" style="width:100px;">&nbsp;&nbsp;<input type="reset" name="Submit" class="sendbutton" value="Zur&uuml;cksetzen" style="width:100px;">
    357. <input type="hidden" name="user_id" value="<?PHP echo"$user_id"; ?>">
    358. <input type="hidden" name="datum" value="<?PHP echo"$datum"; ?>">
    359. <input type="hidden" name="action" value="2"></td>
    360. </tr>
    361. </form>
    362. <form action="newsletter_admin_benutzerrechte.php" method="post">
    363. <tr>
    364. <td>&nbsp;</td>
    365. <td><input type="submit" name="Submit" class="sendbutton" value="Abbrechen" style="width:100px;"></td>
    366. </tr>
    367. </form>
    368. </table>
    369. &nbsp;
    370. </td>
    371. </tr>
    372. </table>
    373. <?php
    374. }
    375. ?>
    376. &nbsp;
    377. <table width="100%" border="0" cellspacing="2" cellpadding="2">
    378. <tr>
    379. <td bgcolor="#E9E9E9" class="border">&nbsp;<strong>Administrations-User Administrieren</strong></td>
    380. </tr>
    381. </table>
    382. <table width="100%" border="0" cellspacing="2" cellpadding="2">
    383. <tr>
    384. <td valign="top" class="border">Die Passwörter wurden verschlüsselt (Hash5-Verschlüsselung) und können daher nicht angezeigt werden !<br><br>
    385. <table width="100%" border="0" cellpadding="2" cellspacing="2">
    386. <tr>
    387. <td bgcolor="#CCCCCC">&nbsp;<strong>User-ID</strong></td>
    388. <td bgcolor="#CCCCCC">&nbsp;<strong>Name</strong></td>
    389. <td bgcolor="#CCCCCC">&nbsp;<strong>Password (Hash5-Verschlüsselung)</strong></td>
    390. <td bgcolor="#CCCCCC">&nbsp;<strong>Level</strong></td>
    391. <td bgcolor="#CCCCCC">&nbsp;<strong>Registrierungsdatum</strong></td>
    392. <td bgcolor="#CCCCCC">&nbsp;<strong>Bearbeiten</strong></td>
    393. <td bgcolor="#CCCCCC">&nbsp;<strong>L&ouml;schen</strong></td>
    394. </tr>
    395. <?php
    396. //show user
    397. $db_admins = file($userfile);
    398. asort($db_admins);
    399. while (list ($line_num, $line) = each ($db_admins))
    400. {
    401. $datensatz_admins = explode(";;",$line);
    402. ?>
    403. <tr onMouseOver="this.style.backgroundColor='#E9E9E9';" onMouseOut="this.style.backgroundColor='';">
    404. <td>&nbsp;<?php echo $datensatz_admins[0]; ?></td>
    405. <td>&nbsp;<?php echo $datensatz_admins[1]; ?></td>
    406. <td>&nbsp;<?php echo $datensatz_admins[2]; ?></td>
    407. <td>&nbsp;<?php echo $datensatz_admins[3]; ?></td>
    408. <td>&nbsp;<?php echo $datensatz_admins[4]; ?></td>
    409. <td><form method="post" action="newsletter_admin_benutzerrechte.php">
    410. <input type="submit" class="sendbutton" value="Bearbeiten">
    411. <input type="hidden" name="username" value="<?php echo $datensatz_admins[1]; ?>">
    412. <input type="hidden" name="user_id" value="<?php echo $datensatz_admins[0]; ?>">
    413. <input type="hidden" name="datum" value="<?php echo $datensatz_admins[4]; ?>">
    414. <input type="hidden" name="action" value="bearbeiten">
    415. </form></td>
    416. <td><form method="post" action="newsletter_admin_benutzerrechte.php" onSubmit="return UserLoeschen()">
    417. <input type="submit" class="sendbutton" value="L&ouml;schen" <?php if ($datensatz_admins[1] == "admin") { echo "disabled=\"1\""; } ?>>
    418. <input type="hidden" name="username" value="<?php echo $datensatz_admins[1]; ?>">
    419. <input type="hidden" name="user_id" value="<?php echo $datensatz_admins[0]; ?>">
    420. <input type="hidden" name="datum" value="<?php echo $datensatz_admins[4]; ?>">
    421. <input type="hidden" name="action" value="3">
    422. </form></td>
    423. </tr>
    424. <?php
    425. }
    426. ?>
    427. </table>
    428. </td>
    429. </tr>
    430. </table>
    Alles anzeigen


    Danke schon mal!

    KMD