PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PN System



Parl
30.05.2008, 15:43
Da ich bisher keine gratis PN Systeme gefunden habe, dachte ich mir einfach mal selber ein bissel zu basteln.
Meiner Meinung nach reicht es um etwas Kommunikation zu schaffen, probierts ruhig mal aus.

Garantieren tu ich allerdings für nix +g+


EDIT:

Alle genannten Fehler sind nun hoffentlich behoben

Falls dennoch Unzufriedenheit besteht, hier die Deinstallation:

1. Über phpMyAdmin die Tabelle "vms_inbox" löschen
2. Den Ordner "pnsys" löschen (ROOT/content/pnsys/)
3. Den ensprechden Teil in der "lib/menue_links.php" editieren.

Wer es dennoch ausprobieren mag:

Download:
http://www.yukis-lose.de/PNSystembyParl.rar (aktuell, 11.5.09)




MFG!

Xenon
30.05.2008, 15:47
Ich schaus mir mal an und werde es auf herz und nieren testen wnen du nix dagegen hast

Parl
30.05.2008, 15:51
Wäre nett *lach

Ich denk mal werden sicher paar Sicherheitslücken drin sein *g

Xenon
30.05.2008, 16:03
Bin es mal überflogen und habe folgendes herrausgefunden :

Gute :
db_query , gut gesichert


Schlechte :

Fehler :Ich könnte jeden user bwz. jede uid eintragen die nicht exerstiert und somit die db total voll spammen .
Sicherung : Überprüfung der uid bwz des nicks ob vorhanden .


Fehler : wenn kein betreff eingetragen ist dann zerfetzt es zum teil .
Sicherung : Eine prüfung um zuschauen ob inhalt vorhanden ist und ob betreff eingetragen ist


Fehler : mit aktualisieren oder mit F5 kann ich nach der ersten pn so oft drücken wie ich will und so könnte ich in weniger minuten die DB total zu spammen und die seite im schlimmsten fall zum stillstand bringen .
Sicherung : nach pn versand sollte es weitergeleitet werden zu einer seite die nach F5 drücken sich nur die seite neu läd und nicht nochma die pn versendet wird .




Das waren die einzigen fehler die ich gefunden habe ich werde noch paar raussuchen .


MFG
adi


PS : 900 beitrag , es fehlen noch 100 :D

Parl
30.05.2008, 16:06
Werde es noch mal überarbeiten, danke. :)

Bis dahin erst mal den Download entfernt, bis die Lücken zu sind.

Xenon
30.05.2008, 16:07
Gern geschehen , ich such noch ob ich fehler finden kann

Edit : wie were es noch mit einen postausgang und einer begrenzung auf 200-300 pns max. ?

Parl
30.05.2008, 16:59
Hab es noch mal bearbeitet, kannst es dir noch einmal anschauen :)

Xenon
30.05.2008, 17:13
Also :

Fehler :Ich könnte jeden user bwz. jede uid eintragen die nicht exerstiert und somit die db total voll spammen .
Sicherung : Überprüfung der uid bwz des nicks ob vorhanden .


Ich kann immer noch an uid 5 etwas senden obwohl userid 5 nicht vorhanden ist :rant:



Fehler : wenn kein betreff eingetragen ist dann zerfetzt es zum teil .
Sicherung : Eine prüfung um zuschauen ob inhalt vorhanden ist und ob betreff eingetragen ist



Jo das wurde behoben aber besser were es wenn es mit javascirpt sein würde weil so zerfetz es die seite und menue rechts ist auch weg


Fehler : mit aktualisieren oder mit F5 kann ich nach der ersten pn so oft drücken wie ich will und so könnte ich in weniger minuten die DB total zu spammen und die seite im schlimmsten fall zum stillstand bringen .
Sicherung : nach pn versand sollte es weitergeleitet werden zu einer seite die nach F5 drücken sich nur die seite neu läd und nicht nochma die pn versendet wird .

Also das ist auch nun nicht mehr möglich .
Du hast 2 von 3 fehler behoben .


MFG
adi

Parl
30.05.2008, 17:26
Ich kann immer noch an uid 5 etwas senden obwohl userid 5 nicht vorhanden ist

Kannst du mir sagen ob auch der DB Eintrag gemacht wird? Und sag mir doch mal bitte per PN wie du die ID 5 eintragen konntest.

Nach den Fehlermeldungen zwecks Fehlender Betreff wird man nun zurück zur inbox geleitet.


MFG

