Shoutbox adminfunktionen erstellen
-
Hallo leute,
Wie erstelle ich am besten adminfunktionen für eine shoutbox?
Und welche funktionen würded ihr mit bevorzugen oder mit integrieren?shoutboxcode:
config.php<?php //Datenbank-Einstellungen $dbhost='localhost'; $dbuser='user'; $dbpass='password'; $db='db1'; $dbtable='shoutbox'; //Anzahl der auszugebenden Nachrichten $messages_count = 10; ?>
getdata.php
<?php // Cachen verhindern header("Expires: Sat, 05 Nov 2005 00:00:00 GMT"); header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); // Einstellungen laden include("config.php"); // Verbindung zu mySQL aufbauen $dblink = mysql_connect($dbhost, $dbuser, $dbpass); if (!$dblink) { die('Keine Verbindung zur Datenbank moeglich.'); } // Datenbank auswählen $dbselected = mysql_select_db($db, $dblink); if (!$dbselected) { die ('Kann Datenbank nicht erreichen.'); } // Datensätze ermitteln $dbresult = mysql_query("SELECT * FROM $dbtable ORDER BY ID DESC LIMIT 0,$messages_count"); if (!$dbresult) { die('Ungueltige SQL-Query.'); } // Datensätze auslesen und formatieren while ($row = mysql_fetch_assoc($dbresult)) { echo "<span class=\"name\">".$row["name"].":</span>"; echo $row["message"]."<br />"; } // Verbindung zur Datenbank schließen mysql_close($dblink); ?>
setdata.php
<?php // Einstellungen laden include("config.php"); // Verbindung zu mySQL aufbauen $dblink = mysql_connect($dbhost, $dbuser, $dbpass); if (!$dblink) { die('Keine Verbindung zur Datenbank möglich.'); } // Datenbank auswählen $dbselected = mysql_select_db($db, $dblink); if (!$dbselected) { die ('Kann Datenbank nicht erreichen.'); } $username = $_POST["name"]; $nachricht =$_POST["message"] // Neuen Datensatz speichen $result = mysql_query("INSERT INTO $dbtable (name, message) VALUES ('".mysql_real_escape_string($username)."','".mysql_real_escape_string($nachricht)."')"); if (!$result) { die('Ungueltige SQL-Query'); } // Verbindung zur Datenbank schließen mysql_close($dblink); ?>
shoutbox.js
// globale Instanz von XMLHttpRequest var xmlHttp = false; // XMLHttpRequest-Instanz erstellen // ... für Internet Explorer try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { xmlHttp = false; } } // ... für Mozilla, Opera und Safari if (!xmlHttp && typeof XMLHttpRequest != 'undefined') { xmlHttp = new XMLHttpRequest(); } // aktuelle Daten laden loadData(); // alle 5 Sekunden neue Daten holen setInterval("loadData()",5000); function loadData() { if (xmlHttp) { xmlHttp.open('GET', 'getdata.php', true); xmlHttp.onreadystatechange = function () { if (xmlHttp.readyState == 4) { document.getElementById("asb_content").innerHTML = xmlHttp.responseText; } }; xmlHttp.send(null); } } function saveData() { if (xmlHttp) { xmlHttp.open('POST', 'setdata.php'); xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xmlHttp.send('name='+document.frmshoutbox.txtname.value+'&message='+document.frmshoutbox.txtmessage.value); } // Message-Eingabefelder leeren und Focus setzen document.frmshoutbox.txtmessage.value = ''; document.frmshoutbox.txtmessage.focus(); }
Danke für die kommenden Vorschläge
mfg derdefeckter
-
Hallo,
Fällt niemanden was ein wie man hier ein paar admin funktionen reinbringen kann?
hoffe euch fällt noch was ein
mfg
-
Dein Ansatz?
Dein konkretes Problem?
-
Also Als erstes mein problem
wie kriege ich diese grundlegende admin funktionen darein?
ansatz:
ich dachte zum beispiel für die bann funktion in der db (mysql) eine spalte mit banned eintragen lasse und dann eine abfrage wenn 0 darf der user in die shoutbox schreiben wenn 1 ausgeben sie wurden geblockt oder vergleichbares
gerade in adminfunktionen kenne ich mich gar nicht aus
mfg
p.s. sorry das ich mir alles "aus der nase ziehen" lassen muss
-
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;