anpera.net https://anpera.dyndns.org/phpbb3/ |
|
Adressbuch im "Ye Olde Mail" Bereich https://anpera.dyndns.org/phpbb3/viewtopic.php?f=43&t=919 |
Seite 1 von 2 |
Autor: | deZent [ Mi 02 Feb, 2005 12:05 ] |
Betreff des Beitrags: | Adressbuch im "Ye Olde Mail" Bereich |
Servus, Da wir auf unserem Server den Sourcecode nicht freigegeben haben, haben wir uns entschlossen ab und zu ein paar Skripte zu veröffentlichen. Erstmal der wichtigste Grund, warum wir den Sourcecode nicht (mehr) freigeben. 1. Wir haben sehr sehr viele Änderungen am Kern von Logd 0.97 vorgenommen. Der absolute Großteil unserer Skripte ist nicht mehr unter der aktuellen 0.97er Version lauffähig. Das folgende Skript ergänzt die "Ye Olde Mail" um ein recht simples Adressbuch.... Aber immernoch besser als KEIN Adressbuch ;-) Jetzt gehts los ;-) ---------------------- [php] ++++++++++++++++ +Datenbank-Teil+ ++++++++++++++++ Neue Tabelle erstellen CREATE TABLE `mailadressen` ( `row_id` int(11) NOT NULL auto_increment, `acctid` int(11) NOT NULL default '0', `player` varchar(255) NOT NULL default '', `descr` varchar(80) NOT NULL default '', PRIMARY KEY (`row_id`), KEY `acctid` (`acctid`) ); ++++++++++++++++ + Datei-Teil + ++++++++++++++++ Datei: newstyle.css ################### ändere Wert: a.motd {... width: 150px; ...} a:hover.motd {... width: 150px; ...} a.hotmotd {... width: 150px; ...} Datei: mail.php ################ suche: ------- output("`c<a href='mail.php' class='motd'>Inbox</a> <a href='mail.php?op=address' class='motd'>Mail schreiben</a>",true); // (oder so ähnlich, ca. Zeile 35) ergänze: --------- output("<a href='mail.php?op=buch' class='motd'>Adressbuch</a>`c`n`n",true); // http://www.plueschdrache.de Adressbuch suche: ------ popup_footer(); ergänze davor: -------------- elseif ($HTTP_GET_VARS[op] == 'buch'){ // Adressbuch /********************************************** *Diese Box darf nicht entfernt werden! * *------------------------------------- * *Adressbuch von deZent und draKarr * *Version: 0.5 * *www.plueschdrache.de * **********************************************/ $sql ="SELECT DISTINCT player, descr FROM mailadressen WHERE acctid=".$session[user][acctid]." ORDER BY player;"; $result=mysql_query($sql); $menge =mysql_num_rows($result); output("`c`bAdressbuch`b`c`n`n"); output("<table>",true); for ($i=0;$i<$menge;$i++){ output("<tr><td><a href='mail.php?op=write&to=".mysql_result($result,$i,"player")."'>» </a></td> <td><a href='mail.php?op=write&to=".mysql_result($result,$i,"player")."'>".mysql_result($result,$i,"player")."</a></td> <td> </td> <td> ".mysql_result($result,$i,"descr")."</td> </tr> ",true); } if (!$menge){ output("`n`$ Du hast noch keine Kontakte gespeichert`7`n");} output("</table>",true); output("`n`n"); output("<a href='mail.php?op=neuerkontakt' class='motd'>neuer Kontakt</a> <a href='mail.php?op=delkontakt' class='motd'>Kontakt löschen</a>",true); }elseif ($HTTP_GET_VARS[op] == 'neuerkontakt'){ output("<form action='mail.php?op=neuerkontakt2' method='POST'>",true); output("`b`2Name:`b`n"); output("`2<u>A</u>n: <input name='to' accesskey='a' value='".$_GET[name]."'> <input type='submit' class='button' value='Kontakt suchen'></form>",true); }elseif ($HTTP_GET_VARS[op] == 'neuerkontakt2'){ output("`2Name: "); $string="%"; for ($x=0;$x<strlen($_POST['to']);$x++){ $string .= substr($_POST['to'],$x,1)."%"; } $sql = "SELECT login,name FROM accounts WHERE name LIKE '".addslashes($string)."' AND locked=0 ORDER BY login"; $result = db_query($sql); output("<form action='mail.php?op=neuerkontakt3' method='POST'>",true); if (db_num_rows($result)==1){ $row = db_fetch_assoc($result); output("<input type='hidden' name='to' value=\"".HTMLEntities($row[login])."\">",true); output("`^$row[name]`n"); }else{ output("<select name='to'>",true); for ($i=0;$i<db_num_rows($result);$i++){ $row = db_fetch_assoc($result); output("<option value=\"".HTMLEntities($row[login])."\">",true); output(preg_replace("/[`]./","",$row[name])); } output("</select><br>`n",true); } output("<br>Beschreibung [max.80]:<input type='text' name='descr' maxlenght='80' size='13'>",true); output("<br><br><input type='submit' name='s1' value='Kontakt speichern'>`n",true); output("</form>`n",true); }elseif ($HTTP_GET_VARS[op] == 'neuerkontakt3'){ $sql = "SELECT COUNT(*) as menge FROM mailadressen WHERE player='".$HTTP_POST_VARS[to]."'"; $result = mysql_query($sql); $anzahl = mysql_result($result,0,"menge"); if ($menge>0){ output("<font size=+1>Dieser Kontakt ist bereits gespeichert!",true); } else{ $descr = mysql_escape_string($HTTP_POST_VARS[descr]); $sql="INSERT INTO mailadressen (row_id, acctid, player, descr) VALUES (NULL, ".$session[user][acctid].", '".$HTTP_POST_VARS[to]."', '".$descr."')"; mysql_query($sql); output("<font size=+1>Der Kontakt wurde gespeichert.</font>",true); } output("<a href='mail.php?op=neuerkontakt' class='motd'>neuer Kontakt</a> <a href='mail.php?op=delkontakt' class='motd'>Kontakt löschen</a>",true); }elseif ($HTTP_GET_VARS[op] == 'delkontakt'){ $sql ="SELECT DISTINCT row_id,player FROM mailadressen WHERE acctid=".$session[user][acctid]." ORDER BY player;"; $result=mysql_query($sql); $menge =mysql_num_rows($result); output("`c`bAdresse löschen`b`c`n`n"); for ($i=0;$i<$menge;$i++){ output("<a href='mail.php?op=delkontakt2&row=".mysql_result($result,$i,"row_id")."'>`$[del] </a>`7 ".mysql_result($result,$i,"player")."<br>",true); } }elseif ($HTTP_GET_VARS[op] == 'delkontakt2'){ $sql="DELETE FROM mailadressen WHERE row_id='".$HTTP_GET_VARS[row]."' LIMIT 1 "; mysql_query($sql); output("`$<font size+1>Kontakt gelöscht!</font>",true); } [/php] $this->bbcode_second_pass_code('', ' ++++++++++++++++ + REST + ++++++++++++++++ Bekannte Probleme: ------------------ 1. Man muss das Fenster in dem die mail angezeigt wird aktualisieren (F5), damit die neue CSS Datei geladen wird. -> Abhilfe: Datei in newstyle2.css umbenennen, und in der common.php verändern 2. Funzt "nur" in MySQL Datenbanken, da ich schlicht und ergreifend die "mysql_" Befehle anstatt der "db_" Befehle benutzt habe. --> Abhilfe: einfach ändern. 3. Kann sein, dass ich nicht alle Eingaben gegen Hochkommas usw abgesichert habe. Auf meinem Server kamen jedoch noch keine Beanstandungen. Grundlagen : ------------ Die Hinweise auf www.plueschdrache.de, deZent, draKarr dürfen nicht entfernt werden. Falls sich jemand die Mühe macht das Teil in die 0.98er Version zu portieren, kann er dies gerne tun. Falls du bereits ein Adressbuch hast, bzw. in der aktuellen 0.97er / 0.98er Version bereits ein Adressbuch integriert ist... ja dann sollte ich mal wieder öfters die neuen Versionen anschauen ;-) ') Dies ist (leider) keine 100% Einbau-Anleitung, da ich zZ keinen orginalen logd-Server zum testen habe. Bei Problemen bitte melden. Gruß, deZent, draKarr P.S. Ihr solltet bei den "User-löschen" - Funktionen auch das Adressbuch löschen lassen! ( müsste an ca.3 Stellen im Ur-Logd sein.) Einfach [php] $sql="DELETE FROM mailadressen WHERE acctid='.$zuloeschende_acctid.' OR player ='.$zuloeschende_acctid.' ;"; mysql_query($sql);[/php] |
Autor: | deZent [ Fr 04 Feb, 2005 20:18 ] |
Betreff des Beitrags: | |
bitte nicht soviel feedback auf einmal ;-) |
Autor: | Weasel [ Fr 04 Feb, 2005 21:00 ] |
Betreff des Beitrags: | |
naja, solche komplexen sachen können die hier nicht einbauen und dann noch was drüber posten ![]() also wenn du es noch für 0.98 ablieferst, dann poste ich was drüber ![]() |
Autor: | teruk [ Sa 05 Feb, 2005 04:42 ] |
Betreff des Beitrags: | |
für sowas haben wir in unserer version ne buddyliste ![]() |
Autor: | Meteora [ Sa 05 Feb, 2005 08:51 ] |
Betreff des Beitrags: | |
[php]$sql="DELETE FROM mailadressen WHERE acctid='.$zuloeschende_acctid.' OR player ='.$zuloeschende_acctid.' ;"; mysql_query($sql);[/php] da ist ein ; zuviel ![]() richtig: [php] $sql="DELETE FROM mailadressen WHERE acctid='.$zuloeschende_acctid.' OR player ='.$zuloeschende_acctid.'"; mysql_query($sql); [/php] |
Autor: | Chaosmaker [ Sa 05 Feb, 2005 13:50 ] |
Betreff des Beitrags: | |
Ganz richtig: [php]$sql="DELETE FROM mailadressen WHERE acctid=".$zuloeschende_acctid." OR player =".$zuloeschende_acctid; mysql_query($sql); [/php] ![]() |
Autor: | drakarr [ Sa 05 Feb, 2005 13:59 ] |
Betreff des Beitrags: | |
Das ist kein Fehler. Mit dem ; werden die SQL-Befehlen beendet. Hier zwar nicht unbedingt notwendig, aber schaden kann es ja nicht. |
Autor: | Artemis1988 [ Di 22 Feb, 2005 13:10 ] |
Betreff des Beitrags: | |
Ey, nicht schlecht! Nur bei mir ist da ein Problem! Wenn ich in die Nachrichten gehen will, dann öffnet sich ein neues index.php-Fenster und da steht dann das ich nicht eingeloggt wäre! Wenn ich mich da anmelde und dann auf Posteingang gehe, dann funzt das auch! Das finde ich saucool das Script, aber kann man gegen das Problem was machen? |
Autor: | Eliwood [ Di 22 Feb, 2005 13:15 ] |
Betreff des Beitrags: | |
Passiert ab und zu... Auch OHNE Adressbuch |
Autor: | Artemis1988 [ Di 22 Feb, 2005 14:39 ] |
Betreff des Beitrags: | |
Ist das ein Bug?? Und wie kann man den Fehler beheben? |
Autor: | Meteora [ Di 22 Feb, 2005 17:32 ] |
Betreff des Beitrags: | |
zulange nicht 'bewegt'? |
Autor: | Arîzto [ Mi 23 Feb, 2005 14:16 ] |
Betreff des Beitrags: | |
Cool, sowas braucht man xD Was meintest mit "keine 100% Einbau-Anleitung"? Läuft doch wie geschmiert ![]() |
Autor: | Artemis1988 [ Mi 23 Feb, 2005 19:38 ] |
Betreff des Beitrags: | |
Ja und meteora hatte recht! ![]() War wirklich nicht sehr beweglich unterwegs! |
Autor: | Devilzimti [ Mi 23 Feb, 2005 21:11 ] |
Betreff des Beitrags: | |
Meteora hat geschrieben: [php]$sql="DELETE FROM mailadressen WHERE acctid='.$zuloeschende_acctid.' OR player ='.$zuloeschende_acctid.' ;";
mysql_query($sql);[/php] da ist ein ; zuviel ![]() richtig: [php] $sql="DELETE FROM mailadressen WHERE acctid='.$zuloeschende_acctid.' OR player ='.$zuloeschende_acctid.'"; mysql_query($sql); [/php] geht perfekt aber wo muss das hin? |
Autor: | Meteora [ Mi 23 Feb, 2005 21:23 ] |
Betreff des Beitrags: | |
lies die einbauanleitung... *seufz* |
Autor: | Arîzto [ Mi 23 Feb, 2005 21:24 ] |
Betreff des Beitrags: | |
@Devilzimti Ich denke, dass das dazu gehört: drakarr hat geschrieben: Das ist kein Fehler. Mit dem ; werden die SQL-Befehlen beendet. Hier zwar nicht unbedingt notwendig, aber schaden kann es ja nicht.
|
Autor: | Chaosmaker [ Mi 23 Feb, 2005 21:30 ] |
Betreff des Beitrags: | |
In MySQL selbst ist das korrekt, allerdings gehört das in MySQL-Queries per PHP nicht rein und wird dort afaik auch mit einem Fehler quittiert (wurde es zumindest mal). |
Autor: | Hecki [ So 27 Feb, 2005 10:44 ] |
Betreff des Beitrags: | |
Hi, also das Adressbuch ist natürlich klasse angekommen und auch Praktisch ![]() Aber eine Frage hätte ich, was macht dieses `c da? ist es absicht das die nachrichten alle mittig ausgerichtet sind?? [php]output("<a href='mail.php?op=buch' class='motd'>Adressbuch</a>`c`n`n",true); // http://www.plueschdrache.de Adressbuch [/php] |
Autor: | drakarr [ So 27 Feb, 2005 16:41 ] |
Betreff des Beitrags: | |
[php]output("`c<a href='mail.php' class='motd'>Inbox</a> <a href='mail.php?op=address' class='motd'>Mail schreiben</a>",true); // (oder so ähnlich, ca. Zeile 35) ergänze: --------- output("<a href='mail.php?op=buch' class='motd'>Adressbuch</a>`c`n`n",true); // http://www.plueschdrache.de Adressbuch [/php] In der ersten Zeile wird es aufgemacht und nach dem Adressbuch wieder geschlossen, von daher werden keine Mails zentriert angezeigt... |
Autor: | Hecki [ So 27 Feb, 2005 17:53 ] |
Betreff des Beitrags: | |
Problematisch nur wenn man das erste `c nicht hat, das müsst ihr also schon bei eurer Version ergänzt haben bei mir war es auf jeden fall nicht drinne, und in der Anleitung hat davon auch nix drin gestanden ![]() |
Seite 1 von 2 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |