eure meinung zu meinem shoutbox-script
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
background
beitrag
change
counter
elster
fehler
gel
gut kleiner fehler
hilfe
login
mod
none
not
pawort
post
right
session
speicher
zeile
zeilenumbruch
-
Admin und hilfe fehlt noch, ist erstmal nur die reine shoutbox
als speicher wird die datei db.txt ben?tigt
Die Hauptdatei (adminbox.php)
<? session_start(); if($savepass) session_register("passwort");?>
<html>
<head>
<script>
function cleanit(thefield){if(thefield.defaultValue==thefield.value){thefield.value="";};}
</script>
<link rel="STYLESHEET" href="style.css" type="text/css">
</head>
<body leftmargin="0" topmargin="0" onload="window.scrollTo(0,99999);" style="" marginheight="0" marginwidth="0">
<?php
//hier passwort eintragen (1. zeile ist hackerschutz)
$admin = false;
if($passwort == "elster") $admin = true;
// Anh?ngen von neuem Beitrag wenn add true ist
if ($add)
{
$zeit = date("d.m.Y G:i:s");
$fp = fopen("db.txt","a");
if ($fp)
{
flock($fp,2);
$nl = chr(13) . chr(10);
fputs ($fp, "$zeit+$name+$nachricht$nl");
flock($fp,3);
fclose($fp);
}
else echo "db.txt wurde nicht gefunden";
//speichern von Name f?r sp?teren post
$hattname = true;
session_register("hattname");
session_register("name");
}
//Erstellen eines 2d Arrays aus der db.txt
$db = array(array("zeit"=>"Willkommen","name"=>"db.txt","nachricht"=>"die Datenbank ist noch leer"));
$counter = 0;
$fp = fopen("db.txt","r");
if ($fp)
{
while (!feof($fp))
{
$zeile = fgets($fp, 1000);
$zspeicher = explode("+",$zeile);
$db[$counter][zeit] = $zspeicher[0];
$db[$counter][name] = $zspeicher[1];
$db[$counter][nachricht] = $zspeicher[2];
$counter = $counter+1;
}
fclose($fp);
}
else
echo "db.txt wurde nicht gefunden";
//bearbeitende Elemente
if($admin)
{
//mod delete
if($mod == "delete")
{
array_splice($db, $aim, 1);
$fp = fopen("db.txt","w");
flock($fp,2);
for($i=0; $i<sizeof($db)-1; $i++)
{
$zspeicher[0] = $db[$i][zeit];
$zspeicher[1] = $db[$i][name];
$zspeicher[2] = $db[$i][nachricht];
$zeile = implode("+",$zspeicher);
fputs ($fp,"$zeile$nl");
}
flock($fp,3);
fclose($fp);
}
//mod change
//?bernehmen
if($save)
{
$db[$aim][name] = $neuername;
$db[$aim][nachricht] = $neuenachricht;
$fp = fopen("db.txt","w");
flock($fp,2);
for($i=0; $i<sizeof($db)-1; $i++)
{
$zspeicher[0] = $db[$i][zeit];
$zspeicher[1] = $db[$i][name];
$zspeicher[2] = $db[$i][nachricht];
$zeile = implode("+",$zspeicher);
fputs ($fp,"$zeile$nl");
}
flock($fp,3);
fclose($fp);
}
}
//Ausgabe der Beitr?ge
for ($i=0; $i<sizeof($db)-1; $i++)
{
$color = !$color;
if($color) echo '<table ="" class="SB_table0" border="0" cellpadding="2" cellspacing="0" width="100%"><tbody>';
else echo '<table ="" class="SB_table1" border="0" cellpadding="2" cellspacing="0" width="100%"><tbody>';
echo '<tr><td class="SB_shoutbox"><div align="left"><font class="SB_shoutbox">',$db[$i][zeit],'</font></div><b>';
echo $db[$i][name];
echo '</b>:<br>';
echo $db[$i][nachricht];
if($admin)
{
echo '<br><center>';
echo '<a href="adminbox.php?mod=change&aim=',$i,'">?ndern</a> :: ';
echo '<a href="adminbox.php?mod=delete&aim=',$i,'">l?schen</a></center>';
}
echo '</td></tr></tbody></table>';
}
echo '
<form action="adminbox.php?add=true" method="post">
<table class="SB_formarea" width="100%"><tbody><tr>
<td><div align="center">
<input name="name" size="20" maxlength="50" value="'; if($hattname) echo "$name"; else echo "Name"; echo '" class="SB_input" title="Name" onfocus="cleanit(this)" type="text"><br>
<input name="nachricht" size="20" maxlength="1000" value="Nachricht" class="SB_input" title="Nachricht" onfocus="cleanit(this)" type="text"><br>
<input name="ok" value="Senden" type="submit"><br>
';
if($admin) echo '<span class="SB_shoutbox"><a href="javascript:void(0);">Hilfe</a> - <a href="mailto:knolli.m@web.de">@</a> - <a href="adminbox.php?mod=logout">logout</a></span>';
else echo '<span class="SB_shoutbox"><a href="javascript:void(0);">Hilfe</a> - <a href="mailto:knolli.m@web.de">@</a> - <a href="adminbox.php?mod=login">Admin</a></span>';
echo '
</div></td>
</tr></tbody></table>
</form>
';
//mods mit passwort
if($admin)
{
echo '<table class="SB_formarea" width="100%"><tbody><tr><td><div align="center"><b>Adminkonsole</b><br>';
//mod delete
if($mod == "delete")
{
echo "- Beitrag gel?scht";
}
//mod change
if($mod == "change")
{
//?bernehmen
if($save)
{
echo "- Beitrag ge?ndert";
}
//Anzeigen
else
{
echo '<form action="adminbox.php?mod=change&save=true&aim=',$aim,'" method="post">';
echo '<input name="neuername" size="20" maxlength="50" value="',$db[$aim][name],'" class="SB_input" title="Name" type="text"><br>';
echo '<textarea cols="17" rows="3" name="neuenachricht" class="SB_input" wrap="soft">',$db[$aim][nachricht],'</textarea>';
echo '<input name="ok" value="?bernehmen" type="submit"><br>';
echo '</form>';
}
}
//mod logout
if($mod == "logout")
{
session_destroy();
echo '- Session gel?scht<br>- Logout erfolgreich<br>';
echo '<span class="SB_shoutbox"><a href="adminbox.php">weiter</a></span>';
}
echo '</div></td></tr></tbody></table>';
}
//mods ohne passwort
//mod login
if($mod == "login")
{
echo '
<form action="adminbox.php?savepass=true" method="post">
<table class="SB_formarea" width="100%"><tbody><tr>
<td><div align="center"><b>Passwort</b><br>
<input name="passwort" type="password" size="20" maxlength="20" class="SB_input" title="passwort" type="text"><br>
<input name="ok" value="enter" type="submit"><br>
</div></td>
</tr></tbody></table>
</form>
';
}
?>
</body>
</html>
die style.css:
/* theme (C) SL
* blueween.css
*
*/
a:link{
color : #FF9900;
text-decoration : none;
}
a:visited{
color : #FF6600;
text-decoration : none;
}
a:hover{
color : #FF9900;
text-decoration : underline;
}
a:active{
color : #FFCC66;
text-decoration : none;
}
body{
background-color : #42518C;
font-family : Verdana, Arial, Helvetica, sans-serif;
font-size : xx-small;
scrollbar-3dlight-color : #7A89C1;
scrollbar-arrow-color : #FF9900;
scrollbar-base-color : #2B3869;
scrollbar-darkshadow-color : #000000;
scrollbar-face-color : #2B3869;
scrollbar-highlight-color : #2B3869;
scrollbar-shadow-color : #2B3869;
scrollbar-track-color : #2B3869;
}
.SB_button {
background : #405088;
border : 1 solid #000000;
color : #FFFFFF;
font-family : Verdana, Arial, Helvetica, sans-serif;
font-size : 9px;
font-weight : bold;
}
.SB_input {
background : #000033;
border : 1 solid #405088;
color : #FFFFFF;
font-family : Verdana, Arial, Helvetica, sans-serif;
font-size : 10px;
}
.SB_formarea {
background-color : #42518C;
border-bottom-color : #38477C;
border-bottom-style : solid;
border-bottom-width : 1;
border-left-color : #596BB1;
border-left-style : solid;
border-left-width : 1px;
border-right-color : #38477C;
border-right-style : solid;
border-right-width : 1px;
border-top-color : #596BB1;
border-top-style : solid;
border-top-width : 1px;
color : #FFFFFF;
font-size : 10px;
}
.SB_shoutbox {
color : #FFFFFF;
font-family : Verdana, Arial, Helvetica, sans-serif;
font-size : xx-small;
text-align : left;
blink;
}
a.SB_inlink:link {
color : #FFFFFF;
text-decoration : none;
}
a.SB_inlink:visited {
color : #FFFFFF;
text-decoration : none;
}
a.SB_inlink:active {
color : #FFFFFF;
text-decoration : none;
}
a.SB_inlink:hover {
color : #FFFFFF;
text-decoration : underline;
}
.SB_alert {
color : #FF3300;
font-family : Verdana, Arial, Helvetica, sans-serif;
font-size : xx-small;
font-weight : bold;
}
.SB_table0 {
background-color : #42518C;
border-bottom-color : #38477C;
border-bottom-style : solid;
border-bottom-width : 1;
border-left-color : #596BB1;
border-left-style : solid;
border-left-width : 1px;
border-right-color : #38477C;
border-right-style : solid;
border-right-width : 1px;
border-top-color : #596BB1;
border-top-style : solid;
border-top-width : 1px;
color : #FFFFFF;
font-size : xx-small;
}
.SB_table1 {
background-color : #3C4B81;
border-bottom-color : #38477C;
border-bottom-style : solid;
border-bottom-width : 1;
border-left-color : #596BB1;
border-left-style : solid;
border-left-width : 1px;
border-right-color : #38477C;
border-right-style : solid;
border-right-width : 1px;
border-top-color : #596BB1;
border-top-style : solid;
border-top-width : 1px;
color : #FFFFFF;
font-size : xx-small;
}
blink;
Akzualisiert am: 16.mai 14:26 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
was soll man dazu denn jetzt sagen?
is halt ne shoutbox
der code is nix besonderes...
du solltest vllt nen link zum ausprobieren posten, das w?re glaub ich besser -
@lucas9991
ja mir gehts vor allem um un?tigen code und verbesserungsvorschl?ge zwegs der funktion
gru? knollos
-----------------
der link:
http://knollos.milten.lima-city.de/adminbox.php
-
cool. Aber evt. Smiles w?hren noch angebracht
-
hmmmm komisch bei mir hat der nen Zeilenumbruch hinter dem m gemacht au?erdem werden " als \" angezeigt
-
danke funkdoobiest
der fehler mit dem zeilenumbruch ist behoben
EDIT 0-checka
Doppelpost gel?scht. Inhalt des 2. Posts:
Adminsystem ist jez auch online, funzt aber noch nicht richtig
wer fehler findet bitte melden
darf auch jeder mal admin spielen: passwort ist elster
-
Is ganz nice,
wie wohl schon gesagt k?nntest du das einbauen, dass man seine Mail oder HP angeben kann und man dann auf den namen klicken kann um ne mail zu schreiben!
Style is gut, kleiner fehler w?re nur, dass man (egal von wo) die admin.php einfach nur oben im pfad anzugeben braucht und dann automatisch eingeloggt ist!
Hoffe das das in der vollendeten version net so is^^
greetz
Disoon -
Ich find den Shoutbox script eigentlich auch nicht schlecht... der code ist sch?n sauber! So krieg ich das nie hin...
Naja. Aber mehr als eine Shoutbox ist es halt auch nicht. -
shoutbox ist irgendwie aufgebaut wie viele andere fertige die man bekommt vll abgekuckt ?? naja also sieht so noch nen bisschen langweilig aus
-
Hast dir ja viel m?he gegeben. Respekt.
Muss aber mich der Meinung der Anderen anschlei?en nichts besonderes.
MfG MoC -
ioch kann die hilfe mitm firefox net ?ffnen
<a href="javascript:void(0);" onclick="openWin('./?f=p&LANG=DE&s=X','myshoutbox','scrollbars=yes,resizable=yes,width=153,height=480')">Hilfe</a>
fehlermeldung :
Fehler: openWin is not defined
-
also:
1. es gibt n neuen code
adminbox.php hat jez die aufgabe von shoutbox.php komplett ?bernommen.
ansonsten is jez alles n bissel ?bersichtlicher und sicherer zb wird das passwort nich mehr im klartext ?ber die url ?bertragen sondern alles l?uft ?ber ne session.
2.
lucas9991 schrieb:
ioch kann die hilfe mitm firefox net ?ffnen
<a href='javascript:void(0);' onclick='openWin('./?f=p&LANG=DE&s=X','myshoutbox','scrollbars=yes,resizable=yes,width=153,height=480')'>Hilfe</a>
fehlermeldung :
Fehler: openWin is not defined
bis jez funzt alles au?er die hilfe und smilies, kommt aber noch...
3.
disoon schrieb:
Is ganz nice,
wie wohl schon gesagt k?nntest du das einbauen, dass man seine Mail oder HP angeben kann und man dann auf den namen klicken kann um ne mail zu schreiben!
Style is gut, kleiner fehler w?re nur, dass man (egal von wo) die admin.php einfach nur oben im pfad anzugeben braucht und dann automatisch eingeloggt ist!
Hoffe das das in der vollendeten version net so is^^
greetz
Disoon
disoon schrieb in die box:
also was fehlt: mail, page, smilies ansonsten gef?llt mir das style, kannst ja auch noch so einbauen, dass das neuste ganz oben ist (anstatt von oben nach unten), der rest is sch?n :D
jepp, wie gesagt der fehler mit der url und passwort ist beseitigt
wegen url und mail...
wers will kanns sich ja einbauen ich finds net so gut, soll halt alles sehr puristisch sein
die reihenfolge der posts kann man mit dem vertauschen der parameter bei
for ($i=0; $i<sizeof($db)-1; $i++)
ganz einfach realisieren
also:
for ( $i<sizeof($db)-1;$i=0; $i++)
ist aber auch nicht mein fall
4.
thecracker schrieb:
shoutbox ist irgendwie aufgebaut wie viele andere fertige die man bekommt vll abgekuckt ?? naja also sieht so noch nen bisschen langweilig aus
ahh! gut aufgepasst
die shoutbox von www.shoutboxes.com dienten als vorbild
deshalb sind auch s?mtliche stylesheets kompatibel, man muss sie nur in style.css umbenennen
5.
greez:) -
joooo
kann man sehen lassen aber wie schon gesagt n paar smiles w?ren nett und schon =) -
mal ne frage:
wenn der name einmal eingetragen ist und ein beitrag gesendet wurde, l?sst er sich nicht mehr ?ndern.
wei? einer warum? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage