bevor du es irgendwo meinst es kaufen zu müssen dann lieber ne PN an mich dann hast du es Gratis^
aber zum Download gehts hier lang https://native-network.net/wsif/entry/87-…-for-teamspeak/
Schön, dass du den Weg zu NodeZone.net gefunden hast! Aktuell bist du nicht angemeldet und kannst deshalb nur eingeschränkt auf unsere Community zugreifen. Um alle Funktionen freizuschalten, spannende Inhalte zu entdecken und dich aktiv einzubringen, registriere dich jetzt kostenlos oder melde dich mit deinem Account an.
bevor du es irgendwo meinst es kaufen zu müssen dann lieber ne PN an mich dann hast du es Gratis^
aber zum Download gehts hier lang https://native-network.net/wsif/entry/87-…-for-teamspeak/
INSERT INTO <database_name> (EMAIL, PASSWORT, VORNAME, NACHNAME) VALUES ("[email protected]", "someHashedPassword", "John", "Doe")
versuch mal dein session_start() direkt zu beginn des Scripts aufzurufen
der fehler von wegen "headers already sent" kommt davon dass du versuchst Cookies oder ähnliches zu setzen nachdem du bereits den header gesendet/gesetzt hast
hier in deinem Script ist alles in Ordnung, kann es sein dass das Script durch eine andere Datei included wird und in dieser Datei die Headers modifiziert werden?
exakt, wenn du deine derzeitigen Webseiten über Nginx laufen hast dann direkt runterklatschen
apache2 und nginx sind 2 verschiedene webserver
du hast apache2 ebenfalls installiert.....
tcp6 0 0 :::80 :::* LISTEN 727/apache2
falls du apache2 nicht in benutzung hast einfach deinstallieren
apt-get purge apache2
service nginx restart
führ mal den command "netstat -tulpn" aus es scheint so als ob ein anderes Programm bereits deinen Port 80 belegt
Ich würde nicht auf das Angebot von BountyXY eingehen
Ich finde es ehrlich gesagt schade dass jedes noch so "kleine" Projekt um einen meist zu überteuerten Preis verkauft wird und auf Open Source überhaupt keine Wertschätzung mehr liegt.
Schade dass die Welt nur noch vom schnellen Geld abhängt
Der Banner Generator hab ich gerade (24.7.2016 14:20) upgedated und es wäre jetzt auch möglich den Status des ArmA Servers auszulesen (Slots, Name, etc) sowie den Nicknamen des eigenen Clients im TeamSpeak darstellen zu können außerdem sollte die Dokumentation ein wenig verständlicher sein
Ich rate davon ab MySQL zu nutzen, empfehlenswerter ist derzeit MariaDB https://mariadb.com/kb/en/mariadb/…ges-on-windows/
MariaDB bietet wesentlich mehr performance (https://mariadb.com/blog/mariadb-53-optimizer-benchmark), supportet mehr Storage Engines und hat sonst noch einige Verbesserungen gegenüber MySQL
SRC: https://mariadb.com/kb/en/mariadb/mariadb-vs-mysql-features/
Aus eigener Erfahrung kann ich selber sagen dass ein leichter Performance Schub spürbar war als ich auf MariaDB umgestiegen bin
wenn dich jemand bei TeamSpeak verpetzt dann entziehen die dir die Lizenz
meistens aber nur solange bis du das auf der Seite in Ordnung gebracht hast
Es geht bei TeamSpeak noch soweit dass du die Punkte
ebenfalls beachten musst!
Naja ich lass sie halt Indexiert über meine HDD Raid laufen, braucht zwar ca 30G Platz auf der Platte für 200 Mio UIDs aber dafür benötigt die keinen Platz im Ram
Ram ist da um ein vielfaches teuerer als wie der Platz auf der HDD
Und mit der Indexierung ist die halt ein paar millisekunden langsamer als wie deine RAM DB
Mittlerweile würde ich die DB Struktur auch leicht anders machen, man könnte im Prinzip auf die "ID" Reihe verzichten dann würde der warscheinlich 20-30% weniger Speicherplatz brauchen
Ansonsten kann ich gerne den Sinusbot empfehlen
Die Linux Version hat ein Scripting Interface und es gibt bereits jede Menge unterschiedliche "Plugins" bzw "Scripts"
Diese sind sehr leicht mit Javascript selber schreibbar
sodele
ich hab jetzt halbwegs ne API zusammen gebaut
erreichbar unter converter.multivitamin.wtf
ihr könnt entweder die SteamID64 angeben oder die Battleye GUID um jeweils das gegenüber liegende zu bekommen
By SteamID64:
GET REQUEST: http://converter.multivitamin.wtf/76561198032854208
JSON RESPONSE: {"error":null,"data":{"guid":"cd0bee234b4419e60618a708029585e8","SteamID64":"76561198032854208"}}
By Battleye GUID:
GET REQUEST: http://converter.multivitamin.wtf/cd0bee234b4419e60618a708029585e8
JSON RESPONSE: {"error":null,"data":{"guid":"cd0bee234b4419e60618a708029585e8","SteamID64":"76561198032854208"}}
Was spricht gegen eine solch große Datenbank selber zu hosten?
Die Datenbank hat derzeit eine Gesamtdatenmenge von mehr als 160 Millionen Datensätzen und hat eine stolze größe von 12,6 Gigabyte
Durch falsche Indexierungen kann es sein dass eine einfache Query mehrere !!MINUTEN!! benötigt bis diese durchlaufen ist!
Die zusammensetzung der Daten dauert etwa bei einer Leistung von 6 Millionen Daten pro Minute ca 30 Minuten
Die nachträgliche Indexierung und Unique Wert festlegung sowie Änderung der Kollation der GUID benötigte an die 60 Minuten Rechenzeit.
//EDIT: Nachträgliche Eintragungen der Datenbank dauern wesentlich länger durch die Indexierung des GUID Wertes derzeitige Schreibleistung von neuen Datensätzen 3000 - 3500 Einträge pro Minute (50 / Sekunde)
dann sollten die halt wenigstens selber irgendeine mindest Punktanzahl im Forum haben um Bewertungen abgeben zu können, ich denke User mit höherer Punktezahl (250 Punkte?) sind keine Eintagsfliegen auf dem Board und wissen sich auch einigermaßen zu Verhalten
WOOOPS
"Klitzekleiner" Performance Schub fürs generieren
anstatt 280k Einträge pro Minute > 6 Mill Einträge pro Minute
<?php
$firstID = 76561197960265730;
$approxMaxId = 76561198100000000; //SOURCE http://kotaku.com/1687820875
function s64toGuid($int) {
$temp = '';
for ($i = 0; $i < 8; $i++) {
$temp .= chr($int & 0xFF);
$int >>= 8;
}
$guid = md5('BE' . $temp);
return $guid;
}
$conn = new mysqli('127.0.0.1', 'DATABASE_USER', 'DATABASE_PASSWORD', 'DATABASE_NAME');
if ($conn->connect_error) {
echo "Could not create Database Connection: ".$conn->connect_error;
die();
}
$result = $conn->query("SELECT MAX(steamId64) as maxid FROM guid");
$steamid = $result->fetch_assoc()['maxid'];
if ($result->num_rows != 1 || $steamid < $firstID) {
$steamid = $firstID;
echo "[".date('H:i:s')."] Starting at UID ".$steamid."\n";
} else {
$steamid++;
echo "[".date('H:i:s')."] Continuing with UID ".$steamid."\n";
}
$stopwatch = time();
$last = 0;
$i = 0;
$base_sql = "INSERT INTO guid (steamId64, guid) VALUES ";
$sql = "";
while ($steamid <= 9223372036854775807) {
if ($stopwatch < (time() - 60)) {
echo "[".date('H:i:s')."] Generating with ".($i - $last)." Entries per Minute!\n";
$stopwatch = time();
$last = $i;
}
if ($i % 100000 == 0) echo "[".date('H:i:s')."] Generated ".(floatval($i) / 1000000)." Million UIDs!\n";
if ((($approxMaxId - $steamid) % 1000000) == 0) echo "[".date('H:i:s')."] ~".(($approxMaxId - $steamid) / 1000000)." Million UIDs Left to generate\n";
$sql .= "(".$steamid.", '".s64toGuid($steamid)."')";
if ($i % 500 == 0) {
if ($conn->query($base_sql.$sql) !== TRUE) {
echo $base_sql.$sql."\n\n";
echo "Insert Error! ".$conn->error;
die();
} else {
$sql = "";
}
} else {
$sql .= ",";
}
$i++;
$steamid++;
}
Alles anzeigen
Nochmal ein kleines Update des PHP Scripts für mehr Meldungen:
<?php
$firstID = 76561197960265730;
$approxMaxId = 76561198100000000; //SOURCE http://kotaku.com/1687820875
function s64toGuid($int) {
$temp = '';
for ($i = 0; $i < 8; $i++) {
$temp .= chr($int & 0xFF);
$int >>= 8;
}
$guid = md5('BE' . $temp);
return $guid;
}
$conn = new mysqli('127.0.0.1', 'DATABASE_USER', 'DATABASE_PASSWORD', 'DATABASE_NAME');
if ($conn->connect_error) {
echo "Could not create Database Connection: ".$conn->connect_error;
die();
}
$result = $conn->query("SELECT MAX(steamId64) as maxid FROM guid");
$steamid = $result->fetch_assoc()['maxid'];
if ($result->num_rows != 1 || $steamid < $firstID) {
$steamid = $firstID;
echo "[".date('H:i:s')."] Starting at UID ".$steamid."\n";
} else {
$steamid++;
echo "[".date('H:i:s')."] Continuing with UID ".$steamid."\n";
}
$stopwatch = time();
$last = 0;
$i = 0;
while ($steamid <= 9223372036854775807) {
if ($stopwatch < (time() - 60)) {
echo "[".date('H:i:s')."] Generating with ".($i - $last)." Entries per Minute!\n";
$stopwatch = time();
$last = $i;
}
if ($i % 100000 == 0) echo "[".date('H:i:s')."] Generated ".(floatval($i) / 1000000)." Million UIDs!\n";
if ((($approxMaxId - $steamid) % 1000000) == 0) echo "[".date('H:i:s')."] ~".(($approxMaxId - $steamid) / 1000000)." Million UIDs Left to generate\n";
if ($conn->query("INSERT INTO guid (steamId64, guid) VALUES (".$steamid.", '".s64toGuid($steamid)."')") !== TRUE) {
echo "Insert Error! ".$conn->error;
die();
}
$i++;
$steamid++;
}
Alles anzeigen
Konsolen Output ist dann derartig
[18:37:44] Continuing with UID 76561197975815594
[18:37:44] Generated 0 Million UIDs!
[18:38:06] Generated 0.1 Million UIDs!
[18:38:24] ~124 Million UIDs Left to generate
[18:38:27] Generated 0.2 Million UIDs!
[18:38:45] Generating with 280837 Entries per Minute!
[18:38:48] Generated 0.3 Million UIDs!
[18:39:10] Generated 0.4 Million UIDs!
[18:39:31] Generated 0.5 Million UIDs!
[18:39:46] Generating with 284926 Entries per Minute!
[18:39:53] Generated 0.6 Million UIDs!
[18:40:14] Generated 0.7 Million UIDs!
[18:40:35] Generated 0.8 Million UIDs!
[18:40:47] Generating with 284284 Entries per Minute!
[18:40:57] Generated 0.9 Million UIDs!
[18:41:18] Generated 1 Million UIDs!
[18:41:40] Generated 1.1 Million UIDs!
[18:41:48] Generating with 285178 Entries per Minute!
[18:41:58] ~123 Million UIDs Left to generate
[18:42:01] Generated 1.2 Million UIDs!
Alles anzeigen