Parl
31.05.2008, 00:43
Habe mein Eingangsposting editiert.

Änderungen im Script:

Anstatt nach fehlerhafter Eingabe auf die Inbox zurückzuleiten wird nun auf die "neue nachricht verfassen" seite zurückgeleitet. Jedoch gehen dabei alle zuvor eingegeben Daten verloren. Ich arbeite weiterhin daran.

MFG!

jpwfour
31.05.2008, 00:48
in der lesen.php könnte man noch einen query einsparen, nämlich wenn schon gelesene messages noch mal gelesen werden, wird trotzdem noch der query für gelesen=1 ausgeführt.

und in der neu.php würde ich eine etwas userfreundlichere fehlerbehandlung einbauen, also nicht per die(); sondern ungefähr so:



$error='';
if ( $_POST['betreff'] == '') {
$error.='Kein Betreff angegeben<br>';
}
...
if($error==''){
//datenbankeintrag
}

ansonten, wenn halt ein fehler oder mehrere vorliegen, dem user das forumlar mit den vorherigen werten wieder anzeigen, aber den fehler dazu ausgeben.

und bei der überprüfung der user id kommt es nur zum abbruch, wenn der query ungültig wäre, aber da er in deinem fall ja einfach nur nichts ausgibt, da die tabelle zwar vorhanden ist, aber einfach keine passendend aten zur abfrage, musst du da mit mysql_num_rows() arbeiten.

Parl
31.05.2008, 16:50
Ich hab es nun ein weiteres mal überarbeitet :)

Habe nun die 3. Lücke geschlossen und die Fehlerseiten verbessert.

Allerdings blick ich nun selber fast nich mehr durch meinen Code durch. :biggrin1:

Lokutos
02.06.2008, 00:36
Hi habs ma getestet und funzt allerdings sind mir paar sachen aufgefallen
die auswahl des empfängers wird relative schweer wenn man si 500 user hat
und man kann sich selber pn's schicken

und noch ne frage gäb es ne möglichkeit das man einen link machen kann für die nickpage

Parl
02.06.2008, 13:48
Also dass man sich selber ne PN schreiben kann geht nun nicht mehr, hatte das zu Testzwecken noch nicht mit reingenommen.

In der lesen.php und inbox.php ist der Nick nun mt der Nickpage verlinkt.
einen Link der auf der Nickpage erscheint, um eine PN zu schreiben... darum kümmer ich mich später noch.

Wegen der >500 User Sache.... muss ich schauen ob ich da ne Lösung finde.


MFG

BernieHH
02.06.2008, 14:16
Ich finde das PN-System richtig Klasse. Aber eines würde ich mir noch wünschen. Nämlich dass man als Admin an alle User eine PN schreiben kann.

Xenon
02.06.2008, 16:45
Ich finde das PN-System richtig Klasse. Aber eines würde ich mir noch wünschen. Nämlich dass man als Admin an alle User eine PN schreiben kann.

Naja das ist ein kostenloses und da darf man eig nicht zu viel verlangen auser das es bugfrei ist :thumb:

jpwfour
02.06.2008, 18:04
was noch ne tolle funktion ist (hab ich in meinem :biggrin1: ), die sich auch nicht unbedingt in jedem bezahlten pn system findet, ist die möglich keit system pns zu veschicken.

also bei bestimmten events, die einen user oder mehrere betreffen, verschickt das script automatisch eine pn, also bei jackpot gewinnen, ralley auszahlungen etc.

aber wir wolln dich ja mal nicht überfordern, auch wenn das pn system derzeit mehr eine gemeinschaftsproduktion zu werden scheint zwischen dir und adi :wink:

aber das ist ja eigenlich eh besser, wenn mehrere an einem addon arbeiten, ich und sicher auch viele andere, würde mich freuen, wenn das was richtiges wird und man es dann in den downloadbereich stellen kann. :thumb:

Lokutos
09.06.2008, 07:10
wie isn der aktuelle stand wird noch gearbeitet oder kann ich anfangen rumzubasteln??

Thomas
18.09.2008, 18:59
Ich hätte auch Interesse an dem PN System,

