Shoutbox adminfunktionen erstellen
-
Na, der Ansatz ist doch gar nicht schlecht?
Also wo genau hakt es? Sonst halt einfach mal machen
-
Ja eigentlich suche ich noch vorschläge was ich noch dazu nehmen kann für die adminfunktionen ausser bann funktionen zum beispiel mute aber da weiss ich gar niicht wie ich das umsetzten soll
-
Die Frage ist doch vielmehr: Wie willst du die User authentifizieren?
Du hast überhaupt keine Benutzerverwaltung implementiert, aber kannst doch niemanden sperren, wenn du noch gar nicht weißt, woran du ihn erkennst.
-
Das ist der rohcode
ich wollte da noch die variable $username mit rein nehmen statt das formular feld Name das via session ja zurealisieren wäre oder?
mfg
-
Und was bringt dir das? Du bauchst eine Benutzerverwaltung. Wenn die Shoutbox offen zugänglich ist (= Gäste können ohne Registrierung schreiben), kannst du dir den Käse mit Bann auch sparen. Wer dann weiter spammen will, schließt einfach einmal den Browser und macht munter weiter.
-
Hallo,
ja benutzerverwaltung habe ich die soll in meine vorhandene seit eintergriert werden
also gäste können den chat nicht sehen der chat/shoutbox steht nur den eingeloggten zur verfügung
mfg
-
Nun gut, dann musst du das halt entsprechend anpassen.
Ich kann dir aber nur dringend noch einmal davon abraten, dir deine Seite so verhackstückelt zusammenzuklotzen. Lieber aus einem Guss und dann Stückweise nachbessern, als alle Komponenten einzeln bauen und dann zusammenzuführen. Zumindest am Anfang.Dann leg mal los!
-
Warum sollte das nachteilhaft sein?
also ich finde das das ok ist da ich weiss wo die komponennten alle hinkommen und ich weiss auch das das alles passt
mfg
-
derdefeckter schrieb:
[php]<?php
$dbresult = mysql_query("SELECT * FROM messages_count");[/code]
warst es nicht sogar du, dem ich gesagt hab, dass "SELECT *" in Produktivcode nichts zu suchen hat?
-
Hallo,
zwutz schrieb:
derdefeckter schrieb:
[php]<?php
$dbresult = mysql_query("SELECT * FROM messages_count");[/code]
warst es nicht sogar du, dem ich gesagt hab, dass "SELECT *" in Produktivcode nichts zu suchen hat?
Ich lese ,frage und beantworte täglich posts da weiss ich das jetzt nicht mehr
Wie müsste die Abfrage denn lauten?
mfg
-
So leute jetzt habe ich wirklich wieder ein Problem!
code:
<?php session_start(); ?> <?php if(!isset($_SESSION["username"])) { echo "Bitte erst <a href=\"index.php\">einloggen</a>"; exit; } else require ('config.php'); $username = $_SESSION["username"]; $abfrage = "SELECT username, userlevel FROM login WHERE username ='".mysql_real_escape_string($username)."' LIMIT 1"; $ergebnis = mysql_query($abfrage); $row = mysql_fetch_array($ergebnis); if($row['userlevel'] == 'admin') { echo 'Adminbereich folgt!'; } elseif($row['userlevel'] == 'moderator') { echo 'Der Moderatoren bereich folgt!'; } elseif($row['userlevel'] == 'user') { $abfrage = "SELECT username, chatbann FROM login WHERE username ='".mysql_real_escape_string($username)."' LIMIT 1"; $ergebnis = mysql_query($abfrage); $row = mysql_fetch_array($ergebnis); if($row['chatbann'] == '1') { $chat = 'Sie wurden vom Chat geblockt! Falls sie zu Unrecht geblockt wurden kontaktieren sie uns bitte!'; } elseif($row['chatbann'] == '0') { $chat = "<div id=\"asb_container\"> <div id=\"asb_contentwrap\"> <div id=\"asb_content\"> Shoutbox wird geladen ... </div> </div> <div id=\"asb_inputwrap\"> <div id=\"asb_input\"> <form action=\"\" name=\"frmshoutbox\" onsubmit=\"saveData(); return false;\"> <b><font color=\"#66FF00\">Nachricht:</font></b><br /><input class=\"text\" type=\"text\" name=\"txtmessage\" value=\"\" /><br /> <input class=\"button\" type=\"submit\" name=\"btnsend\" value=\"Senden\" /> </form> </div> </div> </div>"; } echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> <html xmlns=\"http://www.w3.org/1999/xhtml\"> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" /> <link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\" /> <link href=\"styles.css\" rel=\"stylesheet\" type=\"text/css\" /> <script type=\"text/javascript\" src=\"shoutbox.js\" ></script> <title>KIMSERVER-Game</title> </head> <body> <div id=\"container\"> <div id=\"header\"> <!--marquee--> </div> <div id=\"content\"> <div id=\"left\"> <div class=\"menu\"> <div class=\"menuheader\"><h3>Menu</h3></div> <div class=\"menucontent\"> <ul> <li><a href=\"gindex.php\">Start</a></li> <li><a href=\"ggame.php\">Zum Spiel</a></li> <li><a href=\"gscore.php\">Highscore</a></li> <li><a href=\"gbeta.php\">Open Beta</a></li> <li><a href=\"http://kimserver.bplaced.net/kimserver-game/kontakt.php\">Kontakt</a></li> <li><a href=\"gchat.php\">Chat</a></li> </ul> </div> <div class=\"menufooter\"></div> </div> <div class=\"menuheader\"><h3>Logout</h3></div> <div class=\"menucontent\"> <center> <p><a href=\"logout.php\">Logout</a></p> </center> </div> <div class=\"menufooter\"></div> </div> <div id=\"right\"> <div class=\"menu\"> <div class=\"menuheader\"><h3>Die besten:</h3></div> <div class=\"menucontent\">"; ?> <?php require ('config.php'); error_reporting(E_ALL); $abfrage = "SELECT username,score AS highscore FROM login ORDER BY score DESC LIMIT 0,3"; $end = mysql_query($abfrage); while( $row = mysql_fetch_assoc( $end )) { echo "<center>"; echo "<p>".$row['username'].":</p>"; echo "<p>".$row['highscore']."</p>"; echo "</center>"; } ?> <?php echo " <div class=\"clear\"></div> </div> <div class=\"menufooter\"></div> </div> </div> <div id=\"middle\"> <div class=\"post\"> <div class=\"postheader\"><h1>Chat</h1></div> <div class=\"postcontent\">"; ?> <?php echo "$chat"; ?> <?php echo "</div> <div class=\"postfooter\"></div> </div> <div class=\"post\"> </div> </div> </div> <div id=\"footer\"> <span>All rights reserved.</span> </div> </div> </body> </html>"; } ?>
Nicht aufregen falls irgendwie man das einfacher machen könnte!
zu meinem problem:Die js datei wurde in diesem thread schon gepostet
so wenn ich da jetzt was eintragen möchte denn möchte er das via get machen was nicht geht weil mit post abgefragt wird jetzt werden einige sagen das method noch da hin muss allerdings erledigt das die js datei!
ich habe genau die selben datein für meine index.html benutzt und da funktionierts einwandfrei (also nur shoutboxcode)<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <title>ajax</title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <link rel="stylesheet" href="styles.css" type="text/css" /> <script type="text/javascript" src="shoutbox.js" ></script> </head> <body> <div id="asb_container"> <div id="asb_contentwrap"> <div id="asb_content"> Shoutbox wird geladen ... </div> </div> <div id="asb_inputwrap"> <div id="asb_input"> <form action="" name="frmshoutbox" onsubmit="saveData(); return false;"> <b>Nachricht:</b><br /><input class="text" type="text" name="txtmessage" value="" /><br /> <input class="button" type="submit" name="btnsend" value="Senden" /> </form> </div> </div> </div> </body> </html>
hoffe ihr könnt mir da mal eben weiterhelfen mfg
-
derdefeckter schrieb:
...
fehlt da nicht in z. 10 ne { klammer
-
soweit ich gelernt habe
muss bei else keine klammer hinmfg
-
falsch gelernt! es muß nur keine klammer hin wenn danach nur ein statement folgt bei dir sind es aber mehr z.14 soll doch auch noch mindestens mit rein...
-
allerdings hatt das voher auch geklappt ohne die klammern
also auf meinen anderen seiten klappt das genau so
nur jetzt hier und ich denke das er die js datei nicht ricjtih mit rein nimmt
mfg
-
denk doch was du willst...
-
sicher? Kann ich grad nicht verstehen. Was man aber machen kann ist..
if ($foo == $bar): echo 'lustig lustig'; else: echo 'trotzdem lustig'; endif;
-
ja also es ist so ne sache es ist nicht direkt falsch aber nur solange das exit() da ist sobald einer auf die idee kommt das raus zu nehmen hast den fehler. also kann das für mich zu folge fehlern führen und sollte ausgebessert werden.
-
Hallo,
Zeile 10:
Bereits angesprochen. Entweder du setzt die Klammern, dann kannst du dir exit sparen, oder du lässt exit stehen und entfernst das else. Deine Variante verwirrt nur den Leser nur weil das else unsinnig ist.Zeile 12:
Kein Fehler, aber schöner wäre die Verwendung von require_once. Bei require_once wird geprüft ob die Datei bereits eingebunden ist. Wenn ja, wird sie kein zweites mal dazugeholt.Zeile 18/33:
Was ist wenn die Ergebnismengen leer sind? Erweitere den Code besser umif (!$row) exit;
Zeile 50:
<form action="" ...> verweist auf die im Verzeichnis liegende index-Datei und nicht zwangsläufig auf sich selbst. Soll das passieren, lass action="" weg, oder nutz $_SERVER['script_name'].Zeile 117/118:
Du machst den PHP-Tag zu um ihn direkt danach wieder zu öffnen. Wieso?2-3 kleine Anmerkungen und Fragen:
1. Wieso wechselst du zwischen mysql_fetch_array und mysql_fetch_assoc?
Wenn du sowieso nur auf die assoziativen Indizes zurückgreifst verwendet doch gleich mysql_fetch_assoc oder mysql_fetch_array($result, MYSQL_ASSOC).2. Nutzt du persitente Verbindungen? Wenn nicht, vermisse ich mysql_free_result um den Speicher wieder für neue Daten frei zu machen. Ein fehlendes mysql_free_result verursacht allerdings auch nur ein Warning im Log (sofern Warnings aktiviert sind)
3. Versuche nicht immer die gleichen Variablennamen zu verwenden. Bei der miesen Codeeinrückung erkennt man am Ende nicht mehr, welche du wann verwendest. Noch ist es überschaubar, aber spätestens bei deinem ersten 1000-Zeilen Script wird's kompliziert. Vor allem wächst dann auch die Gefahr, bereits bestehende Ergebnismengen zu überschreiben.
4. Versuch dich in Zukunft mal ein wenig mit MVC (Model-View-Controlling) auseinander zusetzen. Das Mischen von View und Controlling find ich persönlich grauenvoll.
LG
-
danke!,
für die hilfe bis jetzt.
allerdings läd er mir die shoutbox.js nicht! voran liegt das?
mfg
p.s. ich werden denn code nochmal komplett überarbeiten das else ist weg