Ausgabe an bestimmter Stelle?!Forum » Webzone » PHP & MySQL » Ausgabe an bestimmter Stelle?!
-
23.07.2012 um 11:59 Uhr
Hallu :-)
Da ein behobenes Problem in php selten allein kommt(...)
Habe ich dieses Mal eine Frage bei der mir hoffentlich Jemand helfen kann:
Ich habe ein Login also mit name und PW, welches ich an beliebiger Stelle im Index meiner Site eingebaut habe.
Nun mchte ich aber, dass man bei eingabe - sei es nun richtig oder falsch an der Stelle zur Memberarea gelaabgt bzw eine fehlermeldung erhlt an der sich ebend sonst auch mein restlicher Content ffnet.
Ich verwende das Login-Script von Giatu (Ich hatte mich in einem vorherigen Posting geirrt und meine ich htte es hierher...)
Es sieht so aus:
<?php session_start(); // Startet die Session include("header.php"); include("db.php"); include("functions.inc.php"); if(isset($_REQUEST["submit"])) { // Wenn Formular abgeschickt if(exist("mitglieder WHERE name = '".strip_tags($_REQUEST["name"])."' AND passwort = '".md5($_REQUEST["passwort"])."'") && anzahl("login WHERE ip = '".getenv("REMOTE_ADDR")."' AND erfolgreich = 'nein' AND timestamp > '".(time()-60*30)."'") < 4) { // Wenn Mitglied mit dem Namen und Passwort existiert! und wenn keine falschen logins in den letzten 30 Min. Wieso? um die Seite sicherer zu machen sonst knnen bruteforcer leicht hacken! $eintragen = mysql_query("INSERT INTO login (name, ip, timestamp, erfolgreich) VALUES ('".strip_tags($_REQUEST["name"])."', '".getenv("REMOTE_ADDR")."', '".time()."', 'ja')"); // Eintrag in Login! $abfrage = "SELECT id FROM mitglieder WHERE name = '".strip_tags($_REQUEST["name"])."' LIMIT 0,1"; $ergebnis = mysql_query($abfrage); while($row = mysql_fetch_object($ergebnis)) { $_SESSION["login"] = $row->id; // Loggt einen ein! } echo "<meta http-equiv=\"refresh\" content=\"0; URL=memberarea.php\">"; // Weiterleitung zur Memberarea } else { // Wenn falsch eingeloggt $eintragen = mysql_query("INSERT INTO login (name, ip, timestamp, erfolgreich) VALUES ('".strip_tags($_REQUEST["name"])."', '".getenv("REMOTE_ADDR")."', '".time()."', 'nein')"); // Eintrag in Login! ?> Login schlug fehl. <?php } } else { // Formular -> ?> <form action=login.php method=post> <table width=90%> <tr> <td width=50%> <b>Name:</b> </td> <td width=50%> <input type="text" name="name"> </td> </tr> <tr> <td width=50%> <b>Passwort:</b> </td> <td width=50%> <input type="password" name="passwort"> </td> </tr> <tr> <td width=100% colspan=2> <input type="submit" value="Login" name="submit"> </td> </tr> </table> </form> <?php } include("footer.php"); ?>
Ich hoffe mir kann Jemand weiterhelfen. Und nur noch nebenschlich aber nicht unbedingt erforderlich: Wenn man eingeloggt ist soll da wo das Login Kstechen ist dann spter ein *Du bist eingeloggt* ( oder sonstiger hnlicher Keksbrei) stehen.
Ich wrde mich ber Hilfe sehr freuen.
Alles Liebe~Serenade
Der Beitrag wurde insgesamt 1 mal editiert, zuletzt 23.07.2012 um 11:59 Uhr ... -
23.07.2012 um 13:08 Uhr
Probier es doch mal so aus:
<?php if(!isset($_SESSION["login"])) { ?> <form action="login.php" method="post"> <table width="100%" cellpadding="0" cellspacing="0"> <tr> <td><label for="name">Name:</label></td> <td align="right"><input type="text" name="name" id="name" size="15" /></td> </tr> <tr> <td><label for="passwort">PW:</label></td> <td align="right"><input type="password" name="passwort" id="passwort" size="15" /></td> </tr> <tr> <td><label for="bleiben">Bleiben?</label> <input type="checkbox" name="bleiben" value="1" /></td> <td align="right"><input type="submit" value="Login" /></td> </tr> </table> </form> <?php } else { refresh(); ?> <a href="logout.php">Logout</a> <?php } ?>
Ich wei nur nicht ob es auch bei der ersten Version des Login-System von Delite geht. Da ich die 2. Version von ihr frher verwendet hatte. -
23.07.2012 um 13:18 Uhr
Dieser Beitrag wurde leider geloescht!
Der Beitrag wurde insgesamt 1 mal editiert, zuletzt 23.07.2012 um 13:25 Uhr ... -
23.07.2012 um 13:29 Uhr
Hey erstmal Danke :-)
Hab das jetzt mal ausprobiert, funkt leider auch nicht.
Irgendwas mache ich wohl falsch.
Hmm also das mit der Checkbox dauerhaft angemeldet bleiben ist ne tolle Idee...muss man sich nicht imemr neu einloggen.
Aber das Hauptproblem liegt da darin dass ich das Login spter auf ne Seitenleiste ziehen will und der Inhalt soll dann in meinem Standardcontent erscheinen.*grbel*
ja das hier ist das Login Script von Delite ...mir scheint du kennst dich besser damit aus als ich, vielleicht kannst du mir das nen bissle nher bringen ich blicke da einfach nicht wirklich durch.
Es fngt schon damit an, dass ich die Dateien alle in einem Unterordner habe und schon nicht mehr wei wie ich die links zu setzten habe.
Fragen ber Fragen *gg*
edit: Hmm hab das mal ausprobiert...wenn ics anstelle des Vorherigen Logons packt wirft er mir nen Fehlercode aus...fehlendes Zeichen etc..
Der Beitrag wurde insgesamt 1 mal editiert, zuletzt 23.07.2012 um 13:33 Uhr ... -
24.07.2012 um 20:30 Uhr
Ich knnte dir ja mal die Originalzip-Datein dir schicken wo ich habe.
-
26.07.2012 um 08:56 Uhr
Gerne
Vielleicht hilft es ja.
Aber nur wenn du jetzt nicht das Delite Login meinst *bin grad etwas durcheinander welches du jetzt meintest*
weil das gibts ja auf ner Seite komplett.
Aber, ich bin ja fr jede Hilfe Dankbar.
-
29.07.2012 um 00:47 Uhr
Hallo,
du musst lediglich ne seperate Datei anlegen, mit der du die Formulardaten auswertest, und die rufst du dann in deinem Content-Breich auf,
sofern das Formular abgeschickt wurde.
Bei erfolgreichem Login leitest du dann einfach auf die Memberarea weiter,
sollte das nicht der Fall sein, gibst eben die Fehlermeldung aus...
Liebe Gruesse
Alice
... { signatur } ... -
29.07.2012 um 11:14 Uhr
Zitat von Alice:
du musst lediglich ne seperate Datei anlegen, mit der du die Formulardaten auswertest
Erstmal THX fr deine Hilfe :-)
Uhm?? Von sowas oben genannten verstehe ich dann glaube ichleider nicht allzu viel.
Ich hab mein Formular nun versucht ein wenig auszutricksen...
Wenn die eingabe richtig ist simuliere ich einen parallelen Index mit memberarea.
Das hat auch gut geklappt aber irgendwie von einen Tag auf den nchsten wurde es dann nicht mehr angezeigt.
Hmm aber wo ich grad schon dabei bin habe ich noch eine Frage die irgendwie damit dran hngt:
Als ich mein Script eingebunden habe lief es erst, wurde ganz normal angezeigt, dann habe ich ein bissle weiter gecoded, die eigentliche Login-Datei aber unberhrt gelassen, sie war lediglich included.
Aber pltzlich kam die Header sent Warnmeldung und es wollte nur noch laufen wenn ich Session_Start durch ob_start ersetzt hatte.
Woran kann dieser pltzliche Wechsel liegen? Und sowieso was knnte ich da falsch machen, ich meine - es ist ja schlielich nicht sinn der Sache die Sachen alle mit ob anstelle von session laufen zu lassen, oder???
LG