nur der Download klappt nicht :(

Parl
19.09.2008, 18:44
Der Download sollte nun wieder funktionieren. Ist eine etwas überarbeitete Version, leider weiss ich aber nicht ob es so noch korrekt funktioniert. (Sollte es aber eigentlich *g*)

Thomas
19.09.2008, 21:56
Der Download sollte nun wieder funktionieren. Ist eine etwas überarbeitete Version, leider weiss ich aber nicht ob es so noch korrekt funktioniert. (Sollte es aber eigentlich *g*)

Jep geht.

Funktion Getestet = Super !

Aber wenn du mal mehr User hast, birgt die Liste zur Empfänger auswahl Probleme.

Die würde ja irre lang werden.

Ist ein Eingabefeld nicht besser ?
Dann die Abfrage if Uer exist und gut ist, wenn nicht kommt man zur mail zurück.

Oder User suchen, so das man einen Teil eingibt und eine Liste bekommt.

Suche: Th

Dann als Ergebniss
Thomas
Thorsten
Theodor
.....

Ich weiss nicht wie gross der aufwand dafür ist oder ob Usersuchen schon als Addon existeirt, dann wäre eine verbindung beider dinge gut

Parl
19.09.2008, 22:06
An sowas mit der Suche hab ich auch schon gedacht und ich hab vor längerer Zeit sogar eine Lösung dafür gefunden, nur noch keine Lust gehabt mal damit rumzuspielen. Werde demnächst die datei neu.php mal ein wenig überarbeiten und meine Ergebnisse dann hier posten.

Dazu kommen noch Funktionen wie:

- PN an alle Refs
- Admin PN an alle User (wie bereits vorgeschlagen)
- Email bei neuer PN Funktion im Userprofil
- Support Ticket

EDIT: und natürlich noch die Änderung, dass wenn die PN's vom Absender UND Empfänger gelöscht werden, diese auch aus der Datenbank entfernt werden. Momentan werden die Nachrichten nur optisch gelöscht.

Wer noch Bugs findet oder weitere Vorschläge hat, kann hier gerne schreiben!

MFG

Thomas
19.09.2008, 23:19
Dazu kommen noch Funktionen wie:

- Support Ticket

MFG

Das gibts doch schon.

http://www.designerscripte.net/downloads.php?do=file&id=27

Wäre doch einfacher daraus was zu übernehmen.

Ich habs unter 1.2 laufen ohne Fehler.

Thomas
20.09.2008, 02:24
EDIT: und natürlich noch die Änderung, dass wenn die PN's vom Absender UND Empfänger gelöscht werden, diese auch aus der Datenbank entfernt werden. Momentan werden die Nachrichten nur optisch gelöscht.

Wer noch Bugs findet oder weitere Vorschläge hat, kann hier gerne schreiben!

MFG

Das mit dem löschen kann man ja über einen cron machen,
ich habe noch nicht nachgeschaut, aber ich denke du machst es mit nem status
damit man die mails nicht mehr sieht, das abfragen und dann löschen.

Dann hast das schon gelöst.

Mal sehen wenn ich morgen Zeit finde schreibe ich was, das kannst du dann mit einbauen.

eaxo
27.09.2008, 16:46
[...]

EDIT: und natürlich noch die Änderung, dass wenn die PN's vom Absender UND Empfänger gelöscht werden, diese auch aus der Datenbank entfernt werden. Momentan werden die Nachrichten nur optisch gelöscht.

Wer noch Bugs findet oder weitere Vorschläge hat, kann hier gerne schreiben!

MFG

Die PNs zu löschen finde ich nicht gut (inzwischen).
Auf der Seite eines befreundeten webbies gab es mal heftige Probleme mit einem Faker/Buguser. Dort waren die PNs eine Möglichkeit den User dingfest zu machen.
Vielleicht reicht es diese Crongesteuert in eine Sicherungstabelle zu schreiben.

eaxo

neoplacer
10.10.2008, 21:47
Hi habe dein Addon mal weiterentwickelt...
Werde es aber noch weiter verbessern :=
Mal sehen vielleicht stelle ich es ja dann auch hier rein..
Bei mir zeigt er jetzt schon an wann gelesen ob gelesen oder nur gelöscht usw..
Werde es aber komplett umbauen mich stören diese Tabellen..
Ich will das in div wo ich die Nachrichten mit Ajax nachladen kann.

Parl
25.11.2008, 23:17
Hallo,

Ich habe mal die neueste Version des PN Systems nocheinmal neu hochgeladen.

LINK: http://www.yukis-lose.de/PNSystembyParl.rar

Ich habe noch einige Sicherheitslücken geschlossen, die SELECT Box beim senden wurde durch ein INPUT Textfeld ersetzt und man kann auch eine PN an alle seine Refs schreiben.

PN's werden wie gehabt nur optisch gelöscht und bleiben zur eventuellen Nachverfolgung in der Datenbank, bis der Admin sie entgültig löscht. (nur per phpmyadmin möglich, ggf kleinen Cron schreiben)

Sollten dennoch Probleme auftauchen, einfach hier posten, ich schau was ich tun kann. Grosse Änderungen wird es nicht mehr geben!
Ansonsten, viel Spass mit dem Teil. :-)

