PHP/MySQL-Login - Register Script mit Adminfunktion

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

  • PHP/MySQL-Login - Register Script mit Adminfunktion

    Hallo Forum,

    ich habe ein Tutorial als Grundlage genommen von php-einfach.de/tuts_mysql_login.php und etwas erweitert. Ich würde die Admin-Funktion aber gerne über die vorhandene Datenbank aufrufen können und in das Login-Script somit eine Rang-Funktion einbauen. Leider habe ich keine Ahnung, wie das gehen würde. Auch würde ich mich freuen, wenn Ihr das Script mal auf Fehler und Sicherheitslöcher testen würdet.

    Über Lösungsvorschläge und Denkansätze würde ich mich sehr freuen.

    Tron
    Dateien
    • tlogin.zip

      (35,01 kB, 255 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von tron ()

  • Benutzergruppe: MySQL-Feld is_admin ENUM('0','1'); (DEFAULT '0')


    Benutzergruppe feststellen:

    Quellcode

    1. function isAdmin($userid){ $r = sql_irgendwas("SELECT is_admin FROM users WHERE userid = ...");
    2. return ($r[0]["is_admin"] == '1') ? TRUE : FALSE;
    3. }



    Logindaten via de.php.net/features.http-auth empfangen

    Login überprüfen

    Prüfen ob is_admin = 1

    Fertig

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von philippgerard ()

  • Ah, ok, danke für den Ansatz. Aber ich habe noch ein weiteres Problem. Irgendwie wird bei mir die Variable "id" nicht richtig per get übergeben und ich finden den Fehler nicht:

    admin.php:

    Quellcode

    1. <?php
    2. include("./config.php");
    3. ?>
    4. <table border=0 cellspacing=1 cellpadding=2 width=900>
    5. <tr>
    6. <td bgcolor=#C0C0C0 background="border.png"><font face="verdana" size=2>ID</td>
    7. <td bgcolor=#C0C0C0 background="border.png"><font face="verdana" size=2>User</td>
    8. <td bgcolor=#C0C0C0 background="border.png"><font face="verdana" size=2>IP</td>
    9. <td bgcolor=#C0C0C0 background="border.png"><font face="verdana" size=2>eMail</td>
    10. <td bgcolor=#C0C0C0 background="border.png"><font face="verdana" size=2>Passwort (md5)</td>
    11. <td bgcolor=#C0C0C0 background="border.png"><font face="verdana" size=2>Reg.-Datum</td>
    12. <td bgcolor=#C0C0C0 background="border.png"><font face="verdana" size=2>Reg.-Zeit</td>
    13. <td bgcolor=#C0C0C0 background="border.png"><font face="verdana" size=2>Edit</td>
    14. <td bgcolor=#C0C0C0 background="border.png"><font face="verdana" size=2>Del</td>
    15. </tr>
    16. <?php
    17. $sql = "SELECT * FROM members ORDER BY id ASC";
    18. $ausgabe=mysql_query($sql);
    19. while ($members = mysql_fetch_object ($ausgabe))
    20. {
    21. ?>
    22. <form method="GET" action="member">
    23. <tr>
    24. <td><font face="verdana" size=2><?php echo($members->id); ?></td>
    25. <td><font face="verdana" size=2><?php echo($members->username); ?></td>
    26. <td><font face="verdana" size=2><?php echo($members->ip); ?></td>
    27. <td><font face="verdana" size=2><?php echo($members->email); ?></td>
    28. <td><font face="verdana" size=2><?php echo($members->passwort); ?></td>
    29. <td><font face="verdana" size=2><?php echo($members->date); ?></td>
    30. <td><font face="verdana" size=2><?php echo($members->time); ?></td>
    31. <td><font face="verdana" size=2><?php print "<a href=\"useredit.php&id=$members->id\">Edit</a>"; ?></td>
    32. <td><font face="verdana" size=2><?php print "<a href=\"userdelete.php&id=$members->id\">Del</a>"; ?></td>
    33. </tr>
    34. </form>
    35. <?php
    36. }
    37. ?>
    38. </table>
    Alles anzeigen


    useredit.php:

    Quellcode

    1. <?php
    2. include("./config.php");
    3. $sql = "SELECT * FROM members ORDER BY id ASC";
    4. ////////////////////////////////////////
    5. ///// Hier nehmen wir die ID entgegen///
    6. ////////////////////////////////////////
    7. $id = $_GET['id'];
    8. $sql = "SELECT * FROM members WHERE id = '$id'";
    9. $ausgabe = mysql_query($sql);
    10. $data = mysql_fetch_array($ausgabe);
    11. ?>
    12. <center>
    13. <font face="verdana" size=2>
    14. <font size=+3><b>User editieren</b></font>
    15. <br /><br />
    16. <form action="usereditaction.php" method="post">
    17. <table border=0 cellspacing=2 cellpadding=2>
    18. <tr><td><font face="verdana" size=2>
    19. ID:</td><td><input type="text" name="username" size="24" value="<?php echo $data['id']; ?>">
    20. </td></tr>
    21. <tr><td><font face="verdana" size=2>
    22. User:</td><td><input type="text" name="username" size="24" value="<?php echo $data['username']; ?>">
    23. </td></tr>
    24. <tr><td><font face="verdana" size=2>
    25. eMail:</td><td><input type="text" name="username" size="24" value="<?php echo $data['email']; ?>">
    26. </td></tr>
    27. <tr><td><font face="verdana" size=2>
    28. Passwort:</td><td><input type="text" name="username" size="24" value="<?php echo $data['passwort']; ?>">
    29. </td></tr>
    30. <tr><td><font face="verdana" size=2>
    31. IP:</td><td><input type="text" name="username" size="24" value="<?php echo $data['ip']; ?>">
    32. </td></tr>
    33. <tr><td><font face="verdana" size=2>
    34. Reg.-Datum:</td><td><input type="text" name="username" size="24" value="<?php echo $data['date']; ?>">
    35. </td></tr>
    36. <tr><td><font face="verdana" size=2>
    37. Reg.-Zeit:</td><td><input type="text" name="username" size="24" value="<?php echo $data['time']; ?>">
    38. </td></tr></table>
    39. <input type="submit" value="User editieren">
    40. <input type="hidden" name="id" value="<?php echo $data['id'] ?>" />
    41. </form>
    42. <?php
    43. $result = mysql_query($sql) OR die("Query: <pre>".$sql."</pre>\n". "Beschreibung: ".mysql_error());
    44. ?>
    Alles anzeigen


    Wenn ich in der useredit.php zum Test:

    Quellcode

    1. $id = "1";


    schreibe, dann liest er mir die Daten korrekt ein von ID 1

    Tron
  • Hallo dynambee,

    dank Dir, wieder etwas gelernt. MySQL ist immer noch nicht so mein Ding aber langsam geht`s voran. Also für Tipps bin ich immer dankbar oder für Tricks, wie man es besser machen kann. Die HTML-Formatierungen kommen noch raus. Das wird dann alles über einen Header und ner CSS-Datei geregelt.

    Das ganze sieht jetzt so aus und funktioniert:

    useradmin.php:

    Quellcode

    1. <?php
    2. include("./config.php");
    3. ?>
    4. <center>
    5. <font face="verdana" size=2>
    6. <font size=+3><b>Admin</b></font>
    7. <br /><br />
    8. <table border=0 cellspacing=1 cellpadding=2 width=900>
    9. <tr>
    10. <td bgcolor=#C0C0C0 background="border.png"><font face="verdana" size=2>ID</td>
    11. <td bgcolor=#C0C0C0 background="border.png"><font face="verdana" size=2>User</td>
    12. <td bgcolor=#C0C0C0 background="border.png"><font face="verdana" size=2>IP</td>
    13. <td bgcolor=#C0C0C0 background="border.png"><font face="verdana" size=2>eMail</td>
    14. <td bgcolor=#C0C0C0 background="border.png"><font face="verdana" size=2>Passwort (md5)</td>
    15. <td bgcolor=#C0C0C0 background="border.png"><font face="verdana" size=2>Reg.-Datum</td>
    16. <td bgcolor=#C0C0C0 background="border.png"><font face="verdana" size=2>Reg.-Zeit</td>
    17. <td bgcolor=#C0C0C0 background="border.png"><font face="verdana" size=2>Edit</td>
    18. <td bgcolor=#C0C0C0 background="border.png"><font face="verdana" size=2>Del</td>
    19. </tr>
    20. <?php
    21. $sql = "SELECT * FROM members ORDER BY id ASC";
    22. $ausgabe=mysql_query($sql);
    23. while ($members = mysql_fetch_object ($ausgabe))
    24. {
    25. ?>
    26. <form method="GET" action="useredit">
    27. <tr>
    28. <td><font face="verdana" size=2><?php echo($members->id); ?></td>
    29. <td><font face="verdana" size=2><?php echo($members->username); ?></td>
    30. <td><font face="verdana" size=2><?php echo($members->ip); ?></td>
    31. <td><font face="verdana" size=2><?php echo($members->email); ?></td>
    32. <td><font face="verdana" size=2><?php echo($members->passwort); ?></td>
    33. <td><font face="verdana" size=2><?php echo($members->date); ?></td>
    34. <td><font face="verdana" size=2><?php echo($members->time); ?></td>
    35. <td><font face="verdana" size=2><?php print '<a href="useredit.php?id='.$members->id.'">Edit</a>'; ?></td>
    36. <td><font face="verdana" size=2><?php print '<a href="userdelete.php?&id='.$members->id.'">Del</a>'; ?></td>
    37. </tr>
    38. </form>
    39. <?php
    40. }
    41. ?>
    42. </table>
    Alles anzeigen


    useredit.php:

    Quellcode

    1. <?php
    2. include("./config.php");
    3. $sql = "SELECT * FROM members ORDER BY id ASC";
    4. ////////////////////////////////////////
    5. ///// Hier nehmen wir die ID entgegen///
    6. ////////////////////////////////////////
    7. $id = $_GET['id'];
    8. $sql = "SELECT * FROM members WHERE id = '$id'";
    9. $ausgabe = mysql_query($sql);
    10. $data = mysql_fetch_array($ausgabe);
    11. ?>
    12. <center>
    13. <font face="verdana" size=2>
    14. <font size=+3><b>User editieren</b></font>
    15. <br /><br />
    16. <form action="uedit.php" method="post">
    17. <table border=0 cellspacing=2 cellpadding=2>
    18. <tr><td><font face="verdana" size=2>
    19. ID:</td><td><font face="verdana" size=2><?php echo $data['id']; ?>
    20. </td></tr>
    21. <tr><td><font face="verdana" size=2>
    22. User:</td><td><input type="text" name="username" size="24" value="<?php echo $data['username']; ?>">
    23. </td></tr>
    24. <tr><td><font face="verdana" size=2>
    25. eMail:</td><td><input type="text" name="email" size="24" value="<?php echo $data['email']; ?>">
    26. </td></tr>
    27. <tr><td><font face="verdana" size=2>
    28. Passwort:</td><td><input type="text" name="passwort" size="24" value="<?php echo $data['passwort']; ?>">
    29. </td></tr>
    30. <tr><td><font face="verdana" size=2>
    31. IP:</td><td><input type="text" name="ip" size="24" value="<?php echo $data['ip']; ?>">
    32. </td></tr>
    33. <tr><td><font face="verdana" size=2>
    34. Reg.-Datum:</td><td><input type="text" name="date" size="24" value="<?php echo $data['date']; ?>">
    35. </td></tr>
    36. <tr><td><font face="verdana" size=2>
    37. Reg.-Zeit:</td><td><input type="text" name="time" size="24" value="<?php echo $data['time']; ?>">
    38. </td></tr></table>
    39. <input type="submit" value="User editieren">
    40. <input type="hidden" name="id" value="<?php echo $data['id'] ?>" />
    41. </form>
    Alles anzeigen


    uedit.php:

    Quellcode

    1. <?php
    2. include("./config.php");
    3. $sql = "SELECT * FROM members ORDER BY id ASC";
    4. $id = $_POST["id"];
    5. $username = $_POST["username"];
    6. $email = $_POST['email'];
    7. $passwort = $_POST['passwort'];
    8. $ip = $_POST['ip'];
    9. $date = $_POST['date'];
    10. $time = $_POST['time'];
    11. if (!get_magic_quotes_gpc()) {
    12. $username = addslashes($username);
    13. $email = addslashes($email);
    14. $passwort = addslashes($passwort);
    15. $ip = doubleval($ip);
    16. $date = doubleval($date);
    17. $time = doubleval($time);
    18. }
    19. $sql="UPDATE members SET username = '".$username."', email = '".$email."', passwort = '".$passwort."', ip = '".$ip."', date = '".$date."', time = '".$time."' WHERE id = ".$id;
    20. echo '<center><font face="verdana" size=2>Benutzer '.$_POST['username'].' mit der ID '.$_POST['id'].' wurde erfolgreich bearbeitet';
    21. echo '<br /><br /><a href="useradmin.php">zurück</a>';
    22. $result = mysql_query($sql) OR die("Query: <pre>".$sql."</pre>\n". "Beschreibung: ".mysql_error());
    23. ?>
    Alles anzeigen


    userdelete.php:

    Quellcode

    1. <?php
    2. include("./config.php");
    3. $sql = "SELECT * FROM members ORDER BY id ASC";
    4. $id = $_GET["id"];
    5. echo '<center><font face="verdana" size=2>Benutzer mit der ID '.$_GET['id'].' erfolgreich gelöscht';
    6. $sql = "DELETE FROM `members` WHERE `members`.`id` =$id LIMIT 1";
    7. echo '<br /><br /><a href="useradmin.php">zurück</a>';
    8. $result = mysql_query($sql) OR die("Query: <pre>".$sql."</pre>\n". "Beschreibung: ".mysql_error());
    9. ?>
    Alles anzeigen


    Tron