Geschützer Bereich usw.... Scripts bauen ;)

  • geschlossen

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

  • Geschützer Bereich usw.... Scripts bauen ;)

    Hallo miteinander ;)

    ich bin jetzt so richtig in da lust ins php weiter vorzustossen *G* jedoch spiel ich gerade an nem admin /backend bereich für meine homepage wo ich die ganzen admin dinger meiner scripts zusammen baue usw.

    ich hab nach der sufu hier das "QuakeNet" gefunden - aber ich bring die scripts einfach nicht zusammen was dort gebaut werden *G+ - hat die jemand mal gebastelst oder bzw. hat sonst jemand eine idee für meine anliegen ;)

    inhalt soll sein:

    admin bereich über user steuerung - soll sich in den vorhanden iframe laden nach möglichkeit - zugang zum admin bereich soll irgendwo durch nen hotspot oder so in der stammseite versteckt sein

    wäre sehr dankbar für vorschläge ;) soll halt so professionell wie möglich aussehen und einfach spass machen es zu nutzen.


    thxxxxxxxxxx im voraus ;)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von alpha-mat ()

  • ähmmm ich will ja net unfreundlich sein aber es steht im post ? ;)

    QuakeNet die scripts ob die schon mal wer gebaut hat oder ob sosnt wer eine idee hat zu guten scripts für Admin Bereich Login system oder so - aber bevorzugt wärs natürlich sowas nach QuakeNet tutorial und eben wies steht unter "inhalt soll sein"


    :rolleyes:
  • Hallo,
    was du brauchst sind PHP Sessions.

    schreib eine Login Seite (Formular), das du dann mit PHP prüfst und aus der MySQL DB ausliest, ob der User die Rechte hat das ACP zu sehen. Wenn du willst kannst du sogar spezielle Rechte vergeben (User A darf keine News schreiben o.ä.).
    Bsp:

    PHP-Quellcode

    1. <?php
    2. session_start(); // EXTREM WICHTIG!!!
    3. // Prüfung deines Formulars mit DB Abfrage...
    4. // Wenn die Prüfung erfolgreich war:
    5. $_SESSION['can_see_acp'] = true; // Hier wird die Session "can_see_acp" auf true gesetzt ;)
    6. // Weiterleitung aufs ACP (wenn vorher keine(!) Ausgabe stattfand kannst du eine Header Weiterleitung machen:
    7. header("Location: admin/index.php");
    8. ?>
    Alles anzeigen


    Auf allen Seiten die geschützt sein sollen, machst du folgendes:

    PHP-Quellcode

    1. <?php
    2. session_start(); // Muss auch vor der ersten Ausgabe stehen
    3. if (!$_SESSION['can_see_acp'])
    4. {
    5. die("No Permission!"); // die() wenn die Session "can_see_acp" nicht besteht
    6. }
    7. else
    8. {
    9. // Dein ACP^^
    10. }
    11. ?>
    Alles anzeigen


    Ansonsten:
    wird dir das PHP Manual sehr hilfreich sein ;)

    mfg
    snip3r

    // EDIT: ich hab damals das QuakeNet Tutorial in manchen Bereichen auch nicht kapiert. Ist für Anfänger teilweise sehr unverständlich geschrieben :)
    Neulinge * Forenregeln * F.A.Q. * Lexikon
    Suchfunktion* IRC * Teamspeak * User helfen User
    Patrioten reden nur davon, dass sie für ihr Land sterben, niemals davon, dass sie für ihr Land töten. (Bertrand Russell)
  • danke für die idee dazu - ich dachte mir schon ich bin dämlich weil ich das quakenet dings net ganz durchblicke paar sachen sind ja verständlich aber bei anderen weiss man net wirklich wie man das in einem file abspeichern soll - ich würds ja gern nachbauen weils ma sympatisch aussieht das dings .. aber irgendwie schaffi es net - daher suchi nach anderen ideen oder einem der das ganz ezeug mal zusammengebaut hat und sich auskennt ;)

    bin um jede hilfe dankbar - weil ich brauch das für ein homepageprojekt ;)

    niemand sonst eine hilfe oder eine idee ?!

    schade :(

    :confused:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Broken Sword () aus folgendem Grund: Doppelpost

  • Also ich hab mal nen Loginscript gebaut: (is nen bissle scheiße aber ich lern auch erst seit 1 woche php ;) )


    Das in login.php

    PHP-Quellcode

    1. <?php
    2. session_start();
    3. $was = $_GET['was'];
    4. if($was == "")
    5. {
    6. $was = "status";
    7. }
    8. if(!isset($_SESSION['name']) and $was=="status")
    9. {
    10. echo "Bitte logge dich ein! <br /> Zum <a href=\"?was=login\" >Login</a>";
    11. }
    12. if(!isset($_SESSION['name']) and $was=="login")
    13. {
    14. echo "
    15. <form action=\"?was=logincheck\" method=\"post\" >
    16. <input type=\"Text\" name=\"name\" /><br />
    17. <input type=\"Password\" name=\"password\" /><br />
    18. <input type=\"Submit\" value=\"Login\" />
    19. </form> ";
    20. }
    21. if(!isset($_SESSION['name']) and $was == "logincheck")
    22. {
    23. $name = $_POST['name'];
    24. $password= $_POST['password'];
    25. $passwordmd5 = md5($password);
    26. if($passwordmd5 == "[I]ÄNDERN!md5 hash des passwordrsÄNDERN[/I]" and $name == "[I]ÄNDERN!usernameÄNDERN![/I]" )
    27. {
    28. $_SESSION['name'] = $name;
    29. echo "Erfolgreich eingelogt! <br /><a href=\"geheim.php\" >Weiter</a>";
    30. }
    31. else
    32. {
    33. echo "Falscher Benutzername/Password!
    34. <br /> Zum <a href=\"?was=login\" >Zurück</a>";
    35. }
    36. }
    37. if(isset($_SESSION['name']) and $was == "status" )
    38. {
    39. echo "Du bist eingelogt! <a href=\"geheim.php\" >Weiter</a>
    40. <br /><a href=\"login.php?was=logout\" >Logout</a>";
    41. }
    42. if(isset($_SESSION['name']) and $was == "logout")
    43. {
    44. session_destroy();
    45. echo "Erfolgreich ausgelogt
    46. <br /><a href=\"?was=status\" >Weiter</a>";
    47. }
    48. if(!isset($_SESSION['name']) and $was == "logout")
    49. {
    50. echo "Du warst nicht eingelogt, also kannst du dich auch nicht
    51. auslogen! <br /><a href=\"?was=status\" >Weiter</a>";
    52. }
    53. ?>
    Alles anzeigen


    und auf die geschützten seiten: (im beispiel geheim.php)

    PHP-Quellcode

    1. <?php
    2. session_start();
    3. if(!isset($_SESSION['name']))
    4. {
    5. echo "Bitte logge dich ein! <br /> Zum <a href=\"login.php?was=login\" >Login</a>";
    6. }
    7. else
    8. {
    9. echo "<h1>Geheimes Zeug</h1>
    10. <p>Das ist Geheim!</p>";
    11. echo "<br /><a href=\"login.php?was=logout\" >Logout</a>";
    12. }
    13. ?>
    Alles anzeigen


    MFG thomannfreak
  • thxx thomann ;)

    meine php kenntnisse sind zwar jetzt schon bisschen älter als 1 woche *g* aber naja *lach*

    wie kann man eigentlihc eine weiterleitung machen ?! sprich wenn man den logout hat - damit er zurück zur login seite ladet ?!

    meine script fürn logout wäre dieses (für modifikationen + verbesserungen wird immer gebeten ;) )

    logout.php

    PHP-Quellcode

    1. <?php
    2. session_start();
    3. include_once('sessionhelpers.inc.php');
    4. echo '<p>Sie sind ';
    5. if ( !logged_in() ) {
    6. echo 'nicht ';
    7. }
    8. echo 'eingeloggt.</p>';
    9. logout();
    10. echo '<p>Sie sind ';
    11. if ( !logged_in() ) {
    12. echo 'nicht ';
    13. }
    14. echo 'eingeloggt.</p>';
    15. echo '<p><a href="login.php">Einloggen</a></p>';
    16. ?>
    Alles anzeigen



    ALso wie gesagt mich störts das das ding bie dem logout hängen bleibt .... perfekt wäre es wenn steht "sie sind ausgeloggt" und es ladet sich zurück auf die login seite z.b. login.php


    thxxx
  • also ich mach Logout weiterleitungen meistens so:

    Quellcode

    1. <?PHP
    2. hier dann die Session killen und evt noch daten in der DB aktualisieren...
    3. ?>
    4. <head>
    5. <meta http-equiv="refresh" content="5; URL=login.php">
    6. </head>
    7. <body>
    8. <h1>Sie wurden erfolgreig Ausgeloggt</h1>
    9. </body>


    wichtig dabei ist, dass die zahl im Content die dauer ist bis die Weiterleitung gemacht wird, also wenn du da 0 reinschreibst, bringt der text unten nichts weil er nicht angezeigt wird, sondern gleich die andere Seite geladen wird¨!

    Lg Jack dan Son Pi
  • Vlt. hilft es dir etwas.
    Meine login.php

    PHP-Quellcode

    1. <?php
    2. session_start();
    3. session_register('admin');
    4. if (!isset($_SESSION['admin']))
    5. {
    6. ?>
    7. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    8. "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    9. <html xmlns="http://www.w3.org/1999/xhtml">
    10. <head>
    11. <title>Login</title>
    12. <style type="text/css">
    13. .error
    14. {
    15. color: #FF0000;
    16. font-weight: bold;
    17. }
    18. .beschreibung
    19. {
    20. color: #333333;
    21. font-size: 0.8em;
    22. }
    23. </style>
    24. </head>
    25. <body>
    26. <?php
    27. if ((isset($_POST['username'])) && (isset($_POST['password'])))
    28. {
    29. // Wenn das Formular abbgeschickt wurde:
    30. require('mysql.php'); // In der mysql.php baust du schon mal die Datenbankverbindung auf.
    31. $query = @mysql_query('SELECT * FROM `admins` WHERE `username` = "'.mysql_real_escape_string($_POST['username']).'" LIMIT 0 , 1');
    32. if (@mysql_num_rows($query) == 0)
    33. {
    34. echo "<p class=\"error\">Username oder Passwort falsch.</p>";
    35. }
    36. else
    37. {
    38. $row = mysql_fetch_object($query);
    39. if (md5($_POST['password']) != $row->password)
    40. {
    41. echo "<p class=\"error\">Username oder Passwort falsch.</p>";
    42. }
    43. else
    44. {
    45. // Passwort und Username stimmen:
    46. $_SESSION['admin'] = true;
    47. // Für jede weitere Berechtigung kannst du eine Session setzen:
    48. /* Bsp.:
    49. $_SESSION['root'] = $row->root;
    50. */
    51. header('Location: admin.php');
    52. }
    53. }
    54. }
    55. ?>
    56. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    57. <p class="beschreibung">Username:</p>
    58. <p><input type="text" name="username" /></p>
    59. <p class="beschreibung">Passwort</p>
    60. <p><input type="text" name="password" /></p>
    61. <p><input type="submit" value="Login" /></p>
    62. </form>
    63. </body>
    64. </html>
    65. <?php
    66. }
    67. else
    68. {
    69. header('Location: admin.php'); // nach Location die Datei angeben, auf die bei schon bestehender Session weitergeleitet werden soll.
    70. }
    71. ?>
    Alles anzeigen


    Als logout Funktion:

    PHP-Quellcode

    1. <?php
    2. function logout()
    3. {
    4. if (!isset($_SESSION['admin']))
    5. {
    6. header('Location: login.php');
    7. }
    8. else
    9. {
    10. foreach ($_SESSION as $ses)
    11. {
    12. $ses = '';
    13. }
    14. session_destroy();
    15. header('Location: logged_out.html');
    16. }
    17. }
    18. ?>
    Alles anzeigen


    Und die logged_out.html würde bei mir so aussehen:

    PHP-Quellcode

    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    2. "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    3. <html xmlns="http://www.w3.org/1999/xhtml">
    4. <head>
    5. <title>Logout Erfolgreich</title>
    6. <style type="text/css">
    7. .success
    8. {
    9. color: navy;
    10. width: 400px;
    11. margin: auto;
    12. }
    13. </style>
    14. </head>
    15. <body>
    16. <div class="success">
    17. <p><img src="http://hosting.freesoft-board.to/files/3ef7caf81259ee89b94ba2163.gif" alt="Bitte warten..." /></p>
    18. <p>Du wurdest erfolgreich ausgeloggt.<br />
    19. Bitte habe einen Moment Geduld, du wirst sofort weitergeleitet.</p>
    20. <p><a href="index.php">Oder klicke hier, wenn du nicht l&auml;nger warten m&ouml;chtest.</a></p>
    21. <meta http-equiv="refresh" content="3; URL=index.php" />
    22. </div>
    23. </body>
    24. </html>
    Alles anzeigen


    Wenn noch Fragen sind, kannst du gerne hier posten, oder schick mir ne PN. Ich kann mir deinen Code auch mal kurz anschauen.

    mfg
    snip3r

    // EDIT:

    Die Seiten müssten dann alle so geschützt werden:

    PHP-Quellcode

    1. <?php
    2. if (!$_SESSION['admin'])
    3. {
    4. die("Keine Berechtigung");
    5. }
    6. else
    7. {
    8. // Geschützter Inhalt.
    9. }
    10. ?>
    Neulinge * Forenregeln * F.A.Q. * Lexikon
    Suchfunktion* IRC * Teamspeak * User helfen User
    Patrioten reden nur davon, dass sie für ihr Land sterben, niemals davon, dass sie für ihr Land töten. (Bertrand Russell)

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

  • hehe danke leute wird ja doch was um meine sorgen zu lösen *G*

    mit der weiterleitung

    content="5; - ist die Zahl eine Angabe in Sekunden oder wie ist die zu verstehen?!


    noch eine frage zum code

    mir würde der codeschnipsl ganz guat gefallen

    <div class="success">
    <p><img src="http://hosting.freesoft-board.to/files/3ef7caf81259ee89b94ba2163.gif" alt="Bitte warten..." /></p>
    <p>Du wurdest erfolgreich ausgeloggt.<br />
    Bitte habe einen Moment Geduld, du wirst sofort weitergeleitet.</p>
    <p><a href="index.php">Oder klicke hier, wenn du nicht l&auml;nger warten m&ouml;chtest.</a></p>
    <meta http-equiv="refresh" content="3; URL=index.php" />
    </div>



    ist es möglich diesen in diese logout.php einzufügen damit es funktioniert und keinen fehler ausgibt am schluss?!

    <?php

    session_start();
    include_once('sessionhelpers.inc.php');

    echo '<p>Sie sind ';
    if ( !logged_in() ) {
    echo 'nicht ';
    }
    echo 'eingeloggt.</p>';

    logout();

    echo '<p>Sie sind ';
    if ( !logged_in() ) {
    echo 'nicht ';
    }
    echo 'eingeloggt.</p>';

    echo '<p><a href="login.php">Einloggen</a></p>';

    ?>


    thxxx leute ;)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von alpha-mat () aus folgendem Grund: teil vergessen oder so

  • @lumpi1988: Damit ist ihm nicht geholfen, google kann jeder.

    @alpha-mat:
    content="5; - ist die Zahl eine Angabe in Sekunden oder wie ist die zu verstehen?!

    So ist es.

    Und wie oft soll ich es noch schreiben, wir wissen nicht wie deine logout() aussieht, also können wir dir auch NICHT helfen! -.-

    Gruß
    Broken Sword
  • du meinst nen screenshoot vom logout oder was braucht ihr ?! *G* ich steh da grad bissi auf da leitung *g+ weil da logout erfolg ja mit dem script ?! (wo ich ja den code reinkopiert habe)*am kopf kratz*G*


    Weil es steht dann nur der satz "Sie sind ausgeloogt." das wars und es wär halt genial wenn man dann so ne umleitung einbauen könnte mit der animation vom Snip3r und dann sollts eigentlihc wieder aufs login retour gehen und bzw. die index seite neu laden (müsste ja von alleine gehen wenn die session dann beendet ist?!)

    ich bin halt php anfänger *ggg* aber das wird sich ja zum glück bessern *G*

    thx für die geduld sword *G*


    p.s. ich könnt mir die dinger ja irgendwo saugen ausm netz aber ich würds halt gern selber bissi kapieren dasi ma in zukunft selbst helfen kann usw. ... :D
  • alpha-mat schrieb:


    ist es möglich diesen in diese logout.php einzufügen damit es funktioniert und keinen fehler ausgibt am schluss?!


    Ja, das dürfte dann so aussehen ;)

    (wenns bei dir net geht, dann nim das leerzeichen vor

    PHP-Quellcode

    1. <?php

    raus :D )

    PHP-Quellcode

    1. <?php
    2. session_start();
    3. include_once('sessionhelpers.inc.php');
    4. echo '<p>Sie sind ';
    5. if ( !logged_in() ) {
    6. echo 'nicht ';
    7. }
    8. echo 'eingeloggt.</p>';
    9. logout();
    10. echo '<p>Sie sind ';
    11. if ( !logged_in() ) {
    12. echo 'nicht ';
    13. }
    14. echo 'eingeloggt.</p>';
    15. echo '<p><a href="login.php">Einloggen</a></p>';
    16. ?>
    17. <div class="success">
    18. <p><img src="http://hosting.freesoft-board.to/files/3ef7caf81259ee89b94ba2163.gif" alt="Bitte warten..." /></p>
    19. <p>Du wurdest erfolgreich ausgeloggt.<br />
    20. Bitte habe einen Moment Geduld, du wirst sofort weitergeleitet.</p>
    21. <p><a href="index.php">Oder klicke hier, wenn du nicht l&auml;nger warten m&ouml;chtest.</a></p>
    22. <meta http-equiv="refresh" content="3; URL=index.php" />
    23. </div>
    Alles anzeigen

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

  • Öhhm thomannfreak...
    Er kann so viele Leerzeichen zwischen PHP-Befehlen haben, wie er will, auch Zeilenumbrüche. Das beeinflusst nicht das Parsen ;) Was du meinst ist eventuelle Leerzeichen VOR <?php, denn dann würde der Header bereits gesendet und man hat schlechte Karten.
    Außerdem ist deine Lösung sehr schlecht, da bei deinem Script IMMER die Meldung erscheint, man habe sich ausgeloggt.

    Muss sagen, man kann sagen, dein Post ist falsch :P

    Gruß
    Broken Sword

    P.S.
    Meta-Tags gehören zwischen <head> und </head> einer Seite ;)
  • gggg broken sword wir schaffen das schon noch *G*

    wie es aussieht habi ja gesagt *G* das ergebnis is ne weisse html seite mit der ausgaben

    Sie sind nicht eingeloggt. *G*

    das logout beschert nur das sich die mysql verbindung canceled und man auf die geschützen seiten nimmer zugreifen kann.

    hmmmmmmmm :o


    PHP-Quellcode

    1. function logout () {
    2. $sql = 'UPDATE users SET UserSession = NULL WHERE UserSession = \'' . session_id() . '\'';
    3. if ( mysql_query($sql) ) {
    4. exit(mysql_error());
    5. }
    6. }
    7. connect();



    maybe hilft ja der codeschnipsel weiter der steckt hinter logout() denk ich sehr stark ;)
  • Na also - geht doch ;)
    Du siehst das exit? Das verursacht die weiße Seite, denn das bricht das Script an der Stelle ab. (Warum da mysql_error() steht verstehe ich nicht, wer das da rein gesetzt hat, hat keine Ahnung vom Programmieren. (1. exit kann man nichts hinzugeben 2. Wenn das query erfolgreich ausgeführt wird, soll ein error angezeigt werden? => Schwachsinn. - Man könnte höchstens ein else hinsetzen und dann die(mysql_error()); schreiben :rolleyes - aber das nur am Rande :D))

    Pack einfach die LogOut Seite VOR dem exit hin (das mysql_error() nimmste raus) (Mit echo oder php-Tag schließen, html code schreiben und php-Tag wieder öffnen)

    Bsp:

    Quellcode

    1. function logout () {
    2. $sql = 'UPDATE users SET UserSession = NULL WHERE UserSession = \'' . session_id() . '\'';
    3. if ( mysql_query($sql) ) echo 'Sie wurden erfolgreich ausgeloggt';
    4. else echo 'Es ist ein Fehler aufgetreten: '.mysql_error();
    5. exit();
    6. }


    Gruß
    Broken Sword
  • Broken Sword schrieb:

    Öhhm thomannfreak...
    Er kann so viele Leerzeichen zwischen PHP-Befehlen haben, wie er will, auch Zeilenumbrüche. Das beeinflusst nicht das Parsen ;) Was du meinst ist eventuelle Leerzeichen VOR <?php, denn dann würde der Header bereits gesendet und man hat schlechte Karten.


    naja das hab ich eig gemeint ;)

    Broken Sword schrieb:


    Außerdem ist deine Lösung sehr schlecht, da bei deinem Script IMMER die Meldung erscheint, man habe sich ausgeloggt.


    das script is ja von ihm, er wollte nur wissen wie man die dinger in eine datei bringet (vom pronzip) am code hab ich nix geändert ;) aber das kann man ja einfach so machen, das der html code in nen echo reinkommt und per if nur ausgegeben wird wenn man sich wirklich ausgelogt hat

    MFg thomannfreak

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von thomannfreak ()

  • Versuchs mal mit "Die kleine Community" (googlen).

    Das ist nen Login-Script auf Rang-Basis, was sich beliebig erweitern und in jede Homepage einbauen läßt.
    Bei eigenen Seiten müssen am Anfang aller Seiten nur ein paar Zeilen eingefügt werden, um diese zu schützen.

    Gruß
    Trekki
  • ich werde mal das zeug ausprobieren ;) dann eine erfolgs oder misserfolgsmeldung reingeben *gggg*

    ich hoffe es klappt dann ;) wäre schon fein weil dann wäre der teil meines projekts erfolgreich ;)


    thxxx in advance

    wie kann ich die "logout function"

    PHP-Quellcode

    1. function logout () {
    2. $sql = 'UPDATE users SET UserSession = NULL WHERE UserSession = \'' . session_id() . '\'';
    3. if ( mysql_query($sql) ) {
    4. exit(mysql_error());
    5. }
    6. }
    7. connect();
    8. ?>


    und danach einen Header

    PHP-Quellcode

    1. header('Location: logged_out.html');


    ausgeben das in ein logout.php script schreiben?!


    dankee

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