anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Mo 09 Jun, 2025 10:42

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 27 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Adressbuch im "Ye Olde Mail" Bereich
BeitragVerfasst: Mi 02 Feb, 2005 12:05 
Offline
Eingeweihter
Eingeweihter
Benutzeravatar

Registriert: Fr 22 Okt, 2004 22:56
Beiträge: 63
Wohnort: Freiburg
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")."'>&raquo </a></td>
<td><a href='mail.php?op=write&to=".mysql_result($result,$i,"player")."'>".mysql_result($result,$i,"player")."</a></td>
<td>&nbsp;&nbsp;</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]


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 04 Feb, 2005 20:18 
Offline
Eingeweihter
Eingeweihter
Benutzeravatar

Registriert: Fr 22 Okt, 2004 22:56
Beiträge: 63
Wohnort: Freiburg
bitte nicht soviel feedback auf einmal ;-)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 04 Feb, 2005 21:00 
Offline
Held
Held
Benutzeravatar

Registriert: So 20 Jun, 2004 09:53
Beiträge: 221
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 :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 05 Feb, 2005 04:42 
Offline
Eingeweihter
Eingeweihter
Benutzeravatar

Registriert: Di 04 Jan, 2005 06:31
Beiträge: 62
Wohnort: Schwerin
für sowas haben wir in unserer version ne buddyliste :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 05 Feb, 2005 08:51 
Offline
Freak
Freak
Benutzeravatar

Registriert: Di 02 Mär, 2004 18:16
Beiträge: 1206
[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]

_________________
R.I.P.
†26.7.2004 - 20.3.2006†
†MeteorA†


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 05 Feb, 2005 13:50 
Offline
Großmeister
Großmeister

Registriert: Mi 15 Dez, 2004 00:41
Beiträge: 467
Wohnort: München
Ganz richtig:
[php]$sql="DELETE FROM mailadressen WHERE acctid=".$zuloeschende_acctid." OR player =".$zuloeschende_acctid;
mysql_query($sql); [/php]
:D

_________________
A bus station is where busses stop. A train station is where trains stop. On my desk there is a workstation...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 05 Feb, 2005 13:59 
Offline
Lehrling
Lehrling
Benutzeravatar

Registriert: Do 12 Aug, 2004 08:36
Beiträge: 46
Das ist kein Fehler. Mit dem ; werden die SQL-Befehlen beendet. Hier zwar nicht unbedingt notwendig, aber schaden kann es ja nicht.

_________________
http://www.plueschdrache.de
Das Zeitalter des YarC ist angebrochen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 22 Feb, 2005 13:10 
Offline
Profi
Profi
Benutzeravatar

Registriert: Do 17 Feb, 2005 18:34
Beiträge: 192
Wohnort: Saarland
Geschlecht: Männlich
LoGD: http://www.die-legende-des-drachen.de/
Skype: foren.tom88
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?

_________________
you can loose your money, you can loose your life, but you never forget your real friends!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 22 Feb, 2005 13:15 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Passiert ab und zu...
Auch OHNE Adressbuch


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 22 Feb, 2005 14:39 
Offline
Profi
Profi
Benutzeravatar

Registriert: Do 17 Feb, 2005 18:34
Beiträge: 192
Wohnort: Saarland
Geschlecht: Männlich
LoGD: http://www.die-legende-des-drachen.de/
Skype: foren.tom88
Ist das ein Bug??
Und wie kann man den Fehler beheben?

_________________
you can loose your money, you can loose your life, but you never forget your real friends!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 22 Feb, 2005 17:32 
Offline
Freak
Freak
Benutzeravatar

Registriert: Di 02 Mär, 2004 18:16
Beiträge: 1206
zulange nicht 'bewegt'?

_________________
R.I.P.
†26.7.2004 - 20.3.2006†
†MeteorA†


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi 23 Feb, 2005 14:16 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 05 Feb, 2005 22:59
Beiträge: 699
Wohnort: OL
LoGD: http://aristo.w039.white.fastwebserver. ... source.php
Cool, sowas braucht man xD
Was meintest mit "keine 100% Einbau-Anleitung"? Läuft doch wie geschmiert :D


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi 23 Feb, 2005 19:38 
Offline
Profi
Profi
Benutzeravatar

Registriert: Do 17 Feb, 2005 18:34
Beiträge: 192
Wohnort: Saarland
Geschlecht: Männlich
LoGD: http://www.die-legende-des-drachen.de/
Skype: foren.tom88
Ja und meteora hatte recht! :(
War wirklich nicht sehr beweglich unterwegs!

_________________
you can loose your money, you can loose your life, but you never forget your real friends!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi 23 Feb, 2005 21:11 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 04 Dez, 2004 02:34
Beiträge: 825
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?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi 23 Feb, 2005 21:23 
Offline
Freak
Freak
Benutzeravatar

Registriert: Di 02 Mär, 2004 18:16
Beiträge: 1206
lies die einbauanleitung... *seufz*

_________________
R.I.P.
†26.7.2004 - 20.3.2006†
†MeteorA†


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi 23 Feb, 2005 21:24 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 05 Feb, 2005 22:59
Beiträge: 699
Wohnort: OL
LoGD: http://aristo.w039.white.fastwebserver. ... source.php
@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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi 23 Feb, 2005 21:30 
Offline
Großmeister
Großmeister

Registriert: Mi 15 Dez, 2004 00:41
Beiträge: 467
Wohnort: München
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).

_________________
A bus station is where busses stop. A train station is where trains stop. On my desk there is a workstation...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 27 Feb, 2005 10:44 
Offline
Held
Held
Benutzeravatar

Registriert: Mi 17 Nov, 2004 13:29
Beiträge: 296
Hi, also das Adressbuch ist natürlich klasse angekommen und auch Praktisch :D

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]

_________________
Cop-LoGD ist nun HoMaF-LoGD...
Aus dem ehemaligen Zockerparadies ist ein echter Rollenspielserver mit einer grandiosen Community geworden--->http://www.cop-logd.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 27 Feb, 2005 16:41 
Offline
Lehrling
Lehrling
Benutzeravatar

Registriert: Do 12 Aug, 2004 08:36
Beiträge: 46
[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...

_________________
http://www.plueschdrache.de
Das Zeitalter des YarC ist angebrochen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 27 Feb, 2005 17:53 
Offline
Held
Held
Benutzeravatar

Registriert: Mi 17 Nov, 2004 13:29
Beiträge: 296
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 :D

_________________
Cop-LoGD ist nun HoMaF-LoGD...
Aus dem ehemaligen Zockerparadies ist ein echter Rollenspielserver mit einer grandiosen Community geworden--->http://www.cop-logd.de


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 27 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 23 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum