Schreibrechte ka, habs eigentlich gesetzt.
Lege die Datei doch mal händisch an, und schaue ob dann der Login Dialog direkt angezeigt wird.
Schreibrechte ka, habs eigentlich gesetzt.
Lege die Datei doch mal händisch an, und schaue ob dann der Login Dialog direkt angezeigt wird.
Das Passwort hat in den Parametern gefehlt und das Auslesen des Queries war nicht korrekt.
if(response && strlen(inputtext) > 0)
{
new string[512],name[32], password[64];
GetPlayerName(playerid,SpielerInfo[playerid][Name],32);
mysql_real_escape_string(SpielerInfo[playerid][Name],name);
mysql_real_escape_string(inputtext, password);
format(string,sizeof(string),"SELECT password FROM accounts WHERE name = '%s' AND password = MD5('%s')",name, password);
//format(string,sizeof(string),"SELECT password FROM accounts WHERE name = '%s'",name);
mysql_query(string);
mysql_store_result();
new rows = mysql_num_rows();
mysql_free_result();
if(!rows)
{
format(string,sizeof(string),"Willkommen bei %s\n\nDein password war nicht richtig!\nBitte Logge dich mit \ndein richtiges password ein.",SERVERNAME);
ShowUserDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login",string,"Einloggen","Abbrechen");
return 1;
}
format(string,sizeof(string),"SELECT * FROM accounts WHERE name = '%s' AND password = MD5('%s')",name, password);
//format(string, sizeof(string), "SELECT * FROM `accounts` WHERE `name`='%s'",name);
mysql_query(string);
mysql_store_result();
mysql_fetch_row(string);
mysql_free_result();
printf("Spieler %s wird geladen", SpielerInfo[playerid][Name]);
Poste bitte den entsprechenden Code und eventuelle Fehlermeldungen aus Log und Compiler.
Das liegt daran, dass das Streamer Plugin nicht geladen werden konnte.
Prüfe ob es im Ordner /plugins/ ist und in der server.cfg steht.
Wenn ja, versuche diese All-In-One-Package zu installieren:
All in One Runtimes - Download - CHIP
new password[64];
mysql_real_escape_string(inputtext, password);
format(query, sizeof(query), "INSERT INTO `accounts` (name,password) VALUES ('%s',MD5('%s'))", playername, password);
wie meinst du das ? bin erst neu im mysql script
Dann rate ich dir, gehe nach diesem Tutorial von vorne an vor:
[jTuT] MySQL R39-3 (Installation, XAMPP, Verwendung, Bedienung & Registrations-System)
Das wird dir sehr helfen.
und wie soll ich das auslesen lasssen brauche ich noch ein include ?
Wenn du mit auslesen meinst, wie du abfragen kannst, ob der Spieler das korrekte Kennwort eingegeben hat, dann nach gleichem Prinzip:
... WHERE name = '%s' AND password = MD5('%s')
Mit der Funktion kannst du abfragen ob der Sitzplatz belegt ist oder nicht.
Drehe das return 1 und return 0 um, sonst wäre es "IsSeatUsed". ![]()
format(query, sizeof(query), "INSERT INTO `accounts` (name,password) VALUES ('%s',MD5('%s'))", playername, inputtext);
So.
Beachte, dass du inputtext zuvor mit mysql_real_escape_string escapen solltest, da du dir sonst eine SQL Injection einfangen kannst.
Setze mal einen print nach:
format(string, sizeof(string), "/Accounts/%s.ini", name);
hin:
printf("Pfad = %s", string);
Steht das dann im Log?
Sowohl beim Register als auch beim Login.
Wenn ja, dann hat dein Server eventuell keine Schreibrechte in dem Verzeichnis.
Wenn nein, dann poste bitte, wie du den Dialog anzeigen lässt und prüfe vorher, ob OnDialogResponse überhaupt aufgerufen wird.
Ich hatte meinen Post editiert, nachdem du deinen editiert hast.
Versuche es mit der geposteten All-In-One-Package, die installiert die benötigten Runtimes.
Versuche es mit dieser All-In-One-Package:
http://www.chip.de/downloads/A…ne-Runtimes_37449838.html
Sicher, dass du es richtig geschrieben hast?
#include <streamer>
Poste bitte deine "split" Funktion und markiere die Zeile 30635, sowie deine "LoadFrakwaffen" und markiere dort die Zeile 19409.
So klappt es nur für ID 0.
Ändere es ab zu:
forward RandomNachrichten();
public RandomNachrichten()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue;
PlayerTextDrawSetString(i,SOMnachrichten9[i], RandomSNachrichten[random(sizeof(RandomSNachrichten))]);
}
return 1;
}
Dann musst du es manuell debuggen, indem du dein OnGameModeInit mit prints ausstattest und schaust, bis zu welchem Print er kommt, bzw. welche Code Zeile als erstes nicht mehr ausgeführt wird.
Zuvor kannst du aber noch versuchen, die Plugins zu aktualisieren.
http://forum.sa-mp.com/showthread.php?t=602923
http://forum.sa-mp.com/showthread.php?t=102865
http://forum.sa-mp.com/showthread.php?t=262796
https://github.com/pBlueG/SA-MP-MySQL/releases
Hast du den neu kompilierten Code auch auf den Host hochgeladen?
Gehe bitte nach Punkt 1.5 vor (Ausgabe mit Zeilenangabe):
Tipps: Scripting-Probleme richtig erklären
Poste dann die Fehlermeldung erneut.
Sieht so aus als können die Plugins, oder eines, nicht geladen werden.
Poste bitte mal was weiter oben im Server Log steht, wenn du den Server startest.
Allerdings fehlt ein gute Erklärung zur SQL-Syntax, was bei Anfängern, die andere Systeme als Login/Register erstellen wollen, oft zu Problemen führt.
Desweiteren hätte man noch zu eine Seite verweisen können, die sämtliche SQL Befehle enthält.
Danke für den Hinweis, ich werde das in den nächsten Tagen hinzufügen.