PS: Ich bin von einem kleinen Lose-dankeschön auch nicht abgeneigt :thumb:

mfg
[/URL][URL="http://parl.vms1.de/PNSystembyParl.zip"] (http://parl.vms1.de/PNSystembyParl.zip)

Sailor Sunrise
09.01.2009, 17:34
Habe da eine Frage ^^ :

Wenn ich nach dem erstellen der Tabelle, hochladen des Ordners versuche den Code in meine Index.php Datei einzubaue, wird nur noch eine lehre Seite angezeigt.

So sieht meine Index.php Datei aus:

<?php
error_reporting(E_ALL);
include "config.php";
@mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die(mysql_error());
mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());
include "variablen.php";
if(isset($_GET['section'])){
session_start();
}
if(get_magic_quotes_gpc()) {
array_stripslashes($_GET);
array_stripslashes($_POST);
array_stripslashes($_COOKIE);
}
/*if(isset($_SESSION['ID'])) {
$sql="UPDATE users
SET last=NOW()
WHERE ID=".$_SESSION['ID'].";";
$result = mysql_query($sql) OR die(mysql_error());
}*/
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>*Purple Butterfly TCG*</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body topmargin="0" leftmargin="0" bgcolor="#e1c5ec" style="background-image: url(bild1.jpg);">

<div align="center">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#4e8ec4" width="800">
<tr height="1">
<td width="150">&nbsp;</td>
<td width="500">&nbsp;</td>
<td width="150">&nbsp;</td>
</tr>
<tr height="350"><td colspan="2">
<div id="head" style="overflow:auto">
<?php include "head.php"; ?>
</div>
</td>
<td width="150" valign="top" rowspan="2">
<div id="navi2" style="overflow:auto">
<?php include "navi1.php"; ?>
</div>
</td>
</tr>
<tr height="500">
<td width="650" valign="top" colspan="2">
<div id="main" style="overflow:auto">
<?php include "main.php"; ?>
</div>
</td>
</tr>
</table>
</div>

</body>
</html>

Hatte auch versucht den Code:

<?menuehead("PN System");?>
<img src="images/pfeil.gif" border="0" alt="">&nbsp;<a href="?content=/pnsys/inbox">Posteingang</a>

<?
$sql = db_query("SELECT COUNT(id) AS neu FROM ".$db_prefix."_inbox WHERE empfaenger_id=".$_SESSION['uid']." AND gelesen=0");
$msg = @mysql_fetch_array($sql);
echo '<b>('.$msg['neu'].')</b>'; ?><br>
<img src="images/pfeil.gif" border="0" alt="">&nbsp;<a href="?content=/pnsys/outbox">Postausgang</a>
<img src="images/pfeil.gif" border="0" alt="">&nbsp;<a href="?content=/pnsys/neu">Neue PN</a><br />
<img src="images/pfeil.gif" border="0" alt="">&nbsp;<a href="?content=/pnsys/nref">PN an meine Refs</a><br />
<?menuefoot();?>

als unterseite einzu bauen, leider klappte das auch nicht.


Muß ich das noch was "umschreiben" bzw verändern?
Oder.........??


Liebe grüße

Sunrise

Parl
09.01.2009, 23:00
Huhu,

was willst du denn in der index.php? Da muss doch garnichts geändert werden *g

Wie in der Anleitung beschrieben ist der Code nur fürs Linke/Rechte Menü, welche sich beim vms 1.2 in den Dateien menue_links bzw menue_rechts.php befinden.

Dieses PN System ist fürs VMS 1.2 geschrieben und getestet!
Wenn ich das richtig sehe betreibst du eine komplett andere Webseite (garkein VMS?)

MFG

Sailor Sunrise
09.01.2009, 23:55
Stimmt ist kein VMS.

Hatte diesen beitrag per Google gefunden und nichts gewust das das nichts für andere HP´s ist bzw nur für VMS ist :redface:

Everlast3310
10.05.2009, 01:09
Hätte da noch ne kleinigkeit. Will auch nicht meckern, ist ja schlieslich umsonst und funzt auch einwandfrei. Von daher erstmal dankeschön. Aber vlt kann man das ja so ändern, dass man sich nicht selbst PN´s schreiben kann. Gibt sicherlich User, die gerne die db voll spamen wollen.

Parl
10.05.2009, 01:21
*grübel* dachte das wäre schon so drin...

Hab das bestimmt zu testzwecken rausgenommen und vergessen wieder reinzunehmen...

Ich schaus mir morgen mal an und aktualisiere dann die Datei im Eingangspost (einfach dann neu runterladen und die inbox.php und neu.php überschreiben)

MFG

Everlast3310
10.05.2009, 01:27
Danke, ist echt nett von dir. Finde es super, dass du so viel nützliche dinge kostenlos zum dl bereit stellst. Die meisten würden so etwas in Shops für haufen Klammlose verkaufen.

skipper
10.05.2009, 14:28
das Problem ist, dass man den Nickname des Empfängers eingibt, dann wird gecheckt, ob die eigene ID gleich mit dem eingegebenen Empfänger ist
und das ist meistens nicht der Fall

>man muss nur den eigenen Nickname aus der Tabelle vms_userdaten abfragen und mit dem Angegebenen vergleichen

Parl
11.05.2009, 04:07
Die Datei im Eingangspost wurde nun aktualisiert, habs auch noch mal auf meinem xampp installiert, hat gut geklappt. Man kann sich selbst nun keine Mails mehr schreiben.

MFG

KiLLzOnE
22.07.2009, 02:54
Wie bekomme ich es hin, das die Zahl hinterm Posteingang auch wirklich dahinter steht und nicht darunter?

Parl
22.07.2009, 03:18
Wenn du es nach der Anleitung gemacht hast sollte da eigentlich kein Umbruch sein.
Entweder ist dein Menü zu schmal (Lösung wäre dann aus dem Wort Posteingang einfach mal nur Eingang zu machen), oder du hast nach "Posteingang</a>" nen Zeilenumbruch drin <br>, dann muss dieser weg.

MFG

KiLLzOnE
22.07.2009, 03:24
Ist beides nicht der Fall. Es heisst bei mir nun Eingang und es ist kein <br> oder ähnliches dahinter...

Parl
22.07.2009, 03:43
Ok dann ersetz mal den kompletten Menüteil mit dem:



<?menuehead("PN System");
$sql = db_query("SELECT COUNT(id) AS neu FROM ".$db_prefix."_inbox WHERE empfaenger_id=".$_SESSION['uid']." AND gelesen=0");
$msg = @mysql_fetch_array($sql);
?>
<img src="images/pfeil.gif" border="0" alt="">&nbsp;<a href="?content=/pnsys/inbox">Posteingang</a><b>(<?=$msg['neu'];?>)</b><br>
<img src="images/pfeil.gif" border="0" alt="">&nbsp;<a href="?content=/pnsys/outbox">Postausgang</a><br>
<img src="images/pfeil.gif" border="0" alt="">&nbsp;<a href="?content=/pnsys/neu">Neue PN</a><br>
<img src="images/pfeil.gif" border="0" alt="">&nbsp;<a href="?content=/pnsys/nref">PN an meine Refs</a><br>
<?menuefoot();?>



MFG

KiLLzOnE
22.07.2009, 12:22
Ich habs geschafft, danke. Es lag daran, das wenn am Ende ein </a> steht, das System direkt automatisch einen Zeilenumbruch macht - warum auch immer. Sieht nun so aus:



<?menuehead("PN System");
$sql = db_query("SELECT COUNT(id) AS neu FROM ".$db_prefix."_inbox WHERE empfaenger_id=".$_SESSION['uid']." AND gelesen=0");
$msg = @mysql_fetch_array($sql);
?>
<a href="?content=/pnsys/inbox"><img src="images/button.png" border="0" alt="">&nbsp;Eingang <b>(<?=$msg['neu'];?>)</b></a>
<a href="?content=/pnsys/outbox"><img src="images/button.png" border="0" alt="">&nbsp;Ausgang</a>
<a href="?content=/pnsys/neu"><img src="images/button.png" border="0" alt="">&nbsp;Neue PN</a>
<a href="?content=/pnsys/nref"><img src="images/button.png" border="0" alt="">&nbsp;PN an Refs</a>
<?menuefoot();?>

drubadu
03.08.2009, 15:45
Da das support ticket Addon hier gelöscht wurde; könntest du bitte noch die erweitung SUPPORTTICKET programmieren?

DJschatz27
03.12.2011, 18:12
Edit hat sich erledigt habs hinbekommen